@fiado/type-kit 3.184.0 → 3.185.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 (57) hide show
  1. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.d.ts +7 -0
  2. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.js +36 -0
  3. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.d.ts +20 -0
  4. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.js +11 -0
  5. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.d.ts +4 -0
  6. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.js +6 -0
  7. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.d.ts +17 -0
  8. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.js +39 -0
  9. package/bin/index.d.ts +1 -0
  10. package/bin/index.js +3 -1
  11. package/bin/loanConfig/dtos/Parameter.d.ts +23 -0
  12. package/bin/loanConfig/dtos/Parameter.js +93 -0
  13. package/bin/loanConfig/dtos/requests/BulkGetParametersRequest.d.ts +9 -0
  14. package/bin/{platformRbac/dtos/ResendSelfRegisterOtpRequest.js → loanConfig/dtos/requests/BulkGetParametersRequest.js} +20 -16
  15. package/bin/loanConfig/dtos/requests/BulkUpdateParametersRequest.d.ts +11 -0
  16. package/bin/loanConfig/dtos/requests/BulkUpdateParametersRequest.js +52 -0
  17. package/bin/loanConfig/dtos/requests/UpdateParameterRequest.d.ts +8 -0
  18. package/bin/{platformRbac/dtos/ResendOtpRequest.js → loanConfig/dtos/requests/UpdateParameterRequest.js} +10 -13
  19. package/bin/loanConfig/dtos/responses/ParameterResponse.d.ts +28 -0
  20. package/bin/loanConfig/dtos/responses/ParameterResponse.js +2 -0
  21. package/bin/loanConfig/enums/ModifiableByRoleEnum.d.ts +11 -0
  22. package/bin/loanConfig/enums/ModifiableByRoleEnum.js +15 -0
  23. package/bin/loanConfig/enums/ParameterTypeEnum.d.ts +20 -0
  24. package/bin/loanConfig/enums/ParameterTypeEnum.js +24 -0
  25. package/bin/loanConfig/enums/ParameterValueTypeEnum.d.ts +11 -0
  26. package/bin/loanConfig/enums/ParameterValueTypeEnum.js +15 -0
  27. package/bin/loanConfig/index.d.ts +8 -0
  28. package/bin/loanConfig/index.js +27 -0
  29. package/bin/rbac/enums/PoolKind.d.ts +16 -0
  30. package/bin/rbac/enums/PoolKind.js +20 -0
  31. package/bin/rbac/index.d.ts +1 -0
  32. package/bin/rbac/index.js +17 -0
  33. package/bin/walletFunding/dtos/CancelFundingReferenceRequest.d.ts +5 -0
  34. package/bin/walletFunding/dtos/CancelFundingReferenceRequest.js +31 -0
  35. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.d.ts +7 -0
  36. package/bin/walletFunding/dtos/CancelFundingReferenceResponse.js +6 -0
  37. package/bin/walletFunding/dtos/CancelFundingRequest.d.ts +11 -0
  38. package/bin/walletFunding/dtos/CancelFundingRequest.js +33 -0
  39. package/bin/walletFunding/dtos/CancelFundingResponse.d.ts +14 -0
  40. package/bin/walletFunding/dtos/CancelFundingResponse.js +12 -0
  41. package/bin/walletFunding/dtos/CancelWalletFundingRequest.d.ts +3 -0
  42. package/bin/walletFunding/dtos/CancelWalletFundingRequest.js +21 -0
  43. package/bin/walletFunding/dtos/CancelWalletFundingResponse.d.ts +7 -0
  44. package/bin/walletFunding/dtos/CancelWalletFundingResponse.js +6 -0
  45. package/package.json +1 -1
  46. package/src/index.ts +2 -0
  47. package/src/loanConfig/dtos/Parameter.ts +68 -0
  48. package/src/loanConfig/dtos/requests/BulkGetParametersRequest.ts +23 -0
  49. package/src/loanConfig/dtos/requests/BulkUpdateParametersRequest.ts +33 -0
  50. package/src/loanConfig/dtos/requests/UpdateParameterRequest.ts +18 -0
  51. package/src/loanConfig/dtos/responses/ParameterResponse.ts +28 -0
  52. package/src/loanConfig/enums/ModifiableByRoleEnum.ts +11 -0
  53. package/src/loanConfig/enums/ParameterTypeEnum.ts +20 -0
  54. package/src/loanConfig/enums/ParameterValueTypeEnum.ts +11 -0
  55. package/src/loanConfig/index.ts +14 -0
  56. package/bin/platformRbac/dtos/ResendOtpRequest.d.ts +0 -22
  57. package/bin/platformRbac/dtos/ResendSelfRegisterOtpRequest.d.ts +0 -11
