@fiado/type-kit 3.228.0 → 3.230.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.
Files changed (26) hide show
  1. package/bin/account/dtos/AccountCreateRequest.d.ts +7 -1
  2. package/bin/identity/dtos/PeopleResponse.d.ts +2 -0
  3. package/bin/identity/dtos/PeopleUpdateRequest.d.ts +2 -0
  4. package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.d.ts +11 -0
  5. package/bin/loanCredit/dtos/requests/UpdateActivationChecklistRequest.js +46 -0
  6. package/bin/loanCredit/enums/ClientLevelEnum.d.ts +11 -0
  7. package/bin/loanCredit/enums/ClientLevelEnum.js +15 -0
  8. package/bin/retailWizard/dtos/Sale.d.ts +22 -0
  9. package/bin/retailWizard/dtos/requests/CancelSaleRequest.d.ts +14 -0
  10. package/bin/retailWizard/dtos/requests/CancelSaleRequest.js +6 -0
  11. package/package.json +1 -1
  12. package/src/account/dtos/AccountCreateRequest.ts +7 -1
  13. package/src/identity/dtos/PeopleResponse.ts +2 -0
  14. package/src/identity/dtos/PeopleUpdateRequest.ts +2 -0
  15. package/src/retailWizard/dtos/Sale.ts +22 -0
  16. package/src/retailWizard/dtos/requests/CancelSaleRequest.ts +19 -1
  17. package/bin/benefitCenter/enums/BenefitFlowEnum.d.ts +0 -11
  18. package/bin/benefitCenter/enums/BenefitFlowEnum.js +0 -15
  19. package/bin/loanConfig/enums/ModifiableByRoleEnum.d.ts +0 -11
  20. package/bin/loanConfig/enums/ModifiableByRoleEnum.js +0 -15
  21. package/bin/places/dtos/CashInFeeDto.d.ts +0 -17
  22. package/bin/places/dtos/CashInFeeDto.js +0 -12
  23. package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +0 -22
  24. package/bin/platformRbac/dtos/ResendOtpRequest.js +0 -36
  25. package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +0 -11
  26. package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.js +0 -36
