@fiado/type-kit 3.149.0 → 3.152.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 (28) hide show
  1. package/_test_/unit/platformRbac/auth/PrepareChallengeRequest.test.ts +1 -1
  2. package/bin/account/dtos/GetAccountLevelStatusResponse.d.ts +7 -0
  3. package/bin/account/dtos/GetAccountLevelStatusResponse.js +6 -0
  4. package/bin/account/index.d.ts +1 -0
  5. package/bin/account/index.js +1 -0
  6. package/bin/platformRbac/dtos/CompleteMyProfileRequest.d.ts +9 -0
  7. package/bin/platformRbac/dtos/{ResendOtpRequest.js → CompleteMyProfileRequest.js} +12 -14
  8. package/bin/remittance/dtos/RemittanceCommittee.d.ts +61 -0
  9. package/bin/remittance/dtos/RemittanceCommittee.js +83 -0
  10. package/bin/remittance/dtos/index.d.ts +1 -0
  11. package/bin/remittance/dtos/index.js +1 -0
  12. package/bin/walletFunding/dtos/CancelFundingReferenceRequest.d.ts +14 -0
  13. package/bin/walletFunding/dtos/CancelFundingReferenceRequest.js +41 -0
  14. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.d.ts +15 -0
  15. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.js +13 -0
  16. package/bin/walletFunding/dtos/CancelWalletFundingRequest.d.ts +3 -0
  17. package/bin/walletFunding/dtos/CancelWalletFundingRequest.js +21 -0
  18. package/bin/walletFunding/dtos/CancelWalletFundingResponse.d.ts +7 -0
  19. package/bin/walletFunding/dtos/CancelWalletFundingResponse.js +6 -0
  20. package/package.json +1 -1
  21. package/src/account/dtos/GetAccountLevelStatusResponse.ts +9 -0
  22. package/src/account/index.ts +1 -0
  23. package/src/platformRbac/auth/PrepareChallengeRequest.ts +1 -1
  24. package/src/remittance/dtos/RemittanceCommittee.ts +87 -0
  25. package/src/remittance/dtos/index.ts +1 -0
  26. package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +0 -22
  27. package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +0 -11
  28. package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.js +0 -36
@@ -5,7 +5,7 @@ import { PrepareChallengeRequest } from '../../../../src/platformRbac/auth/Prepa
5
5
  import { ChallengeNameEnum } from '../../../../src/platformRbac/enums/ChallengeNameEnum';
6
6
 
7
7
  /**
8
- * DEC-RBAC-094: `email` es opcional y robusto a string vacío. Un usuario phone-primario
8
+ * DEC-RBAC-093: `email` es opcional y robusto a string vacío. Un usuario phone-primario
9
9
  * (sin email) hace login MFA (SMS_OTP / TOTP) sin email — el trigger CreateAuthChallenge
10
10
  * ya no manda `''`. `@ValidateIf` saltea undefined/null/'' (`@IsOptional` NO saltea `''`).
11
11
  * La rama EMAIL_OTP del preparer sigue necesitando email en runtime — eso NO lo valida el DTO.
@@ -0,0 +1,7 @@
1
+ import { AccountLevelEnum } from "../enums/AccountLevelEnum";
2
+ export declare class GetAccountLevelStatusResponse {
3
+ accountLevel: AccountLevelEnum;
4
+ availableBalance: number;
5
+ monthlyIncomingAccumulated?: number;
6
+ monthlyIncomingCount?: number;
7
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetAccountLevelStatusResponse = void 0;
4
+ class GetAccountLevelStatusResponse {
5
+ }
6
+ exports.GetAccountLevelStatusResponse = GetAccountLevelStatusResponse;
@@ -16,6 +16,7 @@ export * from './dtos/GetBankAccountSensitiveInformationResponse';
16
16
  export * from './dtos/AccountInfo';
17
17
  export * from './dtos/ExchangeInfo';
18
18
  export * from './dtos/GetAccountBalanceResponse';
19
+ export * from './dtos/GetAccountLevelStatusResponse';
19
20
  export * from './dtos/GetPocketBalanceResponse';
20
21
  export * from './dtos/GetPocketResponse';
21
22
  export * from './dtos/PocketItem';
@@ -33,6 +33,7 @@ __exportStar(require("./dtos/GetBankAccountSensitiveInformationResponse"), expor
33
33
  __exportStar(require("./dtos/AccountInfo"), exports);
34
34
  __exportStar(require("./dtos/ExchangeInfo"), exports);
35
35
  __exportStar(require("./dtos/GetAccountBalanceResponse"), exports);
36
+ __exportStar(require("./dtos/GetAccountLevelStatusResponse"), exports);
36
37
  __exportStar(require("./dtos/GetPocketBalanceResponse"), exports);
37
38
  __exportStar(require("./dtos/GetPocketResponse"), exports);
38
39
  __exportStar(require("./dtos/PocketItem"), exports);
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Body del PUT /me/profile/complete (autenticado, gate post-MFA del autoregistro). DEC-RBAC-034.
3
+ * Opera sobre el propio usuario (cognitoSub del token). Valida nombre + los `userFieldDefs` requeridos
4
+ * del tenant (422 MISSING_REQUIRED_FIELDS si faltan) y flipea `profileComplete=true`.
5
+ */
6
+ export declare class CompleteMyProfileRequest {
7
+ displayName: string;
8
+ customFields?: Record<string, string>;
9
+ }
@@ -9,28 +9,26 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ResendOtpRequest = void 0;
12
+ exports.CompleteMyProfileRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
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).
16
+ * Body del PUT /me/profile/complete (autenticado, gate post-MFA del autoregistro). DEC-RBAC-034.
17
+ * Opera sobre el propio usuario (cognitoSub del token). Valida nombre + los `userFieldDefs` requeridos
18
+ * del tenant (422 MISSING_REQUIRED_FIELDS si faltan) y flipea `profileComplete=true`.
21
19
  */
