@fiado/type-kit 3.51.1 → 3.52.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 (31) hide show
  1. package/bin/benefitCenter/dtos/BackofficeLeafDetailResponse.d.ts +3 -0
  2. package/bin/benefitCenter/dtos/BackofficeLeafListItem.d.ts +1 -0
  3. package/bin/benefitCenter/dtos/BackofficeLeafUpdateRequest.d.ts +6 -2
  4. package/bin/benefitCenter/dtos/BackofficeLeafUpdateRequest.js +10 -2
  5. package/bin/benefitCenter/dtos/ProductItem.d.ts +8 -0
  6. package/bin/benefitCenter/dtos/VerifyEquivalentInfo.d.ts +20 -0
  7. package/bin/benefitCenter/dtos/VerifyEquivalentInfo.js +10 -0
  8. package/bin/benefitCenter/index.d.ts +1 -0
  9. package/bin/benefitCenter/index.js +2 -0
  10. package/bin/card/validations/CardUpdateKeyConstraint.js +2 -2
  11. package/bin/card/validations/IsPhoneNumberConstraint.js +2 -2
  12. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.d.ts +7 -0
  13. package/bin/cognitoBackofficeConnector/dtos/MfaPoolConfig.js +36 -0
  14. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.d.ts +20 -0
  15. package/bin/cognitoBackofficeConnector/dtos/PoolConfigResponse.js +11 -0
  16. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.d.ts +4 -0
  17. package/bin/cognitoBackofficeConnector/dtos/PoolsListResponse.js +6 -0
  18. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.d.ts +17 -0
  19. package/bin/cognitoBackofficeConnector/validators/MfaTypesRequiresOne.js +39 -0
  20. package/bin/index.js +17 -7
  21. package/bin/rbac/enums/PoolKind.d.ts +16 -0
  22. package/bin/rbac/enums/PoolKind.js +20 -0
  23. package/bin/rbac/index.d.ts +1 -0
  24. package/bin/rbac/index.js +17 -0
  25. package/package.json +1 -1
  26. package/src/benefitCenter/dtos/BackofficeLeafDetailResponse.ts +3 -0
  27. package/src/benefitCenter/dtos/BackofficeLeafListItem.ts +2 -0
  28. package/src/benefitCenter/dtos/BackofficeLeafUpdateRequest.ts +7 -2
  29. package/src/benefitCenter/dtos/ProductItem.ts +9 -0
  30. package/src/benefitCenter/dtos/VerifyEquivalentInfo.ts +21 -0
  31. package/src/benefitCenter/index.ts +2 -0
@@ -1,4 +1,5 @@
1
1
  import { ConnectorCatalogItem } from "./ConnectorCatalogItem";
2
+ import { VerifyEquivalentInfo } from "./VerifyEquivalentInfo";
2
3
  /**
3
4
  * Respuesta del detalle de un leaf en el backoffice (v2 in-place).
4
5
  * Devuelve el item del catálogo del conector tal cual — sin paso de merge
@@ -10,4 +11,6 @@ export interface BackofficeLeafDetailResponse {
10
11
  moduleName: string;
11
12
  serviceId: string;
12
13
  item: ConnectorCatalogItem;
14
+ verifyEquivalent: VerifyEquivalentInfo;
15
+ warnings?: string[];
13
16
  }
@@ -21,4 +21,5 @@ export interface BackofficeLeafListItem {
21
21
  countryId: string;
22
22
  serviceOrder: number;
23
23
  subcategoryOrder: number;
24
+ requiresReferenceVerification: boolean;
24
25
  }
@@ -3,9 +3,12 @@
3
3
  * opcionales pero al menos uno debe venir; si el body está vacío el backend
4
4
  * responde 400 INVALID_PATCH_PAYLOAD.
5
5
  *
6
- * Los campos eliminados respecto de v1 (`description`, `helpText`,
7
- * `inputSchema`, `requiresReferenceVerification`) ya no son editables —
6
+ * Los campos `description`, `helpText` e `inputSchema` NO son editables —
8
7
  * vienen derivados del producto en el mapper del conector.
8
+ *
9
+ * `requiresReferenceVerification` SÍ es editable: es un toggle a nivel
10
+ * servicio que el backend traduce a `verificateReference` en TODOS los
11
+ * productos del servicio (el derivado se recalcula solo en el siguiente read).
9
12
  */
