@fiado/type-kit 3.220.0 → 3.222.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.
@@ -28,6 +28,12 @@ export declare class UpsertCustomerFromKycRequest {
28
28
  pcfAccountId?: string;
29
29
  pcfClabe?: string;
30
30
  pcfAccountLevel?: 1 | 2;
31
+ /**
32
+ * El cliente ya tenía una cuenta PCF ACTIVE en México (rama facematch). Si es `true`, el receptor
33
+ * marca `accountStatus=LINKED` en vez de `OPENING` y NO dispara la apertura async (D35).
34
+ * Ausente/`false` = flujo normal (se abre cuenta). SureKeep Fase 2 — bifurcación KYC.
35
+ */
36
+ hasActiveMxAccount?: boolean;
31
37
  kycStatus: RetailKycStatusEnum;
32
38
  kycModality: KycModalityEnum;
33
39
  address?: AddressBase;
@@ -118,6 +118,12 @@ __decorate([
118
118
  (0, class_validator_1.IsIn)([1, 2]),
119
119
  __metadata("design:type", Number)
120
120
  ], UpsertCustomerFromKycRequest.prototype, "pcfAccountLevel", void 0);
121
+ __decorate([
122
+ (0, class_transformer_1.Expose)(),
123
+ (0, class_validator_1.IsOptional)(),
124
+ (0, class_validator_1.IsBoolean)(),
125
+ __metadata("design:type", Boolean)
126
+ ], UpsertCustomerFromKycRequest.prototype, "hasActiveMxAccount", void 0);
121
127
  __decorate([
122
128
  (0, class_transformer_1.Expose)(),
123
129
  (0, class_validator_1.IsEnum)(RetailKycStatusEnum_1.RetailKycStatusEnum),
@@ -5,5 +5,11 @@
5
5
  export declare enum AccountStatusEnum {
6
6
  OPENING = "OPENING",
7
7
  OPEN = "OPEN",
8
- FAILED = "FAILED"
8
+ FAILED = "FAILED",
9
+ /**
10
+ * El cliente YA tenía una cuenta PCF ACTIVE en México al entrar por SureKeep (rama facematch):
11
+ * no se abre una nueva. No dispara la apertura async (D35) ni el welcome bonus (ese es incentivo
12
+ * para completar N2). SureKeep Fase 2 — bifurcación KYC.
13
+ */
14
+ LINKED = "LINKED"
9
15
  }
@@ -10,4 +10,10 @@ var AccountStatusEnum;
10
10
  AccountStatusEnum["OPENING"] = "OPENING";
11
11
  AccountStatusEnum["OPEN"] = "OPEN";
12
12
  AccountStatusEnum["FAILED"] = "FAILED";
13
+ /**
14
+ * El cliente YA tenía una cuenta PCF ACTIVE en México al entrar por SureKeep (rama facematch):
15
+ * no se abre una nueva. No dispara la apertura async (D35) ni el welcome bonus (ese es incentivo
16
+ * para completar N2). SureKeep Fase 2 — bifurcación KYC.
17
+ */
18
+ AccountStatusEnum["LINKED"] = "LINKED";
13
19
  })(AccountStatusEnum || (exports.AccountStatusEnum = AccountStatusEnum = {}));
@@ -12,7 +12,7 @@ import type { WizardWelcome } from './WizardWelcome';
12
12
  /** Modalidad de captura del KYC (M1 §213-329). */
13
13
  export type KycModality = 'CUSTOMER_LINK' | 'STORE_DEVICE' | 'MANUAL';
14
14
  /** Estado de la apertura de cuenta async (D35) — espejo de `RetailCustomer.accountStatus`. */
15
- export type AccountStatus = 'OPENING' | 'OPEN' | 'FAILED';
15
+ export type AccountStatus = 'OPENING' | 'OPEN' | 'FAILED' | 'LINKED';
16
16
  /**
17
17
  * Estado de la SAGA del wizard (modelo-datos §1). ES la tabla de estado: cada paso persiste su
18
18
  * avance; reanudable. pk `SESSION#<sessionId>` · sk `META` · GSIs `phone-state-index`,
@@ -31,6 +31,33 @@ export interface KycSdkMetadata {
31
31
  customInput?: boolean;
32
32
  userPhotoLink?: string;
33
33
  userPhotoLinkHash?: string;
34
+ /**
35
+ * Qué producto originó esta verificación. Metamap devuelve la metadata TAL CUAL en cada webhook,
36
+ * así que este campo es la única marca por la que `kyc-metamap-webhook` puede reconocer que un
37
+ * KYC salió del wizard de SureKeep.
38
+ *
39
+ * **Por qué no basta el `flowId`:** hoy el webhook discrimina comparando contra `SUREKEEP_FLOW_ID`,
40
+ * pero ese flow (`67b7700699b525001cabb350`, DEVELOPMENT_MEX_WORKFLOW) también lo usa
41
+ * `fiado-user-wallet-app` — no es exclusivo. Con un evento por verificación el ruido es tolerable
42
+ * (el consumidor lo descarta en su gate), pero el progreso estación por estación multiplica ese
43
+ * volumen por ~8 y cada mensaje ajeno cuesta lecturas de DDB en el consumidor.
44
+ *
45
+ * Opcional y aditivo: una verificación vieja sin `source` sigue resolviéndose por `flowId`.
46
+ * La solución de fondo es un flow propio de SureKeep en Metamap — configuración del proveedor,
47
+ * no código.
48
+ */
49
+ source?: KycMetadataSourceEnum;
50
+ }
51
+ /**
52
+ * Producto que originó una verificación KYC, tal como viaja en `KycSdkMetadata.source`.
53
+ *
54
+ * Es un enum y no un string libre a propósito: el valor lo escribe un repo (`retail-wizard-business`)
55
+ * y lo compara otro (`kyc-metamap-webhook`). Un typo de un lado no rompería nada visible — el webhook
56
+ * simplemente dejaría de reconocer los KYC de SureKeep y el progreso nunca llegaría a la pantalla,
57
+ * sin un solo error en los logs.
58
+ */
59
+ export declare enum KycMetadataSourceEnum {
60
+ SUREKEEP_WIZARD = "surekeepWizard"
34
61
  }
