@fiado/type-kit 3.488.0 → 3.489.0

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,51 @@
1
+ import 'reflect-metadata';
2
+ import { plainToInstance } from 'class-transformer';
3
+ import { validateSync } from 'class-validator';
4
+ import { UpsertCustomerFromKycRequest } from '../../../src/retailCustomer/dtos/requests/UpsertCustomerFromKycRequest';
5
+ import { KycMethodEnum } from '../../../src/retailCustomer/enums/KycMethodEnum';
6
+ import { KycModalityEnum } from '../../../src/retailCustomer/enums/KycModalityEnum';
7
+ import { RetailKycStatusEnum } from '../../../src/retailCustomer/enums/RetailKycStatusEnum';
8
+
9
+ /** Valida como lo hace `retail-customer-business`: con `@Expose` y `excludeExtraneousValues`. */
10
+ function toDto(payload: Record<string, unknown>): UpsertCustomerFromKycRequest {
11
+ return plainToInstance(UpsertCustomerFromKycRequest, payload, { excludeExtraneousValues: true });
12
+ }
13
+
14
+ const base = {
15
+ originStoreId: 'store-1',
16
+ names: 'Ana',
17
+ paternalLastName: 'Pérez',
18
+ phone: '5512345678',
19
+ curp: 'PEGA900101MDFRRN09',
20
+ fiadoDirectoryId: 'dir-1',
21
+ fiadoPeopleId: 'people-1',
22
+ kycStatus: Object.values(RetailKycStatusEnum)[0],
23
+ kycModality: KycModalityEnum.STORE_DEVICE,
24
+ };
25
+
26
+ describe('UpsertCustomerFromKycRequest — método de KYC', () => {
27
+ it('KycMethodEnum expone FULL_KYC y FACEMATCH', () => {
28
+ expect(Object.values(KycMethodEnum)).toEqual(['FULL_KYC', 'FACEMATCH']);
29
+ });
30
+
31
+ it('acepta el payload sin kycMethod ni biometricVerificationId', () => {
32
+ expect(validateSync(toDto(base)).map((e) => e.property)).toEqual([]);
33
+ });
34
+
35
+ it('conserva kycMethod y biometricVerificationId del alta por facematch', () => {
36
+ const dto = toDto({ ...base, kycMethod: KycMethodEnum.FACEMATCH, biometricVerificationId: 'bv-1' });
37
+ expect(validateSync(dto)).toEqual([]);
38
+ expect(dto.kycMethod).toBe(KycMethodEnum.FACEMATCH);
39
+ expect(dto.biometricVerificationId).toBe('bv-1');
40
+ });
41
+
42
+ it('rechaza un kycMethod fuera del catálogo', () => {
43
+ expect(validateSync(toDto({ ...base, kycMethod: 'SELFIE' })).map((e) => e.property)).toEqual(['kycMethod']);
44
+ });
45
+
46
+ it('rechaza un biometricVerificationId que no es string', () => {
47
+ expect(validateSync(toDto({ ...base, biometricVerificationId: 42 })).map((e) => e.property)).toEqual([
48
+ 'biometricVerificationId',
49
+ ]);
50
+ });
51
+ });
@@ -1,4 +1,5 @@
1
1
  import { RetailAddress } from '../RetailAddress';
2
+ import { KycMethodEnum } from '../../enums/KycMethodEnum';
2
3
  import { KycModalityEnum } from '../../enums/KycModalityEnum';
3
4
  import { RetailKycStatusEnum } from '../../enums/RetailKycStatusEnum';