10
13
  export declare class BackofficeLeafUpdateRequest {
11
14
  serviceName?: string;
@@ -15,4 +18,5 @@ export declare class BackofficeLeafUpdateRequest {
15
18
  logo?: string;
16
19
  serviceOrder?: number;
17
20
  subcategoryOrder?: number;
21
+ requiresReferenceVerification?: boolean;
18
22
  }
@@ -16,9 +16,12 @@ const class_validator_1 = require("class-validator");
16
16
  * opcionales pero al menos uno debe venir; si el body está vacío el backend
17
17
  * responde 400 INVALID_PATCH_PAYLOAD.
18
18
  *
19
- * Los campos eliminados respecto de v1 (`description`, `helpText`,
20
- * `inputSchema`, `requiresReferenceVerification`) ya no son editables —
19
+ * Los campos `description`, `helpText` e `inputSchema` NO son editables —
21
20
  * vienen derivados del producto en el mapper del conector.
21
+ *
22
+ * `requiresReferenceVerification` SÍ es editable: es un toggle a nivel
23
+ * servicio que el backend traduce a `verificateReference` en TODOS los
24
+ * productos del servicio (el derivado se recalcula solo en el siguiente read).
22
25
  */
23
26
  class BackofficeLeafUpdateRequest {
24
27
  }
@@ -64,3 +67,8 @@ __decorate([
64
67
  (0, class_validator_1.IsNumber)(),
65
68
  __metadata("design:type", Number)
66
69
  ], BackofficeLeafUpdateRequest.prototype, "subcategoryOrder", void 0);
70
+ __decorate([
71
+ (0, class_validator_1.IsOptional)(),
72
+ (0, class_validator_1.IsBoolean)(),
73
+ __metadata("design:type", Boolean)
74
+ ], BackofficeLeafUpdateRequest.prototype, "requiresReferenceVerification", void 0);
@@ -19,4 +19,12 @@ export declare class ProductItem {
19
19
  * el producto del catálogo público.
20
20
  */
21
21
  enabled?: boolean;
22
+ /**
23
+ * Si este producto verifica la referencia (consulta de saldo) antes de
24
+ * pagar. Mapea del campo nativo del producto `verificateReference`. Es lo
25
+ * que deriva `requiresReferenceVerification` a nivel servicio
26
+ * (`products.some(p => p.verificateReference === true)`). Opcional/aditivo:
27
+ * ausente o `false` ⇒ no verifica.
28
+ */
29
+ verificateReference?: boolean;
22
30
  }
@@ -0,0 +1,20 @@
1
+ /** Por qué no hay equivalente verificable (cuando `feasible === false`). */
2
+ export declare enum VerifyEquivalentReasonEnum {
3
+ NO_SUBCATEGORY = "NO_SUBCATEGORY",
4
+ NO_EQUIVALENT = "NO_EQUIVALENT",
5
+ NO_VERIFIABLE_PRODUCT = "NO_VERIFIABLE_PRODUCT"
6
+ }
7
+ /**
8
+ * Dónde ocurriría realmente la verificación de referencia de un leaf y si es
9
+ * factible. Para módulos sin verify nativo (multicomm/multicenter) describe el
10
+ * equivalente resuelto por subcategoría (STP). Para módulos con verify nativo
11
+ * (STP) describe su propio servicio/producto.
12
+ */
13
+ export interface VerifyEquivalentInfo {
14
+ feasible: boolean;
15
+ module: string;
16
+ serviceId?: string;
17
+ serviceName?: string;
18
+ productId?: string;
19
+ reason?: VerifyEquivalentReasonEnum;
20
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VerifyEquivalentReasonEnum = void 0;
4
+ /** Por qué no hay equivalente verificable (cuando `feasible === false`). */
5
+ var VerifyEquivalentReasonEnum;
6
+ (function (VerifyEquivalentReasonEnum) {
7
+ VerifyEquivalentReasonEnum["NO_SUBCATEGORY"] = "NO_SUBCATEGORY";
8
+ VerifyEquivalentReasonEnum["NO_EQUIVALENT"] = "NO_EQUIVALENT";
9
+ VerifyEquivalentReasonEnum["NO_VERIFIABLE_PRODUCT"] = "NO_VERIFIABLE_PRODUCT";
10
+ })(VerifyEquivalentReasonEnum || (exports.VerifyEquivalentReasonEnum = VerifyEquivalentReasonEnum = {}));
@@ -74,3 +74,4 @@ export * from "./dtos/BackofficeProductCreateItem";
74
74
  export * from "./dtos/BackofficeLeafCreateRequest";
75
75
  export * from "./dtos/BannerUploadUrlRequest";
76
76
  export * from "./dtos/BannerUploadUrlResponse";
77
+ export * from "./dtos/VerifyEquivalentInfo";
@@ -101,3 +101,5 @@ __exportStar(require("./dtos/BackofficeLeafCreateRequest"), exports);
101
101
  //Banner assets upload (presigned PUT)
102
102
  __exportStar(require("./dtos/BannerUploadUrlRequest"), exports);
103
103
  __exportStar(require("./dtos/BannerUploadUrlResponse"), exports);
104
+ //Backoffice verify toggle + equivalente STP (Fase 1)
105
+ __exportStar(require("./dtos/VerifyEquivalentInfo"), exports);
@@ -6,7 +6,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.IsValueValid = exports.CardUpdateKeyConstraint = exports.IsReasonRequiredForCancelledStatusConstraint = void 0;
9
+ exports.CardUpdateKeyConstraint = exports.IsReasonRequiredForCancelledStatusConstraint = void 0;
10
+ exports.IsValueValid = IsValueValid;
10
11
  const class_validator_1 = require("class-validator");
11
12
  const Status_1 = require("../enums/Status");
12
13
  const UpdateKey_1 = require("../enums/UpdateKey");
@@ -70,4 +71,3 @@ function IsValueValid(validationOptions) {
70
71
  });
71
72
  };