@@ -0,0 +1,7 @@
1
+ declare const ALLOWED_MFA_TYPES: readonly ["SOFTWARE_TOKEN_MFA"];
2
+ export type AllowedMfaType = (typeof ALLOWED_MFA_TYPES)[number];
3
+ export declare class MfaPoolConfig {
4
+ requireMfa: boolean;
5
+ mfaTypes: AllowedMfaType[];
6
+ }
7
+ export {};
@@ -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.MfaPoolConfig = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const MfaTypesRequiresOne_1 = require("../validators/MfaTypesRequiresOne");
16
+ // EMAIL_OTP removido (3.41.0): el cognito-backoffice-connector no provisiona
17
+ // EmailMfaConfiguration a nivel pool (requiere infra SES que no está montada
18
+ // y la integración con messages-lambda aún no tiene diseño). Ver TD-020 +
19
+ // DEC-001 en cognito-backoffice-connector/docs/. Si se reintroduce, agregar
20
+ // 'EMAIL_OTP' a este array.
21
+ const ALLOWED_MFA_TYPES = ['SOFTWARE_TOKEN_MFA'];
22
+ class MfaPoolConfig {
23
+ }
24
+ exports.MfaPoolConfig = MfaPoolConfig;
25
+ __decorate([
26
+ (0, class_transformer_1.Expose)(),
27
+ (0, class_validator_1.IsBoolean)(),
28
+ __metadata("design:type", Boolean)
29
+ ], MfaPoolConfig.prototype, "requireMfa", void 0);
30
+ __decorate([
31
+ (0, class_transformer_1.Expose)(),
32
+ (0, class_validator_1.IsArray)(),
33
+ (0, class_validator_1.IsIn)(ALLOWED_MFA_TYPES, { each: true }),
34
+ (0, class_validator_1.Validate)(MfaTypesRequiresOne_1.MfaTypesRequiresOne),
35
+ __metadata("design:type", Array)
36
+ ], MfaPoolConfig.prototype, "mfaTypes", void 0);
@@ -0,0 +1,20 @@
1
+ import { PoolKind } from '../../rbac/enums/PoolKind';
2
+ /**
3
+ * Shape del `PoolConfigRow` expuesto al caller (BFF M18 / otros lambdas Fiado).
4
+ * Refleja la configuración de un Cognito User Pool registrado en la tabla
5
+ * `PoolConfigs_GT` del lambda `cognito-backoffice-connector`.
6
+ */
7
+ export declare class PoolConfigResponse {
8
+ userPoolId: string;
9
+ userPoolArn: string;
10
+ region: string;
11
+ poolKind: PoolKind;
12
+ displayName: string;
13
+ appClients: Record<string, {
14
+ clientId: string;
15
+ clientName: string;
16
+ }>;
17
+ status: 'active' | 'deprecated';
18
+ createdAt: number;
19
+ updatedAt: number;
20
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolConfigResponse = void 0;
4
+ /**
5
+ * Shape del `PoolConfigRow` expuesto al caller (BFF M18 / otros lambdas Fiado).
6
+ * Refleja la configuración de un Cognito User Pool registrado en la tabla
7
+ * `PoolConfigs_GT` del lambda `cognito-backoffice-connector`.
8
+ */
9
+ class PoolConfigResponse {
10
+ }
11
+ exports.PoolConfigResponse = PoolConfigResponse;
@@ -0,0 +1,4 @@
1
+ import { PoolConfigResponse } from './PoolConfigResponse';
2
+ export declare class PoolsListResponse {
3
+ pools: PoolConfigResponse[];
4
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolsListResponse = void 0;
4
+ class PoolsListResponse {
5
+ }
6
+ exports.PoolsListResponse = PoolsListResponse;
@@ -0,0 +1,17 @@
1
+ import { ValidatorConstraintInterface, ValidationArguments } from 'class-validator';
2
+ /**
3
+ * Cross-field validator: si `requireMfa: true`, entonces `mfaTypes` debe tener
4
+ * al menos 1 elemento. Si `requireMfa: false`, `mfaTypes` puede ser vacío.
5
+ *
6
+ * Razón: cuando el pool nace con MFA habilitado, el connector llama
7
+ * `SetUserPoolMfaConfigCommand` con la lista de tipos del DTO. Si el array
8
+ * llega vacío con `requireMfa: true`, el SDK rechaza con InvalidParameterException
9
+ * y el pool queda en estado inconsistente (MfaConfiguration:'ON' sin tipos).
10
+ * Mejor rechazar en validación del DTO antes de tocar AWS.
11
+ *
12
+ * Ver pivote v1.4.1 TD-017 cerrado + spec doc §1 R3.
13
+ */
14
+ export declare class MfaTypesRequiresOne implements ValidatorConstraintInterface {
15
+ validate(mfaTypes: unknown, args: ValidationArguments): boolean;
16
+ defaultMessage(): string;
17
+ }
@@ -0,0 +1,39 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MfaTypesRequiresOne = void 0;
10
+ const class_validator_1 = require("class-validator");
11
+ /**
12
+ * Cross-field validator: si `requireMfa: true`, entonces `mfaTypes` debe tener
13
+ * al menos 1 elemento. Si `requireMfa: false`, `mfaTypes` puede ser vacío.
14
+ *
15
+ * Razón: cuando el pool nace con MFA habilitado, el connector llama
16
+ * `SetUserPoolMfaConfigCommand` con la lista de tipos del DTO. Si el array
17
+ * llega vacío con `requireMfa: true`, el SDK rechaza con InvalidParameterException
18
+ * y el pool queda en estado inconsistente (MfaConfiguration:'ON' sin tipos).
19
+ * Mejor rechazar en validación del DTO antes de tocar AWS.
20
+ *
21
+ * Ver pivote v1.4.1 TD-017 cerrado + spec doc §1 R3.
22
+ */
23
+ let MfaTypesRequiresOne = class MfaTypesRequiresOne {
24
+ validate(mfaTypes, args) {
25
+ const obj = args.object;
26
+ if (obj.requireMfa === true) {
27
+ return Array.isArray(mfaTypes) && mfaTypes.length >= 1;
28
+ }
29
+ // requireMfa: false → cualquier mfaTypes pasa.
30
+ return true;
31
+ }
32
+ defaultMessage() {
33
+ return 'mfaTypes requiere al menos un tipo cuando requireMfa=true';
34
+ }
35
+ };
36
+ exports.MfaTypesRequiresOne = MfaTypesRequiresOne;
37
+ exports.MfaTypesRequiresOne = MfaTypesRequiresOne = __decorate([
38
+ (0, class_validator_1.ValidatorConstraint)({ name: 'MfaTypesRequiresOneWhenMfaRequired', async: false })
39
+ ], MfaTypesRequiresOne);
package/bin/index.d.ts CHANGED
@@ -89,5 +89,6 @@ export * as Modelias from './modelias';
89
89
  export * as NetworkConnector from './networkConnector';
90
90
  export * as EmailVerification from './emailVerification';
91
91
  export * as RetailOrg from './retailOrg';
92
+ export * as LoanConfig from './loanConfig';
92
93
  export * from './messaging';
93
94
  export * from './complaint';
package/bin/index.js CHANGED
@@ -37,7 +37,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.Device = exports.Observations = exports.IssuanceBusiness = exports.Blacklist = exports.CentralPayments = exports.Helpdesk = exports.FiadoApiResponse = exports.Auth = exports.LegalDocumentsBusiness = exports.Role = exports.STPAccount = exports.RiskProfile = exports.FraudPreventionEngine = exports.BBVARst = exports.Stp = exports.BenefitCenter = exports.BankAccount = exports.P2pContact = exports.CreditContract = exports.Contract = exports.ProductCatalog = exports.ContactInfo = exports.TransactionAnalytics = exports.Transaction = exports.TransactionProcessor = exports.GenericMessage = exports.EventBridgeMessage = exports.SessionActivity = exports.NotificationMessages = exports.ServicePayment = exports.Header = exports.Identity = exports.UserTags = exports.Group = exports.File = exports.ExchangeRate = exports.Directory = exports.Currency = exports.Country = exports.Card = exports.Authentication = exports.AppContent = exports.App = exports.Offices = exports.Places = exports.Address = exports.Beneficiary = exports.Activity = exports.Account = exports.Crypto = void 0;
40
- exports.RetailOrg = exports.EmailVerification = exports.NetworkConnector = exports.Modelias = exports.TotpSecurity = exports.Passport = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = exports.AccountIssuanceBusiness = exports.AppSelectionData = void 0;
40
+ exports.LoanConfig = exports.RetailOrg = exports.EmailVerification = exports.NetworkConnector = exports.Modelias = exports.TotpSecurity = exports.Passport = exports.WalletFunding = exports.Remittance = exports.PlatformRbac = exports.CognitoBackofficeConnector = exports.TwilioConnector = exports.MessagesConnector = exports.Mdm = exports.MilestoneBusiness = exports.CirculoCredito = exports.CreditStatements = exports.Sentry = exports.AiEngine = exports.Funnel = exports.TeamsConnector = exports.PlatformErrorEvents = exports.CustomerFile = exports.CreditBackoffice = exports.CreditDashboard = exports.CreditEngine = exports.Credit = exports.ComissionBusiness = exports.ReferralBusiness = exports.ZendeskMessaging = exports.NotificationWS = exports.Event = exports.PayrollBusiness = exports.Cnbv = exports.DirectorySetting = exports.InvoiceCollector = exports.Collector = exports.Pricelist = exports.Company = exports.Services = exports.AccountIssuanceBusiness = exports.AppSelectionData = void 0;
41
41
  exports.Crypto = __importStar(require("./crypto"));
42
42
  exports.Account = __importStar(require("./account"));
43
43
  exports.Activity = __importStar(require("./activity"));
@@ -143,5 +143,7 @@ exports.EmailVerification = __importStar(require("./emailVerification"));
143
143
  // RetailOrg: DTOs/enums del lambda retail-org-business (SureKeep Fase 1 — pista Retail).
144
144
  // Dominio de retailers → zonas → tiendas → usuarios retail.
145
145
  exports.RetailOrg = __importStar(require("./retailOrg"));
146
+ // LoanConfig: DTOs/enums del lambda loan-config-business (comp 09 — parámetros operativos del SOFOM).
147
+ exports.LoanConfig = __importStar(require("./loanConfig"));
146
148
  __exportStar(require("./messaging"), exports);
147
149
  __exportStar(require("./complaint"), exports);
@@ -0,0 +1,23 @@
1
+ import { ModifiableByRoleEnum } from '../enums/ModifiableByRoleEnum';
2
+ import { ParameterTypeEnum } from '../enums/ParameterTypeEnum';
3
+ import { ParameterValueTypeEnum } from '../enums/ParameterValueTypeEnum';
4
+ /**
5
+ * Parameter — parámetro operativo clave/valor del SOFOM (M6 §8 + §5).
6
+ * Identidad lógica `parameterId = ${paramType}#${key}` (D1). `value` null → aplica `defaultValue`.
7
+ */
8
+ export declare class Parameter {
9
+ parameterId: string;
10
+ paramType: ParameterTypeEnum;
11
+ key: string;
12
+ /** Siempre string; `null` cuando el valor está pendiente de definición por negocio. */
13
+ value: string | null;
14
+ valueType: ParameterValueTypeEnum;
15
+ defaultValue: string;
16
+ description: string;
17
+ modifiableBy: ModifiableByRoleEnum;
18
+ lastModifiedByUserId: string;
19
+ createdBy: string;
20
+ updatedBy: string;
21
+ createdAt: string;
22
+ updatedAt: string;
23
+ }
@@ -0,0 +1,93 @@
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.Parameter = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const regex_1 = require("../../helpers/constans/regex");
16
+ const ModifiableByRoleEnum_1 = require("../enums/ModifiableByRoleEnum");
17
+ const ParameterTypeEnum_1 = require("../enums/ParameterTypeEnum");
18
+ const ParameterValueTypeEnum_1 = require("../enums/ParameterValueTypeEnum");
19
+ /**
20
+ * Parameter — parámetro operativo clave/valor del SOFOM (M6 §8 + §5).
21
+ * Identidad lógica `parameterId = ${paramType}#${key}` (D1). `value` null → aplica `defaultValue`.
22
+ */
23
+ class Parameter {
24
+ }
25
+ exports.Parameter = Parameter;
26
+ __decorate([
27
+ (0, class_transformer_1.Expose)(),
28
+ (0, class_validator_1.IsString)(),
29
+ __metadata("design:type", String)
30
+ ], Parameter.prototype, "parameterId", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ (0, class_validator_1.IsEnum)(ParameterTypeEnum_1.ParameterTypeEnum),
34
+ __metadata("design:type", String)
35
+ ], Parameter.prototype, "paramType", void 0);
36
+ __decorate([
37
+ (0, class_transformer_1.Expose)(),
38
+ (0, class_validator_1.IsString)(),
39
+ __metadata("design:type", String)
40
+ ], Parameter.prototype, "key", void 0);
41
+ __decorate([
42
+ (0, class_transformer_1.Expose)(),
43
+ (0, class_validator_1.IsOptional)(),
44
+ (0, class_validator_1.IsString)(),
45
+ __metadata("design:type", String)
46
+ ], Parameter.prototype, "value", void 0);
47
+ __decorate([
48
+ (0, class_transformer_1.Expose)(),
49
+ (0, class_validator_1.IsEnum)(ParameterValueTypeEnum_1.ParameterValueTypeEnum),
50
+ __metadata("design:type", String)
51
+ ], Parameter.prototype, "valueType", void 0);
52
+ __decorate([
53
+ (0, class_transformer_1.Expose)(),
54
+ (0, class_validator_1.IsString)(),
55
+ __metadata("design:type", String)
56
+ ], Parameter.prototype, "defaultValue", void 0);
57
+ __decorate([
58
+ (0, class_transformer_1.Expose)(),
59
+ (0, class_validator_1.IsString)(),
60
+ __metadata("design:type", String)
61
+ ], Parameter.prototype, "description", void 0);
62
+ __decorate([
63
+ (0, class_transformer_1.Expose)(),
64
+ (0, class_validator_1.IsEnum)(ModifiableByRoleEnum_1.ModifiableByRoleEnum),
65
+ __metadata("design:type", String)
66
+ ], Parameter.prototype, "modifiableBy", void 0);
67
+ __decorate([
68
+ (0, class_transformer_1.Expose)(),
69
+ (0, class_validator_1.IsString)(),
70
+ __metadata("design:type", String)
71
+ ], Parameter.prototype, "lastModifiedByUserId", void 0);
72
+ __decorate([
73
+ (0, class_transformer_1.Expose)(),
74
+ (0, class_validator_1.IsString)(),
75
+ __metadata("design:type", String)
76
+ ], Parameter.prototype, "createdBy", void 0);
77
+ __decorate([
78
+ (0, class_transformer_1.Expose)(),
79
+ (0, class_validator_1.IsString)(),
80
+ __metadata("design:type", String)
81
+ ], Parameter.prototype, "updatedBy", void 0);
82
+ __decorate([
83
+ (0, class_transformer_1.Expose)(),
84
+ (0, class_validator_1.IsString)(),
85
+ (0, class_validator_1.Matches)(regex_1.regexIso8601, { message: 'createdAt debe ser una fecha ISO 8601' }),
86
+ __metadata("design:type", String)
87
+ ], Parameter.prototype, "createdAt", void 0);
88
+ __decorate([
89
+ (0, class_transformer_1.Expose)(),
90
+ (0, class_validator_1.IsString)(),
91
+ (0, class_validator_1.Matches)(regex_1.regexIso8601, { message: 'updatedAt debe ser una fecha ISO 8601' }),
92
+ __metadata("design:type", String)
93
+ ], Parameter.prototype, "updatedAt", void 0);
@@ -0,0 +1,9 @@
1
+ import { ParameterTypeEnum } from '../../enums/ParameterTypeEnum';
2
+ export declare class ParameterKeyRef {
3
+ paramType: ParameterTypeEnum;
4
+ key: string;
5
+ }
6
+ /** Body de POST /private/parameters/bulk-get — hot path para consumers (cachean 5 min). */
7
+ export declare class BulkGetParametersRequest {
8
+ items: ParameterKeyRef[];
9
+ }
@@ -9,28 +9,32 @@ 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.ResendSelfRegisterOtpRequest = void 0;
12
+ exports.BulkGetParametersRequest = exports.ParameterKeyRef = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
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 {
15
+ const ParameterTypeEnum_1 = require("../../enums/ParameterTypeEnum");
16
+ class ParameterKeyRef {
23
17
  }
24
- exports.ResendSelfRegisterOtpRequest = ResendSelfRegisterOtpRequest;
18
+ exports.ParameterKeyRef = ParameterKeyRef;
25
19
  __decorate([
26
20
  (0, class_transformer_1.Expose)(),
27
- (0, class_validator_1.IsString)(),
28
- (0, class_validator_1.IsNotEmpty)(),
21
+ (0, class_validator_1.IsEnum)(ParameterTypeEnum_1.ParameterTypeEnum),
29
22
  __metadata("design:type", String)
30
- ], ResendSelfRegisterOtpRequest.prototype, "tenantId", void 0);
23
+ ], ParameterKeyRef.prototype, "paramType", void 0);
31
24
  __decorate([
32
25
  (0, class_transformer_1.Expose)(),
33
- (0, class_validator_1.IsEmail)(),
34
- (0, class_validator_1.IsNotEmpty)(),
26
+ (0, class_validator_1.IsString)(),
35
27
  __metadata("design:type", String)
36
- ], ResendSelfRegisterOtpRequest.prototype, "email", void 0);
28
+ ], ParameterKeyRef.prototype, "key", void 0);
29
+ /** Body de POST /private/parameters/bulk-get — hot path para consumers (cachean 5 min). */
30
+ class BulkGetParametersRequest {
31
+ }
32
+ exports.BulkGetParametersRequest = BulkGetParametersRequest;
33
+ __decorate([
34
+ (0, class_transformer_1.Expose)(),
35
+ (0, class_validator_1.IsArray)(),
36
+ (0, class_validator_1.ArrayNotEmpty)(),
37
+ (0, class_validator_1.ValidateNested)({ each: true }),
38
+ (0, class_transformer_1.Type)(() => ParameterKeyRef),
39
+ __metadata("design:type", Array)
40
+ ], BulkGetParametersRequest.prototype, "items", void 0);
@@ -0,0 +1,11 @@
1
+ import { ParameterTypeEnum } from '../../enums/ParameterTypeEnum';
2
+ export declare class BulkUpdateParameterItem {
3
+ paramType: ParameterTypeEnum;
4
+ key: string;
5
+ value: string | null;
6
+ reason?: string;
7
+ }
8
+ /** Body de POST /parameters/bulk-update — carga inicial / ajuste masivo. */
9
+ export declare class BulkUpdateParametersRequest {
10
+ parameters: BulkUpdateParameterItem[];
11
+ }
@@ -0,0 +1,52 @@
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.BulkUpdateParametersRequest = exports.BulkUpdateParameterItem = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const ParameterTypeEnum_1 = require("../../enums/ParameterTypeEnum");
16
+ class BulkUpdateParameterItem {
17
+ }
18
+ exports.BulkUpdateParameterItem = BulkUpdateParameterItem;
19
+ __decorate([
20
+ (0, class_transformer_1.Expose)(),
21
+ (0, class_validator_1.IsEnum)(ParameterTypeEnum_1.ParameterTypeEnum),
22
+ __metadata("design:type", String)
23
+ ], BulkUpdateParameterItem.prototype, "paramType", void 0);
24
+ __decorate([
25
+ (0, class_transformer_1.Expose)(),
26
+ (0, class_validator_1.IsString)(),
27
+ __metadata("design:type", String)
28
+ ], BulkUpdateParameterItem.prototype, "key", void 0);
29
+ __decorate([
30
+ (0, class_transformer_1.Expose)(),
31
+ (0, class_validator_1.IsOptional)(),
32
+ (0, class_validator_1.IsString)(),
33
+ __metadata("design:type", String)
34
+ ], BulkUpdateParameterItem.prototype, "value", void 0);
35
+ __decorate([
36
+ (0, class_transformer_1.Expose)(),
37
+ (0, class_validator_1.IsOptional)(),
38
+ (0, class_validator_1.IsString)(),
39
+ __metadata("design:type", String)
40
+ ], BulkUpdateParameterItem.prototype, "reason", void 0);
41
+ /** Body de POST /parameters/bulk-update — carga inicial / ajuste masivo. */
42
+ class BulkUpdateParametersRequest {
43
+ }
44
+ exports.BulkUpdateParametersRequest = BulkUpdateParametersRequest;
45
+ __decorate([
46
+ (0, class_transformer_1.Expose)(),
47
+ (0, class_validator_1.IsArray)(),
48
+ (0, class_validator_1.ArrayNotEmpty)(),
49
+ (0, class_validator_1.ValidateNested)({ each: true }),
50
+ (0, class_transformer_1.Type)(() => BulkUpdateParameterItem),
51
+ __metadata("design:type", Array)
52
+ ], BulkUpdateParametersRequest.prototype, "parameters", void 0);
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Body de PUT /parameters/:paramType/:key. `value` puede ser null (parámetro pendiente).
3
+ * `reason` opcional en F1; el manager lo exigirá para cambios críticos (modelo-datos §10).
4
+ */
5
+ export declare class UpdateParameterRequest {
6
+ value: string | null;
7
+ reason?: string;
8
+ }
@@ -9,28 +9,25 @@ 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.UpdateParameterRequest = 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 de PUT /parameters/:paramType/:key. `value` puede ser null (parámetro pendiente).
17
+ * `reason` opcional en F1; el manager lo exigirá para cambios críticos (modelo-datos §10).
21
18
  */
