@fiado/type-kit 3.48.0 → 3.50.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 (116) hide show
  1. package/_test_/unit/cognitoBackofficeConnector/dtos/Introspect.test.ts +30 -30
  2. package/_test_/unit/platformRbac/auth/dtos.test.ts +42 -42
  3. package/_test_/unit/platformRbac/dtos/AuthorizeRequest.test.ts +30 -30
  4. package/_test_/unit/platformRbac/dtos/AuthorizeResponse.test.ts +25 -25
  5. package/bin/platformRbac/mfa/VerifyTotpEnrollmentRequest.d.ts +6 -0
  6. package/bin/platformRbac/mfa/VerifyTotpEnrollmentRequest.js +4 -0
  7. package/bin/provider/enums/Provider.d.ts +2 -1
  8. package/bin/provider/enums/Provider.js +1 -0
  9. package/bin/remittance/dtos/RemittancePayRequest.d.ts +20 -0
  10. package/bin/remittance/dtos/RemittancePayRequest.js +43 -0
  11. package/bin/remittance/dtos/RemittancePayResponse.d.ts +23 -0
  12. package/bin/remittance/dtos/RemittancePayResponse.js +14 -0
  13. package/bin/remittance/dtos/index.d.ts +2 -0
  14. package/bin/remittance/dtos/index.js +2 -0
  15. package/package.json +1 -1
  16. package/src/cognitoBackofficeConnector/dtos/InitiateAuthRequest.ts +12 -12
  17. package/src/cognitoBackofficeConnector/dtos/IntrospectRequest.ts +10 -10
  18. package/src/cognitoBackofficeConnector/dtos/IntrospectResponse.ts +10 -10
  19. package/src/cognitoBackofficeConnector/dtos/VerifyPasswordRequest.ts +15 -15
  20. package/src/cognitoBackofficeConnector/dtos/VerifyPasswordResponse.ts +6 -6
  21. package/src/cognitoBackofficeConnector/enums/CognitoChallengeType.ts +24 -24
  22. package/src/cognitoBackofficeConnector/enums/IntrospectFailReason.ts +11 -11
  23. package/src/mdm/README.md +78 -78
  24. package/src/mdm/dtos/DeviceArchiveRequest.ts +14 -14
  25. package/src/mdm/dtos/DeviceArchiveResponse.ts +10 -10
  26. package/src/mdm/dtos/DeviceAutoLockScheduleRequest.ts +18 -18
  27. package/src/mdm/dtos/DeviceAutoLockScheduleResponse.ts +10 -10
  28. package/src/mdm/dtos/DeviceEnrollInitiateResponse.ts +9 -9
  29. package/src/mdm/dtos/DeviceEnrollRequest.ts +38 -38
  30. package/src/mdm/dtos/DeviceEnrollStatusRequest.ts +14 -14
  31. package/src/mdm/dtos/DeviceEnrollStatusResponse.ts +15 -15
  32. package/src/mdm/dtos/DeviceEnrollmentCompletedEvent.ts +8 -8
  33. package/src/mdm/dtos/DeviceLastSeenRequest.ts +9 -9
  34. package/src/mdm/dtos/DeviceLastSeenResponse.ts +9 -9
  35. package/src/mdm/dtos/DeviceLockRequest.ts +46 -46
  36. package/src/mdm/dtos/DeviceLockResponse.ts +12 -12
  37. package/src/mdm/dtos/DeviceLockScreenMessage.ts +14 -14
  38. package/src/mdm/dtos/DeviceLogEntry.ts +5 -5
  39. package/src/mdm/dtos/DeviceLogRequest.ts +19 -19
  40. package/src/mdm/dtos/DeviceLogResponse.ts +10 -10
  41. package/src/mdm/dtos/DeviceNotifyRequest.ts +47 -47
  42. package/src/mdm/dtos/DeviceNotifyResponse.ts +10 -10
  43. package/src/mdm/dtos/DevicePinUnlockRequest.ts +19 -19
  44. package/src/mdm/dtos/DevicePinUnlockResponse.ts +12 -12
  45. package/src/mdm/dtos/DeviceReleaseCompletedEvent.ts +6 -6
  46. package/src/mdm/dtos/DeviceReleaseInitiateResponse.ts +10 -10
  47. package/src/mdm/dtos/DeviceReleaseRequest.ts +24 -24
  48. package/src/mdm/dtos/DeviceReleaseStatusRequest.ts +14 -14
  49. package/src/mdm/dtos/DeviceReleaseStatusResponse.ts +10 -10
  50. package/src/mdm/dtos/DeviceRestrictAppsRequest.ts +19 -19
  51. package/src/mdm/dtos/DeviceRestrictAppsResponse.ts +10 -10
  52. package/src/mdm/dtos/DeviceServiceDeactivateInitiateResponse.ts +9 -9
  53. package/src/mdm/dtos/DeviceServiceDeactivateRequest.ts +19 -19
  54. package/src/mdm/dtos/DeviceServiceDeactivateStatusRequest.ts +14 -14
  55. package/src/mdm/dtos/DeviceServiceDeactivateStatusResponse.ts +10 -10
  56. package/src/mdm/dtos/DeviceStatusRequest.ts +9 -9
  57. package/src/mdm/dtos/DeviceStatusResponse.ts +16 -16
  58. package/src/mdm/dtos/DeviceUnlockRequest.ts +14 -14
  59. package/src/mdm/dtos/DeviceUnlockResponse.ts +10 -10
  60. package/src/mdm/dtos/MdmError.ts +7 -7
  61. package/src/mdm/enums/DeviceEnrollmentModeEnum.ts +4 -4
  62. package/src/mdm/enums/DeviceLockModeEnum.ts +4 -4
  63. package/src/mdm/enums/DeviceNotifyIntensityEnum.ts +4 -4
  64. package/src/mdm/enums/DeviceReleaseReasonEnum.ts +5 -5
  65. package/src/mdm/enums/DeviceServiceDeactivateReasonEnum.ts +5 -5
  66. package/src/mdm/enums/MdmDeviceStatusEnum.ts +10 -10
  67. package/src/mdm/enums/MdmErrorCodeEnum.ts +17 -17
  68. package/src/mdm/enums/MdmOperationStatusEnum.ts +5 -5
  69. package/src/mdm/enums/MdmOperationTypeEnum.ts +15 -15
  70. package/src/mdm/enums/MdmProviderEnum.ts +4 -4
  71. package/src/mdm/index.ts +60 -60
  72. package/src/messagesConnector/dtos/MessagesByDestinationResponse.ts +5 -5
  73. package/src/messagesConnector/dtos/NotificationQueueMessageRequestV2.ts +54 -54
  74. package/src/messagesConnector/dtos/NotificationResponse.ts +19 -19
  75. package/src/messagesConnector/dtos/NotificationsCursorResponse.ts +6 -6
  76. package/src/messagesConnector/dtos/NotificationsPageResponse.ts +10 -10
  77. package/src/messagesConnector/dtos/NotificationsV3Response.ts +5 -5
  78. package/src/messagesConnector/dtos/OtpValidatedResponse.ts +9 -9
  79. package/src/messagesConnector/dtos/SendMessageResponse.ts +10 -10
  80. package/src/messagesConnector/dtos/TemplateMessageCreateRequest.ts +51 -51
  81. package/src/messagesConnector/dtos/TemplateMessageListFiltersRequest.ts +47 -47
  82. package/src/messagesConnector/dtos/TemplateMessageListResponse.ts +16 -16
  83. package/src/messagesConnector/dtos/TemplateMessageResponse.ts +52 -52
  84. package/src/messagesConnector/dtos/TemplateMessageUpdateRequest.ts +39 -39
  85. package/src/messagesConnector/dtos/VerifyOtpResponse.ts +5 -5
  86. package/src/messagesConnector/enums/DeliveryChannelExtendedEnum.ts +5 -5
  87. package/src/messagesConnector/validators/IsStringValueRecord.ts +12 -12
  88. package/src/messagesConnector/validators/IsTemplatePlaceholders.ts +45 -45
  89. package/src/messaging/dtos/MessageDeliveryRequest.ts +29 -29
  90. package/src/messaging/dtos/MessageDeliveryResponse.ts +6 -6
  91. package/src/messaging/enums/ContentTypeEnum.ts +4 -4
  92. package/src/messaging/enums/DeliveryChannelEnum.ts +4 -4
  93. package/src/messaging/index.ts +6 -6
  94. package/src/messaging/validators/IsDestinationByChannel.ts +61 -61
  95. package/src/messaging/validators/IsNotBlank.ts +31 -31
  96. package/src/platformRbac/auth/DefineNextChallengeRequest.ts +25 -25
  97. package/src/platformRbac/auth/DefineNextChallengeResponse.ts +14 -14
  98. package/src/platformRbac/auth/NewPasswordRequest.ts +10 -10
  99. package/src/platformRbac/auth/PrepareChallengeRequest.ts +13 -13
  100. package/src/platformRbac/auth/PrepareChallengeResponse.ts +9 -9
  101. package/src/platformRbac/auth/ResetPasswordRequest.ts +14 -14
  102. package/src/platformRbac/auth/VerifyChallengeRequest.ts +16 -16
  103. package/src/platformRbac/auth/VerifyChallengeResponse.ts +6 -6
  104. package/src/platformRbac/dtos/AuthorizeRequest.ts +14 -14
  105. package/src/platformRbac/dtos/AuthorizeResponse.ts +16 -16
  106. package/src/platformRbac/enums/AuthorizeDenyReason.ts +10 -10
  107. package/src/platformRbac/enums/ChallengeNameEnum.ts +7 -7
  108. package/src/platformRbac/enums/MfaMethodEnum.ts +4 -4
  109. package/src/platformRbac/mfa/ChangeMfaMethodRequest.ts +10 -10
  110. package/src/platformRbac/mfa/EnrollTotpResponse.ts +12 -12
  111. package/src/platformRbac/mfa/MfaStatusResponse.ts +14 -14
  112. package/src/platformRbac/mfa/VerifyTotpEnrollmentRequest.ts +15 -7
  113. package/src/provider/enums/Provider.ts +2 -1
  114. package/src/remittance/dtos/RemittancePayRequest.ts +30 -0
  115. package/src/remittance/dtos/RemittancePayResponse.ts +24 -0
  116. package/src/remittance/dtos/index.ts +2 -0