72
73
  }
73
- exports.IsValueValid = IsValueValid;
@@ -6,7 +6,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.IsPhoneNumberFiado = exports.IsPhoneNumberConstraint = void 0;
9
+ exports.IsPhoneNumberConstraint = void 0;
10
+ exports.IsPhoneNumberFiado = IsPhoneNumberFiado;
10
11
  const class_validator_1 = require("class-validator");
11
12
  const regex_1 = require("../../helpers/constans/regex");
12
13
  let IsPhoneNumberConstraint = class IsPhoneNumberConstraint {
@@ -36,4 +37,3 @@ function IsPhoneNumberFiado(validationOptions) {
36
37
  });
37
38
  };
38
39
  }
39
- exports.IsPhoneNumberFiado = IsPhoneNumberFiado;
@@ -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.js CHANGED
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
37
  };
@@ -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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.51.1",
3
+ "version": "3.52.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -1,4 +1,5 @@
1
1
  import { ConnectorCatalogItem } from "./ConnectorCatalogItem";
2
+ import { VerifyEquivalentInfo } from "./VerifyEquivalentInfo";
2
3
 
3
4
  /**
4
5
  * Respuesta del detalle de un leaf en el backoffice (v2 in-place).
@@ -11,4 +12,6 @@ export interface BackofficeLeafDetailResponse {
11
12
  moduleName: string;
12
13
  serviceId: string;
13
14
  item: ConnectorCatalogItem;
15
+ verifyEquivalent: VerifyEquivalentInfo;
16
+ warnings?: string[];
14
17
  }
@@ -24,4 +24,6 @@ export interface BackofficeLeafListItem {
24
24
  countryId: string; // ISO numérico del país destino de la recarga (840 USA, 484 MX, 192 CU, …)
25
25
  serviceOrder: number; // orden del leaf en su subcategory
26
26
  subcategoryOrder: number;// orden de la subcategory en su category
27
+
28
+ requiresReferenceVerification: boolean; // Derivado: ¿algún producto requiere verificación?
27
29
  }
@@ -5,9 +5,12 @@ import { IsBoolean, IsNumber, IsOptional, IsString, Matches, MaxLength } from "c
5
5
  * opcionales pero al menos uno debe venir; si el body está vacío el backend
6
6
  * responde 400 INVALID_PATCH_PAYLOAD.
7
7
  *
8
- * Los campos eliminados respecto de v1 (`description`, `helpText`,
9
- * `inputSchema`, `requiresReferenceVerification`) ya no son editables —
8
+ * Los campos `description`, `helpText` e `inputSchema` NO son editables —
10
9
  * vienen derivados del producto en el mapper del conector.
10
+ *
11
+ * `requiresReferenceVerification` SÍ es editable: es un toggle a nivel
12
+ * servicio que el backend traduce a `verificateReference` en TODOS los
13
+ * productos del servicio (el derivado se recalcula solo en el siguiente read).
11
14
  */
