@fat-zebra/sdk 1.0.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.
- package/.jest/setup-env-vars.js +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/react/VerifyCard.d.ts +10 -0
- package/dist/react/VerifyCard.js +22 -0
- package/dist/react/VerifyCard.js.map +1 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.js +9 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/url.d.ts +26 -0
- package/dist/react/url.js +63 -0
- package/dist/react/url.js.map +1 -0
- package/dist/react/useFatZebra.d.ts +12 -0
- package/dist/react/useFatZebra.js +148 -0
- package/dist/react/useFatZebra.js.map +1 -0
- package/dist/sca/cardinal.d.ts +28 -0
- package/dist/sca/cardinal.js +110 -0
- package/dist/sca/cardinal.js.map +1 -0
- package/dist/sca/eci-mappings.d.ts +6 -0
- package/dist/sca/eci-mappings.js +63 -0
- package/dist/sca/eci-mappings.js.map +1 -0
- package/dist/sca/index.d.ts +38 -0
- package/dist/sca/index.js +395 -0
- package/dist/sca/index.js.map +1 -0
- package/dist/sca/scenarios/enrollment.d.ts +15 -0
- package/dist/sca/scenarios/enrollment.js +150 -0
- package/dist/sca/scenarios/enrollment.js.map +1 -0
- package/dist/sca/scenarios/index.d.ts +2 -0
- package/dist/sca/scenarios/index.js +8 -0
- package/dist/sca/scenarios/index.js.map +1 -0
- package/dist/sca/scenarios/validation.d.ts +15 -0
- package/dist/sca/scenarios/validation.js +128 -0
- package/dist/sca/scenarios/validation.js.map +1 -0
- package/dist/sca/types.d.ts +158 -0
- package/dist/sca/types.js +57 -0
- package/dist/sca/types.js.map +1 -0
- package/dist/shared/api-gateway-client.d.ts +17 -0
- package/dist/shared/api-gateway-client.js +106 -0
- package/dist/shared/api-gateway-client.js.map +1 -0
- package/dist/shared/bridge-client.d.ts +2 -0
- package/dist/shared/bridge-client.js +24 -0
- package/dist/shared/bridge-client.js.map +1 -0
- package/dist/shared/constants.d.ts +6 -0
- package/dist/shared/constants.js +19 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/event-manager.d.ts +28 -0
- package/dist/shared/event-manager.js +15 -0
- package/dist/shared/event-manager.js.map +1 -0
- package/dist/shared/post-message-client.d.ts +47 -0
- package/dist/shared/post-message-client.js +107 -0
- package/dist/shared/post-message-client.js.map +1 -0
- package/dist/shared/types.d.ts +142 -0
- package/dist/shared/types.js +41 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/shared/util.d.ts +6 -0
- package/dist/shared/util.js +96 -0
- package/dist/shared/util.js.map +1 -0
- package/fatzebra-sdk-1.0.0.tgz +0 -0
- package/index.js +0 -0
- package/jest.config.js +16 -0
- package/package.json +33 -0
- package/src/index.ts +9 -0
- package/src/react/VerifyCard.tsx +36 -0
- package/src/react/index.ts +3 -0
- package/src/react/url.ts +97 -0
- package/src/react/useFatZebra.ts +154 -0
- package/src/sca/__tests__/eci-mappings.test.ts +35 -0
- package/src/sca/__tests__/index.test.ts +514 -0
- package/src/sca/cardinal.ts +136 -0
- package/src/sca/eci-mappings.ts +63 -0
- package/src/sca/index.ts +329 -0
- package/src/sca/scenarios/enrollment.ts +164 -0
- package/src/sca/scenarios/index.ts +2 -0
- package/src/sca/scenarios/validation.ts +142 -0
- package/src/sca/types.ts +206 -0
- package/src/shared/api-gateway-client.ts +71 -0
- package/src/shared/bridge-client.ts +26 -0
- package/src/shared/constants.ts +19 -0
- package/src/shared/event-manager.ts +44 -0
- package/src/shared/post-message-client.test.ts +73 -0
- package/src/shared/post-message-client.ts +125 -0
- package/src/shared/types.test.ts +65 -0
- package/src/shared/types.ts +182 -0
- package/src/shared/util.test.ts +164 -0
- package/src/shared/util.ts +98 -0
- package/tests/helpers/api-gateway-mock.ts +46 -0
- package/tsconfig.json +22 -0
- package/yarn-error.log +2374 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validationScenarios = void 0;
|
|
4
|
+
var types_1 = require("../types");
|
|
5
|
+
var validationScenarios = [
|
|
6
|
+
/***************************************************************/
|
|
7
|
+
/********************** 3DS2 scenarios *************************/
|
|
8
|
+
/***************************************************************/
|
|
9
|
+
{
|
|
10
|
+
// Successful Step-Up Authentication
|
|
11
|
+
description: 'Successful Step-Up Authentication',
|
|
12
|
+
threedsVersion: '2',
|
|
13
|
+
reasonCode: '100',
|
|
14
|
+
veresEnrolled: null,
|
|
15
|
+
pares: types_1.PARes.SUCCESS,
|
|
16
|
+
outcome: {
|
|
17
|
+
authenticationType: 'challenge',
|
|
18
|
+
success: true // liability shift
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
// Unsuccessful Step-Up Authentication
|
|
23
|
+
description: 'Unsuccessful Step-Up Authentication',
|
|
24
|
+
threedsVersion: '2',
|
|
25
|
+
reasonCode: '476',
|
|
26
|
+
veresEnrolled: null,
|
|
27
|
+
pares: types_1.PARes.CANCELED,
|
|
28
|
+
outcome: {
|
|
29
|
+
authenticationType: 'challenge',
|
|
30
|
+
success: false,
|
|
31
|
+
errorCode: types_1.ScaErrorCode.UNSUCCESSFUL_STEPUP_AUTHENTICATION
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
// Unavailable Step-Up Authentication
|
|
36
|
+
description: 'Unavailable Step-Up Authentication',
|
|
37
|
+
threedsVersion: '2',
|
|
38
|
+
reasonCode: '100',
|
|
39
|
+
veresEnrolled: null,
|
|
40
|
+
pares: types_1.PARes.NOT_COMPLETED,
|
|
41
|
+
outcome: {
|
|
42
|
+
authenticationType: 'challenge',
|
|
43
|
+
success: false,
|
|
44
|
+
errorCode: types_1.ScaErrorCode.UNAVAILABLE_STEPUP_AUTHENTICATION
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
/***************************************************************/
|
|
48
|
+
/********************** 3DS1 scenarios *************************/
|
|
49
|
+
/***************************************************************/
|
|
50
|
+
{
|
|
51
|
+
// Successful Step-Up Authentication
|
|
52
|
+
description: 'Successful Authentication',
|
|
53
|
+
threedsVersion: '1',
|
|
54
|
+
reasonCode: '100',
|
|
55
|
+
veresEnrolled: null,
|
|
56
|
+
pares: types_1.PARes.SUCCESS,
|
|
57
|
+
outcome: {
|
|
58
|
+
authenticationType: 'challenge',
|
|
59
|
+
success: true // liability shift
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
// Incomplete Authentication
|
|
64
|
+
description: 'Incomplete Authentication',
|
|
65
|
+
threedsVersion: '1',
|
|
66
|
+
reasonCode: '100',
|
|
67
|
+
veresEnrolled: null,
|
|
68
|
+
pares: types_1.PARes.NOT_COMPLETED,
|
|
69
|
+
outcome: {
|
|
70
|
+
authenticationType: 'challenge',
|
|
71
|
+
success: false,
|
|
72
|
+
errorCode: types_1.ScaErrorCode.UNAVAILABLE_STEPUP_AUTHENTICATION
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
// Attempts Processing
|
|
77
|
+
description: 'Attempts Processing',
|
|
78
|
+
threedsVersion: '1',
|
|
79
|
+
reasonCode: '100',
|
|
80
|
+
veresEnrolled: null,
|
|
81
|
+
pares: types_1.PARes.ATTEMPTED,
|
|
82
|
+
outcome: {
|
|
83
|
+
authenticationType: 'challenge',
|
|
84
|
+
success: true
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
// Unsuccessful Authentication
|
|
89
|
+
description: 'Unsuccessful Authentication',
|
|
90
|
+
threedsVersion: '1',
|
|
91
|
+
reasonCode: '476',
|
|
92
|
+
veresEnrolled: null,
|
|
93
|
+
pares: types_1.PARes.CANCELED,
|
|
94
|
+
outcome: {
|
|
95
|
+
authenticationType: 'challenge',
|
|
96
|
+
success: false,
|
|
97
|
+
errorCode: types_1.ScaErrorCode.UNSUCCESSFUL_STEPUP_AUTHENTICATION
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
// Successful Authentication But Invalid PARes
|
|
102
|
+
description: 'Successful Authentication But Invalid PARes',
|
|
103
|
+
threedsVersion: '1',
|
|
104
|
+
reasonCode: '476',
|
|
105
|
+
veresEnrolled: null,
|
|
106
|
+
pares: null,
|
|
107
|
+
outcome: {
|
|
108
|
+
authenticationType: 'challenge',
|
|
109
|
+
success: false,
|
|
110
|
+
errorCode: types_1.ScaErrorCode.UNSUCCESSFUL_STEPUP_AUTHENTICATION
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
// Authentication Error
|
|
115
|
+
description: 'Authentication Error',
|
|
116
|
+
threedsVersion: '1',
|
|
117
|
+
reasonCode: '476',
|
|
118
|
+
veresEnrolled: null,
|
|
119
|
+
pares: null,
|
|
120
|
+
outcome: {
|
|
121
|
+
authenticationType: 'challenge',
|
|
122
|
+
success: false,
|
|
123
|
+
errorCode: types_1.ScaErrorCode.UNSUCCESSFUL_STEPUP_AUTHENTICATION
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
exports.validationScenarios = validationScenarios;
|
|
128
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/sca/scenarios/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
declare enum ScaErrorCode {
|
|
2
|
+
BYPASSED_AUTHENTICATION = "001",
|
|
3
|
+
AUTHENTICATION_NOT_AVAILABLE_ON_LOOKUP = "002",
|
|
4
|
+
UNAVAILABLE_FRICTIONLESS_AUTHENTICATION = "003",
|
|
5
|
+
UNSUCCESSFUL_FRICTIONLESS_AUTHENTICATION = "004",
|
|
6
|
+
REJECTED_FRICTIONLESS_AUTHENTICATION = "005",
|
|
7
|
+
UNSUCCESSFUL_STEPUP_AUTHENTICATION = "006",
|
|
8
|
+
UNAVAILABLE_STEPUP_AUTHENTICATION = "007"
|
|
9
|
+
}
|
|
10
|
+
declare enum ChallengeWindowSize {
|
|
11
|
+
SIZE_250X400 = "01",
|
|
12
|
+
SIZE_390X400 = "02",
|
|
13
|
+
SIZE_500X600 = "03",
|
|
14
|
+
SIZE_600X400 = "04",
|
|
15
|
+
SIZE_FULL_PAGE = "05"
|
|
16
|
+
}
|
|
17
|
+
interface CreateSCASessionRequest {
|
|
18
|
+
amount: number;
|
|
19
|
+
currency: string;
|
|
20
|
+
hide_card_holder: boolean;
|
|
21
|
+
}
|
|
22
|
+
interface CreateSCASessionResponse {
|
|
23
|
+
jwt: string;
|
|
24
|
+
}
|
|
25
|
+
interface ThreedsData {
|
|
26
|
+
cavv: string;
|
|
27
|
+
par: string;
|
|
28
|
+
sli: string;
|
|
29
|
+
xid: string;
|
|
30
|
+
ver: string;
|
|
31
|
+
directoryServerTxnId: string;
|
|
32
|
+
threedsVersion: string;
|
|
33
|
+
}
|
|
34
|
+
interface EnrollSCARequest {
|
|
35
|
+
amount: number;
|
|
36
|
+
card_token: string;
|
|
37
|
+
currency: string;
|
|
38
|
+
reference: string;
|
|
39
|
+
verification: string;
|
|
40
|
+
session_id: string;
|
|
41
|
+
challenge_window_size: ChallengeWindowSize;
|
|
42
|
+
hide_card_holder: boolean;
|
|
43
|
+
customer?: {
|
|
44
|
+
first_name?: string;
|
|
45
|
+
last_name?: string;
|
|
46
|
+
email?: string;
|
|
47
|
+
address?: string;
|
|
48
|
+
city?: string;
|
|
49
|
+
postcode?: string;
|
|
50
|
+
state?: string;
|
|
51
|
+
country?: string;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
interface EnrollSCAResponse {
|
|
55
|
+
aav: string;
|
|
56
|
+
acs_url: string;
|
|
57
|
+
action: {
|
|
58
|
+
proceed: boolean;
|
|
59
|
+
challenge: boolean;
|
|
60
|
+
frictionless: boolean;
|
|
61
|
+
bypass: boolean;
|
|
62
|
+
};
|
|
63
|
+
authentication_path: string;
|
|
64
|
+
authentication_result: string;
|
|
65
|
+
authentication_status_message: string;
|
|
66
|
+
authentication_transaction_id: string;
|
|
67
|
+
card_bin: string;
|
|
68
|
+
card_type_name: string;
|
|
69
|
+
cavv: string;
|
|
70
|
+
commerce_indicator: CommerceIndicator;
|
|
71
|
+
currency: string;
|
|
72
|
+
decision: 'ACCEPT' | 'REJECT' | 'ERROR';
|
|
73
|
+
directory_server_txn_id: string;
|
|
74
|
+
eci: string;
|
|
75
|
+
enrolled: VEResEnrolled;
|
|
76
|
+
pareq: string;
|
|
77
|
+
pares: PARes;
|
|
78
|
+
proxy_pan: string;
|
|
79
|
+
reason_code: string;
|
|
80
|
+
request_id: string;
|
|
81
|
+
request_token: string;
|
|
82
|
+
ucaf_collection_indicator: string;
|
|
83
|
+
version: string;
|
|
84
|
+
xid: string;
|
|
85
|
+
}
|
|
86
|
+
declare enum CommerceIndicator {
|
|
87
|
+
INTERNET = "internet",
|
|
88
|
+
JS_ATTEMPTED = "js_attempted",
|
|
89
|
+
JS_FAILURE = "js_failure",
|
|
90
|
+
SPA = "spa",
|
|
91
|
+
VBV_ATTEMPTED = "vbv_attempted",
|
|
92
|
+
VBV_FAILURE = "vbv_failure"
|
|
93
|
+
}
|
|
94
|
+
declare enum VEResEnrolled {
|
|
95
|
+
ENROLLED = "Y",
|
|
96
|
+
NOT_ENROLLED = "N",
|
|
97
|
+
UNABLE = "U",
|
|
98
|
+
BYPASSED = "B"
|
|
99
|
+
}
|
|
100
|
+
declare enum PARes {
|
|
101
|
+
ATTEMPTED = "A",
|
|
102
|
+
BYPASSED = "B",
|
|
103
|
+
CANCELED = "N",
|
|
104
|
+
REJECTED = "R",
|
|
105
|
+
NOT_COMPLETED = "U",
|
|
106
|
+
SUCCESS = "Y"
|
|
107
|
+
}
|
|
108
|
+
interface ValidateSCARequest {
|
|
109
|
+
amount: number;
|
|
110
|
+
authentication_transaction_id: string;
|
|
111
|
+
card_token: string;
|
|
112
|
+
currency: string;
|
|
113
|
+
pareq: string;
|
|
114
|
+
reference: string;
|
|
115
|
+
}
|
|
116
|
+
interface ValidateSCAResponse {
|
|
117
|
+
aav: string;
|
|
118
|
+
acs_url: string;
|
|
119
|
+
authentication_result: string;
|
|
120
|
+
card_bin: string;
|
|
121
|
+
cavv: string;
|
|
122
|
+
commerce_indicator: CommerceIndicator;
|
|
123
|
+
decision: 'ACCEPT' | 'REJECT' | 'ERROR';
|
|
124
|
+
directory_server_txn_id: string;
|
|
125
|
+
eci: string;
|
|
126
|
+
enrolled: VEResEnrolled;
|
|
127
|
+
pareq: string;
|
|
128
|
+
pares: PARes;
|
|
129
|
+
reason_code: string;
|
|
130
|
+
request_id: string;
|
|
131
|
+
request_token: string;
|
|
132
|
+
ucaf_collection_indicator: string;
|
|
133
|
+
xid: string;
|
|
134
|
+
version: string;
|
|
135
|
+
}
|
|
136
|
+
interface DecodeSCASessionRequest {
|
|
137
|
+
token: string;
|
|
138
|
+
}
|
|
139
|
+
interface DecodeSCASessionResponse {
|
|
140
|
+
amount: number;
|
|
141
|
+
currency_code: string;
|
|
142
|
+
processor_transaction_id: string;
|
|
143
|
+
consumer_session_id: string;
|
|
144
|
+
reference_id: string;
|
|
145
|
+
type: string;
|
|
146
|
+
action_code: string;
|
|
147
|
+
error_number: number;
|
|
148
|
+
error_description: string;
|
|
149
|
+
errors: string[];
|
|
150
|
+
test: boolean;
|
|
151
|
+
}
|
|
152
|
+
interface GetCardRequest {
|
|
153
|
+
card_token: string;
|
|
154
|
+
}
|
|
155
|
+
interface GetCardResponse {
|
|
156
|
+
bin: string;
|
|
157
|
+
}
|
|
158
|
+
export { ScaErrorCode, ChallengeWindowSize, CreateSCASessionRequest, CreateSCASessionResponse, EnrollSCARequest, EnrollSCAResponse, CommerceIndicator, VEResEnrolled, PARes, ValidateSCARequest, ValidateSCAResponse, DecodeSCASessionRequest, DecodeSCASessionResponse, GetCardRequest, GetCardResponse, ThreedsData, };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PARes = exports.VEResEnrolled = exports.CommerceIndicator = exports.ChallengeWindowSize = exports.ScaErrorCode = void 0;
|
|
4
|
+
var ScaErrorCode;
|
|
5
|
+
(function (ScaErrorCode) {
|
|
6
|
+
ScaErrorCode["BYPASSED_AUTHENTICATION"] = "001";
|
|
7
|
+
ScaErrorCode["AUTHENTICATION_NOT_AVAILABLE_ON_LOOKUP"] = "002";
|
|
8
|
+
ScaErrorCode["UNAVAILABLE_FRICTIONLESS_AUTHENTICATION"] = "003";
|
|
9
|
+
ScaErrorCode["UNSUCCESSFUL_FRICTIONLESS_AUTHENTICATION"] = "004";
|
|
10
|
+
ScaErrorCode["REJECTED_FRICTIONLESS_AUTHENTICATION"] = "005";
|
|
11
|
+
ScaErrorCode["UNSUCCESSFUL_STEPUP_AUTHENTICATION"] = "006";
|
|
12
|
+
ScaErrorCode["UNAVAILABLE_STEPUP_AUTHENTICATION"] = "007";
|
|
13
|
+
})(ScaErrorCode || (exports.ScaErrorCode = ScaErrorCode = {}));
|
|
14
|
+
var ChallengeWindowSize;
|
|
15
|
+
(function (ChallengeWindowSize) {
|
|
16
|
+
ChallengeWindowSize["SIZE_250X400"] = "01";
|
|
17
|
+
ChallengeWindowSize["SIZE_390X400"] = "02";
|
|
18
|
+
ChallengeWindowSize["SIZE_500X600"] = "03";
|
|
19
|
+
ChallengeWindowSize["SIZE_600X400"] = "04";
|
|
20
|
+
ChallengeWindowSize["SIZE_FULL_PAGE"] = "05";
|
|
21
|
+
})(ChallengeWindowSize || (exports.ChallengeWindowSize = ChallengeWindowSize = {}));
|
|
22
|
+
var CommerceIndicator;
|
|
23
|
+
(function (CommerceIndicator) {
|
|
24
|
+
// Card not enrolled, or card type not supported by payer authentication. No liability shift.
|
|
25
|
+
CommerceIndicator["INTERNET"] = "internet";
|
|
26
|
+
// JCB card not enrolled, but attempt to authenticate is recorded. Liability shift.
|
|
27
|
+
CommerceIndicator["JS_ATTEMPTED"] = "js_attempted";
|
|
28
|
+
// You receive this result if JCB’s directory service is not available. No liability shift.
|
|
29
|
+
CommerceIndicator["JS_FAILURE"] = "js_failure";
|
|
30
|
+
// Mastercard card not enrolled. No liability shift.
|
|
31
|
+
CommerceIndicator["SPA"] = "spa";
|
|
32
|
+
// Visa card not enrolled, but attempt to authenticate is recorded. Liability shift.
|
|
33
|
+
CommerceIndicator["VBV_ATTEMPTED"] = "vbv_attempted";
|
|
34
|
+
// For the payment processors Barclays, Streamline, AIBMS, or FDC Germany, you receive this result if Visa’s directory service is not available. No liability shift.
|
|
35
|
+
CommerceIndicator["VBV_FAILURE"] = "vbv_failure";
|
|
36
|
+
})(CommerceIndicator || (exports.CommerceIndicator = CommerceIndicator = {}));
|
|
37
|
+
var VEResEnrolled;
|
|
38
|
+
(function (VEResEnrolled) {
|
|
39
|
+
// Card enrolled. You must authenticate. Liability shift.
|
|
40
|
+
VEResEnrolled["ENROLLED"] = "Y";
|
|
41
|
+
// Card not enrolled. Proceed with authorization
|
|
42
|
+
VEResEnrolled["NOT_ENROLLED"] = "N";
|
|
43
|
+
// Enable to authenticate regardless of the reason. No liability shift.
|
|
44
|
+
VEResEnrolled["UNABLE"] = "U";
|
|
45
|
+
// Authentication was bypassed
|
|
46
|
+
VEResEnrolled["BYPASSED"] = "B";
|
|
47
|
+
})(VEResEnrolled || (exports.VEResEnrolled = VEResEnrolled = {}));
|
|
48
|
+
var PARes;
|
|
49
|
+
(function (PARes) {
|
|
50
|
+
PARes["ATTEMPTED"] = "A";
|
|
51
|
+
PARes["BYPASSED"] = "B";
|
|
52
|
+
PARes["CANCELED"] = "N";
|
|
53
|
+
PARes["REJECTED"] = "R";
|
|
54
|
+
PARes["NOT_COMPLETED"] = "U";
|
|
55
|
+
PARes["SUCCESS"] = "Y";
|
|
56
|
+
})(PARes || (exports.PARes = PARes = {}));
|
|
57
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sca/types.ts"],"names":[],"mappings":";;;AAAA,IAAK,YAQJ;AARD,WAAK,YAAY;IACf,+CAA+B,CAAA;IAC/B,8DAA8C,CAAA;IAC9C,+DAA+C,CAAA;IAC/C,gEAAgD,CAAA;IAChD,4DAA4C,CAAA;IAC5C,0DAA0C,CAAA;IAC1C,yDAAyC,CAAA;AAC3C,CAAC,EARI,YAAY,4BAAZ,YAAY,QAQhB;AAED,IAAK,mBAMJ;AAND,WAAK,mBAAmB;IACtB,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;IACnB,4CAAqB,CAAA;AACvB,CAAC,EANI,mBAAmB,mCAAnB,mBAAmB,QAMvB;AAiFD,IAAK,iBAaJ;AAbD,WAAK,iBAAiB;IACpB,6FAA6F;IAC7F,0CAAqB,CAAA;IACrB,mFAAmF;IACnF,kDAA6B,CAAA;IAC7B,2FAA2F;IAC3F,8CAAyB,CAAA;IACzB,oDAAoD;IACpD,gCAAW,CAAA;IACX,oFAAoF;IACpF,oDAA+B,CAAA;IAC/B,oKAAoK;IACpK,gDAA2B,CAAA;AAC7B,CAAC,EAbI,iBAAiB,iCAAjB,iBAAiB,QAarB;AAED,IAAK,aASJ;AATD,WAAK,aAAa;IAChB,yDAAyD;IACzD,+BAAc,CAAA;IACd,gDAAgD;IAChD,mCAAkB,CAAA;IAClB,uEAAuE;IACvE,6BAAY,CAAA;IACZ,8BAA8B;IAC9B,+BAAc,CAAA;AAChB,CAAC,EATI,aAAa,6BAAb,aAAa,QASjB;AAED,IAAK,KAOJ;AAPD,WAAK,KAAK;IACR,wBAAe,CAAA;IACf,uBAAc,CAAA;IACd,uBAAc,CAAA;IACd,uBAAc,CAAA;IACd,4BAAmB,CAAA;IACnB,sBAAa,CAAA;AACf,CAAC,EAPI,KAAK,qBAAL,KAAK,QAOT"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AxiosResponse, AxiosInstance } from "axios";
|
|
2
|
+
import * as sca from "../sca/types";
|
|
3
|
+
export type GatewayClientProps = {
|
|
4
|
+
accessToken: string;
|
|
5
|
+
username: string;
|
|
6
|
+
};
|
|
7
|
+
declare class GatewayClient {
|
|
8
|
+
client: AxiosInstance | null;
|
|
9
|
+
constructor({ accessToken, username }: GatewayClientProps);
|
|
10
|
+
/**************** SCA/3DS2 /****************/
|
|
11
|
+
createSCASession(data: sca.CreateSCASessionRequest): Promise<AxiosResponse>;
|
|
12
|
+
decodeSCASession(data: sca.DecodeSCASessionRequest): Promise<AxiosResponse>;
|
|
13
|
+
enrolSCA(data: sca.EnrollSCARequest): Promise<AxiosResponse>;
|
|
14
|
+
validateSCA(data: sca.ValidateSCARequest): Promise<AxiosResponse>;
|
|
15
|
+
getCard(data: sca.GetCardRequest): Promise<AxiosResponse>;
|
|
16
|
+
}
|
|
17
|
+
export default GatewayClient;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var constants_1 = require("./constants");
|
|
43
|
+
var axios_1 = __importDefault(require("axios"));
|
|
44
|
+
var util_1 = require("./util");
|
|
45
|
+
var baseUrl = process.env.API_GATEWAY_URL;
|
|
46
|
+
var GatewayClient = /** @class */ (function () {
|
|
47
|
+
function GatewayClient(_a) {
|
|
48
|
+
var accessToken = _a.accessToken, username = _a.username;
|
|
49
|
+
var headers = {};
|
|
50
|
+
headers["Authorization"] = "Bearer ".concat(accessToken);
|
|
51
|
+
headers[constants_1.RequestHeaderSdkVersion] = (0, util_1.getSdkVersionNumber)();
|
|
52
|
+
headers[constants_1.RequestHeaderMerchantUsername] = username;
|
|
53
|
+
this.client = axios_1.default.create({
|
|
54
|
+
baseURL: baseUrl,
|
|
55
|
+
timeout: constants_1.RequestTimeout,
|
|
56
|
+
headers: headers,
|
|
57
|
+
responseType: "json",
|
|
58
|
+
transformResponse: [
|
|
59
|
+
function (response) {
|
|
60
|
+
var _response = typeof response === "string" ? JSON.parse(response) : response;
|
|
61
|
+
return _response.data;
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**************** SCA/3DS2 /****************/
|
|
67
|
+
GatewayClient.prototype.createSCASession = function (data) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
69
|
+
return __generator(this, function (_a) {
|
|
70
|
+
return [2 /*return*/, this.client.post("/sca/session", data)];
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
GatewayClient.prototype.decodeSCASession = function (data) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
76
|
+
return __generator(this, function (_a) {
|
|
77
|
+
// return requestBase(`${baseUrl}/sca/decode_session`, 'POST', data)
|
|
78
|
+
return [2 /*return*/, this.client.post("/sca/decode_session", data)];
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
GatewayClient.prototype.enrolSCA = function (data) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
+
return __generator(this, function (_a) {
|
|
85
|
+
return [2 /*return*/, this.client.post("/sca/enrollment", data)];
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
GatewayClient.prototype.validateSCA = function (data) {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
91
|
+
return __generator(this, function (_a) {
|
|
92
|
+
return [2 /*return*/, this.client.post("/sca/validation", data)];
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
GatewayClient.prototype.getCard = function (data) {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
98
|
+
return __generator(this, function (_a) {
|
|
99
|
+
return [2 /*return*/, this.client.get("/credit_cards/".concat(data.card_token))];
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
return GatewayClient;
|
|
104
|
+
}());
|
|
105
|
+
exports.default = GatewayClient;
|
|
106
|
+
//# sourceMappingURL=api-gateway-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-gateway-client.js","sourceRoot":"","sources":["../../src/shared/api-gateway-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAKqB;AACrB,gDAA4D;AAC5D,+BAA6C;AAE7C,IAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAS5C;IAGE,uBAAY,EAA6C;YAA3C,WAAW,iBAAA,EAAE,QAAQ,cAAA;QACjC,IAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,OAAO,CAAC,eAAe,CAAC,GAAG,iBAAU,WAAW,CAAE,CAAC;QACnD,OAAO,CAAC,mCAAuB,CAAC,GAAG,IAAA,0BAAmB,GAAE,CAAC;QACzD,OAAO,CAAC,yCAA6B,CAAC,GAAG,QAAQ,CAAC;QAElD,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,0BAAc;YACvB,OAAO,SAAA;YACP,YAAY,EAAE,MAAM;YACpB,iBAAiB,EAAE;gBACjB,UAAU,QAAQ;oBAChB,IAAM,SAAS,GACb,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACjE,OAAO,SAAS,CAAC,IAAI,CAAC;gBACxB,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C;IAEvC,wCAAgB,GAAtB,UACE,IAAiC;;;gBAEjC,sBAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,EAAC;;;KAC/C;IAEK,wCAAgB,GAAtB,UACE,IAAiC;;;gBAEjC,oEAAoE;gBACpE,sBAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,EAAC;;;KACtD;IAEK,gCAAQ,GAAd,UAAe,IAA0B;;;gBACvC,sBAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAC;;;KAClD;IAEK,mCAAW,GAAjB,UAAkB,IAA4B;;;gBAC5C,sBAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAC;;;KAClD;IAEK,+BAAO,GAAb,UAAc,IAAwB;;;gBACpC,sBAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAiB,IAAI,CAAC,UAAU,CAAE,CAAC,EAAC;;;KAC5D;IACH,oBAAC;AAAD,CAAC,AAlDD,IAkDC;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.load = void 0;
|
|
4
|
+
var headlessIframeId = 'fz-hl';
|
|
5
|
+
var load = function (url) {
|
|
6
|
+
var existing = document.getElementById(headlessIframeId);
|
|
7
|
+
if (existing) {
|
|
8
|
+
return existing;
|
|
9
|
+
}
|
|
10
|
+
var headless = document.createElement('iframe');
|
|
11
|
+
headless.style.visibility = 'hidden';
|
|
12
|
+
headless.style.position = 'absolute';
|
|
13
|
+
headless.style.left = '0px';
|
|
14
|
+
headless.style.top = '0px';
|
|
15
|
+
headless.style.height = '0px';
|
|
16
|
+
headless.style.width = '0px';
|
|
17
|
+
headless.style.border = 'none';
|
|
18
|
+
headless.setAttribute('src', url);
|
|
19
|
+
headless.setAttribute('id', headlessIframeId);
|
|
20
|
+
document.body.appendChild(headless);
|
|
21
|
+
return headless;
|
|
22
|
+
};
|
|
23
|
+
exports.load = load;
|
|
24
|
+
//# sourceMappingURL=bridge-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-client.js","sourceRoot":"","sources":["../../src/shared/bridge-client.ts"],"names":[],"mappings":";;;AAAA,IAAM,gBAAgB,GAAG,OAAO,CAAA;AAEhC,IAAM,IAAI,GAAG,UAAC,GAAW;IACvB,IAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;IAE1D,IAAI,QAAQ,EAAE;QACZ,OAAO,QAA6B,CAAA;KACrC;IAED,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACjD,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAA;IAC3B,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IAC7C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IACnC,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAGC,oBAAI"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const LocalStorageAccessTokenKey = "fz-access-token";
|
|
2
|
+
declare const RequestHeaderSdkVersion = "fz-sdk-version";
|
|
3
|
+
declare const RequestHeaderMerchantUsername = "fz-merchant-username";
|
|
4
|
+
declare const RequestTimeout = 8000;
|
|
5
|
+
declare const LongRequestTimeout = 15000;
|
|
6
|
+
export { LocalStorageAccessTokenKey, RequestHeaderSdkVersion, RequestHeaderMerchantUsername, RequestTimeout, LongRequestTimeout };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LongRequestTimeout = exports.RequestTimeout = exports.RequestHeaderMerchantUsername = exports.RequestHeaderSdkVersion = exports.LocalStorageAccessTokenKey = void 0;
|
|
4
|
+
// Local storage key naming convension:
|
|
5
|
+
// Hypen-separated string with all letters in lower case.
|
|
6
|
+
var LocalStorageAccessTokenKey = 'fz-access-token';
|
|
7
|
+
exports.LocalStorageAccessTokenKey = LocalStorageAccessTokenKey;
|
|
8
|
+
// Request header naming convension:
|
|
9
|
+
// Hyphen-separated string with capitalised 1st letter. Capitalise acronyms
|
|
10
|
+
// See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
|
|
11
|
+
var RequestHeaderSdkVersion = 'fz-sdk-version';
|
|
12
|
+
exports.RequestHeaderSdkVersion = RequestHeaderSdkVersion;
|
|
13
|
+
var RequestHeaderMerchantUsername = 'fz-merchant-username';
|
|
14
|
+
exports.RequestHeaderMerchantUsername = RequestHeaderMerchantUsername;
|
|
15
|
+
var RequestTimeout = 8000; // ms
|
|
16
|
+
exports.RequestTimeout = RequestTimeout;
|
|
17
|
+
var LongRequestTimeout = 15000; // ms
|
|
18
|
+
exports.LongRequestTimeout = LongRequestTimeout;
|
|
19
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,yDAAyD;AACzD,IAAM,0BAA0B,GAAG,iBAAiB,CAAA;AAWlD,gEAA0B;AAT5B,oCAAoC;AACpC,2EAA2E;AAC3E,gEAAgE;AAChE,IAAM,uBAAuB,GAAG,gBAAgB,CAAA;AAO9C,0DAAuB;AANzB,IAAM,6BAA6B,GAAG,sBAAsB,CAAA;AAO1D,sEAA6B;AAN/B,IAAM,cAAc,GAAG,IAAI,CAAA,CAAC,KAAK;AAO/B,wCAAc;AANhB,IAAM,kBAAkB,GAAG,KAAK,CAAA,CAAC,KAAK;AAOpC,gDAAkB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PublicEvent } from "./types";
|
|
2
|
+
interface EventData {
|
|
3
|
+
detail: {
|
|
4
|
+
data: any;
|
|
5
|
+
message?: string;
|
|
6
|
+
} | {
|
|
7
|
+
errors: string[];
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
interface SuccessEventDetail {
|
|
11
|
+
message: string;
|
|
12
|
+
data: any;
|
|
13
|
+
}
|
|
14
|
+
interface ErrorEventDetail {
|
|
15
|
+
errors: string[];
|
|
16
|
+
data: any;
|
|
17
|
+
}
|
|
18
|
+
interface SuccessEventDetail {
|
|
19
|
+
message: string;
|
|
20
|
+
data: any;
|
|
21
|
+
}
|
|
22
|
+
interface ErrorEventDetail {
|
|
23
|
+
errors: string[];
|
|
24
|
+
data: any;
|
|
25
|
+
}
|
|
26
|
+
declare const emit: (event: PublicEvent, data: SuccessEventDetail | ErrorEventDetail, target?: HTMLElement | Window) => void;
|
|
27
|
+
declare const on: (event: PublicEvent, callback: (e: any) => void, target?: HTMLElement | Window) => void;
|
|
28
|
+
export { EventData, emit, on };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.on = exports.emit = void 0;
|
|
4
|
+
// TODO: CustomEvent requires polyfill for IE.
|
|
5
|
+
var emit = function (event, data, target) {
|
|
6
|
+
if (target === void 0) { target = window; }
|
|
7
|
+
target.dispatchEvent(new CustomEvent(event, { detail: data }));
|
|
8
|
+
};
|
|
9
|
+
exports.emit = emit;
|
|
10
|
+
var on = function (event, callback, target) {
|
|
11
|
+
if (target === void 0) { target = window; }
|
|
12
|
+
target.addEventListener(event, callback);
|
|
13
|
+
};
|
|
14
|
+
exports.on = on;
|
|
15
|
+
//# sourceMappingURL=event-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-manager.js","sourceRoot":"","sources":["../../src/shared/event-manager.ts"],"names":[],"mappings":";;;AA0BA,8CAA8C;AAC9C,IAAM,IAAI,GAAG,UACX,KAAkB,EAClB,IAA2C,EAC3C,MAAqC;IAArC,uBAAA,EAAA,eAAqC;IAErC,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC;AAUkB,oBAAI;AARxB,IAAM,EAAE,GAAG,UACT,KAAkB,EAClB,QAA0B,EAC1B,MAAqC;IAArC,uBAAA,EAAA,eAAqC;IAErC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEwB,gBAAE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
interface PostMessage {
|
|
2
|
+
channel: string;
|
|
3
|
+
subject: string;
|
|
4
|
+
data: unknown;
|
|
5
|
+
}
|
|
6
|
+
interface PostMessageLegacy {
|
|
7
|
+
message: string;
|
|
8
|
+
data: {
|
|
9
|
+
[key: string]: string | boolean;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
interface PostMessageClientConfig {
|
|
13
|
+
channel: string;
|
|
14
|
+
target?: HTMLIFrameElement;
|
|
15
|
+
}
|
|
16
|
+
interface EventHandlers {
|
|
17
|
+
[key: string]: (data: any) => void;
|
|
18
|
+
}
|
|
19
|
+
interface CreateCardTokenPostMessageData {
|
|
20
|
+
access_token: string;
|
|
21
|
+
card_holder: string;
|
|
22
|
+
card_number: string;
|
|
23
|
+
card_expiry: string;
|
|
24
|
+
cvv: string;
|
|
25
|
+
}
|
|
26
|
+
interface CreatePurchasePostMessageData {
|
|
27
|
+
access_token: string;
|
|
28
|
+
amount: number;
|
|
29
|
+
card_token: string;
|
|
30
|
+
currency: string;
|
|
31
|
+
extra?: {
|
|
32
|
+
[key: string]: boolean | string;
|
|
33
|
+
};
|
|
34
|
+
hash: string;
|
|
35
|
+
invoice: string;
|
|
36
|
+
test?: boolean;
|
|
37
|
+
}
|
|
38
|
+
declare class PostMessageClient {
|
|
39
|
+
private channel;
|
|
40
|
+
private fzEnv;
|
|
41
|
+
private target;
|
|
42
|
+
constructor(config: PostMessageClientConfig);
|
|
43
|
+
setEventListeners(handlers: EventHandlers): void;
|
|
44
|
+
setEventListenersLegacy(handlers: EventHandlers): void;
|
|
45
|
+
send(message: PostMessage | PostMessageLegacy): void;
|
|
46
|
+
}
|
|
47
|
+
export { CreateCardTokenPostMessageData, CreatePurchasePostMessageData, PostMessage, PostMessageLegacy, PostMessageClient, PostMessageClientConfig, };
|