@fiado/type-kit 3.237.0 → 3.238.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,11 @@
1
+ export declare enum BenefitFlowEnum {
2
+ TOPUPS = "TOPUPS",
3
+ BILL_PAYMENT = "BILL_PAYMENT",
4
+ CREDIT = "CREDIT",
5
+ INSURANCE = "INSURANCE",
6
+ DONATION = "DONATION",
7
+ PHARMACY = "PHARMACY",
8
+ REMITTANCE = "REMITTANCE",
9
+ /** Fondeo de wallet PCF con efectivo via provider externo (Equality/Passport, OpenPay, …) — spec 13. */
10
+ WALLET_FUNDING = "WALLET_FUNDING"
11
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BenefitFlowEnum = void 0;
4
+ var BenefitFlowEnum;
5
+ (function (BenefitFlowEnum) {
6
+ BenefitFlowEnum["TOPUPS"] = "TOPUPS";
7
+ BenefitFlowEnum["BILL_PAYMENT"] = "BILL_PAYMENT";
8
+ BenefitFlowEnum["CREDIT"] = "CREDIT";
9
+ BenefitFlowEnum["INSURANCE"] = "INSURANCE";
10
+ BenefitFlowEnum["DONATION"] = "DONATION";
11
+ BenefitFlowEnum["PHARMACY"] = "PHARMACY";
12
+ BenefitFlowEnum["REMITTANCE"] = "REMITTANCE";
13
+ /** Fondeo de wallet PCF con efectivo via provider externo (Equality/Passport, OpenPay, …) — spec 13. */
14
+ BenefitFlowEnum["WALLET_FUNDING"] = "WALLET_FUNDING";
15
+ })(BenefitFlowEnum || (exports.BenefitFlowEnum = BenefitFlowEnum = {}));
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Rol RBAC mínimo que puede modificar un parámetro (RBAC a nivel de parámetro, modelo-datos §8).
3
+ * `retailer_admin` = "Admin VentasLuga" de M6 §8. Valores = identificadores de rol de RBAC F0.
4
+ * TD-004: confirmar mapeo super_admin ↔ platform_super_admin con el naming real de F0.
5
+ * @enum {string}
6
+ */
7
+ export declare enum ModifiableByRoleEnum {
8
+ SUPER_ADMIN = "super_admin",
9
+ SOFOM_ADMIN = "sofom_admin",
10
+ RETAILER_ADMIN = "retailer_admin"
11
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModifiableByRoleEnum = void 0;
4
+ /**
5
+ * Rol RBAC mínimo que puede modificar un parámetro (RBAC a nivel de parámetro, modelo-datos §8).
6
+ * `retailer_admin` = "Admin VentasLuga" de M6 §8. Valores = identificadores de rol de RBAC F0.
7
+ * TD-004: confirmar mapeo super_admin ↔ platform_super_admin con el naming real de F0.
8
+ * @enum {string}
9
+ */
10
+ var ModifiableByRoleEnum;
11
+ (function (ModifiableByRoleEnum) {
12
+ ModifiableByRoleEnum["SUPER_ADMIN"] = "super_admin";
13
+ ModifiableByRoleEnum["SOFOM_ADMIN"] = "sofom_admin";
14
+ ModifiableByRoleEnum["RETAILER_ADMIN"] = "retailer_admin";
15
+ })(ModifiableByRoleEnum || (exports.ModifiableByRoleEnum = ModifiableByRoleEnum = {}));
@@ -0,0 +1,17 @@
1
+ import { CurrencyId } from '../../currency/enums/CurrencyId';
2
+ /**
3
+ * Comisión que cobra un punto de cash-in (lo que el lambda MUESTRA, no cobra).
4
+ * - GreenDot (US): representativo por cadena → `fixed` + `cap` (cada tienda cobra hasta el tope).
5
+ * - Passport (MX): por red → `fixed` + `percentage`.
6
+ * Response DTO — sin decoradores de validación.
7
+ */
8
+ export declare class CashInFeeDto {
9
+ /** Comisión fija, en la moneda del país. */
10
+ fixed?: number;
11
+ /** Porcentaje del monto depositado (0–100). */
12
+ percentage?: number;
13
+ /** Tope máximo de comisión (GreenDot: el asociado cobra hasta este cap). */
14
+ cap?: number;
15
+ /** Moneda del fee: USD (GreenDot) | MXN (Passport). */
16
+ currency: CurrencyId;
17
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CashInFeeDto = void 0;
4
+ /**
5
+ * Comisión que cobra un punto de cash-in (lo que el lambda MUESTRA, no cobra).
6
+ * - GreenDot (US): representativo por cadena → `fixed` + `cap` (cada tienda cobra hasta el tope).
7
+ * - Passport (MX): por red → `fixed` + `percentage`.
8
+ * Response DTO — sin decoradores de validación.
9
+ */
10
+ class CashInFeeDto {
11
+ }
12
+ exports.CashInFeeDto = CashInFeeDto;
@@ -0,0 +1,22 @@
1
+ import { MfaMethodEnum } from '../enums/MfaMethodEnum';
2
+ /**
3
+ * Body del POST /auth/resend-otp (público, anónimo). DEC-RBAC-054.
4
+ * Reenvía el OTP del login re-disparando el challenge real CUSTOM_AUTH (EMAIL_OTP) para la
5
+ * identidad SIN password. `tenantId` obligatorio (DEC-064 — el picker ya lo resolvió, NO "solo email").
6
+ * El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
7
+ * siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
8
+ */
9
+ export declare class ResendOtpRequest {
10
+ email: string;
11
+ tenantId: string;
12
+ }
13
+ /**
14
+ * Respuesta del resend-otp. `session`/`mfaMethod` frescos del nuevo challenge CUSTOM_AUTH.
15
+ * Plain sin validators (no validamos lo que mandamos al cliente — fiado-validation-and-dtos § 7).
16
+ * Ambos opcionales: en los caminos de rechazo silencioso (anti-enumeración) o ramas sin CUSTOM_AUTH
17
+ * el server responde 200 genérico sin session ni método.
18
+ */
19
+ export interface ResendOtpResponse {
20
+ session?: string;
21
+ mfaMethod?: MfaMethodEnum;
22
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ResendOtpRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * Body del POST /auth/resend-otp (público, anónimo). DEC-RBAC-054.
17
+ * Reenvía el OTP del login re-disparando el challenge real CUSTOM_AUTH (EMAIL_OTP) para la
18
+ * identidad SIN password. `tenantId` obligatorio (DEC-064 — el picker ya lo resolvió, NO "solo email").
19
+ * El email se normaliza lowercase server-side. Postura anti-enumeración: respuesta 200 genérica
20
+ * siempre, sin filtrar existencia (ver AuthLoginManager.resendChallengeOtp).
21
+ */
22
+ class ResendOtpRequest {
23
+ }
24
+ exports.ResendOtpRequest = ResendOtpRequest;
25
+ __decorate([
26
+ (0, class_transformer_1.Expose)(),
27
+ (0, class_validator_1.IsEmail)(),
28
+ (0, class_validator_1.IsNotEmpty)(),
29
+ __metadata("design:type", String)
30
+ ], ResendOtpRequest.prototype, "email", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.IsNotEmpty)(),
35
+ __metadata("design:type", String)
36
+ ], ResendOtpRequest.prototype, "tenantId", void 0);
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
3
+ * Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
4
+ * `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
5
+ * server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
6
+ * scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
7
+ */
8
+ export declare class ResendSelfRegisterOtpRequest {
9
+ tenantId: string;
10
+ email: string;
11
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ResendSelfRegisterOtpRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * Body del POST /self-register/resend-otp (público, anónimo). DEC-RBAC-054.
17
+ * Re-envía el OTP del autoregistro (mecanismo messages-business, NO Cognito) tras validar un
18
+ * `pending` existente. Misma postura anti-enumeración del start. El email se normaliza lowercase
19
+ * server-side. DTO propio por endpoint (NO reusa SelfRegisterStartRequest, que exige roleId/scope/
20
+ * scopeRef, ni SelfRegisterVerifyOtpRequest, que exige otp).
21
+ */
22
+ class ResendSelfRegisterOtpRequest {
23
+ }
24
+ exports.ResendSelfRegisterOtpRequest = ResendSelfRegisterOtpRequest;
25
+ __decorate([
26
+ (0, class_transformer_1.Expose)(),
27
+ (0, class_validator_1.IsString)(),
28
+ (0, class_validator_1.IsNotEmpty)(),
29
+ __metadata("design:type", String)
30
+ ], ResendSelfRegisterOtpRequest.prototype, "tenantId", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ (0, class_validator_1.IsEmail)(),
34
+ (0, class_validator_1.IsNotEmpty)(),
35
+ __metadata("design:type", String)
36
+ ], ResendSelfRegisterOtpRequest.prototype, "email", void 0);
@@ -10,6 +10,10 @@
10
10
  * catálogos — mandar un valor fuera de catálogo deja un expediente que ningún backoffice sabe pintar,
11
11
  * y nadie lo rechaza en runtime porque del otro lado son strings libres.
12
12
  *
13
+ * ⚠️ Dos de los cinco NO usan el catálogo que su nombre sugiere. Está anotado en cada constante:
14
+ * `usageMonthly` sale de `Frequency` (no de `MoneyUsageCategories`) y `beneficialOwner` de `ActMXN`
15
+ * (no de `BeneficialOwnerMXN`). Sale de leer la pantalla real de la app, no de la doc.
16
+ *
13
17
  * ⚠️ `beneficialOwner` debe ser `SELF` para que la cuenta pueda abrir: `fiado-card-business` valida
14
18
  * exactamente ese valor. `OTHER` ("viene de otra persona") es una respuesta legítima del cliente que
15
19
  * BLOQUEA la apertura — la pantalla tiene que advertirlo antes, no descubrirlo después.
@@ -20,11 +24,23 @@
20
24
  export declare const MONTHLY_INCOME_VALUES: readonly ["0", "10000", "20000", "50000", "100000", "150000"];
21
25
  /** `dataType=ExtraSupport` — apoyo económico extra mensual. */
22
26
  export declare const EXTRA_SUPPORT_VALUES: readonly ["0", "2000", "10000", "20000", "50000", "60000"];
23
- /** `dataType=MoneyUsageCategories` — para qué usará el dinero. */
24
- export declare const USAGE_MONTHLY_VALUES: readonly ["DAILY_EXPENSES", "SAVINGS", "OTHER"];
27
+ /**
28
+ * `dataType=Frequency` con qué frecuencia va a usar la cuenta ("2 al día", "3 al día"…).
29
+ *
30
+ * ⚠️ El nombre del campo engaña: `MXN_UsageMonthly` NO es "para qué usa el dinero". Es la FRECUENCIA
31
+ * de operaciones, y su catálogo es `Frequency`, no `MoneyUsageCategories`. Verificado contra la
32
+ * pantalla real de la app (`CreateAddressMxScreen`), que manda
33
+ * `MXN_UsageMonthly: selectedPaymentOrPurchaseFrequency.value`.
34
+ */
35
+ export declare const USAGE_MONTHLY_VALUES: readonly ["60", "90", "150", "180", "210", "240", "270", "300"];
25
36
  /** `dataType=PurchaseAmountMaxMXN` — monto máximo por operación. */
26
37
  export declare const MAXIMUM_TX_VALUES: readonly ["10000", "100000", "300000"];
27
- /** `dataType=BeneficialOwnerMXN` — de quién es el dinero. */
38
+ /**
39
+ * `dataType=ActMXN` — "¿Actúas por tu propia cuenta?" (`SELF` = "Sí, por mi propia cuenta").
40
+ *
41
+ * ⚠️ NO es `BeneficialOwnerMXN`. Los dos catálogos comparten los valores `SELF`/`OTHER`, pero la
42
+ * pregunta que la app le hace al cliente es la de `ActMXN` y esa es la redacción que debe mostrarse.
43
+ */
28
44
  export declare const BENEFICIAL_OWNER_VALUES: readonly ["SELF", "OTHER"];
29
45
  export declare class ProfileQuestionsRequest {
30
46
  monthlyIncome: string;
@@ -24,6 +24,10 @@ const class_validator_1 = require("class-validator");
24
24
  * catálogos — mandar un valor fuera de catálogo deja un expediente que ningún backoffice sabe pintar,
25
25
  * y nadie lo rechaza en runtime porque del otro lado son strings libres.
26
26
  *
27
+ * ⚠️ Dos de los cinco NO usan el catálogo que su nombre sugiere. Está anotado en cada constante:
28
+ * `usageMonthly` sale de `Frequency` (no de `MoneyUsageCategories`) y `beneficialOwner` de `ActMXN`
29
+ * (no de `BeneficialOwnerMXN`). Sale de leer la pantalla real de la app, no de la doc.
30
+ *
27
31
  * ⚠️ `beneficialOwner` debe ser `SELF` para que la cuenta pueda abrir: `fiado-card-business` valida
28
32
  * exactamente ese valor. `OTHER` ("viene de otra persona") es una respuesta legítima del cliente que
29
33
  * BLOQUEA la apertura — la pantalla tiene que advertirlo antes, no descubrirlo después.
@@ -34,11 +38,23 @@ const class_validator_1 = require("class-validator");
34
38
  exports.MONTHLY_INCOME_VALUES = ['0', '10000', '20000', '50000', '100000', '150000'];
35
39
  /** `dataType=ExtraSupport` — apoyo económico extra mensual. */
36
40
  exports.EXTRA_SUPPORT_VALUES = ['0', '2000', '10000', '20000', '50000', '60000'];
37
- /** `dataType=MoneyUsageCategories` — para qué usará el dinero. */
38
- exports.USAGE_MONTHLY_VALUES = ['DAILY_EXPENSES', 'SAVINGS', 'OTHER'];
41
+ /**
42
+ * `dataType=Frequency` con qué frecuencia va a usar la cuenta ("2 al día", "3 al día"…).
43
+ *
44
+ * ⚠️ El nombre del campo engaña: `MXN_UsageMonthly` NO es "para qué usa el dinero". Es la FRECUENCIA
45
+ * de operaciones, y su catálogo es `Frequency`, no `MoneyUsageCategories`. Verificado contra la
46
+ * pantalla real de la app (`CreateAddressMxScreen`), que manda
47
+ * `MXN_UsageMonthly: selectedPaymentOrPurchaseFrequency.value`.
48
+ */
49
+ exports.USAGE_MONTHLY_VALUES = ['60', '90', '150', '180', '210', '240', '270', '300'];
39
50
  /** `dataType=PurchaseAmountMaxMXN` — monto máximo por operación. */
40
51
  exports.MAXIMUM_TX_VALUES = ['10000', '100000', '300000'];
41
- /** `dataType=BeneficialOwnerMXN` — de quién es el dinero. */
52
+ /**
53
+ * `dataType=ActMXN` — "¿Actúas por tu propia cuenta?" (`SELF` = "Sí, por mi propia cuenta").
54
+ *
55
+ * ⚠️ NO es `BeneficialOwnerMXN`. Los dos catálogos comparten los valores `SELF`/`OTHER`, pero la
56
+ * pregunta que la app le hace al cliente es la de `ActMXN` y esa es la redacción que debe mostrarse.
57
+ */
42
58
  exports.BENEFICIAL_OWNER_VALUES = ['SELF', 'OTHER'];
43
59
  class ProfileQuestionsRequest {
44
60
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.237.0",
3
+ "version": "3.238.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -13,6 +13,10 @@ import { IsIn, IsString } from 'class-validator';
13
13
  * catálogos — mandar un valor fuera de catálogo deja un expediente que ningún backoffice sabe pintar,
14
14
  * y nadie lo rechaza en runtime porque del otro lado son strings libres.
15
15
  *
16
+ * ⚠️ Dos de los cinco NO usan el catálogo que su nombre sugiere. Está anotado en cada constante:
17
+ * `usageMonthly` sale de `Frequency` (no de `MoneyUsageCategories`) y `beneficialOwner` de `ActMXN`
18
+ * (no de `BeneficialOwnerMXN`). Sale de leer la pantalla real de la app, no de la doc.
19
+ *
16
20
  * ⚠️ `beneficialOwner` debe ser `SELF` para que la cuenta pueda abrir: `fiado-card-business` valida
17
21
  * exactamente ese valor. `OTHER` ("viene de otra persona") es una respuesta legítima del cliente que
18
22
  * BLOQUEA la apertura — la pantalla tiene que advertirlo antes, no descubrirlo después.
@@ -26,13 +30,25 @@ export const MONTHLY_INCOME_VALUES = ['0', '10000', '20000', '50000', '100000',
26
30
  /** `dataType=ExtraSupport` — apoyo económico extra mensual. */
27
31
  export const EXTRA_SUPPORT_VALUES = ['0', '2000', '10000', '20000', '50000', '60000'] as const;
28
32
 
29
- /** `dataType=MoneyUsageCategories` — para qué usará el dinero. */
30
- export const USAGE_MONTHLY_VALUES = ['DAILY_EXPENSES', 'SAVINGS', 'OTHER'] as const;
33
+ /**
34
+ * `dataType=Frequency` con qué frecuencia va a usar la cuenta ("2 al día", "3 al día"…).
35
+ *
36
+ * ⚠️ El nombre del campo engaña: `MXN_UsageMonthly` NO es "para qué usa el dinero". Es la FRECUENCIA
37
+ * de operaciones, y su catálogo es `Frequency`, no `MoneyUsageCategories`. Verificado contra la
38
+ * pantalla real de la app (`CreateAddressMxScreen`), que manda
39
+ * `MXN_UsageMonthly: selectedPaymentOrPurchaseFrequency.value`.
40
+ */
41
+ export const USAGE_MONTHLY_VALUES = ['60', '90', '150', '180', '210', '240', '270', '300'] as const;
31
42
 
32
43
  /** `dataType=PurchaseAmountMaxMXN` — monto máximo por operación. */
33
44
  export const MAXIMUM_TX_VALUES = ['10000', '100000', '300000'] as const;
34
45
 
35
- /** `dataType=BeneficialOwnerMXN` — de quién es el dinero. */
46
+ /**
47
+ * `dataType=ActMXN` — "¿Actúas por tu propia cuenta?" (`SELF` = "Sí, por mi propia cuenta").
48
+ *
49
+ * ⚠️ NO es `BeneficialOwnerMXN`. Los dos catálogos comparten los valores `SELF`/`OTHER`, pero la
50
+ * pregunta que la app le hace al cliente es la de `ActMXN` y esa es la redacción que debe mostrarse.
51
+ */
36
52
  export const BENEFICIAL_OWNER_VALUES = ['SELF', 'OTHER'] as const;
37
53
 
38
54
  export class ProfileQuestionsRequest {
@@ -1,10 +0,0 @@
1
- /**
2
- * Con qué criterio se resolvió cuál archivo de S3 es la selfie del usuario.
3
- * Le dice al consumidor qué tan confiable es el match antes de mandarla a un facematch.
4
- */
5
- export declare enum SelfieSourceEnum {
6
- /** Matcheó el verificationId de la verificación vigente en People. */
7
- VERIFICATION = "VERIFICATION",
8
- /** No hubo match por verificación: se tomó el archivo de selfie más reciente del bucket. */
9
- LATEST = "LATEST"
10
- }
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SelfieSourceEnum = void 0;
4
- /**
5
- * Con qué criterio se resolvió cuál archivo de S3 es la selfie del usuario.
6
- * Le dice al consumidor qué tan confiable es el match antes de mandarla a un facematch.
7
- */
8
- var SelfieSourceEnum;
9
- (function (SelfieSourceEnum) {
10
- /** Matcheó el verificationId de la verificación vigente en People. */
11
- SelfieSourceEnum["VERIFICATION"] = "VERIFICATION";
12
- /** No hubo match por verificación: se tomó el archivo de selfie más reciente del bucket. */
13
- SelfieSourceEnum["LATEST"] = "LATEST";
14
- })(SelfieSourceEnum || (exports.SelfieSourceEnum = SelfieSourceEnum = {}));