@fiado/type-kit 3.593.0 → 3.595.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 (29) hide show
  1. package/_test_/unit/card/WalletProvisioningRequest.test.ts +45 -0
  2. package/bin/card/dtos/Internal/PomeloThreeDSChallengeAnswerRequest.d.ts +5 -0
  3. package/bin/card/dtos/Internal/PomeloThreeDSChallengeAnswerRequest.js +8 -0
  4. package/bin/card/dtos/Internal/PomeloWalletProvisioningRequest.d.ts +8 -0
  5. package/bin/card/dtos/Internal/PomeloWalletProvisioningRequest.js +7 -0
  6. package/bin/card/dtos/ThreeDSChallengeAnswerRequest.d.ts +4 -0
  7. package/bin/card/dtos/ThreeDSChallengeAnswerRequest.js +21 -0
  8. package/bin/card/dtos/WalletProvisioningRequest.d.ts +14 -0
  9. package/bin/card/dtos/WalletProvisioningRequest.js +65 -0
  10. package/bin/card/enums/ThreeDSChallengeResult.d.ts +4 -0
  11. package/bin/card/enums/ThreeDSChallengeResult.js +8 -0
  12. package/bin/card/enums/WalletProvider.d.ts +4 -0
  13. package/bin/card/enums/WalletProvider.js +8 -0
  14. package/bin/card/index.d.ts +6 -0
  15. package/bin/card/index.js +6 -0
  16. package/bin/directory/index.d.ts +1 -1
  17. package/bin/directory/index.js +2 -1
  18. package/package.json +1 -1
  19. package/src/card/dtos/Internal/PomeloThreeDSChallengeAnswerRequest.ts +8 -0
  20. package/src/card/dtos/Internal/PomeloWalletProvisioningRequest.ts +10 -0
  21. package/src/card/dtos/ThreeDSChallengeAnswerRequest.ts +7 -0
  22. package/src/card/dtos/WalletProvisioningRequest.ts +43 -0
  23. package/src/card/enums/ThreeDSChallengeResult.ts +4 -0
  24. package/src/card/enums/WalletProvider.ts +4 -0
  25. package/src/card/index.ts +6 -0
  26. package/src/directory/index.ts +3 -2
  27. /package/bin/directory/{dtos → events}/AccountCreatedEventDetail.d.ts +0 -0
  28. /package/bin/directory/{dtos → events}/AccountCreatedEventDetail.js +0 -0
  29. /package/src/directory/{dtos → events}/AccountCreatedEventDetail.ts +0 -0
