@fiado/type-kit 3.446.0 → 3.448.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.
- package/_test_/unit/card/CardIssuanceBySideRequest.test.ts +12 -0
- package/_test_/unit/card/LevelOneAutoIssuanceTags.test.ts +22 -0
- package/bin/card/constants/LevelOneAutoIssuanceTags.d.ts +12 -0
- package/bin/card/constants/LevelOneAutoIssuanceTags.js +20 -0
- package/bin/card/dtos/CardIssuanceBySideRequest.d.ts +8 -0
- package/bin/card/dtos/CardIssuanceBySideRequest.js +6 -0
- package/bin/card/index.d.ts +1 -0
- package/bin/card/index.js +1 -0
- package/package.json +1 -1
- package/src/card/constants/LevelOneAutoIssuanceTags.ts +17 -0
- package/src/card/dtos/CardIssuanceBySideRequest.ts +11 -0
- package/src/card/index.ts +1 -1
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
CardIssuanceTriggerEnum,
|
|
7
7
|
} from '../../../src/card/index';
|
|
8
8
|
import { Country } from '../../../src/country/enums/Country';
|
|
9
|
+
import { AccountLevelEnum } from '../../../src/account/enums/AccountLevelEnum';
|
|
9
10
|
|
|
10
11
|
/** Base válida del request del evaluador; cada caso pisa solo el campo que está probando. */
|
|
11
12
|
const base = {
|
|
@@ -39,4 +40,15 @@ describe('CardIssuanceBySideRequest', () => {
|
|
|
39
40
|
const errores = await validate(instancia({ ...base, directoryId: 'x' }) as object);
|
|
40
41
|
expect(errores.some((e) => e.property === 'directoryId')).toBe(true);
|
|
41
42
|
});
|
|
43
|
+
|
|
44
|
+
it('acepta mexAccountLevel LEVEL_1 (nivel 1 automático para usuarios wh:surekeep)', async () => {
|
|
45
|
+
const dto = instancia({ ...base, side: 'MEX', mexAccountLevel: '1' });
|
|
46
|
+
expect(await validate(dto as object)).toHaveLength(0);
|
|
47
|
+
expect(dto.mexAccountLevel).toBe(AccountLevelEnum.LEVEL_1);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('rechaza mexAccountLevel fuera del enum AccountLevelEnum', async () => {
|
|
51
|
+
const errores = await validate(instancia({ ...base, side: 'MEX', mexAccountLevel: 'nivel-uno' }) as object);
|
|
52
|
+
expect(errores.some((e) => e.property === 'mexAccountLevel')).toBe(true);
|
|
53
|
+
});
|
|
42
54
|
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { LEVEL_ONE_AUTO_ISSUANCE_TAGS, hasLevelOneAutoIssuanceTag } from '../../../src/card/index';
|
|
3
|
+
|
|
4
|
+
describe('LEVEL_ONE_AUTO_ISSUANCE_TAGS', () => {
|
|
5
|
+
it('incluye el tag de Surekeep, el primer origen habilitado', () => {
|
|
6
|
+
expect(LEVEL_ONE_AUTO_ISSUANCE_TAGS).toContain('wh:surekeep');
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
it('hasLevelOneAutoIssuanceTag: basta con que UNO de los tags del directorio esté habilitado', () => {
|
|
10
|
+
expect(hasLevelOneAutoIssuanceTag(['otro', 'wh:surekeep'])).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('hasLevelOneAutoIssuanceTag: sin tag habilitado → false', () => {
|
|
14
|
+
expect(hasLevelOneAutoIssuanceTag(['wh:otro'])).toBe(false);
|
|
15
|
+
expect(hasLevelOneAutoIssuanceTag([])).toBe(false);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('hasLevelOneAutoIssuanceTag: sin lista (null/undefined) → false, fail-closed', () => {
|
|
19
|
+
expect(hasLevelOneAutoIssuanceTag(null)).toBe(false);
|
|
20
|
+
expect(hasLevelOneAutoIssuanceTag(undefined)).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tags de directorio (UserTags_GT) que habilitan la apertura AUTOMÁTICA de la cuenta MX en nivel 1
|
|
3
|
+
* con expediente simplificado y sin contrato de PagoConfiado.
|
|
4
|
+
*
|
|
5
|
+
* Vive acá, y no en cada servicio, porque la leen DOS consumidores que deben coincidir:
|
|
6
|
+
* onboarding-business (decide y dispara con `mexAccountLevel: LEVEL_1`) y fiado-card-business
|
|
7
|
+
* (re-verifica el tag antes de honrar ese nivel). Para habilitar un origen nuevo se agrega el tag a
|
|
8
|
+
* esta lista y se bumpea type-kit en ambos.
|
|
9
|
+
*/
|
|
10
|
+
export declare const LEVEL_ONE_AUTO_ISSUANCE_TAGS: readonly string[];
|
|
11
|
+
/** ¿Alguno de los tags del directorio habilita el nivel 1 automático? Fail-closed: sin lista, no. */
|
|
12
|
+
export declare function hasLevelOneAutoIssuanceTag(tags: readonly string[] | null | undefined): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LEVEL_ONE_AUTO_ISSUANCE_TAGS = void 0;
|
|
4
|
+
exports.hasLevelOneAutoIssuanceTag = hasLevelOneAutoIssuanceTag;
|
|
5
|
+
/**
|
|
6
|
+
* Tags de directorio (UserTags_GT) que habilitan la apertura AUTOMÁTICA de la cuenta MX en nivel 1
|
|
7
|
+
* con expediente simplificado y sin contrato de PagoConfiado.
|
|
8
|
+
*
|
|
9
|
+
* Vive acá, y no en cada servicio, porque la leen DOS consumidores que deben coincidir:
|
|
10
|
+
* onboarding-business (decide y dispara con `mexAccountLevel: LEVEL_1`) y fiado-card-business
|
|
11
|
+
* (re-verifica el tag antes de honrar ese nivel). Para habilitar un origen nuevo se agrega el tag a
|
|
12
|
+
* esta lista y se bumpea type-kit en ambos.
|
|
13
|
+
*/
|
|
14
|
+
exports.LEVEL_ONE_AUTO_ISSUANCE_TAGS = [
|
|
15
|
+
"wh:surekeep",
|
|
16
|
+
];
|
|
17
|
+
/** ¿Alguno de los tags del directorio habilita el nivel 1 automático? Fail-closed: sin lista, no. */
|
|
18
|
+
function hasLevelOneAutoIssuanceTag(tags) {
|
|
19
|
+
return Array.isArray(tags) && tags.some((tag) => exports.LEVEL_ONE_AUTO_ISSUANCE_TAGS.includes(tag));
|
|
20
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Country } from "../../country/enums/Country";
|
|
2
2
|
import { InfoSelfVerifiedStatus } from "../../identity/enums/InfoSelfVerifiedStatus";
|
|
3
3
|
import { CardIssuanceTriggerEnum } from "../enums/issuance/CardIssuanceTriggerEnum";
|
|
4
|
+
import { AccountLevelEnum } from "../../account/enums/AccountLevelEnum";
|
|
4
5
|
/**
|
|
5
6
|
* Request de privateIssuance (fiado-card-business). Con `side` emite SOLO ese lado
|
|
6
7
|
* (DEC-025 de onboarding-business); sin `side` conserva el comportamiento histórico
|
|
@@ -13,4 +14,11 @@ export declare class CardIssuanceBySideRequest {
|
|
|
13
14
|
trigger?: CardIssuanceTriggerEnum;
|
|
14
15
|
/** Solo vías manuales. El disparo AUTOMATIC no lo manda: la confirmación ya viene garantizada por el step. */
|
|
15
16
|
USA_InfoSelfVerified?: InfoSelfVerifiedStatus;
|
|
17
|
+
/**
|
|
18
|
+
* Nivel de cuenta MX que el evaluador (onboarding-business) resolvió para este disparo.
|
|
19
|
+
* Hoy sólo LEVEL_1, para directorios con un tag de `LEVEL_ONE_AUTO_ISSUANCE_TAGS`: expediente
|
|
20
|
+
* simplificado y sin contrato de PagoConfiado. Ausente = comportamiento histórico (el nivel lo
|
|
21
|
+
* decide el expediente en card-business).
|
|
22
|
+
*/
|
|
23
|
+
mexAccountLevel?: AccountLevelEnum;
|
|
16
24
|
}
|
|
@@ -14,6 +14,7 @@ const class_validator_1 = require("class-validator");
|
|
|
14
14
|
const Country_1 = require("../../country/enums/Country");
|
|
15
15
|
const InfoSelfVerifiedStatus_1 = require("../../identity/enums/InfoSelfVerifiedStatus");
|
|
16
16
|
const CardIssuanceTriggerEnum_1 = require("../enums/issuance/CardIssuanceTriggerEnum");
|
|
17
|
+
const AccountLevelEnum_1 = require("../../account/enums/AccountLevelEnum");
|
|
17
18
|
/**
|
|
18
19
|
* Request de privateIssuance (fiado-card-business). Con `side` emite SOLO ese lado
|
|
19
20
|
* (DEC-025 de onboarding-business); sin `side` conserva el comportamiento histórico
|
|
@@ -41,3 +42,8 @@ __decorate([
|
|
|
41
42
|
(0, class_validator_1.IsEnum)(InfoSelfVerifiedStatus_1.InfoSelfVerifiedStatus),
|
|
42
43
|
__metadata("design:type", String)
|
|
43
44
|
], CardIssuanceBySideRequest.prototype, "USA_InfoSelfVerified", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, class_validator_1.IsOptional)(),
|
|
47
|
+
(0, class_validator_1.IsEnum)(AccountLevelEnum_1.AccountLevelEnum),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], CardIssuanceBySideRequest.prototype, "mexAccountLevel", void 0);
|
package/bin/card/index.d.ts
CHANGED
package/bin/card/index.js
CHANGED
|
@@ -90,3 +90,4 @@ __exportStar(require("./enums/ReplaceBankAccountCardReasonEnum"), exports);
|
|
|
90
90
|
__exportStar(require("./enums/CardReasonStatus"), exports);
|
|
91
91
|
__exportStar(require("./enums/KycReason"), exports);
|
|
92
92
|
__exportStar(require("./enums/PinChangedStatus"), exports);
|
|
93
|
+
__exportStar(require("./constants/LevelOneAutoIssuanceTags"), exports);
|
package/package.json
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tags de directorio (UserTags_GT) que habilitan la apertura AUTOMÁTICA de la cuenta MX en nivel 1
|
|
3
|
+
* con expediente simplificado y sin contrato de PagoConfiado.
|
|
4
|
+
*
|
|
5
|
+
* Vive acá, y no en cada servicio, porque la leen DOS consumidores que deben coincidir:
|
|
6
|
+
* onboarding-business (decide y dispara con `mexAccountLevel: LEVEL_1`) y fiado-card-business
|
|
7
|
+
* (re-verifica el tag antes de honrar ese nivel). Para habilitar un origen nuevo se agrega el tag a
|
|
8
|
+
* esta lista y se bumpea type-kit en ambos.
|
|
9
|
+
*/
|
|
10
|
+
export const LEVEL_ONE_AUTO_ISSUANCE_TAGS: readonly string[] = [
|
|
11
|
+
"wh:surekeep",
|
|
12
|
+
];
|
|
13
|
+
|
|
14
|
+
/** ¿Alguno de los tags del directorio habilita el nivel 1 automático? Fail-closed: sin lista, no. */
|
|
15
|
+
export function hasLevelOneAutoIssuanceTag(tags: readonly string[] | null | undefined): boolean {
|
|
16
|
+
return Array.isArray(tags) && tags.some((tag) => LEVEL_ONE_AUTO_ISSUANCE_TAGS.includes(tag));
|
|
17
|
+
}
|
|
@@ -2,6 +2,7 @@ import { IsEnum, IsOptional, IsUUID } from "class-validator";
|
|
|
2
2
|
import { Country } from "../../country/enums/Country";
|
|
3
3
|
import { InfoSelfVerifiedStatus } from "../../identity/enums/InfoSelfVerifiedStatus";
|
|
4
4
|
import { CardIssuanceTriggerEnum } from "../enums/issuance/CardIssuanceTriggerEnum";
|
|
5
|
+
import { AccountLevelEnum } from "../../account/enums/AccountLevelEnum";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Request de privateIssuance (fiado-card-business). Con `side` emite SOLO ese lado
|
|
@@ -26,4 +27,14 @@ export class CardIssuanceBySideRequest {
|
|
|
26
27
|
@IsOptional()
|
|
27
28
|
@IsEnum(InfoSelfVerifiedStatus)
|
|
28
29
|
USA_InfoSelfVerified?: InfoSelfVerifiedStatus;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Nivel de cuenta MX que el evaluador (onboarding-business) resolvió para este disparo.
|
|
33
|
+
* Hoy sólo LEVEL_1, para directorios con un tag de `LEVEL_ONE_AUTO_ISSUANCE_TAGS`: expediente
|
|
34
|
+
* simplificado y sin contrato de PagoConfiado. Ausente = comportamiento histórico (el nivel lo
|
|
35
|
+
* decide el expediente en card-business).
|
|
36
|
+
*/
|
|
37
|
+
@IsOptional()
|
|
38
|
+
@IsEnum(AccountLevelEnum)
|
|
39
|
+
mexAccountLevel?: AccountLevelEnum;
|
|
29
40
|
}
|
package/src/card/index.ts
CHANGED