@@ -17,7 +17,13 @@ export declare class AccountCreateRequest {
17
17
  usNames: string;
18
18
  usLastNames: string;
19
19
  phoneNumber: string;
20
- address: AddressResponse;
20
+ /**
21
+ * Opcional: la apertura MX en LEVEL_1 puede correr sin dirección. Cuando falta, el
22
+ * emisor debe OMITIR la clave (dejarla undefined, que JSON.stringify elimina del body),
23
+ * nunca mandarla en `null`: account-fiadosa-business valida contra type-kit v1, donde
24
+ * `address` lleva @ValidateNested() sin @IsOptional(), y `null` produce un 400.
25
+ */
26
+ address?: AddressResponse;
21
27
  email: string;
22
28
  dob: string;
23
29
  isHost?: boolean;
@@ -69,6 +69,8 @@ export declare class PeopleResponse {
69
69
  MEX_Beneficiaries: boolean;
70
70
  MEX_DebitAccount: boolean;
71
71
  MEX_DebitAccountWish: boolean;
72
+ /** true = el step de emisión FIADOSA/Pomelo terminó (cuenta + tarjeta virtual). */
73
+ MEX_VirtualCard: boolean;
72
74
  MEX_FacematchVerified: boolean | null;
73
75
  MEX_ProofAddress: boolean;
74
76
  MEX_TemplateMatch: boolean;
@@ -38,6 +38,8 @@ export declare class PeopleUpdateRequest {
38
38
  tenantId?: string | null;
39
39
  USA_DebitAccount?: boolean;
40
40
  MEX_DebitAccount?: boolean;
41
+ /** true = el step de emisión FIADOSA/Pomelo terminó (cuenta + tarjeta virtual). */
42
+ MEX_VirtualCard?: boolean;
41
43
  MEX_CreditClient?: boolean;
42
44
  MEX_CreditAdditional?: boolean;
43
45
  magicNumber?: boolean;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Body de PUT /credits/:creditId/checklist (loan-credit-business). Marca condiciones de activación
3
+ * cumplidas. Solo se mandan las que cambian; en F3 las marcarán los flujos de firma de contrato
4
+ * (`downPayment` + `contractSigned`) y de enrolamiento MDM (`imeiEnrolled` + `lockVerified`).
5
+ */
6
+ export declare class UpdateActivationChecklistRequest {
7
+ downPayment?: boolean;
8
+ contractSigned?: boolean;
9
+ imeiEnrolled?: boolean;
10
+ lockVerified?: boolean;
11
+ }
@@ -0,0 +1,46 @@
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.UpdateActivationChecklistRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /**
16
+ * Body de PUT /credits/:creditId/checklist (loan-credit-business). Marca condiciones de activación
17
+ * cumplidas. Solo se mandan las que cambian; en F3 las marcarán los flujos de firma de contrato
18
+ * (`downPayment` + `contractSigned`) y de enrolamiento MDM (`imeiEnrolled` + `lockVerified`).
19
+ */
20
+ class UpdateActivationChecklistRequest {
21
+ }
22
+ exports.UpdateActivationChecklistRequest = UpdateActivationChecklistRequest;
23
+ __decorate([
24
+ (0, class_transformer_1.Expose)(),
25
+ (0, class_validator_1.IsOptional)(),
26
+ (0, class_validator_1.IsBoolean)(),
27
+ __metadata("design:type", Boolean)
28
+ ], UpdateActivationChecklistRequest.prototype, "downPayment", void 0);
29
+ __decorate([
30
+ (0, class_transformer_1.Expose)(),
31
+ (0, class_validator_1.IsOptional)(),
32
+ (0, class_validator_1.IsBoolean)(),
33
+ __metadata("design:type", Boolean)
34
+ ], UpdateActivationChecklistRequest.prototype, "contractSigned", void 0);
35
+ __decorate([
36
+ (0, class_transformer_1.Expose)(),
37
+ (0, class_validator_1.IsOptional)(),
38
+ (0, class_validator_1.IsBoolean)(),
39
+ __metadata("design:type", Boolean)
40
+ ], UpdateActivationChecklistRequest.prototype, "imeiEnrolled", void 0);
41
+ __decorate([
42
+ (0, class_transformer_1.Expose)(),
43
+ (0, class_validator_1.IsOptional)(),
44
+ (0, class_validator_1.IsBoolean)(),
45
+ __metadata("design:type", Boolean)
46
+ ], UpdateActivationChecklistRequest.prototype, "lockVerified", void 0);
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Nivel del cliente según su SCI (M7/05_MOTOR §3.2): 21-60 Bronce · 61-80 Plata · 81-100 Oro.
3
+ * Distinto de `CreditPlanLevelEnum` de loanOfferings (que además tiene `ALL` para planes):
4
+ * un CLIENTE nunca es `ALL`.
5
+ * @enum {string}
6
+ */
7
+ export declare enum ClientLevelEnum {
8
+ BRONZE = "BRONZE",
9
+ SILVER = "SILVER",
10
+ GOLD = "GOLD"
11
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientLevelEnum = void 0;
4
+ /**
5
+ * Nivel del cliente según su SCI (M7/05_MOTOR §3.2): 21-60 Bronce · 61-80 Plata · 81-100 Oro.
6
+ * Distinto de `CreditPlanLevelEnum` de loanOfferings (que además tiene `ALL` para planes):
7
+ * un CLIENTE nunca es `ALL`.
8
+ * @enum {string}
9
+ */
10
+ var ClientLevelEnum;
11
+ (function (ClientLevelEnum) {
12
+ ClientLevelEnum["BRONZE"] = "BRONZE";
13
+ ClientLevelEnum["SILVER"] = "SILVER";
14
+ ClientLevelEnum["GOLD"] = "GOLD";
15
+ })(ClientLevelEnum || (exports.ClientLevelEnum = ClientLevelEnum = {}));
@@ -35,6 +35,28 @@ export interface Sale {
35
35
  cancelledAt: string | null;
36
36
  /** Reason OBLIGATORIO en cancelación (AuditTrail) — flujo C. */
37
37
  cancelReason: string | null;
38
+ /**
39
+ * SNAPSHOT de identidad y contexto, congelado al cerrar la venta. NO se refresca: una venta es la
40
+ * fotografía de un hecho, no la caché de un perfil. Si el cliente corrige su nombre, la venta
41
+ * conserva el de ese día — eso es lo que la vuelve auditable.
42
+ * ⚠️ `customerName` y `customerCurp` son PII: esta tabla está en el catálogo PII. Nunca loguear.
43
+ * Ver la decisión 2026-07-28 (persistencia de nombre y CURP en el registro de venta).
44
+ * `null` cuando la resolución falló al cerrar (la venta NUNCA se cae por esto).
45
+ */
46
+ customerName: string | null;
47
+ customerCurp: string | null;
48
+ storeName: string | null;
49
+ zoneName: string | null;
50
+ sellerName: string | null;
51
+ productBrand: string | null;
52
+ productModel: string | null;
53
+ productCapacity: string | null;
54
+ /**
55
+ * Derivado: `[folio, customerName, customerCurp]` en MAYÚSCULAS, para búsqueda insensible a
56
+ * mayúsculas — `contains()` de DynamoDB es case-sensitive. No expone PII nueva: replica la que ya
57
+ * vive en la misma fila.
58
+ */
59
+ searchIndex: string | null;
38
60
  createdBy: string;
39
61
  updatedBy: string;
40
62
  createdAt: number;
@@ -5,4 +5,18 @@
5
5
  */
6
6
  export declare class CancelSaleRequest {
7
7
  reason: string;
8
+ /**
9
+ * Confirmación de que el equipo fue verificado físicamente en tienda antes de cancelar. El BO lo
10
+ * pide como checkbox obligatorio.
11
+ *
12
+ * **OPCIONAL en el DTO, obligatorio en el dominio — y es a propósito.** Marcarlo requerido volvería
13
+ * BREAKING este contrato: un caller que mande solo `reason` recibiría un `400` de validación. Como
14
+ * opcional, ese mismo caller recibe el **412 IMEI_NOT_RETURNABLE** que el manager lanza cuando el
15
+ * valor no es exactamente `true` — que es la respuesta semánticamente correcta ("no confirmaste el
16
+ * equipo") y no un error de forma. Ausente y `false` se tratan igual: fail-closed.
17
+ *
18
+ * `@IsBoolean()` estricto (el `validateRequest` del lambda NO usa `enableImplicitConversion`), así
19
+ * que el string `"false"` se rechaza en vez de colarse como truthy.
20
+ */
21
+ equipmentVerified?: boolean;
8
22
  }
@@ -26,3 +26,9 @@ __decorate([
26
26
  (0, class_validator_1.MaxLength)(200),
27
27
  __metadata("design:type", String)
28
28
  ], CancelSaleRequest.prototype, "reason", void 0);
29
+ __decorate([
30
+ (0, class_transformer_1.Expose)(),
31
+ (0, class_validator_1.IsOptional)(),
32
+ (0, class_validator_1.IsBoolean)(),
33
+ __metadata("design:type", Boolean)
34
+ ], CancelSaleRequest.prototype, "equipmentVerified", void 0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.228.0",
3
+ "version": "3.230.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -61,10 +61,16 @@ export class AccountCreateRequest {
61
61
  @IsPhoneNumberFiado()
62
62
  phoneNumber: string;
63
63
 
64
+ /**
65
+ * Opcional: la apertura MX en LEVEL_1 puede correr sin dirección. Cuando falta, el
66
+ * emisor debe OMITIR la clave (dejarla undefined, que JSON.stringify elimina del body),
67
+ * nunca mandarla en `null`: account-fiadosa-business valida contra type-kit v1, donde
68
+ * `address` lleva @ValidateNested() sin @IsOptional(), y `null` produce un 400.
69
+ */
64
70
  @IsOptional()
65
71
  @ValidateNested()
66
72
  @Type(() => AddressResponse)
67
- address: AddressResponse;
73
+ address?: AddressResponse;
68
74
 
69
75
  @IsEmail()
70
76
  email: string;
@@ -72,6 +72,8 @@ export class PeopleResponse {
72
72
  MEX_Beneficiaries:boolean;
73
73
  MEX_DebitAccount:boolean;
74
74
  MEX_DebitAccountWish:boolean;
75
+ /** true = el step de emisión FIADOSA/Pomelo terminó (cuenta + tarjeta virtual). */
76
+ MEX_VirtualCard:boolean;
75
77
  MEX_FacematchVerified:boolean| null;
76
78
  MEX_ProofAddress:boolean;
77
79
  MEX_TemplateMatch:boolean;
@@ -43,6 +43,8 @@ export class PeopleUpdateRequest {
43
43
  tenantId?: string | null;
44
44
  USA_DebitAccount?: boolean;
45
45
  MEX_DebitAccount?: boolean;
46
+ /** true = el step de emisión FIADOSA/Pomelo terminó (cuenta + tarjeta virtual). */
47
+ MEX_VirtualCard?: boolean;
46
48
  MEX_CreditClient?: boolean;
47
49
  MEX_CreditAdditional?: boolean;
48
50
  magicNumber?: boolean;
@@ -36,6 +36,28 @@ export interface Sale {
36
36
  cancelledAt: string | null;
37
37
  /** Reason OBLIGATORIO en cancelación (AuditTrail) — flujo C. */
38
38
  cancelReason: string | null;
39
+ /**
40
+ * SNAPSHOT de identidad y contexto, congelado al cerrar la venta. NO se refresca: una venta es la
41
+ * fotografía de un hecho, no la caché de un perfil. Si el cliente corrige su nombre, la venta
42
+ * conserva el de ese día — eso es lo que la vuelve auditable.
43
+ * ⚠️ `customerName` y `customerCurp` son PII: esta tabla está en el catálogo PII. Nunca loguear.
44
+ * Ver la decisión 2026-07-28 (persistencia de nombre y CURP en el registro de venta).
45
+ * `null` cuando la resolución falló al cerrar (la venta NUNCA se cae por esto).
46
+ */
47
+ customerName: string | null;
48
+ customerCurp: string | null;
49
+ storeName: string | null;
50
+ zoneName: string | null;
51
+ sellerName: string | null;
52
+ productBrand: string | null;
53
+ productModel: string | null;
54
+ productCapacity: string | null;
55
+ /**
56
+ * Derivado: `[folio, customerName, customerCurp]` en MAYÚSCULAS, para búsqueda insensible a
57
+ * mayúsculas — `contains()` de DynamoDB es case-sensitive. No expone PII nueva: replica la que ya
58
+ * vive en la misma fila.
59
+ */
60
+ searchIndex: string | null;
39
61
  createdBy: string;
40
62
  updatedBy: string;
41
63
  createdAt: number;
@@ -1,5 +1,5 @@
1
1
  import { Expose } from 'class-transformer';
2
- import { IsString, MaxLength } from 'class-validator';
2
+ import { IsBoolean, IsOptional, IsString, MaxLength } from 'class-validator';
3
3
 
4
4
  /**
5
5
  * POST /sales/:saleId/cancel — cancela una venta (flujo C, solo BO dentro de ventana param). `reason`
@@ -11,4 +11,22 @@ export class CancelSaleRequest {
11
11
  @IsString()
12
12
  @MaxLength(200)
13
13
  reason!: string;
14
+
15
+ /**
16
+ * Confirmación de que el equipo fue verificado físicamente en tienda antes de cancelar. El BO lo
17
+ * pide como checkbox obligatorio.
18
+ *
19
+ * **OPCIONAL en el DTO, obligatorio en el dominio — y es a propósito.** Marcarlo requerido volvería
20
+ * BREAKING este contrato: un caller que mande solo `reason` recibiría un `400` de validación. Como
21
+ * opcional, ese mismo caller recibe el **412 IMEI_NOT_RETURNABLE** que el manager lanza cuando el
22
+ * valor no es exactamente `true` — que es la respuesta semánticamente correcta ("no confirmaste el
23
+ * equipo") y no un error de forma. Ausente y `false` se tratan igual: fail-closed.
24
+ *
25
+ * `@IsBoolean()` estricto (el `validateRequest` del lambda NO usa `enableImplicitConversion`), así
26
+ * que el string `"false"` se rechaza en vez de colarse como truthy.
27
+ */
28
+ @Expose()
29
+ @IsOptional()
30
+ @IsBoolean()
31
+ equipmentVerified?: boolean;
14
32
  }
@@ -1,11 +0,0 @@
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
- }
@@ -1,15 +0,0 @@
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 = {}));
@@ -1,11 +0,0 @@
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
- }
@@ -1,15 +0,0 @@
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 = {}));
@@ -1,17 +0,0 @@
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
- }
@@ -1,12 +0,0 @@
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;
@@ -1,22 +0,0 @@
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
- }
@@ -1,36 +0,0 @@
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);
@@ -1,11 +0,0 @@
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
- }
@@ -1,36 +0,0 @@
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);