12
15
  export class BackofficeLeafUpdateRequest {
13
16
  @IsOptional() @IsString() @MaxLength(200) serviceName?: string;
@@ -27,4 +30,6 @@ export class BackofficeLeafUpdateRequest {
27
30
  @IsOptional() @IsNumber() serviceOrder?: number;
28
31
 
29
32
  @IsOptional() @IsNumber() subcategoryOrder?: number;
33
+
34
+ @IsOptional() @IsBoolean() requiresReferenceVerification?: boolean;
30
35
  }
@@ -22,4 +22,13 @@ export class ProductItem {
22
22
  * el producto del catálogo público.
23
23
  */
24
24
  enabled?: boolean;
25
+
26
+ /**
27
+ * Si este producto verifica la referencia (consulta de saldo) antes de
28
+ * pagar. Mapea del campo nativo del producto `verificateReference`. Es lo
29
+ * que deriva `requiresReferenceVerification` a nivel servicio
30
+ * (`products.some(p => p.verificateReference === true)`). Opcional/aditivo:
31
+ * ausente o `false` ⇒ no verifica.
32
+ */
33
+ verificateReference?: boolean;
25
34
  }
@@ -0,0 +1,21 @@
1
+ /** Por qué no hay equivalente verificable (cuando `feasible === false`). */
2
+ export enum VerifyEquivalentReasonEnum {
3
+ NO_SUBCATEGORY = "NO_SUBCATEGORY",
4
+ NO_EQUIVALENT = "NO_EQUIVALENT",
5
+ NO_VERIFIABLE_PRODUCT = "NO_VERIFIABLE_PRODUCT",
6
+ }
7
+
8
+ /**
9
+ * Dónde ocurriría realmente la verificación de referencia de un leaf y si es
10
+ * factible. Para módulos sin verify nativo (multicomm/multicenter) describe el
11
+ * equivalente resuelto por subcategoría (STP). Para módulos con verify nativo
12
+ * (STP) describe su propio servicio/producto.
13
+ */
14
+ export interface VerifyEquivalentInfo {
15
+ feasible: boolean;
16
+ module: string;
17
+ serviceId?: string;
18
+ serviceName?: string;
19
+ productId?: string;
20
+ reason?: VerifyEquivalentReasonEnum;
21
+ }
@@ -86,3 +86,5 @@ export * from "./dtos/BackofficeLeafCreateRequest";
86
86
  //Banner assets upload (presigned PUT)
87
87
  export * from "./dtos/BannerUploadUrlRequest";
88
88
  export * from "./dtos/BannerUploadUrlResponse";
89
+ //Backoffice verify toggle + equivalente STP (Fase 1)
90
+ export * from "./dtos/VerifyEquivalentInfo";