@fat-zebra/sdk 1.2.1 → 1.2.2

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 (100) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +2 -0
  3. package/package.json +1 -1
  4. package/dist/env.d.ts +0 -5
  5. package/dist/env.development.d.ts +0 -5
  6. package/dist/env.development.js +0 -5
  7. package/dist/env.js +0 -5
  8. package/dist/local/fatzebra.js +0 -17728
  9. package/dist/local/fatzebra.js.map +0 -1
  10. package/dist/local/index.html +0 -247
  11. package/dist/sca/sca.d.ts +0 -42
  12. package/dist/sca/sca.js +0 -273
  13. package/dist/src/applepay/applepay.js +0 -198
  14. package/dist/src/applepay/applepay.js.map +0 -1
  15. package/dist/src/applepay/clients/apple-pay-client.js +0 -66
  16. package/dist/src/applepay/clients/apple-pay-client.js.map +0 -1
  17. package/dist/src/applepay/clients/paynow-client.js +0 -96
  18. package/dist/src/applepay/clients/paynow-client.js.map +0 -1
  19. package/dist/src/applepay/index.js +0 -6
  20. package/dist/src/applepay/index.js.map +0 -1
  21. package/dist/src/hpp/hpp.js +0 -230
  22. package/dist/src/hpp/hpp.js.map +0 -1
  23. package/dist/src/hpp/hpp.test.js +0 -135
  24. package/dist/src/hpp/hpp.test.js.map +0 -1
  25. package/dist/src/hpp/index.js +0 -6
  26. package/dist/src/hpp/index.js.map +0 -1
  27. package/dist/src/index.js +0 -7
  28. package/dist/src/index.js.map +0 -1
  29. package/dist/src/main.js +0 -225
  30. package/dist/src/main.js.map +0 -1
  31. package/dist/src/main.test.js +0 -236
  32. package/dist/src/main.test.js.map +0 -1
  33. package/dist/src/paypal/paypal-button.js +0 -311
  34. package/dist/src/paypal/paypal-button.js.map +0 -1
  35. package/dist/src/paypal/paypal-button.test.js +0 -41
  36. package/dist/src/paypal/paypal-button.test.js.map +0 -1
  37. package/dist/src/paypal/paypal-checkout.js +0 -111
  38. package/dist/src/paypal/paypal-checkout.js.map +0 -1
  39. package/dist/src/paypal/paypal-checkout.test.js +0 -167
  40. package/dist/src/paypal/paypal-checkout.test.js.map +0 -1
  41. package/dist/src/paypal/types.js +0 -9
  42. package/dist/src/paypal/types.js.map +0 -1
  43. package/dist/src/paypal/validation.js +0 -73
  44. package/dist/src/paypal/validation.js.map +0 -1
  45. package/dist/src/sca/__tests__/eci-mappings.test.js +0 -31
  46. package/dist/src/sca/__tests__/eci-mappings.test.js.map +0 -1
  47. package/dist/src/sca/__tests__/index.test.js +0 -558
  48. package/dist/src/sca/__tests__/index.test.js.map +0 -1
  49. package/dist/src/sca/cardinal.js +0 -110
  50. package/dist/src/sca/cardinal.js.map +0 -1
  51. package/dist/src/sca/eci-mappings.js +0 -63
  52. package/dist/src/sca/eci-mappings.js.map +0 -1
  53. package/dist/src/sca/eci-mappings.test.js +0 -31
  54. package/dist/src/sca/eci-mappings.test.js.map +0 -1
  55. package/dist/src/sca/index.js +0 -388
  56. package/dist/src/sca/index.js.map +0 -1
  57. package/dist/src/sca/index.test.js +0 -558
  58. package/dist/src/sca/index.test.js.map +0 -1
  59. package/dist/src/sca/scenarios/enrollment.js +0 -150
  60. package/dist/src/sca/scenarios/enrollment.js.map +0 -1
  61. package/dist/src/sca/scenarios/index.js +0 -8
  62. package/dist/src/sca/scenarios/index.js.map +0 -1
  63. package/dist/src/sca/scenarios/validation.js +0 -128
  64. package/dist/src/sca/scenarios/validation.js.map +0 -1
  65. package/dist/src/sca/types.js +0 -57
  66. package/dist/src/sca/types.js.map +0 -1
  67. package/dist/src/shared/api-gateway-client.js +0 -150
  68. package/dist/src/shared/api-gateway-client.js.map +0 -1
  69. package/dist/src/shared/bridge-client.js +0 -24
  70. package/dist/src/shared/bridge-client.js.map +0 -1
  71. package/dist/src/shared/constants.js +0 -19
  72. package/dist/src/shared/constants.js.map +0 -1
  73. package/dist/src/shared/event-manager.js +0 -15
  74. package/dist/src/shared/event-manager.js.map +0 -1
  75. package/dist/src/shared/post-message-client.js +0 -107
  76. package/dist/src/shared/post-message-client.js.map +0 -1
  77. package/dist/src/shared/post-message-client.test.js +0 -58
  78. package/dist/src/shared/post-message-client.test.js.map +0 -1
  79. package/dist/src/shared/types.js +0 -47
  80. package/dist/src/shared/types.js.map +0 -1
  81. package/dist/src/shared/types.test.js +0 -55
  82. package/dist/src/shared/types.test.js.map +0 -1
  83. package/dist/src/shared/util.js +0 -96
  84. package/dist/src/shared/util.js.map +0 -1
  85. package/dist/src/shared/util.test.js +0 -148
  86. package/dist/src/shared/util.test.js.map +0 -1
  87. package/dist/src/validation/index.js +0 -10
  88. package/dist/src/validation/index.js.map +0 -1
  89. package/dist/src/validation/validation-helper.js +0 -10
  90. package/dist/src/validation/validation-helper.js.map +0 -1
  91. package/dist/src/validation/validation-helper.test.js +0 -34
  92. package/dist/src/validation/validation-helper.test.js.map +0 -1
  93. package/dist/src/validation/validators/hpp-load-params-validator.js +0 -17
  94. package/dist/src/validation/validators/hpp-load-params-validator.js.map +0 -1
  95. package/dist/src/validation/validators/hpp-load-params-validator.test.js +0 -56
  96. package/dist/src/validation/validators/hpp-load-params-validator.test.js.map +0 -1
  97. package/dist/src/validation/validators/verify-card-params-validator.js +0 -18
  98. package/dist/src/validation/validators/verify-card-params-validator.js.map +0 -1
  99. package/dist/tests/helpers/api-gateway-mock.js +0 -36
  100. package/dist/tests/helpers/api-gateway-mock.js.map +0 -1