35
62
  /**
36
63
  * POST /wizard/sessions/:id/kyc/prepare — respuesta.
@@ -1,2 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KycMetadataSourceEnum = void 0;
4
+ /**
5
+ * Producto que originó una verificación KYC, tal como viaja en `KycSdkMetadata.source`.
6
+ *
7
+ * Es un enum y no un string libre a propósito: el valor lo escribe un repo (`retail-wizard-business`)
8
+ * y lo compara otro (`kyc-metamap-webhook`). Un typo de un lado no rompería nada visible — el webhook
9
+ * simplemente dejaría de reconocer los KYC de SureKeep y el progreso nunca llegaría a la pantalla,
10
+ * sin un solo error en los logs.
11
+ */
12
+ var KycMetadataSourceEnum;
13
+ (function (KycMetadataSourceEnum) {
14
+ KycMetadataSourceEnum["SUREKEEP_WIZARD"] = "surekeepWizard";
15
+ })(KycMetadataSourceEnum || (exports.KycMetadataSourceEnum = KycMetadataSourceEnum = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.220.0",
3
+ "version": "3.222.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -1,5 +1,6 @@
1
1
  import { Expose, Transform, Type } from 'class-transformer';
2
2
  import {
3
+ IsBoolean,
3
4
  IsEmail,
4
5
  IsEnum,
5
6
  IsIn,
@@ -107,6 +108,16 @@ export class UpsertCustomerFromKycRequest {
107
108
  @IsIn([1, 2])
108
109
  pcfAccountLevel?: 1 | 2;
109
110
 
111
+ /**
112
+ * El cliente ya tenía una cuenta PCF ACTIVE en México (rama facematch). Si es `true`, el receptor
113
+ * marca `accountStatus=LINKED` en vez de `OPENING` y NO dispara la apertura async (D35).
114
+ * Ausente/`false` = flujo normal (se abre cuenta). SureKeep Fase 2 — bifurcación KYC.
115
+ */
116
+ @Expose()
117
+ @IsOptional()
118
+ @IsBoolean()
119
+ hasActiveMxAccount?: boolean;
120
+
110
121
  @Expose()
111
122
  @IsEnum(RetailKycStatusEnum)
112
123
  kycStatus!: RetailKycStatusEnum;
@@ -6,4 +6,10 @@ export enum AccountStatusEnum {
6
6
  OPENING = 'OPENING',
7
7
  OPEN = 'OPEN',
8
8
  FAILED = 'FAILED',
9
+ /**
10
+ * El cliente YA tenía una cuenta PCF ACTIVE en México al entrar por SureKeep (rama facematch):
11
+ * no se abre una nueva. No dispara la apertura async (D35) ni el welcome bonus (ese es incentivo
12
+ * para completar N2). SureKeep Fase 2 — bifurcación KYC.
13
+ */
14
+ LINKED = 'LINKED',
9
15
  }
@@ -14,7 +14,7 @@ import type { WizardWelcome } from './WizardWelcome';
14
14
  export type KycModality = 'CUSTOMER_LINK' | 'STORE_DEVICE' | 'MANUAL';
15
15
 
16
16
  /** Estado de la apertura de cuenta async (D35) — espejo de `RetailCustomer.accountStatus`. */
17
- export type AccountStatus = 'OPENING' | 'OPEN' | 'FAILED';
17
+ export type AccountStatus = 'OPENING' | 'OPEN' | 'FAILED' | 'LINKED';
18
18
 
19
19
  /**
20
20
  * Estado de la SAGA del wizard (modelo-datos §1). ES la tabla de estado: cada paso persiste su
@@ -32,6 +32,34 @@ export interface KycSdkMetadata {
32
32
  customInput?: boolean;
33
33
  userPhotoLink?: string;
34
34
  userPhotoLinkHash?: string;
35
+ /**
36
+ * Qué producto originó esta verificación. Metamap devuelve la metadata TAL CUAL en cada webhook,
37
+ * así que este campo es la única marca por la que `kyc-metamap-webhook` puede reconocer que un
38
+ * KYC salió del wizard de SureKeep.
39
+ *
40
+ * **Por qué no basta el `flowId`:** hoy el webhook discrimina comparando contra `SUREKEEP_FLOW_ID`,
41
+ * pero ese flow (`67b7700699b525001cabb350`, DEVELOPMENT_MEX_WORKFLOW) también lo usa
42
+ * `fiado-user-wallet-app` — no es exclusivo. Con un evento por verificación el ruido es tolerable
43
+ * (el consumidor lo descarta en su gate), pero el progreso estación por estación multiplica ese
44
+ * volumen por ~8 y cada mensaje ajeno cuesta lecturas de DDB en el consumidor.
45
+ *
46
+ * Opcional y aditivo: una verificación vieja sin `source` sigue resolviéndose por `flowId`.
47
+ * La solución de fondo es un flow propio de SureKeep en Metamap — configuración del proveedor,
48
+ * no código.
49
+ */
50
+ source?: KycMetadataSourceEnum;
51
+ }
52
+
53
+ /**
54
+ * Producto que originó una verificación KYC, tal como viaja en `KycSdkMetadata.source`.
55
+ *
56
+ * Es un enum y no un string libre a propósito: el valor lo escribe un repo (`retail-wizard-business`)
57
+ * y lo compara otro (`kyc-metamap-webhook`). Un typo de un lado no rompería nada visible — el webhook
58
+ * simplemente dejaría de reconocer los KYC de SureKeep y el progreso nunca llegaría a la pantalla,
59
+ * sin un solo error en los logs.
60
+ */
61
+ export enum KycMetadataSourceEnum {
62
+ SUREKEEP_WIZARD = 'surekeepWizard',
35
63
  }
36
64
 
37
65
  /**