@@ -1,61 +1,61 @@
1
- import { ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments } from 'class-validator';
2
- import { DeliveryChannelEnum } from '../enums/DeliveryChannelEnum';
3
-
4
- /**
5
- * Valida que `destination` matchee el formato correcto segun el `deliveryChannel`
6
- * declarado en el mismo DTO.
7
- *
8
- * Por que un custom validator en lugar de dos `@ValidateIf` + `@IsEmail`/`@Matches`:
9
- * - `@ValidateIf` afecta a **toda la propiedad**, no solo a los decoradores que
10
- * vienen despues. Cuando se ponen dos `@ValidateIf` consecutivos sobre la
11
- * misma propiedad, el segundo sobrescribe al primero y class-validator
12
- * ignora silenciosamente los validators afectados.
13
- * - Originalmente descubierto en `sns-ses-connector/tests/RUN_LOG.md` T7/T10/T11
14
- * (2026-05-21) — la version anterior del DTO dejaba pasar
15
- * `destination: "12345"` con canal SMS y `destination: "no-es-email"` con
16
- * canal MAIL. Validator migrado del connector al type-kit en 3.29.0 para
17
- * eliminar el DTO_LOCAL del connector y exponer la regla a todos los
18
- * callers de `MessageDeliveryRequest`.
19
- *
20
- * Reglas:
21
- * - Canal `SMS` → `destination` debe matchear E.164: `^\+\d{10,15}$`
22
- * - Canal `MAIL` → `destination` debe matchear formato email
23
- * - Canal invalido o ausente → falla (el `@IsEnum` del DTO genera su propio mensaje aparte)
24
- * - String vacio o whitespace → falla
25
- *
26
- * Uso tipico:
27
- * ```ts
28
- * @Validate(IsDestinationByChannel)
29
- * destination: string;
30
- * ```
31
- */
32
- const E164_REGEX = /^\+\d{10,15}$/;
33
- const EMAIL_REGEX = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
34
-
35
- @ValidatorConstraint({ name: 'IsDestinationByChannel', async: false })
36
- export class IsDestinationByChannel implements ValidatorConstraintInterface {
37
- validate(value: unknown, args: ValidationArguments): boolean {
38
- if (typeof value !== 'string' || value.trim().length === 0) return false;
39
-
40
- const obj = args.object as { deliveryChannel?: unknown };
41
- const channel = obj.deliveryChannel;
42
-
43
- if (channel === DeliveryChannelEnum.SMS) return E164_REGEX.test(value);
44
- if (channel === DeliveryChannelEnum.MAIL) return EMAIL_REGEX.test(value);
45
-
46
- return false;
47
- }
48
-
49
- defaultMessage(args: ValidationArguments): string {
50
- const obj = args.object as { deliveryChannel?: unknown };
51
- const channel = obj.deliveryChannel;
52
-
53
- if (channel === DeliveryChannelEnum.SMS) {
54
- return 'destination debe ser un telefono en formato E.164 (ej. +5215512345678) para canal SMS';
55
- }
56
- if (channel === DeliveryChannelEnum.MAIL) {
57
- return 'destination debe ser un email valido para canal MAIL';
58
- }
59
- return 'destination requerido y debe corresponder al deliveryChannel';
60
- }
61
- }
1
+ import { ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments } from 'class-validator';
2
+ import { DeliveryChannelEnum } from '../enums/DeliveryChannelEnum';
3
+
4
+ /**
5
+ * Valida que `destination` matchee el formato correcto segun el `deliveryChannel`
6
+ * declarado en el mismo DTO.
7
+ *
8
+ * Por que un custom validator en lugar de dos `@ValidateIf` + `@IsEmail`/`@Matches`:
9
+ * - `@ValidateIf` afecta a **toda la propiedad**, no solo a los decoradores que
10
+ * vienen despues. Cuando se ponen dos `@ValidateIf` consecutivos sobre la
11
+ * misma propiedad, el segundo sobrescribe al primero y class-validator
12
+ * ignora silenciosamente los validators afectados.
13
+ * - Originalmente descubierto en `sns-ses-connector/tests/RUN_LOG.md` T7/T10/T11
14
+ * (2026-05-21) — la version anterior del DTO dejaba pasar
15
+ * `destination: "12345"` con canal SMS y `destination: "no-es-email"` con
16
+ * canal MAIL. Validator migrado del connector al type-kit en 3.29.0 para
17
+ * eliminar el DTO_LOCAL del connector y exponer la regla a todos los
18
+ * callers de `MessageDeliveryRequest`.
19
+ *
20
+ * Reglas:
21
+ * - Canal `SMS` → `destination` debe matchear E.164: `^\+\d{10,15}$`
22
+ * - Canal `MAIL` → `destination` debe matchear formato email
23
+ * - Canal invalido o ausente → falla (el `@IsEnum` del DTO genera su propio mensaje aparte)
24
+ * - String vacio o whitespace → falla
25
+ *
26
+ * Uso tipico:
27
+ * ```ts
28
+ * @Validate(IsDestinationByChannel)
29
+ * destination: string;
30
+ * ```
31
+ */
32
+ const E164_REGEX = /^\+\d{10,15}$/;
33
+ const EMAIL_REGEX = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
34
+
35
+ @ValidatorConstraint({ name: 'IsDestinationByChannel', async: false })
36
+ export class IsDestinationByChannel implements ValidatorConstraintInterface {
37
+ validate(value: unknown, args: ValidationArguments): boolean {
38
+ if (typeof value !== 'string' || value.trim().length === 0) return false;
39
+
40
+ const obj = args.object as { deliveryChannel?: unknown };
41
+ const channel = obj.deliveryChannel;
42
+
43
+ if (channel === DeliveryChannelEnum.SMS) return E164_REGEX.test(value);
44
+ if (channel === DeliveryChannelEnum.MAIL) return EMAIL_REGEX.test(value);
45
+
46
+ return false;
47
+ }
48
+
49
+ defaultMessage(args: ValidationArguments): string {
50
+ const obj = args.object as { deliveryChannel?: unknown };
51
+ const channel = obj.deliveryChannel;
52
+
53
+ if (channel === DeliveryChannelEnum.SMS) {
54
+ return 'destination debe ser un telefono en formato E.164 (ej. +5215512345678) para canal SMS';
55
+ }
56
+ if (channel === DeliveryChannelEnum.MAIL) {
57
+ return 'destination debe ser un email valido para canal MAIL';
58
+ }
59
+ return 'destination requerido y debe corresponder al deliveryChannel';
60
+ }
61
+ }
@@ -1,31 +1,31 @@
1
- import { ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments } from 'class-validator';
2
-
3
- /**
4
- * Valida que el valor sea un string con al menos un caracter no-whitespace.
5
- *
6
- * Por que no usar `@IsNotEmpty()` de class-validator:
7
- * - `@IsNotEmpty()` solo rechaza `""`, `null`, `undefined`, `false`, `0`.
8
- * - **No** rechaza strings de solo whitespace (`" "`).
9
- *
10
- * En el sns-ses-connector eso era un bug latente: un `message: " "` pasaba la
11
- * validacion, llegaba al SDK de SNS/SES, y se enviaba un SMS o email con
12
- * contenido vacio al usuario final (y AWS cobraba). Originalmente descubierto
13
- * en `sns-ses-connector/tests/RUN_LOG.md` T8b (2026-05-21). Validator migrado
14
- * al type-kit en 3.29.0 para eliminar el DTO_LOCAL del connector.
15
- *
16
- * Uso tipico:
17
- * ```ts
18
- * @Validate(IsNotBlank)
19
- * message: string;
20
- * ```
21
- */
22
- @ValidatorConstraint({ name: 'IsNotBlank', async: false })
23
- export class IsNotBlank implements ValidatorConstraintInterface {
24
- validate(value: unknown, _args: ValidationArguments): boolean {
25
- return typeof value === 'string' && value.trim().length > 0;
26
- }
27
-
28
- defaultMessage(args: ValidationArguments): string {
29
- return `${args.property} no puede ser vacio ni solo espacios en blanco`;
30
- }
31
- }
1
+ import { ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments } from 'class-validator';
2
+
3
+ /**
4
+ * Valida que el valor sea un string con al menos un caracter no-whitespace.
5
+ *
6
+ * Por que no usar `@IsNotEmpty()` de class-validator:
7
+ * - `@IsNotEmpty()` solo rechaza `""`, `null`, `undefined`, `false`, `0`.
8
+ * - **No** rechaza strings de solo whitespace (`" "`).
9
+ *
10
+ * En el sns-ses-connector eso era un bug latente: un `message: " "` pasaba la
11
+ * validacion, llegaba al SDK de SNS/SES, y se enviaba un SMS o email con
12
+ * contenido vacio al usuario final (y AWS cobraba). Originalmente descubierto
13
+ * en `sns-ses-connector/tests/RUN_LOG.md` T8b (2026-05-21). Validator migrado
14
+ * al type-kit en 3.29.0 para eliminar el DTO_LOCAL del connector.
15
+ *
16
+ * Uso tipico:
17
+ * ```ts
18
+ * @Validate(IsNotBlank)
19
+ * message: string;
20
+ * ```
21
+ */
22
+ @ValidatorConstraint({ name: 'IsNotBlank', async: false })
23
+ export class IsNotBlank implements ValidatorConstraintInterface {
24
+ validate(value: unknown, _args: ValidationArguments): boolean {
25
+ return typeof value === 'string' && value.trim().length > 0;
26
+ }
27
+
28
+ defaultMessage(args: ValidationArguments): string {
29
+ return `${args.property} no puede ser vacio ni solo espacios en blanco`;
30
+ }
31
+ }
@@ -1,25 +1,25 @@
1
- import 'reflect-metadata';
2
- import { Type } from 'class-transformer';
3
- import { IsArray, IsBoolean, IsEnum, IsString, ValidateNested } from 'class-validator';
4
- import { ChallengeNameEnum } from '../enums/ChallengeNameEnum';
5
-
6
- export class ChallengeResultEntry {
7
- @IsEnum(ChallengeNameEnum)
8
- challengeName!: ChallengeNameEnum;
9
-
10
- @IsBoolean()
11
- challengeResult!: boolean;
12
- }
13
-
14
- export class DefineNextChallengeRequest {
15
- @IsString()
16
- cognitoSub!: string;
17
-
18
- @IsBoolean()
19
- userNotFound!: boolean;
20
-
21
- @IsArray()
22
- @ValidateNested({ each: true })
23
- @Type(() => ChallengeResultEntry)
24
- session!: ChallengeResultEntry[];
25
- }
1
+ import 'reflect-metadata';
2
+ import { Type } from 'class-transformer';
3
+ import { IsArray, IsBoolean, IsEnum, IsString, ValidateNested } from 'class-validator';
4
+ import { ChallengeNameEnum } from '../enums/ChallengeNameEnum';
5
+
6
+ export class ChallengeResultEntry {
7
+ @IsEnum(ChallengeNameEnum)
8
+ challengeName!: ChallengeNameEnum;
9
+
10
+ @IsBoolean()
11
+ challengeResult!: boolean;
12
+ }
13
+
14
+ export class DefineNextChallengeRequest {
15
+ @IsString()
16
+ cognitoSub!: string;
17
+
18
+ @IsBoolean()
19
+ userNotFound!: boolean;
20
+
21
+ @IsArray()
22
+ @ValidateNested({ each: true })
23
+ @Type(() => ChallengeResultEntry)
24
+ session!: ChallengeResultEntry[];
25
+ }
@@ -1,14 +1,14 @@
1
- import { IsBoolean, IsEnum, IsOptional } from 'class-validator';
2
- import { ChallengeNameEnum } from '../enums/ChallengeNameEnum';
3
-
4
- export class DefineNextChallengeResponse {
5
- @IsOptional()
6
- @IsEnum(ChallengeNameEnum)
7
- nextChallenge?: ChallengeNameEnum;
8
-
9
- @IsBoolean()
10
- issueTokens!: boolean;
11
-
12
- @IsBoolean()
13
- failAuthentication!: boolean;
14
- }
1
+ import { IsBoolean, IsEnum, IsOptional } from 'class-validator';
2
+ import { ChallengeNameEnum } from '../enums/ChallengeNameEnum';
3
+
4
+ export class DefineNextChallengeResponse {
5
+ @IsOptional()
6
+ @IsEnum(ChallengeNameEnum)
7
+ nextChallenge?: ChallengeNameEnum;
8
+
9
+ @IsBoolean()
10
+ issueTokens!: boolean;
11
+
12
+ @IsBoolean()
13
+ failAuthentication!: boolean;
14
+ }
@@ -1,10 +1,10 @@
1
- import { IsString, MinLength } from 'class-validator';
2
-
3
- export class NewPasswordRequest {
4
- @IsString()
5
- cognitoSub!: string;
6
-
7
- @IsString()
8
- @MinLength(8)
9
- newPassword!: string;
10
- }
1
+ import { IsString, MinLength } from 'class-validator';
2
+
3
+ export class NewPasswordRequest {
4
+ @IsString()
5
+ cognitoSub!: string;
6
+
7
+ @IsString()
8
+ @MinLength(8)
9
+ newPassword!: string;
10
+ }
@@ -1,13 +1,13 @@
1
- import { IsEmail, IsEnum, IsString } from 'class-validator';
2
- import { ChallengeNameEnum } from '../enums/ChallengeNameEnum';
3
-
4
- export class PrepareChallengeRequest {
5
- @IsString()
6
- cognitoSub!: string;
7
-
8
- @IsEnum(ChallengeNameEnum)
9
- challengeName!: ChallengeNameEnum;
10
-
11
- @IsEmail()
12
- email!: string;
13
- }
1
+ import { IsEmail, IsEnum, IsString } from 'class-validator';
2
+ import { ChallengeNameEnum } from '../enums/ChallengeNameEnum';
3
+
4
+ export class PrepareChallengeRequest {
5
+ @IsString()
6
+ cognitoSub!: string;
7
+
8
+ @IsEnum(ChallengeNameEnum)
9
+ challengeName!: ChallengeNameEnum;
10
+
11
+ @IsEmail()
12
+ email!: string;
13
+ }
@@ -1,9 +1,9 @@
1
- import { IsObject, IsString } from 'class-validator';
2
-
3
- export class PrepareChallengeResponse {
4
- @IsString()
5
- publicChallengeParameters!: string;
6
-
7
- @IsObject()
8
- privateChallengeParameters!: Record<string, string>;
9
- }
1
+ import { IsObject, IsString } from 'class-validator';
2
+
3
+ export class PrepareChallengeResponse {
4
+ @IsString()
5
+ publicChallengeParameters!: string;
6
+
7
+ @IsObject()
8
+ privateChallengeParameters!: Record<string, string>;
9
+ }
@@ -1,14 +1,14 @@
1
- import { IsEmail, IsString, Length, MinLength } from 'class-validator';
2
-
3
- export class ResetPasswordRequest {
4
- @IsEmail()
5
- email!: string;
6
-
7
- @IsString()
8
- @Length(6, 6)
9
- otpCode!: string;
10
-
11
- @IsString()
12
- @MinLength(8)
13
- newPassword!: string;
14
- }
1
+ import { IsEmail, IsString, Length, MinLength } from 'class-validator';
2
+
3
+ export class ResetPasswordRequest {
4
+ @IsEmail()
5
+ email!: string;
6
+
7
+ @IsString()
8
+ @Length(6, 6)
9
+ otpCode!: string;
10
+
11
+ @IsString()
12
+ @MinLength(8)
13
+ newPassword!: string;
14
+ }
@@ -1,16 +1,16 @@
1
- import { IsEnum, IsObject, IsString } from 'class-validator';
2
- import { ChallengeNameEnum } from '../enums/ChallengeNameEnum';
3
-
4
- export class VerifyChallengeRequest {
5
- @IsString()
6
- cognitoSub!: string;
7
-
8
- @IsEnum(ChallengeNameEnum)
9
- challengeName!: ChallengeNameEnum;
10
-
11
- @IsString()
12
- challengeAnswer!: string;
13
-
14
- @IsObject()
15
- privateChallengeParameters!: Record<string, string>;
16
- }
1
+ import { IsEnum, IsObject, IsString } from 'class-validator';
2
+ import { ChallengeNameEnum } from '../enums/ChallengeNameEnum';
3
+
4
+ export class VerifyChallengeRequest {
5
+ @IsString()
6
+ cognitoSub!: string;
7
+
8
+ @IsEnum(ChallengeNameEnum)
9
+ challengeName!: ChallengeNameEnum;
10
+
11
+ @IsString()
12
+ challengeAnswer!: string;
13
+
14
+ @IsObject()
15
+ privateChallengeParameters!: Record<string, string>;
16
+ }
@@ -1,6 +1,6 @@
1
- import { IsBoolean } from 'class-validator';
2
-
3
- export class VerifyChallengeResponse {
4
- @IsBoolean()
5
- answerCorrect!: boolean;
6
- }
1
+ import { IsBoolean } from 'class-validator';
2
+
3
+ export class VerifyChallengeResponse {
4
+ @IsBoolean()
5
+ answerCorrect!: boolean;
6
+ }
@@ -1,14 +1,14 @@
1
- import { Expose } from 'class-transformer';
2
- import { IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';
3
- import { PermissionScope } from '../enums/PermissionScope';
4
-
5
- /**
6
- * Input del POST /internal/authorize. El decorador @RequirePermission lo construye:
7
- * token (del cookie session), permission requerida, y scope+scopeRef opcionales.
8
- */
9
- export class AuthorizeRequest {
10
- @Expose() @IsString() @IsNotEmpty() token!: string;
11
- @Expose() @IsString() @IsNotEmpty() permission!: string;
12
- @Expose() @IsOptional() @IsEnum(PermissionScope) scope?: PermissionScope;
13
- @Expose() @IsOptional() @IsString() scopeRef?: string;
14
- }
1
+ import { Expose } from 'class-transformer';
2
+ import { IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';
3
+ import { PermissionScope } from '../enums/PermissionScope';
4
+
5
+ /**
6
+ * Input del POST /internal/authorize. El decorador @RequirePermission lo construye:
7
+ * token (del cookie session), permission requerida, y scope+scopeRef opcionales.
8
+ */
9
+ export class AuthorizeRequest {
10
+ @Expose() @IsString() @IsNotEmpty() token!: string;
11
+ @Expose() @IsString() @IsNotEmpty() permission!: string;
12
+ @Expose() @IsOptional() @IsEnum(PermissionScope) scope?: PermissionScope;
13
+ @Expose() @IsOptional() @IsString() scopeRef?: string;
14
+ }
@@ -1,16 +1,16 @@
1
- import { Expose } from 'class-transformer';
2
- import { IsBoolean, IsEnum, IsOptional } from 'class-validator';
3
- import { AuthorizeDenyReason } from '../enums/AuthorizeDenyReason';
4
- import type { AuthContext } from './AuthContext';
5
-
6
- /**
7
- * Output del POST /internal/authorize. Si allow=true trae el context resuelto
8
- * (para que el decorador lo populé en el request). Si allow=false trae el reason.
9
- * `context` es solo contrato TS de salida (AuthContext es interface, no clase) → SIN @Expose,
10
- * es passthrough; los responses no se validan (fiado-validation-and-dtos § 7).
11
- */
12
- export class AuthorizeResponse {
13
- @Expose() @IsBoolean() allow!: boolean;
14
- @Expose() @IsOptional() @IsEnum(AuthorizeDenyReason) reason?: AuthorizeDenyReason;
15
- context?: AuthContext;
16
- }
1
+ import { Expose } from 'class-transformer';
2
+ import { IsBoolean, IsEnum, IsOptional } from 'class-validator';
3
+ import { AuthorizeDenyReason } from '../enums/AuthorizeDenyReason';
4
+ import type { AuthContext } from './AuthContext';
5
+
6
+ /**
7
+ * Output del POST /internal/authorize. Si allow=true trae el context resuelto
8
+ * (para que el decorador lo populé en el request). Si allow=false trae el reason.
9
+ * `context` es solo contrato TS de salida (AuthContext es interface, no clase) → SIN @Expose,
10
+ * es passthrough; los responses no se validan (fiado-validation-and-dtos § 7).
11
+ */
12
+ export class AuthorizeResponse {
13
+ @Expose() @IsBoolean() allow!: boolean;
14
+ @Expose() @IsOptional() @IsEnum(AuthorizeDenyReason) reason?: AuthorizeDenyReason;
15
+ context?: AuthContext;
16
+ }
@@ -1,10 +1,10 @@
1
- /**
2
- * Razón de denegación del endpoint POST /internal/authorize del platform-rbac-business.
3
- * Consumido por el decorador @RequirePermission del @fiado/gateway-adapter.
4
- */
5
- export enum AuthorizeDenyReason {
6
- INVALID_TOKEN = 'INVALID_TOKEN',
7
- NO_PERMISSION = 'NO_PERMISSION',
8
- SCOPE_DENIED = 'SCOPE_DENIED',
9
- USER_NOT_FOUND = 'USER_NOT_FOUND',
10
- }
1
+ /**
2
+ * Razón de denegación del endpoint POST /internal/authorize del platform-rbac-business.
3
+ * Consumido por el decorador @RequirePermission del @fiado/gateway-adapter.
4
+ */
5
+ export enum AuthorizeDenyReason {
6
+ INVALID_TOKEN = 'INVALID_TOKEN',
7
+ NO_PERMISSION = 'NO_PERMISSION',
8
+ SCOPE_DENIED = 'SCOPE_DENIED',
9
+ USER_NOT_FOUND = 'USER_NOT_FOUND',
10
+ }
@@ -1,7 +1,7 @@
1
- export enum ChallengeNameEnum {
2
- PASSWORD = 'PASSWORD',
3
- EMAIL_OTP = 'EMAIL_OTP',
4
- TOTP = 'TOTP',
5
- NEW_PASSWORD_REQUIRED = 'NEW_PASSWORD_REQUIRED',
6
- RESET_PASSWORD = 'RESET_PASSWORD',
7
- }
1
+ export enum ChallengeNameEnum {
2
+ PASSWORD = 'PASSWORD',
3
+ EMAIL_OTP = 'EMAIL_OTP',
4
+ TOTP = 'TOTP',
5
+ NEW_PASSWORD_REQUIRED = 'NEW_PASSWORD_REQUIRED',
6
+ RESET_PASSWORD = 'RESET_PASSWORD',
7
+ }
@@ -1,4 +1,4 @@
1
- export enum MfaMethodEnum {
2
- EMAIL_OTP = 'EMAIL_OTP',
3
- TOTP = 'TOTP',
4
- }
1
+ export enum MfaMethodEnum {
2
+ EMAIL_OTP = 'EMAIL_OTP',
3
+ TOTP = 'TOTP',
4
+ }
@@ -1,10 +1,10 @@
1
- import { IsEnum, IsString } from 'class-validator';
2
- import { MfaMethodEnum } from '../enums/MfaMethodEnum';
3
-
4
- export class ChangeMfaMethodRequest {
5
- @IsEnum(MfaMethodEnum)
6
- newMethod!: MfaMethodEnum;
7
-
8
- @IsString()
9
- verificationCode!: string;
10
- }
1
+ import { IsEnum, IsString } from 'class-validator';
2
+ import { MfaMethodEnum } from '../enums/MfaMethodEnum';
3
+
4
+ export class ChangeMfaMethodRequest {
5
+ @IsEnum(MfaMethodEnum)
6
+ newMethod!: MfaMethodEnum;
7
+
8
+ @IsString()
9
+ verificationCode!: string;
10
+ }
@@ -1,12 +1,12 @@
1
- import { IsString } from 'class-validator';
2
-
3
- export class EnrollTotpResponse {
4
- @IsString()
5
- qrCodeDataUrl!: string;
6
-
7
- @IsString()
8
- secret!: string;
9
-
10
- @IsString()
11
- issuer!: string;
12
- }
1
+ import { IsString } from 'class-validator';
2
+
3
+ export class EnrollTotpResponse {
4
+ @IsString()
5
+ qrCodeDataUrl!: string;
6
+
7
+ @IsString()
8
+ secret!: string;
9
+
10
+ @IsString()
11
+ issuer!: string;
12
+ }
@@ -1,14 +1,14 @@
1
- import { IsArray, IsEnum, IsNumber } from 'class-validator';
2
- import { MfaMethodEnum } from '../enums/MfaMethodEnum';
3
-
4
- export class MfaStatusResponse {
5
- @IsEnum(MfaMethodEnum)
6
- currentMethod!: MfaMethodEnum;
7
-
8
- @IsArray()
9
- @IsEnum(MfaMethodEnum, { each: true })
10
- availableMethods!: MfaMethodEnum[];
11
-
12
- @IsNumber()
13
- recoveryCodesRemaining!: number;
14
- }
1
+ import { IsArray, IsEnum, IsNumber } from 'class-validator';
2
+ import { MfaMethodEnum } from '../enums/MfaMethodEnum';
3
+
4
+ export class MfaStatusResponse {
5
+ @IsEnum(MfaMethodEnum)
6
+ currentMethod!: MfaMethodEnum;
7
+
8
+ @IsArray()
9
+ @IsEnum(MfaMethodEnum, { each: true })
10
+ availableMethods!: MfaMethodEnum[];
11
+
12
+ @IsNumber()
13
+ recoveryCodesRemaining!: number;
14
+ }
@@ -1,7 +1,15 @@
1
- import { IsString, Length } from 'class-validator';
2
-
3
- export class VerifyTotpEnrollmentRequest {
4
- @IsString()
5
- @Length(6, 6)
6
- totpCode!: string;
7
- }
1
+ import { IsString, Length } from 'class-validator';
2
+
3
+ export class VerifyTotpEnrollmentRequest {
4
+ @IsString()
5
+ @Length(6, 6)
6
+ totpCode!: string;
7
+
8
+ /**
9
+ * Blob opaco (JWT cifrado con KMS) que devuelve el enroll de totp-security; el cliente
10
+ * lo reenvía en el verify-enrollment para que totp-security recupere el secret y persista.
11
+ * Requerido: sin él totp-security no puede confirmar el enrollment.
12
+ */
13
+ @IsString()
14
+ enrollmentToken!: string;
15
+ }
@@ -7,5 +7,6 @@ export enum Provider {
7
7
  ESTAFETA = "ESTAFETA",
8
8
  STP_SERVICE_PAYMENT = "STP_SERVICE_PAYMENT",
9
9
  MULTICOMM_SERVICE_PAYMENT = "MULTICOMM_SERVICE_PAYMENT",
10
- MULTICENTER_SERVICE_PAYMENT = "MULTICENTER_SERVICE_PAYMENT"
10
+ MULTICENTER_SERVICE_PAYMENT = "MULTICENTER_SERVICE_PAYMENT",
11
+ UNITELLER = "UNITELLER"
11
12
  }