@@ -0,0 +1,45 @@
1
+ import 'reflect-metadata';
2
+ import { plainToInstance } from 'class-transformer';
3
+ import { validate } from 'class-validator';
4
+ import { WalletProvisioningRequest } from '../../../src/card/dtos/WalletProvisioningRequest';
5
+ import { ThreeDSChallengeAnswerRequest } from '../../../src/card/dtos/ThreeDSChallengeAnswerRequest';
6
+
7
+ const errorsOf = (cls: any, body: unknown) => validate(plainToInstance(cls, body) as object);
8
+
9
+ describe('WalletProvisioningRequest', () => {
10
+ it('Apple con certificates, nonce y nonceSignature es válido', async () => {
11
+ const body = { wallet: 'APPLE_PAY', apple: { certificates: ['c1', 'c2'], nonce: 'bm9uY2U=', nonceSignature: 'c2ln' } };
12
+ expect(await errorsOf(WalletProvisioningRequest, body)).toHaveLength(0);
13
+ });
14
+
15
+ it('Apple sin el bloque apple es inválido', async () => {
16
+ expect((await errorsOf(WalletProvisioningRequest, { wallet: 'APPLE_PAY' })).length).toBeGreaterThan(0);
17
+ });
18
+
19
+ it('Apple con certificates vacío es inválido', async () => {
20
+ const body = { wallet: 'APPLE_PAY', apple: { certificates: [], nonce: 'n', nonceSignature: 's' } };
21
+ expect((await errorsOf(WalletProvisioningRequest, body)).length).toBeGreaterThan(0);
22
+ });
23
+
24
+ it('Google con serverSessionId es válido', async () => {
25
+ expect(await errorsOf(WalletProvisioningRequest, { wallet: 'GOOGLE_PAY', google: { serverSessionId: 'ssid' } })).toHaveLength(0);
26
+ });
27
+
28
+ it('Google sin serverSessionId es inválido', async () => {
29
+ expect((await errorsOf(WalletProvisioningRequest, { wallet: 'GOOGLE_PAY', google: {} })).length).toBeGreaterThan(0);
30
+ });
31
+
32
+ it('wallet desconocida es inválida', async () => {
33
+ expect((await errorsOf(WalletProvisioningRequest, { wallet: 'SAMSUNG_PAY' })).length).toBeGreaterThan(0);
34
+ });
35
+ });
36
+
37
+ describe('ThreeDSChallengeAnswerRequest', () => {
38
+ it('ACCEPTED es válido', async () => {
39
+ expect(await errorsOf(ThreeDSChallengeAnswerRequest, { result: 'ACCEPTED' })).toHaveLength(0);
40
+ });
41
+
42
+ it('un valor fuera del enum es inválido', async () => {
43
+ expect((await errorsOf(ThreeDSChallengeAnswerRequest, { result: 'MAYBE' })).length).toBeGreaterThan(0);
44
+ });
45
+ });
@@ -0,0 +1,5 @@
1
+ import { ThreeDSChallengeResult } from '../../enums/ThreeDSChallengeResult';
2
+ export declare class PomeloThreeDSChallengeAnswerRequest {
3
+ result: ThreeDSChallengeResult;
4
+ allowedCardIds: string[];
5
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PomeloThreeDSChallengeAnswerRequest = void 0;
4
+ // Body card-business → fiado-pomelo-v2-lambda (POST /threeds/challenges/{id}/answer).
5
+ // allowedCardIds: tarjetas Pomelo (crd-…) del usuario; pomelo-v2 rechaza si el challenge no es de una de ellas.
6
+ class PomeloThreeDSChallengeAnswerRequest {
7
+ }
8
+ exports.PomeloThreeDSChallengeAnswerRequest = PomeloThreeDSChallengeAnswerRequest;
@@ -0,0 +1,8 @@
1
+ import { WalletProvider } from '../../enums/WalletProvider';
2
+ import { AppleWalletProvisioningData, GoogleWalletProvisioningData } from '../WalletProvisioningRequest';
3
+ export declare class PomeloWalletProvisioningRequest {
4
+ cardId: string;
5
+ wallet: WalletProvider;
6
+ apple?: AppleWalletProvisioningData;
7
+ google?: GoogleWalletProvisioningData;
8
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PomeloWalletProvisioningRequest = void 0;
4
+ // Body card-business → fiado-pomelo-v2-lambda (POST /tokenization/provisioning).
5
+ class PomeloWalletProvisioningRequest {
6
+ }
7
+ exports.PomeloWalletProvisioningRequest = PomeloWalletProvisioningRequest;
@@ -0,0 +1,4 @@
1
+ import { ThreeDSChallengeResult } from '../enums/ThreeDSChallengeResult';
2
+ export declare class ThreeDSChallengeAnswerRequest {
3
+ result: ThreeDSChallengeResult;
4
+ }
@@ -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.ThreeDSChallengeAnswerRequest = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const ThreeDSChallengeResult_1 = require("../enums/ThreeDSChallengeResult");
15
+ class ThreeDSChallengeAnswerRequest {
16
+ }
17
+ exports.ThreeDSChallengeAnswerRequest = ThreeDSChallengeAnswerRequest;
18
+ __decorate([
19
+ (0, class_validator_1.IsEnum)(ThreeDSChallengeResult_1.ThreeDSChallengeResult),
20
+ __metadata("design:type", String)
21
+ ], ThreeDSChallengeAnswerRequest.prototype, "result", void 0);
@@ -0,0 +1,14 @@
1
+ import { WalletProvider } from '../enums/WalletProvider';
2
+ export declare class AppleWalletProvisioningData {
3
+ certificates: string[];
4
+ nonce: string;
5
+ nonceSignature: string;
6
+ }
7
+ export declare class GoogleWalletProvisioningData {
8
+ serverSessionId: string;
9
+ }
10
+ export declare class WalletProvisioningRequest {
11
+ wallet: WalletProvider;
12
+ apple?: AppleWalletProvisioningData;
13
+ google?: GoogleWalletProvisioningData;
14
+ }
@@ -0,0 +1,65 @@
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.WalletProvisioningRequest = exports.GoogleWalletProvisioningData = exports.AppleWalletProvisioningData = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const WalletProvider_1 = require("../enums/WalletProvider");
16
+ // Datos que entrega Apple (PKAddPaymentPassViewController) a la app. Se reenvían tal cual a Pomelo.
17
+ class AppleWalletProvisioningData {
18
+ }
19
+ exports.AppleWalletProvisioningData = AppleWalletProvisioningData;
20
+ __decorate([
21
+ (0, class_validator_1.IsArray)(),
22
+ (0, class_validator_1.ArrayNotEmpty)(),
23
+ (0, class_validator_1.IsString)({ each: true }),
24
+ __metadata("design:type", Array)
25
+ ], AppleWalletProvisioningData.prototype, "certificates", void 0);
26
+ __decorate([
27
+ (0, class_validator_1.IsString)(),
28
+ (0, class_validator_1.IsNotEmpty)(),
29
+ __metadata("design:type", String)
30
+ ], AppleWalletProvisioningData.prototype, "nonce", void 0);
31
+ __decorate([
32
+ (0, class_validator_1.IsString)(),
33
+ (0, class_validator_1.IsNotEmpty)(),
34
+ __metadata("design:type", String)
35
+ ], AppleWalletProvisioningData.prototype, "nonceSignature", void 0);
36
+ // Dato que entrega el SDK TapAndPay de Google a la app.
37
+ class GoogleWalletProvisioningData {
38
+ }
39
+ exports.GoogleWalletProvisioningData = GoogleWalletProvisioningData;
40
+ __decorate([
41
+ (0, class_validator_1.IsString)(),
42
+ (0, class_validator_1.IsNotEmpty)(),
43
+ __metadata("design:type", String)
44
+ ], GoogleWalletProvisioningData.prototype, "serverSessionId", void 0);
45
+ class WalletProvisioningRequest {
46
+ }
47
+ exports.WalletProvisioningRequest = WalletProvisioningRequest;
48
+ __decorate([
49
+ (0, class_validator_1.IsEnum)(WalletProvider_1.WalletProvider),
50
+ __metadata("design:type", String)
51
+ ], WalletProvisioningRequest.prototype, "wallet", void 0);
52
+ __decorate([
53
+ (0, class_validator_1.ValidateIf)(o => o.wallet === WalletProvider_1.WalletProvider.APPLE_PAY),
54
+ (0, class_validator_1.IsDefined)(),
55
+ (0, class_validator_1.ValidateNested)(),
56
+ (0, class_transformer_1.Type)(() => AppleWalletProvisioningData),
57
+ __metadata("design:type", AppleWalletProvisioningData)
58
+ ], WalletProvisioningRequest.prototype, "apple", void 0);
59
+ __decorate([
60
+ (0, class_validator_1.ValidateIf)(o => o.wallet === WalletProvider_1.WalletProvider.GOOGLE_PAY),
61
+ (0, class_validator_1.IsDefined)(),
62
+ (0, class_validator_1.ValidateNested)(),
63
+ (0, class_transformer_1.Type)(() => GoogleWalletProvisioningData),
64
+ __metadata("design:type", GoogleWalletProvisioningData)
65
+ ], WalletProvisioningRequest.prototype, "google", void 0);
@@ -0,0 +1,4 @@
1
+ export declare enum ThreeDSChallengeResult {
2
+ ACCEPTED = "ACCEPTED",
3
+ REJECTED = "REJECTED"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThreeDSChallengeResult = void 0;
4
+ var ThreeDSChallengeResult;
5
+ (function (ThreeDSChallengeResult) {
6
+ ThreeDSChallengeResult["ACCEPTED"] = "ACCEPTED";
7
+ ThreeDSChallengeResult["REJECTED"] = "REJECTED";
8
+ })(ThreeDSChallengeResult || (exports.ThreeDSChallengeResult = ThreeDSChallengeResult = {}));
@@ -0,0 +1,4 @@
1
+ export declare enum WalletProvider {
2
+ APPLE_PAY = "APPLE_PAY",
3
+ GOOGLE_PAY = "GOOGLE_PAY"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletProvider = void 0;
4
+ var WalletProvider;
5
+ (function (WalletProvider) {
6
+ WalletProvider["APPLE_PAY"] = "APPLE_PAY";
7
+ WalletProvider["GOOGLE_PAY"] = "GOOGLE_PAY";
8
+ })(WalletProvider || (exports.WalletProvider = WalletProvider = {}));
@@ -74,3 +74,9 @@ export * from './enums/PinChangedStatus';
74
74
  export * from './constants/LevelOneAutoIssuanceTags';
75
75
  export * from './enums/CardAuditActorType';
76
76
  export * from './dtos/CardAuditInfo';
77
+ export * from './enums/WalletProvider';
78
+ export * from './enums/ThreeDSChallengeResult';
79
+ export * from './dtos/WalletProvisioningRequest';
80
+ export * from './dtos/ThreeDSChallengeAnswerRequest';
81
+ export * from './dtos/Internal/PomeloWalletProvisioningRequest';
82
+ export * from './dtos/Internal/PomeloThreeDSChallengeAnswerRequest';
package/bin/card/index.js CHANGED
@@ -93,3 +93,9 @@ __exportStar(require("./enums/PinChangedStatus"), exports);
93
93
  __exportStar(require("./constants/LevelOneAutoIssuanceTags"), exports);
94
94
  __exportStar(require("./enums/CardAuditActorType"), exports);
95
95
  __exportStar(require("./dtos/CardAuditInfo"), exports);
96
+ __exportStar(require("./enums/WalletProvider"), exports);
97
+ __exportStar(require("./enums/ThreeDSChallengeResult"), exports);
98
+ __exportStar(require("./dtos/WalletProvisioningRequest"), exports);
99
+ __exportStar(require("./dtos/ThreeDSChallengeAnswerRequest"), exports);
100
+ __exportStar(require("./dtos/Internal/PomeloWalletProvisioningRequest"), exports);
101
+ __exportStar(require("./dtos/Internal/PomeloThreeDSChallengeAnswerRequest"), exports);
@@ -9,8 +9,8 @@ export * from './dtos/DeleteByDirectoryResponse';
9
9
  export * from './dtos/DirectoryAgentsBySponsorRequest';
10
10
  export * from './dtos/DirectoryAgentsBySponsorResponse';
11
11
  export * from './dtos/DirectoryUserScopeUpdateRequest';
12
- export * from './dtos/AccountCreatedEventDetail';
13
12
  export * from './dtos/External';
14
13
  export * from './enums/TypeOfDirectoryId';
15
14
  export * from './enums/DirectoryBackofficeStatusEnum';
16
15
  export * from './enums/DirectoryUserLifecycleEventTypeEnum';
16
+ export * from './events/AccountCreatedEventDetail';
@@ -26,9 +26,10 @@ __exportStar(require("./dtos/DeleteByDirectoryResponse"), exports);
26
26
  __exportStar(require("./dtos/DirectoryAgentsBySponsorRequest"), exports);
27
27
  __exportStar(require("./dtos/DirectoryAgentsBySponsorResponse"), exports);
28
28
  __exportStar(require("./dtos/DirectoryUserScopeUpdateRequest"), exports);
29
- __exportStar(require("./dtos/AccountCreatedEventDetail"), exports);
30
29
  __exportStar(require("./dtos/External"), exports);
31
30
  //enums
32
31
  __exportStar(require("./enums/TypeOfDirectoryId"), exports);
33
32
  __exportStar(require("./enums/DirectoryBackofficeStatusEnum"), exports);
34
33
  __exportStar(require("./enums/DirectoryUserLifecycleEventTypeEnum"), exports);
34
+ //events
35
+ __exportStar(require("./events/AccountCreatedEventDetail"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.593.0",
3
+ "version": "3.595.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -0,0 +1,8 @@
1
+ import { ThreeDSChallengeResult } from '../../enums/ThreeDSChallengeResult';
2
+
3
+ // Body card-business → fiado-pomelo-v2-lambda (POST /threeds/challenges/{id}/answer).
4
+ // allowedCardIds: tarjetas Pomelo (crd-…) del usuario; pomelo-v2 rechaza si el challenge no es de una de ellas.
5
+ export class PomeloThreeDSChallengeAnswerRequest {
6
+ result: ThreeDSChallengeResult;
7
+ allowedCardIds: string[];
8
+ }
@@ -0,0 +1,10 @@
1
+ import { WalletProvider } from '../../enums/WalletProvider';
2
+ import { AppleWalletProvisioningData, GoogleWalletProvisioningData } from '../WalletProvisioningRequest';
3
+
4
+ // Body card-business → fiado-pomelo-v2-lambda (POST /tokenization/provisioning).
5
+ export class PomeloWalletProvisioningRequest {
6
+ cardId: string; // id de la tarjeta en Pomelo (crd-…)
7
+ wallet: WalletProvider;
8
+ apple?: AppleWalletProvisioningData;
9
+ google?: GoogleWalletProvisioningData;
10
+ }
@@ -0,0 +1,7 @@
1
+ import { IsEnum } from 'class-validator';
2
+ import { ThreeDSChallengeResult } from '../enums/ThreeDSChallengeResult';
3
+
4
+ export class ThreeDSChallengeAnswerRequest {
5
+ @IsEnum(ThreeDSChallengeResult)
6
+ result: ThreeDSChallengeResult;
7
+ }
@@ -0,0 +1,43 @@
1
+ import { Type } from 'class-transformer';
2
+ import { ArrayNotEmpty, IsArray, IsDefined, IsEnum, IsNotEmpty, IsString, ValidateIf, ValidateNested } from 'class-validator';
3
+ import { WalletProvider } from '../enums/WalletProvider';
4
+
5
+ // Datos que entrega Apple (PKAddPaymentPassViewController) a la app. Se reenvían tal cual a Pomelo.
6
+ export class AppleWalletProvisioningData {
7
+ @IsArray()
8
+ @ArrayNotEmpty()
9
+ @IsString({ each: true })
10
+ certificates: string[];
11
+
12
+ @IsString()
13
+ @IsNotEmpty()
14
+ nonce: string;
15
+
16
+ @IsString()
17
+ @IsNotEmpty()
18
+ nonceSignature: string;
19
+ }
20
+
21
+ // Dato que entrega el SDK TapAndPay de Google a la app.
22
+ export class GoogleWalletProvisioningData {
23
+ @IsString()
24
+ @IsNotEmpty()
25
+ serverSessionId: string;
26
+ }
27
+
28
+ export class WalletProvisioningRequest {
29
+ @IsEnum(WalletProvider)
30
+ wallet: WalletProvider;
31
+
32
+ @ValidateIf(o => o.wallet === WalletProvider.APPLE_PAY)
33
+ @IsDefined()
34
+ @ValidateNested()
35
+ @Type(() => AppleWalletProvisioningData)
36
+ apple?: AppleWalletProvisioningData;
37
+
38
+ @ValidateIf(o => o.wallet === WalletProvider.GOOGLE_PAY)
39
+ @IsDefined()
40
+ @ValidateNested()
41
+ @Type(() => GoogleWalletProvisioningData)
42
+ google?: GoogleWalletProvisioningData;
43
+ }
@@ -0,0 +1,4 @@
1
+ export enum ThreeDSChallengeResult {
2
+ ACCEPTED = 'ACCEPTED',
3
+ REJECTED = 'REJECTED',
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum WalletProvider {
2
+ APPLE_PAY = 'APPLE_PAY',
3
+ GOOGLE_PAY = 'GOOGLE_PAY',
4
+ }
package/src/card/index.ts CHANGED
@@ -80,3 +80,9 @@ export * from './enums/PinChangedStatus'
80
80
  export * from './constants/LevelOneAutoIssuanceTags';
81
81
  export * from './enums/CardAuditActorType';
82
82
  export * from './dtos/CardAuditInfo';
83
+ export * from './enums/WalletProvider';
84
+ export * from './enums/ThreeDSChallengeResult';
85
+ export * from './dtos/WalletProvisioningRequest';
86
+ export * from './dtos/ThreeDSChallengeAnswerRequest';
87
+ export * from './dtos/Internal/PomeloWalletProvisioningRequest';
88
+ export * from './dtos/Internal/PomeloThreeDSChallengeAnswerRequest';
@@ -11,8 +11,6 @@ export * from './dtos/DeleteByDirectoryResponse';
11
11
  export * from './dtos/DirectoryAgentsBySponsorRequest';
12
12
  export * from './dtos/DirectoryAgentsBySponsorResponse';
13
13
  export * from './dtos/DirectoryUserScopeUpdateRequest';
14
- export * from './dtos/AccountCreatedEventDetail';
15
-
16
14
  export * from './dtos/External';
17
15
 
18
16
 
@@ -20,3 +18,6 @@ export * from './dtos/External';
20
18
  export * from './enums/TypeOfDirectoryId';
21
19
  export * from './enums/DirectoryBackofficeStatusEnum';
22
20
  export * from './enums/DirectoryUserLifecycleEventTypeEnum';
21
+
22
+ //events
23
+ export * from './events/AccountCreatedEventDetail';