@@ -1,110 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.CardinalManager = void 0;
40
- var CardinalWorkflow;
41
- (function (CardinalWorkflow) {
42
- CardinalWorkflow["CCA"] = "cca";
43
- CardinalWorkflow["INIT"] = "init";
44
- })(CardinalWorkflow || (CardinalWorkflow = {}));
45
- var CardinalPaymentEvent;
46
- (function (CardinalPaymentEvent) {
47
- CardinalPaymentEvent["SETUP_COMPLETE"] = "payments.setupComplete";
48
- CardinalPaymentEvent["VALIDATED"] = "payments.validated";
49
- })(CardinalPaymentEvent || (CardinalPaymentEvent = {}));
50
- var defaultConfig = {
51
- timeout: 8000,
52
- maxRequestRetries: 3,
53
- logging: {
54
- level: 'on'
55
- }
56
- };
57
- var CardinalManager = /** @class */ (function () {
58
- function CardinalManager(config) {
59
- window.Cardinal.configure((config ? config : defaultConfig));
60
- }
61
- CardinalManager.prototype.setup = function (jwt) {
62
- window.Cardinal.setup(CardinalWorkflow.INIT, { jwt: jwt });
63
- };
64
- CardinalManager.prototype.onPaymentValidated = function (handler) {
65
- window.Cardinal.on('payments.validated', function (data, jwt) {
66
- if (data.ErrorDescription.toLowerCase() === 'success') {
67
- handler({
68
- processorTransactionId: data.Payment.ProcessorTransactionId,
69
- jwt: jwt
70
- }, null);
71
- }
72
- else {
73
- handler(null, data.ErrorDescription);
74
- }
75
- });
76
- };
77
- CardinalManager.prototype.onPaymentSetupComplete = function () {
78
- return new Promise(function (resolve, reject) {
79
- window.Cardinal.on(CardinalPaymentEvent.SETUP_COMPLETE, function (data) {
80
- resolve(data);
81
- });
82
- });
83
- };
84
- CardinalManager.prototype.processBin = function (bin) {
85
- return __awaiter(this, void 0, void 0, function () {
86
- return __generator(this, function (_a) {
87
- switch (_a.label) {
88
- case 0: return [4 /*yield*/, window.Cardinal.trigger('bin.process', bin)];
89
- case 1:
90
- _a.sent();
91
- return [2 /*return*/];
92
- }
93
- });
94
- });
95
- };
96
- CardinalManager.prototype.continue = function (acsUrl, pareq, transactionId) {
97
- window.Cardinal.continue(CardinalWorkflow.CCA, {
98
- AcsUrl: acsUrl,
99
- Payload: pareq
100
- }, {
101
- OrderDetails: {
102
- TransactionId: transactionId
103
- }
104
- });
105
- };
106
- return CardinalManager;
107
- }());
108
- exports.CardinalManager = CardinalManager;
109
- exports.default = CardinalManager;
110
- //# sourceMappingURL=cardinal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cardinal.js","sourceRoot":"","sources":["../../../src/sca/cardinal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,IAAK,gBAGJ;AAHD,WAAK,gBAAgB;IACnB,+BAAW,CAAA;IACX,iCAAa,CAAA;AACf,CAAC,EAHI,gBAAgB,KAAhB,gBAAgB,QAGpB;AAED,IAAK,oBAGJ;AAHD,WAAK,oBAAoB;IACvB,iEAAyC,CAAA;IACzC,wDAAgC,CAAA;AAClC,CAAC,EAHI,oBAAoB,KAApB,oBAAoB,QAGxB;AAoBD,IAAM,aAAa,GAAG;IACpB,OAAO,EAAE,IAAI;IACb,iBAAiB,EAAE,CAAC;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,IAAI;KACZ;CACF,CAAA;AAED;IAGE,yBAAY,MAAuB;QACjC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAA+B,CAAC,CAAC,CAAA;IAChF,CAAC;IAED,+BAAK,GAAL,UAAM,GAAQ;QACZ,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,KAAA,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,4CAAkB,GAAlB,UAAmB,OAA2D;QAC5E,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,oBAAoB,EAAE,UAAC,IAAkC,EAAE,GAAW;YACvF,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;gBACrD,OAAO,CAAC;oBACN,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB;oBAC3D,GAAG,KAAA;iBACJ,EAAE,IAAI,CAAC,CAAA;aACT;iBAAM;gBACL,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;aACrC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,gDAAsB,GAAtB;QACE,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,oBAAoB,CAAC,cAAc,EAAE,UAAC,IAAuC;gBAC9F,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEK,oCAAU,GAAhB,UAAiB,GAAW;;;;4BAC1B,qBAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,EAAA;;wBAAjD,SAAiD,CAAA;;;;;KAClD;IAED,kCAAQ,GAAR,UAAS,MAAc,EAAE,KAAa,EAAE,aAAqB;QAC3D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACtB,gBAAgB,CAAC,GAAG,EACpB;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,KAAK;SACf,EACD;YACE,YAAY,EAAE;gBACZ,aAAa,EAAE,aAAa;aAC7B;SACF,CACF,CAAA;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAlDD,IAkDC;AAGC,0CAAe"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toFzSli = exports.eciMappings = void 0;
4
- // FatZebra only supports SLI 05, 06, 07 & 09.
5
- // https://docs.fatzebra.com/docs/3d-secure
6
- // Cardinal returns ECI(or SLI for MC) in the range of 01~07
7
- // https://cardinaldocs.atlassian.net/wiki/spaces/CCen/pages/903577725/EMV+3DS+2.0+Test+Cases
8
- var eciMappings = [
9
- {
10
- // Cards: Mastercard, CB Mastercard
11
- // Test Case 2: Failed Frictionless Authentication
12
- // Test Case 4: Unavailable Frictionless Authentication from the Issuer
13
- // Test Case 5: Rejected Frictionless Authentication by the Issuer
14
- // Test Case 6: Authentication Not Available on Lookup
15
- // Test Case 7: Error on Lookup
16
- // Test Case 9: Bypassed Authentication
17
- // Test Case 11: Failed Step Up Authentication
18
- // Test Case 12: Step Up Authentication is Unavailable
19
- // Test Case 13: Error on Authentication
20
- vendorEci: '00',
21
- // Non-authenticated transaction - issuer not support. CAVV not present.
22
- fatzebraSli: '07',
23
- },
24
- {
25
- // Cards: Mastercard, CB Mastercard
26
- // Test Case 3: Attempts Stand-In Frictionless Authentication
27
- vendorEci: '01',
28
- // Cards: Visa, American Express, Discover (Diners Club), CB Visa, ELO
29
- // Secure, Non-authenticated transaction (XID present, CAVV not present)
30
- fatzebraSli: '06',
31
- },
32
- {
33
- // Cards: Mastercard, CB Mastercard
34
- // Test Case 1: Successful Frictionless Authentication
35
- // Test Case 10: Successful Step Up Authentication
36
- vendorEci: '02',
37
- // Cards: Visa, American Express, Discover (Diners Club), CB Visa, ELO
38
- // Secure, Authenticated transaction with XID and CAVV present
39
- fatzebraSli: '05',
40
- },
41
- {
42
- vendorEci: '05',
43
- // Secure, Authenticated transaction with XID and CAVV present
44
- fatzebraSli: '05',
45
- },
46
- {
47
- vendorEci: '06',
48
- // Secure, Non-authenticated transaction (XID present, CAVV not present)
49
- fatzebraSli: '06',
50
- },
51
- {
52
- vendorEci: '07',
53
- // Secure, Non-authenticated transaction (XID and CAVV not present). This is the default value.
54
- fatzebraSli: '07',
55
- },
56
- ];
57
- exports.eciMappings = eciMappings;
58
- var toFzSli = function (vendorEci) {
59
- var matched = eciMappings.find(function (item) { return item.vendorEci == vendorEci; });
60
- return matched ? matched.fatzebraSli : vendorEci;
61
- };
62
- exports.toFzSli = toFzSli;
63
- //# sourceMappingURL=eci-mappings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eci-mappings.js","sourceRoot":"","sources":["../../../src/sca/eci-mappings.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AAC9C,2CAA2C;AAC3C,4DAA4D;AAC5D,6FAA6F;AAC7F,IAAM,WAAW,GAAiD;IAChE;QACE,mCAAmC;QACnC,kDAAkD;QAClD,uEAAuE;QACvE,kEAAkE;QAClE,sDAAsD;QACtD,+BAA+B;QAC/B,uCAAuC;QACvC,8CAA8C;QAC9C,sDAAsD;QACtD,wCAAwC;QACxC,SAAS,EAAE,IAAI;QACf,wEAAwE;QACxE,WAAW,EAAE,IAAI;KAClB;IACD;QACE,mCAAmC;QACnC,6DAA6D;QAC7D,SAAS,EAAE,IAAI;QACf,sEAAsE;QACtE,wEAAwE;QACxE,WAAW,EAAE,IAAI;KAClB;IACD;QACE,mCAAmC;QACnC,sDAAsD;QACtD,kDAAkD;QAClD,SAAS,EAAE,IAAI;QACf,sEAAsE;QACtE,8DAA8D;QAC9D,WAAW,EAAE,IAAI;KAClB;IACD;QACE,SAAS,EAAE,IAAI;QACf,8DAA8D;QAC9D,WAAW,EAAE,IAAI;KAClB;IACD;QACE,SAAS,EAAE,IAAI;QACf,wEAAwE;QACxE,WAAW,EAAE,IAAI;KAClB;IACD;QACE,SAAS,EAAE,IAAI;QACf,+FAA+F;QAC/F,WAAW,EAAE,IAAI;KAClB;CACF,CAAA;AAQC,kCAAW;AANb,IAAM,OAAO,GAAG,UAAC,SAAiB;IAChC,IAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,SAAS,IAAI,SAAS,EAA3B,CAA2B,CAAC,CAAA;IACvE,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;AAClD,CAAC,CAAA;AAIC,0BAAO"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var eci_mappings_1 = require("./eci-mappings");
4
- describe('toFzSli', function () {
5
- describe('ECI mapping exists', function () {
6
- it('sli mapping => cardinal: 00, fz: 07', function () {
7
- expect((0, eci_mappings_1.toFzSli)('00')).toEqual('07');
8
- });
9
- it('sli mapping => cardinal: 01, fz: 06', function () {
10
- expect((0, eci_mappings_1.toFzSli)('01')).toEqual('06');
11
- });
12
- it('sli mapping => cardinal: 02, fz: 05', function () {
13
- expect((0, eci_mappings_1.toFzSli)('02')).toEqual('05');
14
- });
15
- it('sli mapping => cardinal: 05, fz: 05', function () {
16
- expect((0, eci_mappings_1.toFzSli)('05')).toEqual('05');
17
- });
18
- it('sli mapping => cardinal: 06, fz: 06', function () {
19
- expect((0, eci_mappings_1.toFzSli)('06')).toEqual('06');
20
- });
21
- it('sli mapping => cardinal: 07, fz: 07', function () {
22
- expect((0, eci_mappings_1.toFzSli)('07')).toEqual('07');
23
- });
24
- });
25
- describe('ECI mapping does not exist', function () {
26
- it('sli mapping => cardinal: 09, fz: 09', function () {
27
- expect((0, eci_mappings_1.toFzSli)('09')).toEqual('09');
28
- });
29
- });
30
- });
31
- //# sourceMappingURL=eci-mappings.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eci-mappings.test.js","sourceRoot":"","sources":["../../../src/sca/eci-mappings.test.ts"],"names":[],"mappings":";;AAAA,+CAAqD;AAErD,QAAQ,CAAE,SAAS,EAAE;IACnB,QAAQ,CAAE,oBAAoB,EAAE;QAC9B,EAAE,CAAE,qCAAqC,EAAE;YACzC,MAAM,CAAC,IAAA,sBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAE,qCAAqC,EAAE;YACzC,MAAM,CAAC,IAAA,sBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAE,qCAAqC,EAAE;YACzC,MAAM,CAAC,IAAA,sBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAE,qCAAqC,EAAE;YACzC,MAAM,CAAC,IAAA,sBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAE,qCAAqC,EAAE;YACzC,MAAM,CAAC,IAAA,sBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAE,qCAAqC,EAAE;YACzC,MAAM,CAAC,IAAA,sBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAE,4BAA4B,EAAE;QACtC,EAAE,CAAE,qCAAqC,EAAE;YACzC,MAAM,CAAC,IAAA,sBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,388 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
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
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __generator = (this && this.__generator) || function (thisArg, body) {
35
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
- function verb(n) { return function (v) { return step([n, v]); }; }
38
- function step(op) {
39
- if (f) throw new TypeError("Generator is already executing.");
40
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
- 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;
42
- if (y = 0, t) op = [op[0] & 2, t.value];
43
- switch (op[0]) {
44
- case 0: case 1: t = op; break;
45
- case 4: _.label++; return { value: op[1], done: false };
46
- case 5: _.label++; y = op[1]; op = [0]; continue;
47
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
- default:
49
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
- if (t[2]) _.ops.pop();
54
- _.trys.pop(); continue;
55
- }
56
- op = body.call(thisArg, _);
57
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
- }
60
- };
61
- Object.defineProperty(exports, "__esModule", { value: true });
62
- var t = __importStar(require("./types"));
63
- var scenarios_1 = require("./scenarios");
64
- var types_1 = require("../shared/types");
65
- var cardinal_1 = require("./cardinal");
66
- var event_manager_1 = require("../shared/event-manager");
67
- var eci_mappings_1 = require("./eci-mappings");
68
- var Sca = /** @class */ (function () {
69
- function Sca(_a) {
70
- var gatewayClient = _a.gatewayClient;
71
- this._eventEmitTarget = window;
72
- this.sessionId = null;
73
- this.gatewayClient = gatewayClient;
74
- }
75
- Sca.prototype.loadScript = function () {
76
- var _this = this;
77
- var script = document.createElement('script');
78
- script.type = 'text/javascript';
79
- script.src = process.env.SONGBIRD_URL;
80
- script.async = true;
81
- script.onload = function () {
82
- _this._cardinal = new cardinal_1.CardinalManager();
83
- };
84
- document.body.appendChild(script);
85
- };
86
- Object.defineProperty(Sca.prototype, "cardinal", {
87
- get: function () {
88
- return this._cardinal;
89
- },
90
- set: function (cardinal) {
91
- this._cardinal = cardinal;
92
- },
93
- enumerable: false,
94
- configurable: true
95
- });
96
- Object.defineProperty(Sca.prototype, "eventEmitTarget", {
97
- get: function () {
98
- return this._eventEmitTarget;
99
- },
100
- // Specify the DOM element to which the SCA results are outputted.
101
- set: function (target) {
102
- this._eventEmitTarget = target;
103
- },
104
- enumerable: false,
105
- configurable: true
106
- });
107
- Sca.prototype.run = function (config) {
108
- return __awaiter(this, void 0, void 0, function () {
109
- var cardinalJwt, error_1, message, paymentsSetupCompleteResponse, err_1, message, err_2, message;
110
- var _this = this;
111
- return __generator(this, function (_a) {
112
- switch (_a.label) {
113
- case 0:
114
- // Persist states until next 3DS run.
115
- this.paymentIntent = config.paymentIntent;
116
- this.bin = config.bin;
117
- this.cardToken = config.cardToken;
118
- this.customer = config.customer;
119
- this.challengeWindowSize = config.challengeWindowSize || t.ChallengeWindowSize.SIZE_FULL_PAGE;
120
- _a.label = 1;
121
- case 1:
122
- _a.trys.push([1, 3, , 4]);
123
- return [4 /*yield*/, this.createCardinalJWT()];
124
- case 2:
125
- cardinalJwt = _a.sent();
126
- return [3 /*break*/, 4];
127
- case 3:
128
- error_1 = _a.sent();
129
- message = 'FatZebra.3DS: JWT creation failed.';
130
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_ERROR, {
131
- errors: [message],
132
- data: null
133
- });
134
- console.log(message);
135
- return [2 /*return*/];
136
- case 4:
137
- // Init cardinal
138
- this._cardinal.setup(cardinalJwt);
139
- if (!!this.sessionId) return [3 /*break*/, 6];
140
- return [4 /*yield*/, this._cardinal.onPaymentSetupComplete()];
141
- case 5:
142
- paymentsSetupCompleteResponse = _a.sent();
143
- this.sessionId = paymentsSetupCompleteResponse.sessionId;
144
- // Register handler. Called after OTP is entered on challenge prompt.
145
- this._cardinal.onPaymentValidated(function (data, error) { return __awaiter(_this, void 0, void 0, function () {
146
- var message, decodeSCASessionResponse, message, validateSCAResponse, requestParams, errorResponse_1, message, threedsData, scenario, message, message;
147
- return __generator(this, function (_a) {
148
- switch (_a.label) {
149
- case 0:
150
- if (typeof error == 'string') {
151
- message = "FatZebra.3DS: Validation failed. ".concat(error, ".");
152
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_ERROR, {
153
- errors: [message],
154
- data: null,
155
- });
156
- console.log(message);
157
- return [2 /*return*/];
158
- }
159
- return [4 /*yield*/, this.gatewayClient.decodeSCASession({
160
- token: data.jwt
161
- })];
162
- case 1:
163
- decodeSCASessionResponse = (_a.sent()).data;
164
- if (data.processorTransactionId !== decodeSCASessionResponse.processor_transaction_id) {
165
- message = 'FatZebra.3DS: Validation failed. Invalid process transaction id.';
166
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_ERROR, {
167
- errors: [message],
168
- data: null
169
- });
170
- console.log(message);
171
- }
172
- _a.label = 2;
173
- case 2:
174
- _a.trys.push([2, 4, , 5]);
175
- requestParams = {
176
- amount: this.paymentIntent.payment.amount,
177
- authentication_transaction_id: this.enrollmentResult.authentication_transaction_id,
178
- card_token: this.cardToken,
179
- currency: this.paymentIntent.payment.currency,
180
- pareq: this.enrollmentResult.pareq,
181
- reference: this.paymentIntent.payment.reference,
182
- };
183
- return [4 /*yield*/, this.gatewayClient.validateSCA(requestParams)];
184
- case 3:
185
- validateSCAResponse = (_a.sent()).data;
186
- return [3 /*break*/, 5];
187
- case 4:
188
- errorResponse_1 = _a.sent();
189
- message = 'FatZebra.3DS: Validation failed. Server error.';
190
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_ERROR, {
191
- errors: [message],
192
- data: null,
193
- });
194
- console.log(message);
195
- return [2 /*return*/];
196
- case 5:
197
- threedsData = threedsResponseData(validateSCAResponse);
198
- scenario = getValidationResult(validateSCAResponse);
199
- if (scenario.outcome.success) {
200
- message = "FatZebra.3DS: 3DS success - ".concat(scenario.description, ".");
201
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_SUCCESS, {
202
- message: message,
203
- data: threedsData,
204
- });
205
- console.log(message);
206
- }
207
- else {
208
- message = "FatZebra.3DS: 3DS error - ".concat(scenario.description);
209
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_ERROR, {
210
- errors: [message],
211
- data: {
212
- errorCode: scenario.outcome.errorCode
213
- },
214
- });
215
- console.log(message);
216
- }
217
- return [2 /*return*/];
218
- }
219
- });
220
- }); });
221
- _a.label = 6;
222
- case 6:
223
- _a.trys.push([6, 8, , 9]);
224
- return [4 /*yield*/, this._cardinal.processBin(this.bin)];
225
- case 7:
226
- _a.sent();
227
- return [3 /*break*/, 9];
228
- case 8:
229
- err_1 = _a.sent();
230
- message = 'FatZebra.3DS: BIN verification failed.';
231
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_ERROR, {
232
- errors: [message],
233
- data: null
234
- });
235
- console.log(message);
236
- return [2 /*return*/];
237
- case 9:
238
- _a.trys.push([9, 11, , 12]);
239
- return [4 /*yield*/, this.check3DSEnrollment()];
240
- case 10:
241
- _a.sent();
242
- return [3 /*break*/, 12];
243
- case 11:
244
- err_2 = _a.sent();
245
- message = 'FatZebra.3DS: Enrollment failed. Server error.';
246
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_ERROR, {
247
- errors: [message],
248
- data: null
249
- });
250
- console.log(message);
251
- return [2 /*return*/];
252
- case 12:
253
- this.handleEnrollmentResult(this.enrollmentResult);
254
- return [2 /*return*/];
255
- }
256
- });
257
- });
258
- };
259
- Sca.prototype.createCardinalJWT = function () {
260
- return __awaiter(this, void 0, void 0, function () {
261
- var payment, response;
262
- return __generator(this, function (_a) {
263
- switch (_a.label) {
264
- case 0:
265
- payment = this.paymentIntent.payment;
266
- return [4 /*yield*/, this.gatewayClient.createSCASession({
267
- amount: payment.amount,
268
- currency: payment.currency,
269
- hide_card_holder: payment.hide_card_holder,
270
- })];
271
- case 1:
272
- response = (_a.sent()).data;
273
- return [2 /*return*/, response.jwt];
274
- }
275
- });
276
- });
277
- };
278
- Sca.prototype.check3DSEnrollment = function () {
279
- return __awaiter(this, void 0, void 0, function () {
280
- var _a;
281
- return __generator(this, function (_b) {
282
- switch (_b.label) {
283
- case 0:
284
- // Persist enrollResult state in memory for handlePaymentValidation handler
285
- _a = this;
286
- return [4 /*yield*/, this.gatewayClient.enrolSCA({
287
- amount: this.paymentIntent.payment.amount,
288
- card_token: this.cardToken,
289
- currency: this.paymentIntent.payment.currency,
290
- reference: this.paymentIntent.payment.reference,
291
- verification: this.paymentIntent.verification,
292
- session_id: this.sessionId,
293
- challenge_window_size: this.challengeWindowSize,
294
- hide_card_holder: this.paymentIntent.payment.hide_card_holder,
295
- customer: this.customerProperties(this.customer),
296
- })];
297
- case 1:
298
- // Persist enrollResult state in memory for handlePaymentValidation handler
299
- _a.enrollmentResult = (_b.sent()).data;
300
- return [2 /*return*/];
301
- }
302
- });
303
- });
304
- };
305
- Sca.prototype.customerProperties = function (customer) {
306
- var properties = {};
307
- if (!customer)
308
- return properties;
309
- if (customer.firstName)
310
- properties.first_name = customer.firstName;
311
- if (customer.lastName)
312
- properties.last_name = customer.lastName;
313
- if (customer.email)
314
- properties.email = customer.email;
315
- if (customer.address)
316
- properties.address = customer.address;
317
- if (customer.city)
318
- properties.city = customer.city;
319
- if (customer.state)
320
- properties.state = customer.state;
321
- if (customer.postcode)
322
- properties.postcode = customer.postcode;
323
- if (customer.country)
324
- properties.country = customer.country;
325
- return properties;
326
- };
327
- Sca.prototype.handleEnrollmentResult = function (enrollSCAResponse) {
328
- var threedsData = threedsResponseData(enrollSCAResponse);
329
- var scenario = getEnrollmentResult(enrollSCAResponse);
330
- if (scenario.outcome.authenticationType === 'challenge') {
331
- this._cardinal.continue(enrollSCAResponse.acs_url, enrollSCAResponse.pareq, enrollSCAResponse.authentication_transaction_id);
332
- return;
333
- }
334
- if (scenario.outcome.success) {
335
- var message = "FatZebra.3DS: 3DS success - ".concat(scenario.description, ".");
336
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_SUCCESS, {
337
- message: message,
338
- data: threedsData,
339
- });
340
- console.log(message);
341
- }
342
- else {
343
- var message = "FatZebra.3DS: 3DS error - ".concat(scenario.description);
344
- (0, event_manager_1.emit)(types_1.PublicEvent.SCA_ERROR, {
345
- errors: [message],
346
- data: {
347
- errorCode: scenario.outcome.errorCode
348
- },
349
- });
350
- console.log(message);
351
- }
352
- };
353
- return Sca;
354
- }());
355
- var threedsResponseData = function (response) {
356
- return {
357
- // CAVV: Visa & Amex only
358
- // AAV: Mastercard only, known as UCAF
359
- cavv: response.cavv || response.aav,
360
- par: response.pares,
361
- sli: (0, eci_mappings_1.toFzSli)(response.eci),
362
- xid: response.xid,
363
- ver: response.enrolled,
364
- directoryServerTxnId: response.directory_server_txn_id,
365
- threedsVersion: response.version,
366
- };
367
- };
368
- var getEnrollmentResult = function (enrollment) {
369
- return scenarios_1.enrollmentScenarios.find(function (item) {
370
- return item.reasonCode === enrollment.reason_code &&
371
- item.veresEnrolled === enrollment.enrolled &&
372
- item.pares === enrollment.pares &&
373
- item.threedsVersion === getMajor3dsVersion(enrollment.version);
374
- });
375
- };
376
- var getValidationResult = function (validation) {
377
- return scenarios_1.validationScenarios.find(function (item) {
378
- return item.reasonCode === validation.reason_code &&
379
- item.pares === validation.pares &&
380
- item.threedsVersion === getMajor3dsVersion(validation.version);
381
- });
382
- };
383
- // 3DS versioning follows SEMVER format. The first charactor is the major version number.
384
- var getMajor3dsVersion = function (original) {
385
- return original[0];
386
- };
387
- exports.default = Sca;
388
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sca/index.ts"],"names":[],"mappings":"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"}