@fat-zebra/sdk 1.2.1 → 1.2.3

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 (102) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +2 -0
  3. package/dist/sca/index.js +2 -1
  4. package/dist/shared/api-gateway-client.js +2 -2
  5. package/package.json +1 -1
  6. package/dist/env.d.ts +0 -5
  7. package/dist/env.development.d.ts +0 -5
  8. package/dist/env.development.js +0 -5
  9. package/dist/env.js +0 -5
  10. package/dist/local/fatzebra.js +0 -17728
  11. package/dist/local/fatzebra.js.map +0 -1
  12. package/dist/local/index.html +0 -247
  13. package/dist/sca/sca.d.ts +0 -42
  14. package/dist/sca/sca.js +0 -273
  15. package/dist/src/applepay/applepay.js +0 -198
  16. package/dist/src/applepay/applepay.js.map +0 -1
  17. package/dist/src/applepay/clients/apple-pay-client.js +0 -66
  18. package/dist/src/applepay/clients/apple-pay-client.js.map +0 -1
  19. package/dist/src/applepay/clients/paynow-client.js +0 -96
  20. package/dist/src/applepay/clients/paynow-client.js.map +0 -1
  21. package/dist/src/applepay/index.js +0 -6
  22. package/dist/src/applepay/index.js.map +0 -1
  23. package/dist/src/hpp/hpp.js +0 -230
  24. package/dist/src/hpp/hpp.js.map +0 -1
  25. package/dist/src/hpp/hpp.test.js +0 -135
  26. package/dist/src/hpp/hpp.test.js.map +0 -1
  27. package/dist/src/hpp/index.js +0 -6
  28. package/dist/src/hpp/index.js.map +0 -1
  29. package/dist/src/index.js +0 -7
  30. package/dist/src/index.js.map +0 -1
  31. package/dist/src/main.js +0 -225
  32. package/dist/src/main.js.map +0 -1
  33. package/dist/src/main.test.js +0 -236
  34. package/dist/src/main.test.js.map +0 -1
  35. package/dist/src/paypal/paypal-button.js +0 -311
  36. package/dist/src/paypal/paypal-button.js.map +0 -1
  37. package/dist/src/paypal/paypal-button.test.js +0 -41
  38. package/dist/src/paypal/paypal-button.test.js.map +0 -1
  39. package/dist/src/paypal/paypal-checkout.js +0 -111
  40. package/dist/src/paypal/paypal-checkout.js.map +0 -1
  41. package/dist/src/paypal/paypal-checkout.test.js +0 -167
  42. package/dist/src/paypal/paypal-checkout.test.js.map +0 -1
  43. package/dist/src/paypal/types.js +0 -9
  44. package/dist/src/paypal/types.js.map +0 -1
  45. package/dist/src/paypal/validation.js +0 -73
  46. package/dist/src/paypal/validation.js.map +0 -1
  47. package/dist/src/sca/__tests__/eci-mappings.test.js +0 -31
  48. package/dist/src/sca/__tests__/eci-mappings.test.js.map +0 -1
  49. package/dist/src/sca/__tests__/index.test.js +0 -558
  50. package/dist/src/sca/__tests__/index.test.js.map +0 -1
  51. package/dist/src/sca/cardinal.js +0 -110
  52. package/dist/src/sca/cardinal.js.map +0 -1
  53. package/dist/src/sca/eci-mappings.js +0 -63
  54. package/dist/src/sca/eci-mappings.js.map +0 -1
  55. package/dist/src/sca/eci-mappings.test.js +0 -31
  56. package/dist/src/sca/eci-mappings.test.js.map +0 -1
  57. package/dist/src/sca/index.js +0 -388
  58. package/dist/src/sca/index.js.map +0 -1
  59. package/dist/src/sca/index.test.js +0 -558
  60. package/dist/src/sca/index.test.js.map +0 -1
  61. package/dist/src/sca/scenarios/enrollment.js +0 -150
  62. package/dist/src/sca/scenarios/enrollment.js.map +0 -1
  63. package/dist/src/sca/scenarios/index.js +0 -8
  64. package/dist/src/sca/scenarios/index.js.map +0 -1
  65. package/dist/src/sca/scenarios/validation.js +0 -128
  66. package/dist/src/sca/scenarios/validation.js.map +0 -1
  67. package/dist/src/sca/types.js +0 -57
  68. package/dist/src/sca/types.js.map +0 -1
  69. package/dist/src/shared/api-gateway-client.js +0 -150
  70. package/dist/src/shared/api-gateway-client.js.map +0 -1
  71. package/dist/src/shared/bridge-client.js +0 -24
  72. package/dist/src/shared/bridge-client.js.map +0 -1
  73. package/dist/src/shared/constants.js +0 -19
  74. package/dist/src/shared/constants.js.map +0 -1
  75. package/dist/src/shared/event-manager.js +0 -15
  76. package/dist/src/shared/event-manager.js.map +0 -1
  77. package/dist/src/shared/post-message-client.js +0 -107
  78. package/dist/src/shared/post-message-client.js.map +0 -1
  79. package/dist/src/shared/post-message-client.test.js +0 -58
  80. package/dist/src/shared/post-message-client.test.js.map +0 -1
  81. package/dist/src/shared/types.js +0 -47
  82. package/dist/src/shared/types.js.map +0 -1
  83. package/dist/src/shared/types.test.js +0 -55
  84. package/dist/src/shared/types.test.js.map +0 -1
  85. package/dist/src/shared/util.js +0 -96
  86. package/dist/src/shared/util.js.map +0 -1
  87. package/dist/src/shared/util.test.js +0 -148
  88. package/dist/src/shared/util.test.js.map +0 -1
  89. package/dist/src/validation/index.js +0 -10
  90. package/dist/src/validation/index.js.map +0 -1
  91. package/dist/src/validation/validation-helper.js +0 -10
  92. package/dist/src/validation/validation-helper.js.map +0 -1
  93. package/dist/src/validation/validation-helper.test.js +0 -34
  94. package/dist/src/validation/validation-helper.test.js.map +0 -1
  95. package/dist/src/validation/validators/hpp-load-params-validator.js +0 -17
  96. package/dist/src/validation/validators/hpp-load-params-validator.js.map +0 -1
  97. package/dist/src/validation/validators/hpp-load-params-validator.test.js +0 -56
  98. package/dist/src/validation/validators/hpp-load-params-validator.test.js.map +0 -1
  99. package/dist/src/validation/validators/verify-card-params-validator.js +0 -18
  100. package/dist/src/validation/validators/verify-card-params-validator.js.map +0 -1
  101. package/dist/tests/helpers/api-gateway-mock.js +0 -36
  102. 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA4B;AAC5B,yCAKoB;AACpB,yCAKwB;AACxB,uCAGmB;AACnB,yDAEgC;AAChC,+CAAwC;AAgBxC;IAYE,aAAY,EAA4B;YAA1B,aAAa,mBAAA;QACzB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,wBAAU,GAAV;QAAA,iBASC;QARC,IAAM,MAAM,GAAQ,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAChC,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA;QACrC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,MAAM,GAAG;YACd,KAAI,CAAC,SAAS,GAAG,IAAI,0BAAe,EAAE,CAAA;QACxC,CAAC,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,sBAAI,yBAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,SAAS,CAAA;QACvB,CAAC;aAED,UAAa,QAAyB;YACpC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC3B,CAAC;;;OAJA;IAMD,sBAAI,gCAAe;aAAnB;YACE,OAAO,IAAI,CAAC,gBAAgB,CAAA;QAC9B,CAAC;QAED,kEAAkE;aAClE,UAAoB,MAA+B;YACjD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAA;QAChC,CAAC;;;OALA;IAOK,iBAAG,GAAT,UAAU,MAAmB;;;;;;;wBAC3B,qCAAqC;wBACrC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;wBACzC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;wBACrB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;wBACjC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;wBAC/B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,CAAC,CAAC,mBAAmB,CAAC,cAAc,CAAA;;;;wBAM7E,qBAAM,IAAI,CAAC,iBAAiB,EAAE,EAAA;;wBAA5C,WAAW,GAAG,SAA8B,CAAA;;;;wBAEtC,OAAO,GAAG,oCAAoC,CAAA;wBACpD,IAAA,oBAAI,EAAC,mBAAW,CAAC,SAAS,EAAE;4BAC1B,MAAM,EAAE,CAAC,OAAO,CAAC;4BACjB,IAAI,EAAE,IAAI;yBACX,CAAC,CAAA;wBACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;wBACpB,sBAAM;;wBAGR,gBAAgB;wBAChB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;6BAE7B,CAAC,IAAI,CAAC,SAAS,EAAf,wBAAe;wBACqB,qBAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,EAAA;;wBAA7E,6BAA6B,GAAG,SAA6C;wBACnF,IAAI,CAAC,SAAS,GAAG,6BAA6B,CAAC,SAAS,CAAA;wBAExD,qEAAqE;wBACrE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAO,IAAyB,EAAE,KAAa;;;;;wCAC/E,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;4CACtB,OAAO,GAAG,2CAAoC,KAAK,MAAG,CAAA;4CAC5D,IAAA,oBAAI,EAAC,mBAAW,CAAC,SAAS,EAAE;gDAC1B,MAAM,EAAE,CAAC,OAAO,CAAC;gDACjB,IAAI,EAAE,IAAI;6CACX,CAAC,CAAA;4CACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;4CACpB,sBAAM;yCACP;wCAEiC,qBAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;gDAC1E,KAAK,EAAE,IAAI,CAAC,GAAG;6CAChB,CAAC,EAAA;;wCAFI,wBAAwB,GAAG,CAAC,SAEhC,CAAC,CAAC,IAAkC;wCAEtC,IAAI,IAAI,CAAC,sBAAsB,KAAK,wBAAwB,CAAC,wBAAwB,EAAE;4CAC/E,OAAO,GAAG,kEAAkE,CAAA;4CAClF,IAAA,oBAAI,EAAC,mBAAW,CAAC,SAAS,EAAE;gDAC1B,MAAM,EAAE,CAAC,OAAO,CAAC;gDACjB,IAAI,EAAE,IAAI;6CACX,CAAC,CAAA;4CACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;yCACrB;;;;wCAKO,aAAa,GAAyB;4CAC1C,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM;4CACzC,6BAA6B,EAAE,IAAI,CAAC,gBAAgB,CAAC,6BAA6B;4CAClF,UAAU,EAAE,IAAI,CAAC,SAAS;4CAC1B,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ;4CAC7C,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK;4CAClC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS;yCAChD,CAAA;wCAEsB,qBAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,EAAA;;wCAA1E,mBAAmB,GAAG,CAAC,SAAmD,CAAC,CAAC,IAA6B,CAAA;;;;wCAGnG,OAAO,GAAG,gDAAgD,CAAA;wCAChE,IAAA,oBAAI,EAAC,mBAAW,CAAC,SAAS,EAAE;4CAC1B,MAAM,EAAE,CAAC,OAAO,CAAC;4CACjB,IAAI,EAAE,IAAI;yCACX,CAAC,CAAA;wCACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;wCACpB,sBAAM;;wCAGF,WAAW,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,CAAA;wCACtD,QAAQ,GAAuB,mBAAmB,CAAC,mBAAmB,CAAC,CAAA;wCAE7E,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;4CACtB,OAAO,GAAG,sCAA+B,QAAQ,CAAC,WAAW,MAAG,CAAA;4CACtE,IAAA,oBAAI,EAAC,mBAAW,CAAC,WAAW,EAAE;gDAC5B,OAAO,SAAA;gDACP,IAAI,EAAE,WAAW;6CAClB,CAAC,CAAA;4CACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;yCACrB;6CAAM;4CACC,OAAO,GAAG,oCAA6B,QAAQ,CAAC,WAAW,CAAE,CAAA;4CACnE,IAAA,oBAAI,EAAC,mBAAW,CAAC,SAAS,EAAE;gDAC1B,MAAM,EAAE,CAAC,OAAO,CAAC;gDACjB,IAAI,EAAE;oDACJ,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS;iDACtC;6CACF,CAAC,CAAA;4CACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;yCACrB;;;;6BACF,CAAC,CAAA;;;;wBAKF,qBAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;;wBAAzC,SAAyC,CAAA;;;;wBAEnC,OAAO,GAAG,wCAAwC,CAAA;wBACxD,IAAA,oBAAI,EAAC,mBAAW,CAAC,SAAS,EAAE;4BAC1B,MAAM,EAAE,CAAC,OAAO,CAAC;4BACjB,IAAI,EAAE,IAAI;yBACX,CAAC,CAAA;wBACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;wBACpB,sBAAM;;;wBAIN,qBAAM,IAAI,CAAC,kBAAkB,EAAE,EAAA;;wBAA/B,SAA+B,CAAA;;;;wBAEzB,OAAO,GAAG,gDAAgD,CAAA;wBAChE,IAAA,oBAAI,EAAC,mBAAW,CAAC,SAAS,EAAE;4BAC1B,MAAM,EAAE,CAAC,OAAO,CAAC;4BACjB,IAAI,EAAE,IAAI;yBACX,CAAC,CAAA;wBACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;wBACpB,sBAAM;;wBAGR,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;;;;;KACnD;IAEK,+BAAiB,GAAvB;;;;;;wBACU,OAAO,GAAK,IAAI,CAAC,aAAa,QAAvB,CAAuB;wBACpB,qBAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;gCAC1D,MAAM,EAAE,OAAO,CAAC,MAAM;gCACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gCAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;6BAC3C,CAAC,EAAA;;wBAJI,QAAQ,GAAG,CAAC,SAIhB,CAAC,CAAC,IAAkC;wBAEtC,sBAAO,QAAQ,CAAC,GAAG,EAAA;;;;KACpB;IAEK,gCAAkB,GAAxB;;;;;;wBACE,2EAA2E;wBAC3E,KAAA,IAAI,CAAA;wBAAqB,qBAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;gCACzD,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM;gCACzC,UAAU,EAAE,IAAI,CAAC,SAAS;gCAC1B,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ;gCAC7C,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS;gCAC/C,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY;gCAC7C,UAAU,EAAE,IAAI,CAAC,SAAS;gCAC1B,qBAAqB,EAAE,IAAI,CAAC,mBAAmB;gCAC/C,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB;gCAC7D,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;6BACjD,CAAC,EAAA;;wBAXF,2EAA2E;wBAC3E,GAAK,gBAAgB,GAAG,CAAC,SAUvB,CAAC,CAAC,IAA2B,CAAA;;;;;KAChC;IAED,gCAAkB,GAAlB,UAAmB,QAAkB;QACnC,IAAI,UAAU,GAAsB,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAC;QACjC,IAAI,QAAQ,CAAC,SAAS;YAAE,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAA;QAClE,IAAI,QAAQ,CAAC,QAAQ;YAAE,UAAU,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAA;QAC/D,IAAI,QAAQ,CAAC,KAAK;YAAE,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;QACrD,IAAI,QAAQ,CAAC,OAAO;YAAE,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC3D,IAAI,QAAQ,CAAC,IAAI;YAAE,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QAClD,IAAI,QAAQ,CAAC,KAAK;YAAE,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;QACrD,IAAI,QAAQ,CAAC,QAAQ;YAAE,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;QAC9D,IAAI,QAAQ,CAAC,OAAO;YAAE,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC3D,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,oCAAsB,GAAtB,UAAuB,iBAAsC;QAC3D,IAAM,WAAW,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAA;QAC1D,IAAM,QAAQ,GAAuB,mBAAmB,CAAC,iBAAiB,CAAC,CAAA;QAE3E,IAAI,QAAQ,CAAC,OAAO,CAAC,kBAAkB,KAAK,WAAW,EAAE;YACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,iBAAiB,CAAC,OAAO,EACzB,iBAAiB,CAAC,KAAK,EACvB,iBAAiB,CAAC,6BAA6B,CAChD,CAAA;YACD,OAAM;SACP;QAED,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;YAC5B,IAAM,OAAO,GAAG,sCAA+B,QAAQ,CAAC,WAAW,MAAG,CAAA;YACtE,IAAA,oBAAI,EAAC,mBAAW,CAAC,WAAW,EAAE;gBAC5B,OAAO,SAAA;gBACP,IAAI,EAAE,WAAW;aAClB,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;SACrB;aAAM;YACL,IAAM,OAAO,GAAG,oCAA6B,QAAQ,CAAC,WAAW,CAAE,CAAA;YACnE,IAAA,oBAAI,EAAC,mBAAW,CAAC,SAAS,EAAE;gBAC1B,MAAM,EAAE,CAAC,OAAO,CAAC;gBACjB,IAAI,EAAE;oBACJ,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS;iBACtC;aACF,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;SACrB;IACH,CAAC;IACH,UAAC;AAAD,CAAC,AAvPD,IAuPC;AAED,IAAM,mBAAmB,GAAG,UAAC,QAAqD;IAChF,OAAO;QACL,yBAAyB;QACzB,sCAAsC;QACtC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG;QACnC,GAAG,EAAE,QAAQ,CAAC,KAAK;QACnB,GAAG,EAAE,IAAA,sBAAO,EAAC,QAAQ,CAAC,GAAG,CAAC;QAC1B,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,GAAG,EAAE,QAAQ,CAAC,QAAQ;QACtB,oBAAoB,EAAE,QAAQ,CAAC,uBAAuB;QACtD,cAAc,EAAE,QAAQ,CAAC,OAAO;KACjC,CAAA;AACH,CAAC,CAAA;AAED,IAAM,mBAAmB,GAAG,UAAC,UAA+B;IAC1D,OAAO,+BAAmB,CAAC,IAAI,CAAC,UAAC,IAAwB;QACvD,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW;YAC/C,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC,QAAQ;YAC1C,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK;YAC/B,IAAI,CAAC,cAAc,KAAK,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,IAAM,mBAAmB,GAAG,UAAC,UAAiC;IAC5D,OAAO,+BAAmB,CAAC,IAAI,CAAC,UAAC,IAAwB;QACvD,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW;YAC/C,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK;YAC/B,IAAI,CAAC,cAAc,KAAK,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,yFAAyF;AACzF,IAAM,kBAAkB,GAAG,UAAC,QAAgB;IAC1C,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;AACpB,CAAC,CAAA;AAED,kBAAe,GAAG,CAAC"}