22
- class ResendOtpRequest {
19
+ class UpdateParameterRequest {
23
20
  }
24
- exports.ResendOtpRequest = ResendOtpRequest;
21
+ exports.UpdateParameterRequest = UpdateParameterRequest;
25
22
  __decorate([
26
23
  (0, class_transformer_1.Expose)(),
27
- (0, class_validator_1.IsEmail)(),
28
- (0, class_validator_1.IsNotEmpty)(),
24
+ (0, class_validator_1.IsOptional)(),
25
+ (0, class_validator_1.IsString)(),
29
26
  __metadata("design:type", String)
30
- ], ResendOtpRequest.prototype, "email", void 0);
27
+ ], UpdateParameterRequest.prototype, "value", void 0);
31
28
  __decorate([
32
29
  (0, class_transformer_1.Expose)(),
30
+ (0, class_validator_1.IsOptional)(),
33
31
  (0, class_validator_1.IsString)(),
34
- (0, class_validator_1.IsNotEmpty)(),
35
32
  __metadata("design:type", String)
36
- ], ResendOtpRequest.prototype, "tenantId", void 0);
33
+ ], UpdateParameterRequest.prototype, "reason", void 0);
@@ -0,0 +1,28 @@
1
+ import { ModifiableByRoleEnum } from '../../enums/ModifiableByRoleEnum';
2
+ import { ParameterTypeEnum } from '../../enums/ParameterTypeEnum';
3
+ import { ParameterValueTypeEnum } from '../../enums/ParameterValueTypeEnum';
4
+ /** Shape de salida de un parámetro. `effectiveValue` = value ?? defaultValue. */
5
+ export interface ParameterResponse {
6
+ parameterId: string;
7
+ paramType: ParameterTypeEnum;
8
+ key: string;
9
+ value: string | null;
10
+ effectiveValue: string;
11
+ valueType: ParameterValueTypeEnum;
12
+ defaultValue: string;
13
+ description: string;
14
+ modifiableBy: ModifiableByRoleEnum;
15
+ lastModifiedByUserId: string;
16
+ createdAt: string;
17
+ updatedAt: string;
18
+ }
19
+ /** Respuesta de GET /parameters — agrupado por paramType (flow 08.1). */
20
+ export type ParametersByTypeResponse = Partial<Record<ParameterTypeEnum, ParameterResponse[]>>;
21
+ /** Respuesta de POST /private/parameters/bulk-get. */
22
+ export interface BulkGetParametersResponse {
23
+ parameters: ParameterResponse[];
24
+ notFound: {
25
+ paramType: ParameterTypeEnum;
26
+ key: string;
27
+ }[];
28
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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,20 @@
1
+ /**
2
+ * Sub-tipos de parámetro operativo del SOFOM (M6 §8 = 13 + SCORING de §5 = 14).
3
+ * @enum {string}
4
+ */
5
+ export declare enum ParameterTypeEnum {
6
+ CREDIT = "CREDIT",
7
+ WARRANTY = "WARRANTY",
8
+ WELCOME_BONUS = "WELCOME_BONUS",
9
+ MORA_BLOCK = "MORA_BLOCK",
10
+ UNBLOCK = "UNBLOCK",
11
+ PAY_INVESTIGATION = "PAY_INVESTIGATION",
12
+ COLLECTIONS = "COLLECTIONS",
13
+ ANTI_FRAUD = "ANTI_FRAUD",
14
+ REMITTANCE = "REMITTANCE",
15
+ NOTIFICATIONS = "NOTIFICATIONS",
16
+ CROSS_BORDER = "CROSS_BORDER",
17
+ WIZARD = "WIZARD",
18
+ INTEGRATIONS = "INTEGRATIONS",
19
+ SCORING = "SCORING"
20
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParameterTypeEnum = void 0;
4
+ /**
5
+ * Sub-tipos de parámetro operativo del SOFOM (M6 §8 = 13 + SCORING de §5 = 14).
6
+ * @enum {string}
7
+ */
8
+ var ParameterTypeEnum;
9
+ (function (ParameterTypeEnum) {
10
+ ParameterTypeEnum["CREDIT"] = "CREDIT";
11
+ ParameterTypeEnum["WARRANTY"] = "WARRANTY";
12
+ ParameterTypeEnum["WELCOME_BONUS"] = "WELCOME_BONUS";
13
+ ParameterTypeEnum["MORA_BLOCK"] = "MORA_BLOCK";
14
+ ParameterTypeEnum["UNBLOCK"] = "UNBLOCK";
15
+ ParameterTypeEnum["PAY_INVESTIGATION"] = "PAY_INVESTIGATION";
16
+ ParameterTypeEnum["COLLECTIONS"] = "COLLECTIONS";
17
+ ParameterTypeEnum["ANTI_FRAUD"] = "ANTI_FRAUD";
18
+ ParameterTypeEnum["REMITTANCE"] = "REMITTANCE";
19
+ ParameterTypeEnum["NOTIFICATIONS"] = "NOTIFICATIONS";
20
+ ParameterTypeEnum["CROSS_BORDER"] = "CROSS_BORDER";
21
+ ParameterTypeEnum["WIZARD"] = "WIZARD";
22
+ ParameterTypeEnum["INTEGRATIONS"] = "INTEGRATIONS";
23
+ ParameterTypeEnum["SCORING"] = "SCORING";
24
+ })(ParameterTypeEnum || (exports.ParameterTypeEnum = ParameterTypeEnum = {}));
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Tipo lógico del `value` (siempre persistido como string; el consumer parsea según esto).
3
+ * Valores en minúscula por contrato del modelo (modelo-datos §8).
4
+ * @enum {string}
5
+ */
6
+ export declare enum ParameterValueTypeEnum {
7
+ STRING = "string",
8
+ NUMBER = "number",
9
+ BOOLEAN = "boolean",
10
+ JSON = "json"
11
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParameterValueTypeEnum = void 0;
4
+ /**
5
+ * Tipo lógico del `value` (siempre persistido como string; el consumer parsea según esto).
6
+ * Valores en minúscula por contrato del modelo (modelo-datos §8).
7
+ * @enum {string}
8
+ */
9
+ var ParameterValueTypeEnum;
10
+ (function (ParameterValueTypeEnum) {
11
+ ParameterValueTypeEnum["STRING"] = "string";
12
+ ParameterValueTypeEnum["NUMBER"] = "number";
13
+ ParameterValueTypeEnum["BOOLEAN"] = "boolean";
14
+ ParameterValueTypeEnum["JSON"] = "json";
15
+ })(ParameterValueTypeEnum || (exports.ParameterValueTypeEnum = ParameterValueTypeEnum = {}));
@@ -0,0 +1,8 @@
1
+ export * from './enums/ParameterTypeEnum';
2
+ export * from './enums/ParameterValueTypeEnum';
3
+ export * from './enums/ModifiableByRoleEnum';
4
+ export * from './dtos/Parameter';
5
+ export * from './dtos/requests/UpdateParameterRequest';
6
+ export * from './dtos/requests/BulkUpdateParametersRequest';
7
+ export * from './dtos/requests/BulkGetParametersRequest';
8
+ export * from './dtos/responses/ParameterResponse';
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./enums/ParameterTypeEnum"), exports);
18
+ __exportStar(require("./enums/ParameterValueTypeEnum"), exports);
19
+ __exportStar(require("./enums/ModifiableByRoleEnum"), exports);
20
+ // Entity DTOs
21
+ __exportStar(require("./dtos/Parameter"), exports);
22
+ // Request DTOs
23
+ __exportStar(require("./dtos/requests/UpdateParameterRequest"), exports);
24
+ __exportStar(require("./dtos/requests/BulkUpdateParametersRequest"), exports);
25
+ __exportStar(require("./dtos/requests/BulkGetParametersRequest"), exports);
26
+ // Response DTOs
27
+ __exportStar(require("./dtos/responses/ParameterResponse"), exports);
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Tipo de User Pool de Cognito desde la perspectiva del modelo RBAC Fiado.
3
+ *
4
+ * Origen: spec del proyecto `cognito-backoffice-connector` (Fase 0, componente 01
5
+ * documento `docs/superpowers/specs/2026-05-26-cognito-connector-decisiones-pendientes-design.md`).
6
+ *
7
+ * Decisión (TD-003): el proyecto converge en estos 2 valores. El documento componente 03
8
+ * lista 3 valores (incluyendo una variante adicional) pero queda como outlier — la
9
+ * decisión vigente en los 6 docs restantes y en el plan de implementación es 2 valores:
10
+ * - BACKOFFICE_PLATFORM — pool del backoffice de plataforma (cross-tenant)
11
+ * - BACKOFFICE_TENANT — pool por tenant (multi-tenant isolation)
12
+ */
13
+ export declare enum PoolKind {
14
+ BACKOFFICE_PLATFORM = "BACKOFFICE_PLATFORM",
15
+ BACKOFFICE_TENANT = "BACKOFFICE_TENANT"
16
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolKind = void 0;
4
+ /**
5
+ * Tipo de User Pool de Cognito desde la perspectiva del modelo RBAC Fiado.
6
+ *
7
+ * Origen: spec del proyecto `cognito-backoffice-connector` (Fase 0, componente 01
8
+ * documento `docs/superpowers/specs/2026-05-26-cognito-connector-decisiones-pendientes-design.md`).
9
+ *
10
+ * Decisión (TD-003): el proyecto converge en estos 2 valores. El documento componente 03
11
+ * lista 3 valores (incluyendo una variante adicional) pero queda como outlier — la
12
+ * decisión vigente en los 6 docs restantes y en el plan de implementación es 2 valores:
13
+ * - BACKOFFICE_PLATFORM — pool del backoffice de plataforma (cross-tenant)
14
+ * - BACKOFFICE_TENANT — pool por tenant (multi-tenant isolation)
15
+ */
16
+ var PoolKind;
17
+ (function (PoolKind) {
18
+ PoolKind["BACKOFFICE_PLATFORM"] = "BACKOFFICE_PLATFORM";
19
+ PoolKind["BACKOFFICE_TENANT"] = "BACKOFFICE_TENANT";
20
+ })(PoolKind || (exports.PoolKind = PoolKind = {}));
@@ -0,0 +1 @@
1
+ export * from './enums/PoolKind';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./enums/PoolKind"), exports);
@@ -0,0 +1,5 @@
1
+ export declare class CancelFundingReferenceRequest {
2
+ fundingId: string;
3
+ directoryId: string;
4
+ idempotencyKey: string;
5
+ }
@@ -0,0 +1,31 @@
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
+ class CancelFundingReferenceRequest {
15
+ }
16
+ exports.CancelFundingReferenceRequest = CancelFundingReferenceRequest;
17
+ __decorate([
18
+ (0, class_validator_1.IsString)(),
19
+ (0, class_validator_1.MaxLength)(64),
20
+ __metadata("design:type", String)
21
+ ], CancelFundingReferenceRequest.prototype, "fundingId", void 0);
22
+ __decorate([
23
+ (0, class_validator_1.IsString)(),
24
+ (0, class_validator_1.MaxLength)(64),
25
+ __metadata("design:type", String)
26
+ ], CancelFundingReferenceRequest.prototype, "directoryId", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsString)(),
29
+ (0, class_validator_1.MaxLength)(64),
30
+ __metadata("design:type", String)
31
+ ], CancelFundingReferenceRequest.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 CancelFundingReferenceResponse {
4
+ fundingId: string;
5
+ status: BenefitPaymentStatusEnum;
6
+ errorCode?: WalletFundingErrorCodeEnum;
7
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CancelFundingReferenceResponse = void 0;
4
+ class CancelFundingReferenceResponse {
5
+ }
6
+ exports.CancelFundingReferenceResponse = CancelFundingReferenceResponse;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Request del cancel via Centro de Beneficios (spec 13 v2.0).
3
+ * `fundingId` viaja en el path, `directoryId` se resuelve del JWT.
4
+ * `providerModuleName` permite al marketplace rutear al publisher correcto
5
+ * sin tener que persistir el mapping (el wallet-app sabe el moduleName
6
+ * porque vino en la respuesta del authorize).
7
+ */
8
+ export declare class CancelFundingRequest {
9
+ idempotencyKey: string;
10
+ providerModuleName: string;
11
+ }
@@ -0,0 +1,33 @@
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.CancelFundingRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ /**
15
+ * Request del cancel via Centro de Beneficios (spec 13 v2.0).
16
+ * `fundingId` viaja en el path, `directoryId` se resuelve del JWT.
17
+ * `providerModuleName` permite al marketplace rutear al publisher correcto
18
+ * sin tener que persistir el mapping (el wallet-app sabe el moduleName
19
+ * porque vino en la respuesta del authorize).
20
+ */
21
+ class CancelFundingRequest {
22
+ }
23
+ exports.CancelFundingRequest = CancelFundingRequest;
24
+ __decorate([
25
+ (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.MaxLength)(64),
27
+ __metadata("design:type", String)
28
+ ], CancelFundingRequest.prototype, "idempotencyKey", void 0);
29
+ __decorate([
30
+ (0, class_validator_1.IsString)(),
31
+ (0, class_validator_1.MaxLength)(128),
32
+ __metadata("design:type", String)
33
+ ], CancelFundingRequest.prototype, "providerModuleName", void 0);
@@ -0,0 +1,14 @@
1
+ import { BenefitPaymentStatusEnum } from "../../benefitCenter/enums/BenefitPaymentStatusEnum";
2
+ import { WalletFundingErrorCodeEnum } from "../enums/WalletFundingErrorCodeEnum";
3
+ /**
4
+ * Response del cancel via Centro de Beneficios (spec 13 v2.0).
5
+ * `status` reusa `BenefitPaymentStatusEnum` (APPROVED = cancel aceptado;
6
+ * REJECTED = no se pudo) para consistencia con `CancelFundingReferenceResponse`
7
+ * (marketplace ↔ connector). Idempotente: re-cancelar devuelve APPROVED.
8
+ */
9
+ export declare class CancelFundingResponse {
10
+ fundingId: string;
11
+ status: BenefitPaymentStatusEnum;
12
+ errorCode?: WalletFundingErrorCodeEnum;
13
+ message?: string;
14
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CancelFundingResponse = void 0;
4
+ /**
5
+ * Response del cancel via Centro de Beneficios (spec 13 v2.0).
6
+ * `status` reusa `BenefitPaymentStatusEnum` (APPROVED = cancel aceptado;
7
+ * REJECTED = no se pudo) para consistencia con `CancelFundingReferenceResponse`
8
+ * (marketplace ↔ connector). Idempotente: re-cancelar devuelve APPROVED.
9
+ */
10
+ class CancelFundingResponse {
11
+ }
12
+ exports.CancelFundingResponse = CancelFundingResponse;
@@ -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.184.0",
3
+ "version": "3.185.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
package/src/index.ts CHANGED
@@ -103,5 +103,7 @@ export * as EmailVerification from './emailVerification';
103
103
  // RetailOrg: DTOs/enums del lambda retail-org-business (SureKeep Fase 1 — pista Retail).
104
104
  // Dominio de retailers → zonas → tiendas → usuarios retail.
105
105
  export * as RetailOrg from './retailOrg';
106
+ // LoanConfig: DTOs/enums del lambda loan-config-business (comp 09 — parámetros operativos del SOFOM).
107
+ export * as LoanConfig from './loanConfig';
106
108
  export * from './messaging';
107
109
  export * from './complaint';
@@ -0,0 +1,68 @@
1
+ import { Expose } from 'class-transformer';
2
+ import { IsEnum, IsOptional, IsString, Matches } from 'class-validator';
3
+ import { regexIso8601 } from '../../helpers/constans/regex';
4
+ import { ModifiableByRoleEnum } from '../enums/ModifiableByRoleEnum';
5
+ import { ParameterTypeEnum } from '../enums/ParameterTypeEnum';
6
+ import { ParameterValueTypeEnum } from '../enums/ParameterValueTypeEnum';
7
+
8
+ /**
9
+ * Parameter — parámetro operativo clave/valor del SOFOM (M6 §8 + §5).
10
+ * Identidad lógica `parameterId = ${paramType}#${key}` (D1). `value` null → aplica `defaultValue`.
11
+ */
12
+ export class Parameter {
13
+ @Expose()
14
+ @IsString()
15
+ parameterId!: string;
16
+
17
+ @Expose()
18
+ @IsEnum(ParameterTypeEnum)
19
+ paramType!: ParameterTypeEnum;
20
+
21
+ @Expose()
22
+ @IsString()
23
+ key!: string;
24
+
25
+ /** Siempre string; `null` cuando el valor está pendiente de definición por negocio. */
26
+ @Expose()
27
+ @IsOptional()
28
+ @IsString()
29
+ value!: string | null;
30
+
31
+ @Expose()
32
+ @IsEnum(ParameterValueTypeEnum)
33
+ valueType!: ParameterValueTypeEnum;
34
+
35
+ @Expose()
36
+ @IsString()
37
+ defaultValue!: string;
38
+
39
+ @Expose()
40
+ @IsString()
41
+ description!: string;
42
+
43
+ @Expose()
44
+ @IsEnum(ModifiableByRoleEnum)
45
+ modifiableBy!: ModifiableByRoleEnum;
46
+
47
+ @Expose()
48
+ @IsString()
49
+ lastModifiedByUserId!: string;
50
+
51
+ @Expose()
52
+ @IsString()
53
+ createdBy!: string;
54
+
55
+ @Expose()
56
+ @IsString()
57
+ updatedBy!: string;
58
+
59
+ @Expose()
60
+ @IsString()
61
+ @Matches(regexIso8601, { message: 'createdAt debe ser una fecha ISO 8601' })
62
+ createdAt!: string;
63
+
64
+ @Expose()
65
+ @IsString()
66
+ @Matches(regexIso8601, { message: 'updatedAt debe ser una fecha ISO 8601' })
67
+ updatedAt!: string;
68
+ }
@@ -0,0 +1,23 @@
1
+ import { Expose, Type } from 'class-transformer';
2
+ import { ArrayNotEmpty, IsArray, IsEnum, IsString, ValidateNested } from 'class-validator';
3
+ import { ParameterTypeEnum } from '../../enums/ParameterTypeEnum';
4
+
5
+ export class ParameterKeyRef {
6
+ @Expose()
7
+ @IsEnum(ParameterTypeEnum)
8
+ paramType!: ParameterTypeEnum;
9
+
10
+ @Expose()
11
+ @IsString()
12
+ key!: string;
13
+ }
14
+
15
+ /** Body de POST /private/parameters/bulk-get — hot path para consumers (cachean 5 min). */
16
+ export class BulkGetParametersRequest {
17
+ @Expose()
18
+ @IsArray()
19
+ @ArrayNotEmpty()
20
+ @ValidateNested({ each: true })
21
+ @Type(() => ParameterKeyRef)
22
+ items!: ParameterKeyRef[];
23
+ }
@@ -0,0 +1,33 @@
1
+ import { Expose, Type } from 'class-transformer';
2
+ import { ArrayNotEmpty, IsArray, IsEnum, IsOptional, IsString, ValidateNested } from 'class-validator';
3
+ import { ParameterTypeEnum } from '../../enums/ParameterTypeEnum';
4
+
5
+ export class BulkUpdateParameterItem {
6
+ @Expose()
7
+ @IsEnum(ParameterTypeEnum)
8
+ paramType!: ParameterTypeEnum;
9
+
10
+ @Expose()
11
+ @IsString()
12
+ key!: string;
13
+
14
+ @Expose()
15
+ @IsOptional()
16
+ @IsString()
17
+ value!: string | null;
18
+
19
+ @Expose()
20
+ @IsOptional()
21
+ @IsString()
22
+ reason?: string;
23
+ }
24
+
25
+ /** Body de POST /parameters/bulk-update — carga inicial / ajuste masivo. */
26
+ export class BulkUpdateParametersRequest {
27
+ @Expose()
28
+ @IsArray()
29
+ @ArrayNotEmpty()
30
+ @ValidateNested({ each: true })
31
+ @Type(() => BulkUpdateParameterItem)
32
+ parameters!: BulkUpdateParameterItem[];
33
+ }
@@ -0,0 +1,18 @@
1
+ import { Expose } from 'class-transformer';
2
+ import { IsOptional, IsString } from 'class-validator';
3
+
4
+ /**
5
+ * Body de PUT /parameters/:paramType/:key. `value` puede ser null (parámetro pendiente).
6
+ * `reason` opcional en F1; el manager lo exigirá para cambios críticos (modelo-datos §10).
7
+ */
8
+ export class UpdateParameterRequest {
9
+ @Expose()
10
+ @IsOptional()
11
+ @IsString()
12
+ value!: string | null;
13
+
14
+ @Expose()
15
+ @IsOptional()
16
+ @IsString()
17
+ reason?: string;
18
+ }
@@ -0,0 +1,28 @@
1
+ import { ModifiableByRoleEnum } from '../../enums/ModifiableByRoleEnum';
2
+ import { ParameterTypeEnum } from '../../enums/ParameterTypeEnum';
3
+ import { ParameterValueTypeEnum } from '../../enums/ParameterValueTypeEnum';
4
+
5
+ /** Shape de salida de un parámetro. `effectiveValue` = value ?? defaultValue. */
6
+ export interface ParameterResponse {
7
+ parameterId: string;
8
+ paramType: ParameterTypeEnum;
9
+ key: string;
10
+ value: string | null;
11
+ effectiveValue: string;
12
+ valueType: ParameterValueTypeEnum;
13
+ defaultValue: string;
14
+ description: string;
15
+ modifiableBy: ModifiableByRoleEnum;
16
+ lastModifiedByUserId: string;
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ }
20
+
21
+ /** Respuesta de GET /parameters — agrupado por paramType (flow 08.1). */
22
+ export type ParametersByTypeResponse = Partial<Record<ParameterTypeEnum, ParameterResponse[]>>;
23
+
24
+ /** Respuesta de POST /private/parameters/bulk-get. */
25
+ export interface BulkGetParametersResponse {
26
+ parameters: ParameterResponse[];
27
+ notFound: { paramType: ParameterTypeEnum; key: string }[];
28
+ }
@@ -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 enum ModifiableByRoleEnum {
8
+ SUPER_ADMIN = 'super_admin',
9
+ SOFOM_ADMIN = 'sofom_admin',
10
+ RETAILER_ADMIN = 'retailer_admin',
11
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Sub-tipos de parámetro operativo del SOFOM (M6 §8 = 13 + SCORING de §5 = 14).
3
+ * @enum {string}
4
+ */
5
+ export enum ParameterTypeEnum {
6
+ CREDIT = 'CREDIT',
7
+ WARRANTY = 'WARRANTY',
8
+ WELCOME_BONUS = 'WELCOME_BONUS',
9
+ MORA_BLOCK = 'MORA_BLOCK',
10
+ UNBLOCK = 'UNBLOCK',
11
+ PAY_INVESTIGATION = 'PAY_INVESTIGATION',
12
+ COLLECTIONS = 'COLLECTIONS',
13
+ ANTI_FRAUD = 'ANTI_FRAUD',
14
+ REMITTANCE = 'REMITTANCE',
15
+ NOTIFICATIONS = 'NOTIFICATIONS',
16
+ CROSS_BORDER = 'CROSS_BORDER',
17
+ WIZARD = 'WIZARD',
18
+ INTEGRATIONS = 'INTEGRATIONS',
19
+ SCORING = 'SCORING',
20
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Tipo lógico del `value` (siempre persistido como string; el consumer parsea según esto).
3
+ * Valores en minúscula por contrato del modelo (modelo-datos §8).
4
+ * @enum {string}
5
+ */
6
+ export enum ParameterValueTypeEnum {
7
+ STRING = 'string',
8
+ NUMBER = 'number',
9
+ BOOLEAN = 'boolean',
10
+ JSON = 'json',
11
+ }
@@ -0,0 +1,14 @@
1
+ export * from './enums/ParameterTypeEnum';
2
+ export * from './enums/ParameterValueTypeEnum';
3
+ export * from './enums/ModifiableByRoleEnum';
4
+
5
+ // Entity DTOs
6
+ export * from './dtos/Parameter';
7
+
8
+ // Request DTOs
9
+ export * from './dtos/requests/UpdateParameterRequest';
10
+ export * from './dtos/requests/BulkUpdateParametersRequest';
11
+ export * from './dtos/requests/BulkGetParametersRequest';
12
+
13
+ // Response DTOs
14
+ export * from './dtos/responses/ParameterResponse';
@@ -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
- }