4
5
  /**
@@ -47,6 +48,10 @@ export declare class UpsertCustomerFromKycRequest {
47
48
  hasActiveMxAccount?: boolean;
48
49
  kycStatus: RetailKycStatusEnum;
49
50
  kycModality: KycModalityEnum;
51
+ /** Método con el que se verificó la identidad. Ausente = no pisa el valor guardado. */
52
+ kycMethod?: KycMethodEnum;
53
+ /** Verificación biométrica de `biometrics-business` que respaldó el alta por facematch. */
54
+ biometricVerificationId?: string;
50
55
  /**
51
56
  * Domicilio del INE (paso 02e), ya normalizado contra `places-business`. Se persiste embebido en la
52
57
  * MISMA TX del upsert.
@@ -14,6 +14,7 @@ const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const regex_1 = require("../../../helpers/constans/regex");
16
16
  const RetailAddress_1 = require("../RetailAddress");
17
+ const KycMethodEnum_1 = require("../../enums/KycMethodEnum");
17
18
  const KycModalityEnum_1 = require("../../enums/KycModalityEnum");
18
19
  const RetailKycStatusEnum_1 = require("../../enums/RetailKycStatusEnum");
19
20
  /**
@@ -141,6 +142,18 @@ __decorate([
141
142
  (0, class_validator_1.IsEnum)(KycModalityEnum_1.KycModalityEnum),
142
143
  __metadata("design:type", String)
143
144
  ], UpsertCustomerFromKycRequest.prototype, "kycModality", void 0);
145
+ __decorate([
146
+ (0, class_transformer_1.Expose)(),
147
+ (0, class_validator_1.IsOptional)(),
148
+ (0, class_validator_1.IsEnum)(KycMethodEnum_1.KycMethodEnum),
149
+ __metadata("design:type", String)
150
+ ], UpsertCustomerFromKycRequest.prototype, "kycMethod", void 0);
151
+ __decorate([
152
+ (0, class_transformer_1.Expose)(),
153
+ (0, class_validator_1.IsOptional)(),
154
+ (0, class_validator_1.IsString)(),
155
+ __metadata("design:type", String)
156
+ ], UpsertCustomerFromKycRequest.prototype, "biometricVerificationId", void 0);
144
157
  __decorate([
145
158
  (0, class_transformer_1.Expose)(),
146
159
  (0, class_validator_1.IsOptional)(),
@@ -0,0 +1,5 @@
1
+ /** Cómo se verificó la identidad del cliente: KYC completo o solo selfie contra la cuenta existente. */
2
+ export declare enum KycMethodEnum {
3
+ FULL_KYC = "FULL_KYC",
4
+ FACEMATCH = "FACEMATCH"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KycMethodEnum = void 0;
4
+ /** Cómo se verificó la identidad del cliente: KYC completo o solo selfie contra la cuenta existente. */
5
+ var KycMethodEnum;
6
+ (function (KycMethodEnum) {
7
+ KycMethodEnum["FULL_KYC"] = "FULL_KYC";
8
+ KycMethodEnum["FACEMATCH"] = "FACEMATCH";
9
+ })(KycMethodEnum || (exports.KycMethodEnum = KycMethodEnum = {}));
@@ -1,6 +1,7 @@
1
1
  export * from './enums/AccountStatusEnum';
2
2
  export * from './enums/RetailKycStatusEnum';
3
3
  export * from './enums/KycModalityEnum';
4
+ export * from './enums/KycMethodEnum';
4
5
  export * from './enums/KycReviewResultEnum';
5
6
  export * from './enums/RetailCustomerStatusEnum';
6
7
  export * from './enums/WelcomeBonusStatusEnum';
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  __exportStar(require("./enums/AccountStatusEnum"), exports);
19
19
  __exportStar(require("./enums/RetailKycStatusEnum"), exports);
20
20
  __exportStar(require("./enums/KycModalityEnum"), exports);
21
+ __exportStar(require("./enums/KycMethodEnum"), exports);
21
22
  __exportStar(require("./enums/KycReviewResultEnum"), exports);
22
23
  __exportStar(require("./enums/RetailCustomerStatusEnum"), exports);
23
24
  __exportStar(require("./enums/WelcomeBonusStatusEnum"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.488.0",
3
+ "version": "3.489.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -12,6 +12,7 @@ import {
12
12
  } from 'class-validator';
13
13
  import { regexCurp, regexIso8601Date, regexPhoneMx } from '../../../helpers/constans/regex';
14
14
  import { RetailAddress } from '../RetailAddress';
15
+ import { KycMethodEnum } from '../../enums/KycMethodEnum';
15
16
  import { KycModalityEnum } from '../../enums/KycModalityEnum';
16
17
  import { RetailKycStatusEnum } from '../../enums/RetailKycStatusEnum';
17
18
 
@@ -140,6 +141,18 @@ export class UpsertCustomerFromKycRequest {
140
141
  @IsEnum(KycModalityEnum)
141
142
  kycModality!: KycModalityEnum;
142
143
 
144
+ /** Método con el que se verificó la identidad. Ausente = no pisa el valor guardado. */
145
+ @Expose()
146
+ @IsOptional()
147
+ @IsEnum(KycMethodEnum)
148
+ kycMethod?: KycMethodEnum;
149
+
150
+ /** Verificación biométrica de `biometrics-business` que respaldó el alta por facematch. */
151
+ @Expose()
152
+ @IsOptional()
153
+ @IsString()
154
+ biometricVerificationId?: string;
155
+
143
156
  /**
144
157
  * Domicilio del INE (paso 02e), ya normalizado contra `places-business`. Se persiste embebido en la
145
158
  * MISMA TX del upsert.
@@ -0,0 +1,5 @@
1
+ /** Cómo se verificó la identidad del cliente: KYC completo o solo selfie contra la cuenta existente. */
2
+ export enum KycMethodEnum {
3
+ FULL_KYC = 'FULL_KYC',
4
+ FACEMATCH = 'FACEMATCH',
5
+ }
@@ -2,6 +2,7 @@
2
2
  export * from './enums/AccountStatusEnum';
3
3
  export * from './enums/RetailKycStatusEnum';
4
4
  export * from './enums/KycModalityEnum';
5
+ export * from './enums/KycMethodEnum';
5
6
  export * from './enums/KycReviewResultEnum';
6
7
  export * from './enums/RetailCustomerStatusEnum';
7
8
  export * from './enums/WelcomeBonusStatusEnum';