22
- class ResendOtpRequest {
20
+ class CompleteMyProfileRequest {
23
21
  }
24
- exports.ResendOtpRequest = ResendOtpRequest;
22
+ exports.CompleteMyProfileRequest = CompleteMyProfileRequest;
25
23
  __decorate([
26
24
  (0, class_transformer_1.Expose)(),
27
- (0, class_validator_1.IsEmail)(),
25
+ (0, class_validator_1.IsString)(),
28
26
  (0, class_validator_1.IsNotEmpty)(),
29
27
  __metadata("design:type", String)
30
- ], ResendOtpRequest.prototype, "email", void 0);
28
+ ], CompleteMyProfileRequest.prototype, "displayName", void 0);
31
29
  __decorate([
32
30
  (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);
31
+ (0, class_validator_1.IsOptional)(),
32
+ (0, class_validator_1.IsObject)(),
33
+ __metadata("design:type", Object)
34
+ ], CompleteMyProfileRequest.prototype, "customFields", void 0);
@@ -0,0 +1,61 @@
1
+ /**
2
+ * DTOs de Comités (Dashboard Ops · Configuración §1).
3
+ *
4
+ * Un comité es un grupo de OPERADORES de backoffice (DirectoryBackoffice_GT) que
5
+ * recibe notificación de cambios/alarmas sensibles. CRUD libre (no comités fijos).
6
+ * Los miembros se persisten POR REFERENCIA (ids) y se resuelven en runtime contra
7
+ * el catálogo de operadores ACTIVE (vía IDirectoriesApi.getBackofficeDirectoryList);
8
+ * los inactivos se omiten del display y se depuran en el próximo Save.
9
+ *
10
+ * Canal MVP = solo email (config inerte hasta que exista el disparador — Reglas B3).
11
+ */
12
+ /** Operador de backoffice resuelto (catálogo del picker y miembros del comité). */
13
+ export declare class BackofficeOperator {
14
+ /** DirectoryBackoffice_GT.id */
15
+ id: string;
16
+ fullName: string;
17
+ email: string;
18
+ /** Rol mostrado en la UI (puesto del operador). */
19
+ jobTitle: string;
20
+ }
21
+ /** Referencia a una regla que notifica al comité (Reglas · B3). Vacío en MVP. */
22
+ export declare class CommitteeRuleRef {
23
+ id: string;
24
+ name: string;
25
+ category: string;
26
+ }
27
+ /** Body de POST /backoffice/config/committees. */
28
+ export declare class CreateCommitteeRequest {
29
+ name: string;
30
+ /** Ids de DirectoryBackoffice_GT (referencia; puede ser []). */
31
+ members: string[];
32
+ /** Canal email on/off (único canal del MVP; inerte hasta B3). */
33
+ emailNotifications: boolean;
34
+ }
35
+ /** Body de PUT /backoffice/config/committees/{id} (reemplazo completo). */
36
+ export declare class UpdateCommitteeRequest {
37
+ name: string;
38
+ members: string[];
39
+ emailNotifications: boolean;
40
+ }
41
+ /** Comité completo (response) — members ya RESUELTOS a operadores. */
42
+ export declare class Committee {
43
+ id: string;
44
+ name: string;
45
+ members: BackofficeOperator[];
46
+ emailNotifications: boolean;
47
+ /** Reglas que notifican a este comité (B3) — siempre [] en MVP. */
48
+ rulesNotifying: CommitteeRuleRef[];
49
+ createdAt: string;
50
+ updatedAt: string;
51
+ createdBy: string;
52
+ updatedBy: string;
53
+ }
54
+ /** Response de GET /backoffice/config/committees. */
55
+ export declare class CommitteeListResponse {
56
+ items: Committee[];
57
+ }
58
+ /** Response de GET /backoffice/config/committees/operators (solo ACTIVE). */
59
+ export declare class CommitteeOperatorsResponse {
60
+ items: BackofficeOperator[];
61
+ }
@@ -0,0 +1,83 @@
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.CommitteeOperatorsResponse = exports.CommitteeListResponse = exports.Committee = exports.UpdateCommitteeRequest = exports.CreateCommitteeRequest = exports.CommitteeRuleRef = exports.BackofficeOperator = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const class_validator_2 = require("class-validator");
15
+ /**
16
+ * DTOs de Comités (Dashboard Ops · Configuración §1).
17
+ *
18
+ * Un comité es un grupo de OPERADORES de backoffice (DirectoryBackoffice_GT) que
19
+ * recibe notificación de cambios/alarmas sensibles. CRUD libre (no comités fijos).
20
+ * Los miembros se persisten POR REFERENCIA (ids) y se resuelven en runtime contra
21
+ * el catálogo de operadores ACTIVE (vía IDirectoriesApi.getBackofficeDirectoryList);
22
+ * los inactivos se omiten del display y se depuran en el próximo Save.
23
+ *
24
+ * Canal MVP = solo email (config inerte hasta que exista el disparador — Reglas B3).
25
+ */
26
+ /** Operador de backoffice resuelto (catálogo del picker y miembros del comité). */
27
+ class BackofficeOperator {
28
+ }
29
+ exports.BackofficeOperator = BackofficeOperator;
30
+ /** Referencia a una regla que notifica al comité (Reglas · B3). Vacío en MVP. */
31
+ class CommitteeRuleRef {
32
+ }
33
+ exports.CommitteeRuleRef = CommitteeRuleRef;
34
+ /** Body de POST /backoffice/config/committees. */
35
+ class CreateCommitteeRequest {
36
+ }
37
+ exports.CreateCommitteeRequest = CreateCommitteeRequest;
38
+ __decorate([
39
+ (0, class_validator_2.IsString)(),
40
+ (0, class_validator_1.Length)(3, 100),
41
+ __metadata("design:type", String)
42
+ ], CreateCommitteeRequest.prototype, "name", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsArray)(),
45
+ (0, class_validator_1.IsUUID)("4", { each: true }),
46
+ (0, class_validator_1.ArrayMaxSize)(100),
47
+ __metadata("design:type", Array)
48
+ ], CreateCommitteeRequest.prototype, "members", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsBoolean)(),
51
+ __metadata("design:type", Boolean)
52
+ ], CreateCommitteeRequest.prototype, "emailNotifications", void 0);
53
+ /** Body de PUT /backoffice/config/committees/{id} (reemplazo completo). */
54
+ class UpdateCommitteeRequest {
55
+ }
56
+ exports.UpdateCommitteeRequest = UpdateCommitteeRequest;
57
+ __decorate([
58
+ (0, class_validator_2.IsString)(),
59
+ (0, class_validator_1.Length)(3, 100),
60
+ __metadata("design:type", String)
61
+ ], UpdateCommitteeRequest.prototype, "name", void 0);
62
+ __decorate([
63
+ (0, class_validator_1.IsArray)(),
64
+ (0, class_validator_1.IsUUID)("4", { each: true }),
65
+ (0, class_validator_1.ArrayMaxSize)(100),
66
+ __metadata("design:type", Array)
67
+ ], UpdateCommitteeRequest.prototype, "members", void 0);
68
+ __decorate([
69
+ (0, class_validator_1.IsBoolean)(),
70
+ __metadata("design:type", Boolean)
71
+ ], UpdateCommitteeRequest.prototype, "emailNotifications", void 0);
72
+ /** Comité completo (response) — members ya RESUELTOS a operadores. */
73
+ class Committee {
74
+ }
75
+ exports.Committee = Committee;
76
+ /** Response de GET /backoffice/config/committees. */
77
+ class CommitteeListResponse {
78
+ }
79
+ exports.CommitteeListResponse = CommitteeListResponse;
80
+ /** Response de GET /backoffice/config/committees/operators (solo ACTIVE). */
81
+ class CommitteeOperatorsResponse {
82
+ }
83
+ exports.CommitteeOperatorsResponse = CommitteeOperatorsResponse;
@@ -39,3 +39,4 @@ export * from "./RemittanceKyc";
39
39
  export * from "./RemittanceCohort";
