@fiado/type-kit 3.73.0 → 3.74.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 (96) hide show
  1. package/_test_/unit/platformRbac/dtos/CreateTenantRequest.test.ts +14 -0
  2. package/_test_/unit/platformRbac/tenantTypes.test.ts +22 -2
  3. package/bin/platformRbac/dtos/CreateTenantRequest.d.ts +3 -0
  4. package/bin/platformRbac/dtos/CreateTenantRequest.js +7 -0
  5. package/bin/platformRbac/enums/PermissionScope.d.ts +5 -3
  6. package/bin/platformRbac/enums/PermissionScope.js +4 -2
  7. package/bin/platformRbac/tenantTypes.d.ts +2 -1
  8. package/bin/platformRbac/tenantTypes.js +7 -0
  9. package/package.json +1 -1
  10. package/src/platformRbac/dtos/CreateTenantRequest.ts +3 -0
  11. package/src/platformRbac/enums/PermissionScope.ts +4 -2
  12. package/src/platformRbac/tenantTypes.ts +7 -0
  13. package/bin/benefitCenter/dtos/BackofficeLeafOverrideUpsertRequest.d.ts +0 -22
  14. package/bin/benefitCenter/dtos/BackofficeLeafOverrideUpsertRequest.js +0 -91
  15. package/bin/benefitCenter/dtos/FieldOverrideRequest.d.ts +0 -19
  16. package/bin/benefitCenter/dtos/FieldOverrideRequest.js +0 -80
  17. package/bin/benefitCenter/dtos/InputSchemaOverrideRequest.d.ts +0 -9
  18. package/bin/benefitCenter/dtos/InputSchemaOverrideRequest.js +0 -29
  19. package/bin/benefitCenter/enums/LeafOverrideStatusEnum.d.ts +0 -10
  20. package/bin/benefitCenter/enums/LeafOverrideStatusEnum.js +0 -14
  21. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.d.ts +0 -7
  22. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.js +0 -36
  23. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.d.ts +0 -17
  24. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.js +0 -39
  25. package/bin/cognitoConnector/dtos/SignUpBackofficeRequest.d.ts +0 -13
  26. package/bin/cognitoConnector/dtos/SignUpBackofficeRequest.js +0 -71
  27. package/bin/comission-business/dtos/GenerateReportRequest.d.ts +0 -10
  28. package/bin/comission-business/dtos/GenerateReportRequest.js +0 -2
  29. package/bin/comission-business/dtos/GenerateReportResponse.d.ts +0 -6
  30. package/bin/comission-business/dtos/GenerateReportResponse.js +0 -2
  31. package/bin/comission-business/enums/PaymentStatusEnum.d.ts +0 -5
  32. package/bin/comission-business/enums/PaymentStatusEnum.js +0 -9
  33. package/bin/credit/dtos/CreditBannerStateResponse.d.ts +0 -10
  34. package/bin/credit/dtos/CreditBannerStateResponse.js +0 -6
  35. package/bin/credit/dtos/CreditDetailResponse.d.ts +0 -23
  36. package/bin/credit/dtos/CreditDetailResponse.js +0 -6
  37. package/bin/credit/dtos/CreditEligibilityResponse.d.ts +0 -9
  38. package/bin/credit/dtos/CreditEligibilityResponse.js +0 -6
  39. package/bin/credit/dtos/CreditMovementResponse.d.ts +0 -20
  40. package/bin/credit/dtos/CreditMovementResponse.js +0 -9
  41. package/bin/credit/dtos/CreditRequestCreate.d.ts +0 -4
  42. package/bin/credit/dtos/CreditRequestCreate.js +0 -26
  43. package/bin/credit/dtos/CreditRequestResponse.d.ts +0 -7
  44. package/bin/credit/dtos/CreditRequestResponse.js +0 -6
  45. package/bin/credit/dtos/CreditScheduleResponse.d.ts +0 -18
  46. package/bin/credit/dtos/CreditScheduleResponse.js +0 -9
  47. package/bin/credit/dtos/CreditStatementResponse.d.ts +0 -11
  48. package/bin/credit/dtos/CreditStatementResponse.js +0 -9
  49. package/bin/credit/dtos/EarlyPaymentRequest.d.ts +0 -7
  50. package/bin/credit/dtos/EarlyPaymentRequest.js +0 -37
  51. package/bin/credit/dtos/EarlyPaymentResponse.d.ts +0 -11
  52. package/bin/credit/dtos/EarlyPaymentResponse.js +0 -6
  53. package/bin/credit/dtos/internal/CreditBalanceRequest.d.ts +0 -3
  54. package/bin/credit/dtos/internal/CreditBalanceRequest.js +0 -21
  55. package/bin/credit/dtos/internal/CreditCollectionRequest.d.ts +0 -11
  56. package/bin/credit/dtos/internal/CreditCollectionRequest.js +0 -59
  57. package/bin/credit/dtos/internal/CreditCollectionResponse.d.ts +0 -12
  58. package/bin/credit/dtos/internal/CreditCollectionResponse.js +0 -6
  59. package/bin/credit/dtos/internal/CreditDisbursementRequest.d.ts +0 -7
  60. package/bin/credit/dtos/internal/CreditDisbursementRequest.js +0 -43
  61. package/bin/credit/dtos/internal/CreditDisbursementResponse.d.ts +0 -8
  62. package/bin/credit/dtos/internal/CreditDisbursementResponse.js +0 -6
  63. package/bin/credit/dtos/internal/CreditProfileRequest.d.ts +0 -3
  64. package/bin/credit/dtos/internal/CreditProfileRequest.js +0 -23
  65. package/bin/credit/dtos/internal/CreditReversalRequest.d.ts +0 -5
  66. package/bin/credit/dtos/internal/CreditReversalRequest.js +0 -31
  67. package/bin/credit/dtos/internal/CreditReversalResponse.d.ts +0 -7
  68. package/bin/credit/dtos/internal/CreditReversalResponse.js +0 -6
  69. package/bin/credit/dtos/internal/CreditTransferLoancoRequest.d.ts +0 -8
  70. package/bin/credit/dtos/internal/CreditTransferLoancoRequest.js +0 -46
  71. package/bin/credit/dtos/internal/CreditTransferLoancoResponse.d.ts +0 -8
  72. package/bin/credit/dtos/internal/CreditTransferLoancoResponse.js +0 -6
  73. package/bin/credit/dtos/internal/DocumentSignRequest.d.ts +0 -3
  74. package/bin/credit/dtos/internal/DocumentSignRequest.js +0 -21
  75. package/bin/credit/dtos/internal/LienApplyRequest.d.ts +0 -7
  76. package/bin/credit/dtos/internal/LienApplyRequest.js +0 -45
  77. package/bin/credit/enums/CollectionFrequencyEnum.d.ts +0 -5
  78. package/bin/credit/enums/CollectionFrequencyEnum.js +0 -9
  79. package/bin/credit/enums/CreditOperationEnum.d.ts +0 -11
  80. package/bin/credit/enums/CreditOperationEnum.js +0 -15
  81. package/bin/credit/enums/CreditStatusEnum.d.ts +0 -12
  82. package/bin/credit/enums/CreditStatusEnum.js +0 -16
  83. package/bin/credit/enums/DelinquencyLevelEnum.d.ts +0 -9
  84. package/bin/credit/enums/DelinquencyLevelEnum.js +0 -13
  85. package/bin/credit/enums/DocumentTypeEnum.d.ts +0 -8
  86. package/bin/credit/enums/DocumentTypeEnum.js +0 -12
  87. package/bin/credit/enums/OfferStatusEnum.d.ts +0 -8
  88. package/bin/credit/enums/OfferStatusEnum.js +0 -12
  89. package/bin/credit/enums/PaymentTypeEnum.d.ts +0 -9
  90. package/bin/credit/enums/PaymentTypeEnum.js +0 -13
  91. package/bin/credit/enums/ReconciliationStatusEnum.d.ts +0 -6
  92. package/bin/credit/enums/ReconciliationStatusEnum.js +0 -10
  93. package/bin/credit/enums/TransferStatusEnum.d.ts +0 -8
  94. package/bin/credit/enums/TransferStatusEnum.js +0 -12
  95. package/docs/superpowers/plans/2026-05-22-http-client-inversify-v8.md +0 -243
  96. package/docs/superpowers/specs/2026-05-22-inversify-v8-migration-design.md +0 -191
