@fiado/type-kit 3.533.0 → 3.535.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.
@@ -71,8 +71,13 @@ describe('SignLoanCreditRequest', () => {
71
71
  expect(await errorsOf({ contractDetails: DETAILS })).toEqual([]);
72
72
  });
73
73
 
74
- it('rechaza una CLABE que no tiene 18 dígitos', async () => {
74
+ it('acepta la CLABE tal como la tiene la cuenta, aunque no sean 18 dígitos', async () => {
75
75
  const details = { ...DETAILS, pcfAccount: { clabe: 'dummy' } };
76
+ expect(await errorsOf({ contractDetails: details })).toEqual([]);
77
+ });
78
+
79
+ it('rechaza una CLABE vacía', async () => {
80
+ const details = { ...DETAILS, pcfAccount: { clabe: '' } };
76
81
  expect(await errorsOf({ contractDetails: details })).toEqual(['contractDetails.pcfAccount.clabe']);
77
82
  });
78
83
 
@@ -0,0 +1,26 @@
1
+ import 'reflect-metadata';
2
+ import { FinancierTypeEnum } from '../../../src/loanOfferings/enums/FinancierTypeEnum';
3
+ import {
4
+ FinancierIneligibleReasonEnum,
5
+ type SessionFinanciersResponse,
6
+ } from '../../../src/retailWizard';
7
+
8
+ describe('SessionFinanciersResponse', () => {
9
+ it('declara el motivo tipado de una financiera no elegible', () => {
10
+ const response: SessionFinanciersResponse = {
11
+ financiers: [
12
+ {
13
+ code: 'SUREKEEP',
14
+ name: 'SureKeep',
15
+ label: 'Nuestra financiera',
16
+ type: FinancierTypeEnum.INTERNAL,
17
+ displayOrder: 1,
18
+ externalRedirectUrl: null,
19
+ eligible: false,
20
+ ineligibleReason: FinancierIneligibleReasonEnum.ACTIVE_CREDIT,
21
+ },
22
+ ],
23
+ };
24
+ expect(response.financiers[0].ineligibleReason).toBe('ACTIVE_CREDIT');
25
+ });
26
+ });
@@ -31,6 +31,7 @@ export declare class LoanContractProviderDetails {
31
31
  }
32
32
  /** Cuenta Pago Confiado del acreditado, de la que se cobra el crédito (Secciones VI y VIII). */
33
33
  export declare class LoanContractPcfAccountDetails {
34
+ /** Tal como la tiene la cuenta; en dev puede no ser una CLABE de 18 dígitos. */
34
35
  clabe: string;
35
36
  }
36
37
  /**
@@ -18,8 +18,6 @@ const SHORT_TEXT = 120;
18
18
  const LONG_TEXT = 300;
19
19
  /** IMEI: exactamente 15 dígitos. */
20
20
  const IMEI_PATTERN = /^\d{15}$/;
21
- /** CLABE: exactamente 18 dígitos. */
22
- const CLABE_PATTERN = /^\d{18}$/;
23
21
  /** Datos del acreditado tal como se imprimen en el contrato (Sección II.1). */
24
22
  class LoanContractBorrowerDetails {
25
23
  }
@@ -165,7 +163,8 @@ exports.LoanContractPcfAccountDetails = LoanContractPcfAccountDetails;
165
163
  __decorate([
166
164
  (0, class_transformer_1.Expose)(),
167
165
  (0, class_validator_1.IsString)(),
168
- (0, class_validator_1.Matches)(CLABE_PATTERN, { message: 'clabe admite solo 18 dígitos' }),
166
+ (0, class_validator_1.IsNotEmpty)(),
167
+ (0, class_validator_1.MaxLength)(SHORT_TEXT),
169
168
  __metadata("design:type", String)
170
169
  ], LoanContractPcfAccountDetails.prototype, "clabe", void 0);
171
170
  /**
@@ -1,4 +1,5 @@
1
1
  import { FinancierTypeEnum } from '../../../loanOfferings/enums/FinancierTypeEnum';
2
+ import type { FinancierIneligibleReasonEnum } from '../../enums/FinancierIneligibleReasonEnum';
2
3
  /**
3
4
  * Una opción de financiamiento del paso 04 (pantalla forma de pago): la unión de las financieras
4
5
  * ACTIVE del catálogo SOFOM (`loan-offerings GET /private/financiers/active` — display + orden)
@@ -14,8 +15,10 @@ export interface SessionFinancierOption {
14
15
  displayOrder: number;
15
16
  /** Solo EXTERNAL: URL de derivación. */
16
17
  externalRedirectUrl: string | null;
17
- /** El producto reservado admite esta financiera (INTERNAL siempre elegible). */
18
+ /** Se puede elegir: el producto la admite y, en INTERNAL, el cliente no tiene crédito vivo. */
18
19
  eligible: boolean;
20
+ /** Por qué no se puede elegir; ausente cuando `eligible` es `true` o el motivo es el producto. */
21
+ ineligibleReason?: FinancierIneligibleReasonEnum;
19
22
  }
20
23
  /**
21
24
  * GET /wizard/sessions/:id/financiers — las opciones de financiamiento del paso 04 para la sesión
@@ -0,0 +1,5 @@
1
+ /** Por qué una financiera del paso «¿Cómo va a pagar?» no se puede elegir en esta venta. */
2
+ export declare enum FinancierIneligibleReasonEnum {
3
+ /** El cliente ya tiene un crédito vivo (por activar, al corriente o en mora): no se origina otro. */
4
+ ACTIVE_CREDIT = "ACTIVE_CREDIT"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FinancierIneligibleReasonEnum = void 0;
4
+ /** Por qué una financiera del paso «¿Cómo va a pagar?» no se puede elegir en esta venta. */
5
+ var FinancierIneligibleReasonEnum;
6
+ (function (FinancierIneligibleReasonEnum) {
7
+ /** El cliente ya tiene un crédito vivo (por activar, al corriente o en mora): no se origina otro. */
8
+ FinancierIneligibleReasonEnum["ACTIVE_CREDIT"] = "ACTIVE_CREDIT";
9
+ })(FinancierIneligibleReasonEnum || (exports.FinancierIneligibleReasonEnum = FinancierIneligibleReasonEnum = {}));
@@ -22,6 +22,7 @@ export * from './enums/SystemCancelReasonEnum';
22
22
  export * from './enums/AppOnboardingStepEnum';
23
23
  export * from './enums/AppOnboardingStepStatusEnum';
24
24
  export * from './enums/BlockedReasonEnum';
25
+ export * from './enums/FinancierIneligibleReasonEnum';
25
26
  export * from './enums/BlockedCategoryEnum';
26
27
  export * from './enums/WizardLineStatusEnum';
27
28
  export * from './enums/LinePaymentTypeEnum';
@@ -41,6 +41,7 @@ __exportStar(require("./enums/SystemCancelReasonEnum"), exports);
41
41
  __exportStar(require("./enums/AppOnboardingStepEnum"), exports);
42
42
  __exportStar(require("./enums/AppOnboardingStepStatusEnum"), exports);
43
43
  __exportStar(require("./enums/BlockedReasonEnum"), exports);
44
+ __exportStar(require("./enums/FinancierIneligibleReasonEnum"), exports);
44
45
  __exportStar(require("./enums/BlockedCategoryEnum"), exports);
45
46
  __exportStar(require("./enums/WizardLineStatusEnum"), exports);
46
47
  __exportStar(require("./enums/LinePaymentTypeEnum"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.533.0",
3
+ "version": "3.535.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -7,8 +7,6 @@ const SHORT_TEXT = 120;
7
7
  const LONG_TEXT = 300;
8
8
  /** IMEI: exactamente 15 dígitos. */
9
9
  const IMEI_PATTERN = /^\d{15}$/;
10
- /** CLABE: exactamente 18 dígitos. */
11
- const CLABE_PATTERN = /^\d{18}$/;
12
10
 
13
11
  /** Datos del acreditado tal como se imprimen en el contrato (Sección II.1). */
14
12
  export class LoanContractBorrowerDetails {
@@ -133,9 +131,11 @@ export class LoanContractProviderDetails {
133
131
 
134
132
  /** Cuenta Pago Confiado del acreditado, de la que se cobra el crédito (Secciones VI y VIII). */
135
133
  export class LoanContractPcfAccountDetails {
134
+ /** Tal como la tiene la cuenta; en dev puede no ser una CLABE de 18 dígitos. */
136
135
  @Expose()
137
136
  @IsString()
138
- @Matches(CLABE_PATTERN, { message: 'clabe admite solo 18 dígitos' })
137
+ @IsNotEmpty()
138
+ @MaxLength(SHORT_TEXT)
139
139
  clabe: string;
140
140
  }
141
141
 
@@ -1,4 +1,5 @@
1
1
  import { FinancierTypeEnum } from '../../../loanOfferings/enums/FinancierTypeEnum';
2
+ import type { FinancierIneligibleReasonEnum } from '../../enums/FinancierIneligibleReasonEnum';
2
3
 
3
4
  /**
4
5
  * Una opción de financiamiento del paso 04 (pantalla forma de pago): la unión de las financieras
@@ -15,8 +16,10 @@ export interface SessionFinancierOption {
15
16
  displayOrder: number;
16
17
  /** Solo EXTERNAL: URL de derivación. */
17
18
  externalRedirectUrl: string | null;
18
- /** El producto reservado admite esta financiera (INTERNAL siempre elegible). */
19
+ /** Se puede elegir: el producto la admite y, en INTERNAL, el cliente no tiene crédito vivo. */
19
20
  eligible: boolean;
21
+ /** Por qué no se puede elegir; ausente cuando `eligible` es `true` o el motivo es el producto. */
22
+ ineligibleReason?: FinancierIneligibleReasonEnum;
20
23
  }
21
24
 
22
25
  /**
@@ -0,0 +1,5 @@
1
+ /** Por qué una financiera del paso «¿Cómo va a pagar?» no se puede elegir en esta venta. */
2
+ export enum FinancierIneligibleReasonEnum {
3
+ /** El cliente ya tiene un crédito vivo (por activar, al corriente o en mora): no se origina otro. */
4
+ ACTIVE_CREDIT = 'ACTIVE_CREDIT',
5
+ }
@@ -25,6 +25,7 @@ export * from './enums/SystemCancelReasonEnum';
25
25
  export * from './enums/AppOnboardingStepEnum';
26
26
  export * from './enums/AppOnboardingStepStatusEnum';
27
27
  export * from './enums/BlockedReasonEnum';
28
+ export * from './enums/FinancierIneligibleReasonEnum';
28
29
  export * from './enums/BlockedCategoryEnum';
29
30
  export * from './enums/WizardLineStatusEnum';
30
31
  export * from './enums/LinePaymentTypeEnum';