40
40
  export * from "./RemittanceAuditLog";
41
41
  export * from "./RemittanceSegment";
42
+ export * from "./RemittanceCommittee";
@@ -55,3 +55,4 @@ __exportStar(require("./RemittanceKyc"), exports);
55
55
  __exportStar(require("./RemittanceCohort"), exports);
56
56
  __exportStar(require("./RemittanceAuditLog"), exports);
57
57
  __exportStar(require("./RemittanceSegment"), exports);
58
+ __exportStar(require("./RemittanceCommittee"), exports);
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Body para cancelar una referencia de funding ya creada. La referencia/fundingId
3
+ * viaja en la URL (`/funding/{moduleName}/{fundingId}/cancel`); este body aporta
4
+ * el contexto del solicitante + idempotencia.
5
+ *
6
+ * NOTA: shape inferido desde el uso en `@fiado/api-invoker`
7
+ * (benefits-marketplace / equality-connector) — confirmar con el dueño del
8
+ * módulo walletFunding / el lambda equality-connector que implementa el cancel.
9
+ */
10
+ export declare class CancelFundingReferenceRequest {
11
+ directoryId: string;
12
+ reason?: string;
13
+ idempotencyKey: string;
14
+ }
@@ -0,0 +1,41 @@
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.CancelFundingReferenceRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * Body para cancelar una referencia de funding ya creada. La referencia/fundingId
16
+ * viaja en la URL (`/funding/{moduleName}/{fundingId}/cancel`); este body aporta
17
+ * el contexto del solicitante + idempotencia.
18
+ *
19
+ * NOTA: shape inferido desde el uso en `@fiado/api-invoker`
20
+ * (benefits-marketplace / equality-connector) — confirmar con el dueño del
21
+ * módulo walletFunding / el lambda equality-connector que implementa el cancel.
22
+ */
23
+ class CancelFundingReferenceRequest {
24
+ }
25
+ exports.CancelFundingReferenceRequest = CancelFundingReferenceRequest;
26
+ __decorate([
27
+ (0, class_validator_1.IsString)(),
28
+ (0, class_validator_1.MaxLength)(64),
29
+ __metadata("design:type", String)
30
+ ], CancelFundingReferenceRequest.prototype, "directoryId", void 0);
31
+ __decorate([
32
+ (0, class_validator_1.IsOptional)(),
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.MaxLength)(256),
35
+ __metadata("design:type", String)
36
+ ], CancelFundingReferenceRequest.prototype, "reason", void 0);
37
+ __decorate([
38
+ (0, class_validator_1.IsString)(),
39
+ (0, class_validator_1.MaxLength)(64),
40
+ __metadata("design:type", String)
41
+ ], CancelFundingReferenceRequest.prototype, "idempotencyKey", void 0);
@@ -0,0 +1,15 @@
1
+ import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
2
+ import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
3
+ /**
4
+ * Respuesta de la cancelación de una referencia de funding. Mismo estilo que
5
+ * CreateFundingReferenceResponse.
6
+ *
7
+ * NOTA: shape inferido desde el uso en `@fiado/api-invoker` — confirmar con el
8
+ * dueño del módulo walletFunding / el lambda equality-connector.
9
+ */
10
+ export declare class CancelFundingReferenceResponse {
11
+ /** Referencia cancelada (misma PK que se creó). */
12
+ reference: string;
13
+ status: BenefitPaymentStatusEnum;
14
+ errorCode?: WalletFundingErrorCodeEnum;
15
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CancelFundingReferenceResponse = void 0;
4
+ /**
5
+ * Respuesta de la cancelación de una referencia de funding. Mismo estilo que
6
+ * CreateFundingReferenceResponse.
7
+ *
8
+ * NOTA: shape inferido desde el uso en `@fiado/api-invoker` — confirmar con el
9
+ * dueño del módulo walletFunding / el lambda equality-connector.
10
+ */
11
+ class CancelFundingReferenceResponse {
12
+ }
13
+ exports.CancelFundingReferenceResponse = CancelFundingReferenceResponse;
@@ -0,0 +1,3 @@
1
+ export declare class CancelWalletFundingRequest {
2
+ idempotencyKey: string;
3
+ }
@@ -0,0 +1,21 @@
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.CancelWalletFundingRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class CancelWalletFundingRequest {
15
+ }
16
+ exports.CancelWalletFundingRequest = CancelWalletFundingRequest;
17
+ __decorate([
18
+ (0, class_validator_1.IsString)(),
19
+ (0, class_validator_1.MaxLength)(64),
20
+ __metadata("design:type", String)
21
+ ], CancelWalletFundingRequest.prototype, "idempotencyKey", void 0);
@@ -0,0 +1,7 @@
1
+ import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
2
+ import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
3
+ export declare class CancelWalletFundingResponse {
4
+ status: BenefitPaymentStatusEnum;
5
+ errorCode?: WalletFundingErrorCodeEnum;
6
+ fundingId?: string;
7
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CancelWalletFundingResponse = void 0;
4
+ class CancelWalletFundingResponse {
5
+ }
6
+ exports.CancelWalletFundingResponse = CancelWalletFundingResponse;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.149.0",
3
+ "version": "3.152.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -0,0 +1,9 @@
1
+ import { AccountLevelEnum } from "../enums/AccountLevelEnum";
2
+
3
+ export class GetAccountLevelStatusResponse {
4
+ accountLevel!: AccountLevelEnum;
5
+ availableBalance!: number;
6
+ // Fase 2 — abonos que afectan nivel acumulados en el mes calendario
7
+ monthlyIncomingAccumulated?: number; // monthTotalAmount del activityType PAGOCONFIADO_ENTRADAS_NIVEL_CUENTA
8
+ monthlyIncomingCount?: number; // monthCount (nº de entradas del mes)
9
+ }
@@ -18,6 +18,7 @@ export * from './dtos/GetBankAccountSensitiveInformationResponse';
18
18
  export * from './dtos/AccountInfo';
19
19
  export * from './dtos/ExchangeInfo';
20
20
  export * from './dtos/GetAccountBalanceResponse';
21
+ export * from './dtos/GetAccountLevelStatusResponse';
21
22
  export * from './dtos/GetPocketBalanceResponse';
22
23
  export * from './dtos/GetPocketResponse';
23
24
  export * from './dtos/PocketItem';
@@ -8,7 +8,7 @@ export class PrepareChallengeRequest {
8
8
  @IsEnum(ChallengeNameEnum)
9
9
  challengeName!: ChallengeNameEnum;
10
10
 
11
- // DEC-RBAC-094: email OPCIONAL y robusto a string vacío. Un usuario phone-primario (sin email)
11
+ // DEC-RBAC-093: email OPCIONAL y robusto a string vacío. Un usuario phone-primario (sin email)
12
12
  // hace login MFA (SMS_OTP/TOTP) sin email; el trigger CreateAuthChallenge ya no manda ''. Se usa
13
13
  // @ValidateIf (no @IsOptional) porque @IsOptional NO saltea '' — acá necesitamos que undefined,
14
14
  // null y '' NO rompan la validación. Cuando email SÍ trae valor no vacío, debe ser un email válido.
@@ -0,0 +1,87 @@
1
+ import { ArrayMaxSize, IsArray, IsBoolean, IsUUID, Length } from "class-validator";
2
+ import { IsString } from "class-validator";
3
+
4
+ /**
5
+ * DTOs de Comités (Dashboard Ops · Configuración §1).
6
+ *
7
+ * Un comité es un grupo de OPERADORES de backoffice (DirectoryBackoffice_GT) que
8
+ * recibe notificación de cambios/alarmas sensibles. CRUD libre (no comités fijos).
9
+ * Los miembros se persisten POR REFERENCIA (ids) y se resuelven en runtime contra
10
+ * el catálogo de operadores ACTIVE (vía IDirectoriesApi.getBackofficeDirectoryList);
11
+ * los inactivos se omiten del display y se depuran en el próximo Save.
12
+ *
13
+ * Canal MVP = solo email (config inerte hasta que exista el disparador — Reglas B3).
14
+ */
15
+
16
+ /** Operador de backoffice resuelto (catálogo del picker y miembros del comité). */
17
+ export class BackofficeOperator {
18
+ /** DirectoryBackoffice_GT.id */
19
+ id!: string;
20
+ fullName!: string;
21
+ email!: string;
22
+ /** Rol mostrado en la UI (puesto del operador). */
23
+ jobTitle!: string;
24
+ }
25
+
26
+ /** Referencia a una regla que notifica al comité (Reglas · B3). Vacío en MVP. */
27
+ export class CommitteeRuleRef {
28
+ id!: string;
29
+ name!: string;
30
+ category!: string;
31
+ }
32
+
33
+ /** Body de POST /backoffice/config/committees. */
34
+ export class CreateCommitteeRequest {
35
+ @IsString()
36
+ @Length(3, 100)
37
+ name!: string;
38
+
39
+ /** Ids de DirectoryBackoffice_GT (referencia; puede ser []). */
40
+ @IsArray()
41
+ @IsUUID("4", { each: true })
42
+ @ArrayMaxSize(100)
43
+ members!: string[];
44
+
45
+ /** Canal email on/off (único canal del MVP; inerte hasta B3). */
46
+ @IsBoolean()
47
+ emailNotifications!: boolean;
48
+ }
49
+
50
+ /** Body de PUT /backoffice/config/committees/{id} (reemplazo completo). */
51
+ export class UpdateCommitteeRequest {
52
+ @IsString()
53
+ @Length(3, 100)
54
+ name!: string;
55
+
56
+ @IsArray()
57
+ @IsUUID("4", { each: true })
58
+ @ArrayMaxSize(100)
59
+ members!: string[];
60
+
61
+ @IsBoolean()
62
+ emailNotifications!: boolean;
63
+ }
64
+
65
+ /** Comité completo (response) — members ya RESUELTOS a operadores. */
66
+ export class Committee {
67
+ id!: string;
68
+ name!: string;
69
+ members!: BackofficeOperator[];
70
+ emailNotifications!: boolean;
71
+ /** Reglas que notifican a este comité (B3) — siempre [] en MVP. */
72
+ rulesNotifying!: CommitteeRuleRef[];
73
+ createdAt!: string;
74
+ updatedAt!: string;
75
+ createdBy!: string;
76
+ updatedBy!: string;
77
+ }
78
+
79
+ /** Response de GET /backoffice/config/committees. */
80
+ export class CommitteeListResponse {
81
+ items!: Committee[];
82
+ }
83
+
84
+ /** Response de GET /backoffice/config/committees/operators (solo ACTIVE). */
85
+ export class CommitteeOperatorsResponse {
86
+ items!: BackofficeOperator[];
87
+ }
@@ -39,3 +39,4 @@ export * from "./RemittanceKyc";
39
39
  export * from "./RemittanceCohort";
40
40
  export * from "./RemittanceAuditLog";
41
41
  export * from "./RemittanceSegment";
42
+ export * from "./RemittanceCommittee";
@@ -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,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);