@@ -2,6 +2,7 @@ import 'reflect-metadata';
2
2
  import { plainToInstance } from 'class-transformer';
3
3
  import { validate } from 'class-validator';
4
4
  import { CreateTenantRequest } from '../../../../src/platformRbac/dtos/CreateTenantRequest';
5
+ import { TenantType } from '../../../../src/platformRbac/tenantTypes';
5
6
 
6
7
  describe('CreateTenantRequest', () => {
7
8
  const valid = {
@@ -53,6 +54,19 @@ describe('CreateTenantRequest', () => {
53
54
  expect(errors.some(e => e.property === 'passwordMinLength')).toBe(true);
54
55
  });
55
56
 
57
+ it('valida con tenantType opcional = agents', async () => {
58
+ const dto = plainToInstance(CreateTenantRequest, { ...valid, tenantType: 'agents' });
59
+ const errors = await validate(dto);
60
+ expect(errors).toEqual([]);
61
+ expect(dto.tenantType).toBe(TenantType.AGENTS);
62
+ });
63
+
64
+ it('falla si tenantType no es un TenantType válido', async () => {
65
+ const dto = plainToInstance(CreateTenantRequest, { ...valid, tenantType: 'inexistente' });
66
+ const errors = await validate(dto);
67
+ expect(errors.some(e => e.property === 'tenantType')).toBe(true);
68
+ });
69
+
56
70
  it('NO expone temporaryPassword en el request (campo del response, no del body)', () => {
57
71
  // El request NO debe llevar temporaryPassword (es solo del response, fallback out-of-band F-11).
58
72
  // Con excludeExtraneousValues solo sobreviven las props @Expose() del DTO → el contrato lo excluye.
@@ -1,4 +1,4 @@
1
- import { TenantType, levelsOf, tableSuffixForLevel, scopeRankOrder } from '../../../src/platformRbac/tenantTypes';
1
+ import { TenantType, TENANT_TYPES, levelsOf, tableSuffixForLevel, scopeRankOrder } from '../../../src/platformRbac/tenantTypes';
2
2
  import { PermissionScope } from '../../../src/platformRbac/enums/PermissionScope';
3
3
 
4
4
  describe('tenantTypes', () => {
@@ -6,12 +6,13 @@ describe('tenantTypes', () => {
6
6
  expect(levelsOf(TenantType.RETAIL)).toEqual([PermissionScope.RETAILER, PermissionScope.STORE]);
7
7
  });
8
8
 
9
- it('scopeRankOrder = [PLATFORM, TENANT, RETAILER, STORE] (retail único tipo hoy)', () => {
9
+ it('scopeRankOrder = [PLATFORM, TENANT, RETAILER, STORE, GROUP] (retail + agents)', () => {
10
10
  expect(scopeRankOrder()).toEqual([
11
11
  PermissionScope.PLATFORM,
12
12
  PermissionScope.TENANT,
13
13
  PermissionScope.RETAILER,
14
14
  PermissionScope.STORE,
15
+ PermissionScope.GROUP,
15
16
  ]);
16
17
  });
17
18
 
@@ -29,4 +30,23 @@ describe('tenantTypes', () => {
29
30
  const order = scopeRankOrder();
30
31
  expect(new Set(order).size).toBe(order.length);
31
32
  });
33
+
34
+ it('agents define un único nivel GROUP debajo de TENANT', () => {
35
+ expect(levelsOf(TenantType.AGENTS)).toEqual([PermissionScope.GROUP]);
36
+ });
37
+
38
+ it('agents mapea GROUP a su sufijo de tabla SharedGroup', () => {
39
+ expect(TENANT_TYPES[TenantType.AGENTS].tableSuffix).toEqual({ [PermissionScope.GROUP]: 'SharedGroup' });
40
+ expect(tableSuffixForLevel(TenantType.AGENTS, PermissionScope.GROUP)).toBe('SharedGroup');
41
+ });
42
+
43
+ it('scopeRankOrder incluye GROUP al final (vía los levels de agents, después de los de retail)', () => {
44
+ expect(scopeRankOrder()).toEqual([
45
+ PermissionScope.PLATFORM,
46
+ PermissionScope.TENANT,
47
+ PermissionScope.RETAILER,
48
+ PermissionScope.STORE,
49
+ PermissionScope.GROUP,
50
+ ]);
51
+ });
32
52
  });
@@ -1,4 +1,5 @@
1
1
  import { TokenValidationMode } from '../enums/TokenValidationMode';
2
+ import { TenantType } from '../tenantTypes';
2
3
  /**
3
4
  * Input del POST backoffice de creación de tenant (F-11 — onboarding de tenant en SureKeep).
4
5
  * Consumido por el controller `backofficeCreateTenant` del platform-rbac-business y, a futuro,
@@ -16,4 +17,6 @@ export declare class CreateTenantRequest {
16
17
  mfaRequired?: boolean;
17
18
  passwordMinLength?: number;
18
19
  tokenValidationMode?: TokenValidationMode;
20
+ /** Tipo de tenant a crear. Si se omite, el onboarding aplica su default (hoy: retail). */
21
+ tenantType?: TenantType;
19
22
  }
@@ -13,6 +13,7 @@ exports.CreateTenantRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const TokenValidationMode_1 = require("../enums/TokenValidationMode");
16
+ const tenantTypes_1 = require("../tenantTypes");
16
17
  /**
17
18
  * Input del POST backoffice de creación de tenant (F-11 — onboarding de tenant en SureKeep).
18
19
  * Consumido por el controller `backofficeCreateTenant` del platform-rbac-business y, a futuro,
@@ -73,3 +74,9 @@ __decorate([
73
74
  (0, class_validator_1.IsEnum)(TokenValidationMode_1.TokenValidationMode),
74
75
  __metadata("design:type", String)
75
76
  ], CreateTenantRequest.prototype, "tokenValidationMode", void 0);
77
+ __decorate([
78
+ (0, class_transformer_1.Expose)(),
79
+ (0, class_validator_1.IsOptional)(),
80
+ (0, class_validator_1.IsEnum)(tenantTypes_1.TenantType),
81
+ __metadata("design:type", String)
82
+ ], CreateTenantRequest.prototype, "tenantType", void 0);
@@ -1,10 +1,12 @@
1
1
  /**
2
- * Jerarquía: PLATFORM > TENANT > RETAILER > STORE.
3
- * Componente 01 spec copia exacta.
2
+ * Jerarquía retail: PLATFORM > TENANT > RETAILER > STORE.
3
+ * Jerarquía agents: PLATFORM > TENANT > GROUP.
4
+ * Componente 01 spec.
4
5
  */
5
6
  export declare enum PermissionScope {
6
7
  PLATFORM = "PLATFORM",
7
8
  TENANT = "TENANT",
8
9
  RETAILER = "RETAILER",
9
- STORE = "STORE"
10
+ STORE = "STORE",
11
+ GROUP = "GROUP"
10
12
  }
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PermissionScope = void 0;
4
4
  /**
5
- * Jerarquía: PLATFORM > TENANT > RETAILER > STORE.
6
- * Componente 01 spec copia exacta.
5
+ * Jerarquía retail: PLATFORM > TENANT > RETAILER > STORE.
6
+ * Jerarquía agents: PLATFORM > TENANT > GROUP.
7
+ * Componente 01 spec.
7
8
  */
8
9
  var PermissionScope;
9
10
  (function (PermissionScope) {
@@ -11,4 +12,5 @@ var PermissionScope;
11
12
  PermissionScope["TENANT"] = "TENANT";
12
13
  PermissionScope["RETAILER"] = "RETAILER";
13
14
  PermissionScope["STORE"] = "STORE";
15
+ PermissionScope["GROUP"] = "GROUP";
14
16
  })(PermissionScope || (exports.PermissionScope = PermissionScope = {}));
@@ -4,7 +4,8 @@ import { PermissionScope } from './enums/PermissionScope';
4
4
  * jerarquía de niveles DEBAJO de TENANT (data-driven). Hoy solo existe `retail`.
5
5
  */
6
6
  export declare enum TenantType {
7
- RETAIL = "retail"
7
+ RETAIL = "retail",
8
+ AGENTS = "agents"
8
9
  }
9
10
  interface TenantTypeDef {
10
11
  displayName: string;
@@ -12,6 +12,7 @@ const PermissionScope_1 = require("./enums/PermissionScope");
12
12
  var TenantType;
13
13
  (function (TenantType) {
14
14
  TenantType["RETAIL"] = "retail";
15
+ TenantType["AGENTS"] = "agents";
15
16
  })(TenantType || (exports.TenantType = TenantType = {}));
16
17
  exports.TENANT_TYPES = {
17
18
  [TenantType.RETAIL]: {
@@ -22,6 +23,12 @@ exports.TENANT_TYPES = {
22
23
  [PermissionScope_1.PermissionScope.STORE]: 'SharedStore',
23
24
  },
24
25
  },
26
+ // Fiado Agents — un único nivel GROUP debajo de TENANT.
27
+ [TenantType.AGENTS]: {
28
+ displayName: 'Agents',
29
+ levels: [PermissionScope_1.PermissionScope.GROUP],
30
+ tableSuffix: { [PermissionScope_1.PermissionScope.GROUP]: 'SharedGroup' },
31
+ },
25
32
  };
26
33
  function levelsOf(type) {
27
34
  return exports.TENANT_TYPES[type].levels;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.73.0",
3
+ "version": "3.74.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -1,6 +1,7 @@
1
1
  import { Expose } from 'class-transformer';
2
2
  import { IsBoolean, IsEmail, IsEnum, IsInt, IsOptional, IsString, Matches, Min } from 'class-validator';
3
3
  import { TokenValidationMode } from '../enums/TokenValidationMode';
4
+ import { TenantType } from '../tenantTypes';
4
5
 
5
6
  /**
6
7
  * Input del POST backoffice de creación de tenant (F-11 — onboarding de tenant en SureKeep).
@@ -19,4 +20,6 @@ export class CreateTenantRequest {
19
20
  @Expose() @IsOptional() @IsBoolean() mfaRequired?: boolean;
20
21
  @Expose() @IsOptional() @IsInt() @Min(8) passwordMinLength?: number;
21
22
  @Expose() @IsOptional() @IsEnum(TokenValidationMode) tokenValidationMode?: TokenValidationMode;
23
+ /** Tipo de tenant a crear. Si se omite, el onboarding aplica su default (hoy: retail). */
24
+ @Expose() @IsOptional() @IsEnum(TenantType) tenantType?: TenantType;
22
25
  }
@@ -1,10 +1,12 @@
1
1
  /**
2
- * Jerarquía: PLATFORM > TENANT > RETAILER > STORE.
3
- * Componente 01 spec copia exacta.
2
+ * Jerarquía retail: PLATFORM > TENANT > RETAILER > STORE.
3
+ * Jerarquía agents: PLATFORM > TENANT > GROUP.
4
+ * Componente 01 spec.
4
5
  */
5
6
  export enum PermissionScope {
6
7
  PLATFORM = 'PLATFORM',
7
8
  TENANT = 'TENANT',
8
9
  RETAILER = 'RETAILER',
9
10
  STORE = 'STORE',
11
+ GROUP = 'GROUP',
10
12
  }
@@ -6,6 +6,7 @@ import { PermissionScope } from './enums/PermissionScope';
6
6
  */
7
7
  export enum TenantType {
8
8
  RETAIL = 'retail',
9
+ AGENTS = 'agents',
9
10
  }
10
11
 
11
12
  interface TenantTypeDef {
@@ -25,6 +26,12 @@ export const TENANT_TYPES: Record<TenantType, TenantTypeDef> = {
25
26
  [PermissionScope.STORE]: 'SharedStore',
26
27
  },
27
28
  },
29
+ // Fiado Agents — un único nivel GROUP debajo de TENANT.
30
+ [TenantType.AGENTS]: {
31
+ displayName: 'Agents',
32
+ levels: [PermissionScope.GROUP],
33
+ tableSuffix: { [PermissionScope.GROUP]: 'SharedGroup' },
34
+ },
28
35
  };
29
36
 
30
37
  export function levelsOf(type: TenantType): PermissionScope[] {
@@ -1,22 +0,0 @@
1
- import { InputSchemaOverrideRequest } from "./InputSchemaOverrideRequest";
2
- /**
3
- * Body de PUT /backoffice/leaves/{leafId}. Upsert parcial:
4
- * - undefined → no se toca
5
- * - string/number/boolean seteado → pisa el valor previo del override
6
- * - null NO se acepta (para borrar un campo, usar DELETE /fields/{fieldName})
7
- *
8
- * Si todos los campos llegan undefined → 400 INVALID_PATCH_PAYLOAD.
9
- */
10
- export declare class BackofficeLeafOverrideUpsertRequest {
11
- serviceName?: string;
12
- logo?: string;
13
- description?: string;
14
- helpText?: string;
15
- serviceOrder?: number;
16
- subcategoryOrder?: number;
17
- enabled?: boolean;
18
- category?: string;
19
- subcategory?: string;
20
- requiresReferenceVerification?: boolean;
21
- inputSchema?: InputSchemaOverrideRequest;
22
- }
@@ -1,91 +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.BackofficeLeafOverrideUpsertRequest = void 0;
13
- const class_validator_1 = require("class-validator");
14
- const class_transformer_1 = require("class-transformer");
15
- const InputSchemaOverrideRequest_1 = require("./InputSchemaOverrideRequest");
16
- /**
17
- * Body de PUT /backoffice/leaves/{leafId}. Upsert parcial:
18
- * - undefined → no se toca
19
- * - string/number/boolean seteado → pisa el valor previo del override
20
- * - null NO se acepta (para borrar un campo, usar DELETE /fields/{fieldName})
21
- *
22
- * Si todos los campos llegan undefined → 400 INVALID_PATCH_PAYLOAD.
23
- */
24
- class BackofficeLeafOverrideUpsertRequest {
25
- }
26
- exports.BackofficeLeafOverrideUpsertRequest = BackofficeLeafOverrideUpsertRequest;
27
- __decorate([
28
- (0, class_validator_1.IsOptional)(),
29
- (0, class_validator_1.IsString)(),
30
- (0, class_validator_1.MaxLength)(120),
31
- __metadata("design:type", String)
32
- ], BackofficeLeafOverrideUpsertRequest.prototype, "serviceName", void 0);
33
- __decorate([
34
- (0, class_validator_1.IsOptional)(),
35
- (0, class_validator_1.IsUrl)({ protocols: ["https"], require_protocol: true }),
36
- (0, class_validator_1.MaxLength)(500),
37
- __metadata("design:type", String)
38
- ], BackofficeLeafOverrideUpsertRequest.prototype, "logo", void 0);
39
- __decorate([
40
- (0, class_validator_1.IsOptional)(),
41
- (0, class_validator_1.IsString)(),
42
- (0, class_validator_1.MaxLength)(2000),
43
- __metadata("design:type", String)
44
- ], BackofficeLeafOverrideUpsertRequest.prototype, "description", void 0);
45
- __decorate([
46
- (0, class_validator_1.IsOptional)(),
47
- (0, class_validator_1.IsString)(),
48
- (0, class_validator_1.MaxLength)(1000),
49
- __metadata("design:type", String)
50
- ], BackofficeLeafOverrideUpsertRequest.prototype, "helpText", void 0);
51
- __decorate([
52
- (0, class_validator_1.IsOptional)(),
53
- (0, class_validator_1.IsInt)(),
54
- (0, class_validator_1.Min)(0),
55
- __metadata("design:type", Number)
56
- ], BackofficeLeafOverrideUpsertRequest.prototype, "serviceOrder", void 0);
57
- __decorate([
58
- (0, class_validator_1.IsOptional)(),
59
- (0, class_validator_1.IsInt)(),
60
- (0, class_validator_1.Min)(0),
61
- __metadata("design:type", Number)
62
- ], BackofficeLeafOverrideUpsertRequest.prototype, "subcategoryOrder", void 0);
63
- __decorate([
64
- (0, class_validator_1.IsOptional)(),
65
- (0, class_validator_1.IsBoolean)(),
66
- __metadata("design:type", Boolean)
67
- ], BackofficeLeafOverrideUpsertRequest.prototype, "enabled", void 0);
68
- __decorate([
69
- (0, class_validator_1.IsOptional)(),
70
- (0, class_validator_1.IsString)(),
71
- (0, class_validator_1.MaxLength)(60),
72
- (0, class_validator_1.Matches)(/^[A-Z][A-Z0-9_ ]*$/, { message: "category must be uppercase with underscores or spaces" }),
73
- __metadata("design:type", String)
74
- ], BackofficeLeafOverrideUpsertRequest.prototype, "category", void 0);
75
- __decorate([
76
- (0, class_validator_1.IsOptional)(),
77
- (0, class_validator_1.IsString)(),
78
- (0, class_validator_1.MaxLength)(60),
79
- __metadata("design:type", String)
80
- ], BackofficeLeafOverrideUpsertRequest.prototype, "subcategory", void 0);
81
- __decorate([
82
- (0, class_validator_1.IsOptional)(),
83
- (0, class_validator_1.IsBoolean)(),
84
- __metadata("design:type", Boolean)
85
- ], BackofficeLeafOverrideUpsertRequest.prototype, "requiresReferenceVerification", void 0);
86
- __decorate([
87
- (0, class_validator_1.IsOptional)(),
88
- (0, class_validator_1.ValidateNested)(),
89
- (0, class_transformer_1.Type)(() => InputSchemaOverrideRequest_1.InputSchemaOverrideRequest),
90
- __metadata("design:type", InputSchemaOverrideRequest_1.InputSchemaOverrideRequest)
91
- ], BackofficeLeafOverrideUpsertRequest.prototype, "inputSchema", void 0);
@@ -1,19 +0,0 @@
1
- import { InputFieldTypeEnum } from "../enums/InputFieldTypeEnum";
2
- import { InputValidation } from "./InputValidation";
3
- import { SelectOption } from "./SelectOption";
4
- /**
5
- * Override parcial de un field individual del `inputSchema` por `key`.
6
- * El admin no puede agregar ni quitar fields — solo editar los existentes.
7
- */
8
- export declare class FieldOverrideRequest {
9
- key: string;
10
- type?: InputFieldTypeEnum;
11
- label?: string;
12
- placeholder?: string;
13
- required?: boolean;
14
- helpImage?: string;
15
- showHelp?: boolean;
16
- options?: SelectOption[];
17
- dependsOn?: string;
18
- validation?: InputValidation;
19
- }
@@ -1,80 +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.FieldOverrideRequest = void 0;
13
- const class_validator_1 = require("class-validator");
14
- const class_transformer_1 = require("class-transformer");
15
- const InputFieldTypeEnum_1 = require("../enums/InputFieldTypeEnum");
16
- const InputValidation_1 = require("./InputValidation");
17
- const SelectOption_1 = require("./SelectOption");
18
- /**
19
- * Override parcial de un field individual del `inputSchema` por `key`.
20
- * El admin no puede agregar ni quitar fields — solo editar los existentes.
21
- */
22
- class FieldOverrideRequest {
23
- }
24
- exports.FieldOverrideRequest = FieldOverrideRequest;
25
- __decorate([
26
- (0, class_validator_1.IsString)(),
27
- (0, class_validator_1.IsNotEmpty)(),
28
- __metadata("design:type", String)
29
- ], FieldOverrideRequest.prototype, "key", void 0);
30
- __decorate([
31
- (0, class_validator_1.IsOptional)(),
32
- (0, class_validator_1.IsEnum)(InputFieldTypeEnum_1.InputFieldTypeEnum),
33
- __metadata("design:type", String)
34
- ], FieldOverrideRequest.prototype, "type", void 0);
35
- __decorate([
36
- (0, class_validator_1.IsOptional)(),
37
- (0, class_validator_1.IsString)(),
38
- (0, class_validator_1.MaxLength)(120),
39
- __metadata("design:type", String)
40
- ], FieldOverrideRequest.prototype, "label", void 0);
41
- __decorate([
42
- (0, class_validator_1.IsOptional)(),
43
- (0, class_validator_1.IsString)(),
44
- (0, class_validator_1.MaxLength)(120),
45
- __metadata("design:type", String)
46
- ], FieldOverrideRequest.prototype, "placeholder", void 0);
47
- __decorate([
48
- (0, class_validator_1.IsOptional)(),
49
- (0, class_validator_1.IsBoolean)(),
50
- __metadata("design:type", Boolean)
51
- ], FieldOverrideRequest.prototype, "required", void 0);
52
- __decorate([
53
- (0, class_validator_1.IsOptional)(),
54
- (0, class_validator_1.IsUrl)({ protocols: ["https"], require_protocol: true }),
55
- __metadata("design:type", String)
56
- ], FieldOverrideRequest.prototype, "helpImage", void 0);
57
- __decorate([
58
- (0, class_validator_1.IsOptional)(),
59
- (0, class_validator_1.IsBoolean)(),
60
- __metadata("design:type", Boolean)
61
- ], FieldOverrideRequest.prototype, "showHelp", void 0);
62
- __decorate([
63
- (0, class_validator_1.IsOptional)(),
64
- (0, class_validator_1.IsArray)(),
65
- (0, class_validator_1.ValidateNested)({ each: true }),
66
- (0, class_transformer_1.Type)(() => SelectOption_1.SelectOption),
67
- __metadata("design:type", Array)
68
- ], FieldOverrideRequest.prototype, "options", void 0);
69
- __decorate([
70
- (0, class_validator_1.IsOptional)(),
71
- (0, class_validator_1.IsString)(),
72
- (0, class_validator_1.MaxLength)(60),
73
- __metadata("design:type", String)
74
- ], FieldOverrideRequest.prototype, "dependsOn", void 0);
75
- __decorate([
76
- (0, class_validator_1.IsOptional)(),
77
- (0, class_validator_1.ValidateNested)(),
78
- (0, class_transformer_1.Type)(() => InputValidation_1.InputValidation),
79
- __metadata("design:type", InputValidation_1.InputValidation)
80
- ], FieldOverrideRequest.prototype, "validation", void 0);
@@ -1,9 +0,0 @@
1
- import { FieldOverrideRequest } from "./FieldOverrideRequest";
2
- /**
3
- * Override del inputSchema completo. El array `fieldOverrides[]` lista overrides
4
- * parciales por `key`. La validación cruzada de que cada `key` exista en el
5
- * inputSchema del conector la hace el manager (no se puede expresar con class-validator).
6
- */
7
- export declare class InputSchemaOverrideRequest {
8
- fieldOverrides: FieldOverrideRequest[];
9
- }
@@ -1,29 +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.InputSchemaOverrideRequest = void 0;
13
- const class_validator_1 = require("class-validator");
14
- const class_transformer_1 = require("class-transformer");
15
- const FieldOverrideRequest_1 = require("./FieldOverrideRequest");
16
- /**
17
- * Override del inputSchema completo. El array `fieldOverrides[]` lista overrides
18
- * parciales por `key`. La validación cruzada de que cada `key` exista en el
19
- * inputSchema del conector la hace el manager (no se puede expresar con class-validator).
20
- */
21
- class InputSchemaOverrideRequest {
22
- }
23
- exports.InputSchemaOverrideRequest = InputSchemaOverrideRequest;
24
- __decorate([
25
- (0, class_validator_1.IsArray)(),
26
- (0, class_validator_1.ValidateNested)({ each: true }),
27
- (0, class_transformer_1.Type)(() => FieldOverrideRequest_1.FieldOverrideRequest),
28
- __metadata("design:type", Array)
29
- ], InputSchemaOverrideRequest.prototype, "fieldOverrides", void 0);
@@ -1,10 +0,0 @@
1
- /**
2
- * Estado de un leaf en el listado del backoffice de overrides.
3
- *
4
- * - ACTIVE: el override (si existe) tiene un base correspondiente en el catálogo del conector.
5
- * - ORPHANED: existe override pero el conector ya no devuelve este leafId — el provider lo retiró.
6
- */
7
- export declare enum LeafOverrideStatusEnum {
8
- ACTIVE = "ACTIVE",
9
- ORPHANED = "ORPHANED"
10
- }
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LeafOverrideStatusEnum = void 0;
4
- /**
5
- * Estado de un leaf en el listado del backoffice de overrides.
6
- *
7
- * - ACTIVE: el override (si existe) tiene un base correspondiente en el catálogo del conector.
8
- * - ORPHANED: existe override pero el conector ya no devuelve este leafId — el provider lo retiró.
9
- */
10
- var LeafOverrideStatusEnum;
11
- (function (LeafOverrideStatusEnum) {
12
- LeafOverrideStatusEnum["ACTIVE"] = "ACTIVE";
13
- LeafOverrideStatusEnum["ORPHANED"] = "ORPHANED";
14
- })(LeafOverrideStatusEnum || (exports.LeafOverrideStatusEnum = LeafOverrideStatusEnum = {}));
@@ -1,7 +0,0 @@
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 {};
@@ -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.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);
@@ -1,17 +0,0 @@
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
- }
@@ -1,39 +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
- 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);
@@ -1,13 +0,0 @@
1
- export declare class SignUpBackofficeRequest {
2
- name: string;
3
- phoneNumber: string;
4
- countryOfBirth: string;
5
- MEX_DebitAccountWish: boolean;
6
- USA_DebitAccountWish: boolean;
7
- countryOfDomicile: string;
8
- myReferralCode?: string;
9
- referralCode?: string;
10
- groupId?: string;
11
- isAgent: boolean;
12
- agentGroupId?: string;
13
- }