globalpayments-api 3.10.13 → 3.10.15

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 (131) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js +21 -0
  3. package/lib/src/Builders/RequestBuilder/GpApi/GpApiAuthorizationRequestBuilder.js.map +1 -1
  4. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.d.ts +11 -2
  5. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js +44 -5
  6. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js.map +1 -1
  7. package/lib/src/Entities/GpApi/PorticoTokenConfig.d.ts +25 -0
  8. package/lib/src/Entities/GpApi/PorticoTokenConfig.js +30 -0
  9. package/lib/src/Entities/GpApi/PorticoTokenConfig.js.map +1 -0
  10. package/lib/src/Entities/GpApi/index.d.ts +1 -0
  11. package/lib/src/Entities/GpApi/index.js +1 -0
  12. package/lib/src/Entities/GpApi/index.js.map +1 -1
  13. package/lib/src/Entities/Transaction.d.ts +2 -0
  14. package/lib/src/Entities/Transaction.js +2 -0
  15. package/lib/src/Entities/Transaction.js.map +1 -1
  16. package/lib/src/Entities/TransactionSummary.d.ts +1 -0
  17. package/lib/src/Entities/TransactionSummary.js +1 -0
  18. package/lib/src/Entities/TransactionSummary.js.map +1 -1
  19. package/lib/src/Entities/UPA/ExtraChargeType.d.ts +8 -0
  20. package/lib/src/Entities/UPA/ExtraChargeType.js +13 -0
  21. package/lib/src/Entities/UPA/ExtraChargeType.js.map +1 -0
  22. package/lib/src/Entities/UPA/Lodging.d.ts +11 -0
  23. package/lib/src/Entities/UPA/Lodging.js +15 -0
  24. package/lib/src/Entities/UPA/Lodging.js.map +1 -0
  25. package/lib/src/Entities/UPA/POSData.d.ts +6 -0
  26. package/lib/src/Entities/UPA/POSData.js +11 -0
  27. package/lib/src/Entities/UPA/POSData.js.map +1 -0
  28. package/lib/src/Gateways/GpApiConnector.d.ts +0 -6
  29. package/lib/src/Gateways/GpApiConnector.js +22 -43
  30. package/lib/src/Gateways/GpApiConnector.js.map +1 -1
  31. package/lib/src/Gateways/PorticoConnector.js +4 -6
  32. package/lib/src/Gateways/PorticoConnector.js.map +1 -1
  33. package/lib/src/Mapping/GpApiMapping.js +7 -0
  34. package/lib/src/Mapping/GpApiMapping.js.map +1 -1
  35. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.d.ts +6 -0
  36. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js +25 -2
  37. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js.map +1 -1
  38. package/lib/src/Services/GpApiServices.js +4 -1
  39. package/lib/src/Services/GpApiServices.js.map +1 -1
  40. package/lib/src/Terminals/Builders/TerminalAuthBuilder.d.ts +1 -1
  41. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js +11 -18
  42. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js.map +1 -1
  43. package/lib/src/Terminals/Builders/TerminalManageBuilder.d.ts +1 -0
  44. package/lib/src/Terminals/Builders/TerminalManageBuilder.js +4 -0
  45. package/lib/src/Terminals/Builders/TerminalManageBuilder.js.map +1 -1
  46. package/lib/src/Terminals/Builders/TerminalReportBuilder.d.ts +15 -0
  47. package/lib/src/Terminals/Builders/TerminalReportBuilder.js +49 -0
  48. package/lib/src/Terminals/Builders/TerminalReportBuilder.js.map +1 -0
  49. package/lib/src/Terminals/UPA/Entities/UpaModels.d.ts +62 -0
  50. package/lib/src/Terminals/UPA/Entities/UpaModels.js +28 -0
  51. package/lib/src/Terminals/UPA/Entities/UpaModels.js.map +1 -0
  52. package/lib/src/Terminals/UPA/Entities/UpaSearchCriteria.d.ts +5 -0
  53. package/lib/src/Terminals/UPA/Entities/UpaSearchCriteria.js +10 -0
  54. package/lib/src/Terminals/UPA/Entities/UpaSearchCriteria.js.map +1 -0
  55. package/lib/src/Terminals/UPA/Reponses/BatchList.d.ts +16 -0
  56. package/lib/src/Terminals/UPA/Reponses/BatchList.js +82 -0
  57. package/lib/src/Terminals/UPA/Reponses/BatchList.js.map +1 -0
  58. package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.d.ts +55 -0
  59. package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.js +213 -0
  60. package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.js.map +1 -0
  61. package/lib/src/Terminals/UPA/Reponses/OpenTabDetailsResponse.d.ts +25 -0
  62. package/lib/src/Terminals/UPA/Reponses/OpenTabDetailsResponse.js +109 -0
  63. package/lib/src/Terminals/UPA/Reponses/OpenTabDetailsResponse.js.map +1 -0
  64. package/lib/src/Terminals/UPA/Reponses/SafReportResponse.d.ts +36 -0
  65. package/lib/src/Terminals/UPA/Reponses/SafReportResponse.js +181 -0
  66. package/lib/src/Terminals/UPA/Reponses/SafReportResponse.js.map +1 -0
  67. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js +9 -2
  68. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js.map +1 -1
  69. package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.d.ts +21 -0
  70. package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.js +106 -0
  71. package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.js.map +1 -0
  72. package/lib/src/Terminals/UPA/Reponses/UpaGiftCardResponse.d.ts +41 -0
  73. package/lib/src/Terminals/UPA/Reponses/UpaGiftCardResponse.js +93 -0
  74. package/lib/src/Terminals/UPA/Reponses/UpaGiftCardResponse.js.map +1 -0
  75. package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.d.ts +35 -0
  76. package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.js +194 -0
  77. package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.js.map +1 -0
  78. package/lib/src/Terminals/UPA/Reponses/UpaSignatureResponse.d.ts +18 -0
  79. package/lib/src/Terminals/UPA/Reponses/UpaSignatureResponse.js +94 -0
  80. package/lib/src/Terminals/UPA/Reponses/UpaSignatureResponse.js.map +1 -0
  81. package/lib/src/Terminals/UPA/UpaController.js +4 -1
  82. package/lib/src/Terminals/UPA/UpaController.js.map +1 -1
  83. package/lib/src/Utils/SdkVersion.d.ts +1 -0
  84. package/lib/src/Utils/SdkVersion.js +48 -0
  85. package/lib/src/Utils/SdkVersion.js.map +1 -0
  86. package/lib/src/Utils/index.d.ts +1 -0
  87. package/lib/src/Utils/index.js +1 -0
  88. package/lib/src/Utils/index.js.map +1 -1
  89. package/lib/test/Integration/Gateways/CI/gpapi/GpApiTransactionsTests.test.js +69 -0
  90. package/lib/test/Integration/Gateways/CI/gpapi/GpApiTransactionsTests.test.js.map +1 -0
  91. package/lib/test/Integration/Gateways/CI/portico/PorticoCreditTests.test.js +111 -0
  92. package/lib/test/Integration/Gateways/CI/portico/PorticoCreditTests.test.js.map +1 -0
  93. package/lib/test/Integration/Gateways/CI/upa_mitc/UpaFunctionalityTests.test.js +84 -0
  94. package/lib/test/Integration/Gateways/CI/upa_mitc/UpaFunctionalityTests.test.js.map +1 -0
  95. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenPorticoCredentials.test.d.ts +1 -0
  96. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenPorticoCredentials.test.js +175 -0
  97. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenPorticoCredentials.test.js.map +1 -0
  98. package/lib/test/Integration/Gateways/GpApiConnector/GpApiCreateTokenWithPorticoCredentialTests.test.d.ts +1 -0
  99. package/lib/test/Integration/Gateways/GpApiConnector/GpApiCreateTokenWithPorticoCredentialTests.test.js +205 -0
  100. package/lib/test/Integration/Gateways/GpApiConnector/GpApiCreateTokenWithPorticoCredentialTests.test.js.map +1 -0
  101. package/lib/test/Integration/Gateways/GpApiConnector/VisaAft.test.d.ts +1 -0
  102. package/lib/test/Integration/Gateways/GpApiConnector/VisaAft.test.js +168 -0
  103. package/lib/test/Integration/Gateways/GpApiConnector/VisaAft.test.js.map +1 -0
  104. package/lib/test/Integration/Gateways/PorticoConnector/GlobalTransactionId.test.d.ts +1 -0
  105. package/lib/test/Integration/Gateways/PorticoConnector/GlobalTransactionId.test.js +243 -0
  106. package/lib/test/Integration/Gateways/PorticoConnector/GlobalTransactionId.test.js.map +1 -0
  107. package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.d.ts +1 -0
  108. package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.js +147 -0
  109. package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.js.map +1 -0
  110. package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.d.ts +1 -0
  111. package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.js +250 -0
  112. package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.js.map +1 -0
  113. package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.d.ts +1 -0
  114. package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.js +1277 -0
  115. package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.js.map +1 -0
  116. package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.d.ts +1 -0
  117. package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.js +411 -0
  118. package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.js.map +1 -0
  119. package/lib/test/Utils/CiTestingHarness.d.ts +21 -0
  120. package/lib/test/Utils/CiTestingHarness.js +65 -7
  121. package/lib/test/Utils/CiTestingHarness.js.map +1 -1
  122. package/package.json +1 -1
  123. package/lib/test/Integration/Gateways/CI/GpApiCreditCardNotPresentTests.test.js +0 -90
  124. package/lib/test/Integration/Gateways/CI/GpApiCreditCardNotPresentTests.test.js.map +0 -1
  125. package/lib/test/Integration/Gateways/CI/PorticoCreditTests.test.js +0 -63
  126. package/lib/test/Integration/Gateways/CI/PorticoCreditTests.test.js.map +0 -1
  127. package/lib/test/Integration/Gateways/CI/UpaMicTests.test.js +0 -52
  128. package/lib/test/Integration/Gateways/CI/UpaMicTests.test.js.map +0 -1
  129. /package/lib/test/Integration/Gateways/CI/{GpApiCreditCardNotPresentTests.test.d.ts → gpapi/GpApiTransactionsTests.test.d.ts} +0 -0
  130. /package/lib/test/Integration/Gateways/CI/{PorticoCreditTests.test.d.ts → portico/PorticoCreditTests.test.d.ts} +0 -0
  131. /package/lib/test/Integration/Gateways/CI/{UpaMicTests.test.d.ts → upa_mitc/UpaFunctionalityTests.test.d.ts} +0 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpaEODResponse = void 0;
4
+ const src_1 = require("../../../../src");
5
+ class UpaEODResponse {
6
+ status;
7
+ command;
8
+ version = "";
9
+ deviceResponseCode;
10
+ deviceResponseText;
11
+ deviceResponseMessage;
12
+ referenceNumber = "";
13
+ batchId;
14
+ gatewayResponseCode;
15
+ gatewayResponseMessage;
16
+ respDateTime;
17
+ multipleMessage;
18
+ constructor(jsonResponse) {
19
+ if (typeof jsonResponse === "string") {
20
+ try {
21
+ jsonResponse = JSON.parse(jsonResponse);
22
+ }
23
+ catch {
24
+ throw new src_1.NotImplementedError("Invalid JSON string");
25
+ }
26
+ }
27
+ this.version = this.extractVersion(jsonResponse);
28
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
29
+ if (this.isGpApiResponse(jsonResponse)) {
30
+ const response = jsonResponse.response;
31
+ const cmdResult = response?.cmdResult;
32
+ this.status = cmdResult?.result ?? jsonResponse.status ?? "";
33
+ this.command = response?.response ?? "";
34
+ this.deviceResponseCode = this.normalizeDeviceResponseCode(cmdResult?.errorCode, jsonResponse.action?.result_code);
35
+ this.deviceResponseText = this.status;
36
+ this.deviceResponseMessage = cmdResult?.errorMessage ?? "";
37
+ const responseData = response?.data;
38
+ if (responseData) {
39
+ this.multipleMessage = responseData.multipleMessage;
40
+ const host = responseData.host;
41
+ if (host) {
42
+ this.referenceNumber = host.referenceNumber ?? this.referenceNumber;
43
+ this.respDateTime = host.respDateTime;
44
+ this.batchId = host.batchId;
45
+ this.gatewayResponseCode = host.gatewayResponseCode;
46
+ this.gatewayResponseMessage = host.gatewayResponseMessage;
47
+ }
48
+ }
49
+ }
50
+ else {
51
+ // Native UPA device response
52
+ const data = jsonResponse?.data;
53
+ const cmdResult = data?.cmdResult;
54
+ this.deviceResponseText = cmdResult?.result ?? "";
55
+ this.deviceResponseCode = cmdResult?.errorCode ?? "00";
56
+ this.status = this.deviceResponseText;
57
+ this.deviceResponseMessage = cmdResult?.errorMessage ?? "";
58
+ this.command = data?.response ?? "";
59
+ const innerData = data?.data;
60
+ if (innerData) {
61
+ this.referenceNumber =
62
+ innerData.referenceNumber ?? this.referenceNumber;
63
+ this.multipleMessage = innerData.multipleMessage;
64
+ const host = innerData.host;
65
+ if (host) {
66
+ this.referenceNumber = host.referenceNumber ?? this.referenceNumber;
67
+ this.respDateTime = host.respDateTime;
68
+ this.batchId = host.batchId;
69
+ this.gatewayResponseCode = host.gatewayResponseCode;
70
+ this.gatewayResponseMessage = host.gatewayResponseMessage;
71
+ }
72
+ }
73
+ }
74
+ }
75
+ isGpApiResponse(jsonResponse) {
76
+ return !!(jsonResponse.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
77
+ }
78
+ normalizeDeviceResponseCode(cmdErrorCode, actionResultCode) {
79
+ if (cmdErrorCode) {
80
+ return cmdErrorCode;
81
+ }
82
+ return actionResultCode === "SUCCESS" ? "00" : actionResultCode ?? "";
83
+ }
84
+ extractVersion(jsonResponse) {
85
+ return (jsonResponse?.version ??
86
+ jsonResponse?.response?.version ??
87
+ jsonResponse?.data?.version ??
88
+ jsonResponse?.data?.data?.version ??
89
+ "");
90
+ }
91
+ extractReferenceNumber(jsonResponse) {
92
+ return (jsonResponse?.referenceNumber ??
93
+ jsonResponse?.response?.referenceNumber ??
94
+ jsonResponse?.response?.data?.referenceNumber ??
95
+ jsonResponse?.response?.data?.host?.referenceNumber ??
96
+ jsonResponse?.data?.referenceNumber ??
97
+ jsonResponse?.data?.data?.referenceNumber ??
98
+ jsonResponse?.data?.data?.host?.referenceNumber ??
99
+ "");
100
+ }
101
+ toString() {
102
+ return JSON.stringify(this);
103
+ }
104
+ }
105
+ exports.UpaEODResponse = UpaEODResponse;
106
+ //# sourceMappingURL=UpaEODResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpaEODResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/UpaEODResponse.ts"],"names":[],"mappings":";;;AAAA,yCAIyB;AAEzB,MAAa,cAAc;IAClB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,OAAO,GAAG,EAAE,CAAC;IACb,kBAAkB,CAAS;IAC3B,kBAAkB,CAAS;IAC3B,qBAAqB,CAAU;IAC/B,eAAe,GAAG,EAAE,CAAC;IACrB,OAAO,CAAU;IACjB,mBAAmB,CAAU;IAC7B,sBAAsB,CAAU;IAChC,YAAY,CAAU;IACtB,eAAe,CAAU;IAEhC,YAAY,YAAiB;QAC3B,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YACpC,IAAI;gBACF,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;aACzC;YAAC,MAAM;gBACN,MAAM,IAAI,yBAAmB,CAAC,qBAAqB,CAAC,CAAC;aACtD;SACF;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;YACtC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;YACvC,MAAM,SAAS,GAAG,QAAQ,EAAE,SAAS,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,2BAA2B,CACxD,SAAS,EAAE,SAAS,EACpB,YAAY,CAAC,MAAM,EAAE,WAAW,CACjC,CAAC;YACF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;YACtC,IAAI,CAAC,qBAAqB,GAAG,SAAS,EAAE,YAAY,IAAI,EAAE,CAAC;YAE3D,MAAM,YAAY,GAAG,QAAQ,EAAE,IAAI,CAAC;YACpC,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC;gBACpD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;gBAC/B,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC;oBACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBACpD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;iBAC3D;aACF;SACF;aAAM;YACL,6BAA6B;YAC7B,MAAM,IAAI,GAAG,YAAY,EAAE,IAAI,CAAC;YAChC,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;YAClC,IAAI,CAAC,kBAAkB,GAAG,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,kBAAkB,GAAG,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACtC,IAAI,CAAC,qBAAqB,GAAG,SAAS,EAAE,YAAY,IAAI,EAAE,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;YAEpC,MAAM,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC;YAC7B,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,eAAe;oBAClB,SAAS,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC;gBACpD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;gBACjD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;gBAC5B,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC;oBACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;oBACpD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;iBAC3D;aACF;SACF;IACH,CAAC;IAEO,eAAe,CAAC,YAAiB;QACvC,OAAO,CAAC,CAAC,CACP,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,KAAK,qBAAe,CAAC,KAAK,CACzE,CAAC;IACJ,CAAC;IAEO,2BAA2B,CACjC,YAAqB,EACrB,gBAAyB;QAEzB,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,CAAC;SACrB;QAED,OAAO,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACxE,CAAC;IAEO,cAAc,CAAC,YAAiB;QACtC,OAAO,CACL,YAAY,EAAE,OAAO;YACrB,YAAY,EAAE,QAAQ,EAAE,OAAO;YAC/B,YAAY,EAAE,IAAI,EAAE,OAAO;YAC3B,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;YACjC,EAAE,CACH,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,YAAiB;QAC9C,OAAO,CACL,YAAY,EAAE,eAAe;YAC7B,YAAY,EAAE,QAAQ,EAAE,eAAe;YACvC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe;YAC7C,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe;YACnD,YAAY,EAAE,IAAI,EAAE,eAAe;YACnC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe;YACzC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe;YAC/C,EAAE,CACH,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF;AAxHD,wCAwHC"}
@@ -0,0 +1,41 @@
1
+ import { TransactionResponse } from "./TransactionResponse";
2
+ /**
3
+ * Response from StartCardTransaction.
4
+ */
5
+ export declare class UpaGiftCardResponse extends TransactionResponse {
6
+ acquisitionType: string;
7
+ luhnCheckPassed: string;
8
+ dataEncryptionType: string;
9
+ serviceCode: string;
10
+ fallback: string;
11
+ clearPan: string;
12
+ maskedPan: string;
13
+ encryptedPan: string;
14
+ clearTrack1: string;
15
+ maskedTrack1: string;
16
+ clearTrack2: string;
17
+ maskedTrack2: string;
18
+ clearTrack3: string;
19
+ maskedTrack3: string;
20
+ emvTags: string;
21
+ expiryDate: string;
22
+ cvv: string;
23
+ address: string;
24
+ zipCode: string;
25
+ scannedData: string;
26
+ pinBlock: string;
27
+ pinKsn: string;
28
+ encryptedBlob: string;
29
+ encryptedBlobKsn: string;
30
+ cardType: string;
31
+ cardBrand: string;
32
+ cardBrandShortName: string;
33
+ cardSecurityPromptFlag: string;
34
+ avsFlag: string;
35
+ cashBackFlag: string;
36
+ surchargeFlag: string;
37
+ ebtCardType: string;
38
+ dccEligible: string;
39
+ constructor(jsonResponse: any);
40
+ private extractResponseData;
41
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpaGiftCardResponse = void 0;
4
+ const TransactionResponse_1 = require("./TransactionResponse");
5
+ /**
6
+ * Response from StartCardTransaction.
7
+ */
8
+ class UpaGiftCardResponse extends TransactionResponse_1.TransactionResponse {
9
+ acquisitionType = "";
10
+ luhnCheckPassed = "";
11
+ dataEncryptionType = "";
12
+ serviceCode = "";
13
+ fallback = "";
14
+ clearPan = "";
15
+ maskedPan = "";
16
+ encryptedPan = "";
17
+ clearTrack1 = "";
18
+ maskedTrack1 = "";
19
+ clearTrack2 = "";
20
+ maskedTrack2 = "";
21
+ clearTrack3 = "";
22
+ maskedTrack3 = "";
23
+ emvTags = "";
24
+ expiryDate = "";
25
+ cvv = "";
26
+ address = "";
27
+ zipCode = "";
28
+ scannedData = "";
29
+ pinBlock = "";
30
+ pinKsn = "";
31
+ encryptedBlob = "";
32
+ encryptedBlobKsn = "";
33
+ cardType = "";
34
+ cardBrand = "";
35
+ cardBrandShortName = "";
36
+ cardSecurityPromptFlag = "";
37
+ avsFlag = "";
38
+ cashBackFlag = "";
39
+ surchargeFlag = "";
40
+ ebtCardType = "";
41
+ dccEligible = "";
42
+ constructor(jsonResponse) {
43
+ super(jsonResponse);
44
+ const responseData = this.extractResponseData(jsonResponse);
45
+ const pan = responseData?.PAN ?? responseData?.Pan;
46
+ const trackData = responseData?.trackData;
47
+ const pinDukpt = responseData?.PinDUKPT;
48
+ const tripleDesDukpt = responseData?.["3DesDukpt"];
49
+ const cardBinDetails = responseData?.CardBinDetails;
50
+ this.acquisitionType = responseData?.acquisitionType ?? "";
51
+ this.luhnCheckPassed = responseData?.LuhnCheckPassed ?? "";
52
+ this.dataEncryptionType = responseData?.dataEncryptionType ?? "";
53
+ this.serviceCode = responseData?.serviceCode ?? "";
54
+ this.fallback = responseData?.fallback ?? "";
55
+ this.clearPan = pan?.clearPAN ?? "";
56
+ this.maskedPan = pan?.maskedPAN ?? "";
57
+ this.encryptedPan = pan?.encryptedPAN ?? "";
58
+ this.clearTrack1 = trackData?.clearTrack1 ?? "";
59
+ this.maskedTrack1 = trackData?.maskedTrack1 ?? "";
60
+ this.clearTrack2 = trackData?.clearTrack2 ?? "";
61
+ this.maskedTrack2 = trackData?.maskedTrack2 ?? "";
62
+ this.clearTrack3 = trackData?.clearTrack3 ?? "";
63
+ this.maskedTrack3 = trackData?.maskedTrack3 ?? "";
64
+ this.emvTags = responseData?.EmvTags ?? "";
65
+ this.expiryDate = responseData?.expiryDate ?? "";
66
+ this.expirationDate = this.expiryDate || this.expirationDate;
67
+ this.cvv = responseData?.Cvv ?? "";
68
+ this.address = responseData?.address ?? "";
69
+ this.zipCode = responseData?.zipCode ?? "";
70
+ this.scannedData = responseData?.ScannedData ?? "";
71
+ this.pinBlock = pinDukpt?.PinBlock ?? "";
72
+ this.pinKsn = pinDukpt?.Ksn ?? "";
73
+ this.encryptedBlob = tripleDesDukpt?.encryptedBlob ?? "";
74
+ this.encryptedBlobKsn = tripleDesDukpt?.Ksn ?? "";
75
+ this.cardType = cardBinDetails?.cardType ?? "";
76
+ this.cardBrand = cardBinDetails?.cardBrand ?? "";
77
+ this.cardBrandShortName = cardBinDetails?.cardBrandShortName ?? "";
78
+ this.cardSecurityPromptFlag = cardBinDetails?.cardSecurityPromptFlag ?? "";
79
+ this.avsFlag = cardBinDetails?.AVSFlag ?? "";
80
+ this.cashBackFlag = cardBinDetails?.cashBackFlag ?? "";
81
+ this.surchargeFlag = cardBinDetails?.surchargeFlag ?? "";
82
+ this.ebtCardType = cardBinDetails?.EBTCardType ?? "";
83
+ this.dccEligible = cardBinDetails?.DCCEligible ?? "";
84
+ }
85
+ extractResponseData(jsonResponse) {
86
+ if (jsonResponse?.provider && jsonResponse?.response?.data) {
87
+ return jsonResponse.response.data;
88
+ }
89
+ return jsonResponse?.data?.data ?? {};
90
+ }
91
+ }
92
+ exports.UpaGiftCardResponse = UpaGiftCardResponse;
93
+ //# sourceMappingURL=UpaGiftCardResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpaGiftCardResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/UpaGiftCardResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { ISAFResponse, SummaryType, TransactionSummary } from "../../../../src";
2
+ export declare class UpaSafSummaryResponse {
3
+ totalAmount?: number;
4
+ count?: number;
5
+ summaryType: SummaryType;
6
+ transactions: TransactionSummary[];
7
+ }
8
+ export declare class UpaSAFResponse implements ISAFResponse {
9
+ status: string;
10
+ command: string;
11
+ version: string;
12
+ deviceResponseCode: string;
13
+ deviceResponseText: string;
14
+ deviceResponseMessage?: string;
15
+ referenceNumber: string;
16
+ totalCount?: number;
17
+ totalAmount?: number;
18
+ multipleMessage?: string;
19
+ approved?: Record<number, UpaSafSummaryResponse>;
20
+ pending?: Record<number, UpaSafSummaryResponse>;
21
+ declined?: Record<number, UpaSafSummaryResponse>;
22
+ constructor(jsonResponse: any);
23
+ private parseSafDetails;
24
+ private assignSummary;
25
+ private mapTransactionSummary;
26
+ private mapSummaryType;
27
+ private toDate;
28
+ private toNumber;
29
+ private isGpApiResponse;
30
+ private normalizeDeviceResponseCode;
31
+ private extractVersion;
32
+ private extractReferenceNumber;
33
+ private extractCommand;
34
+ toString(): string;
35
+ }
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpaSAFResponse = exports.UpaSafSummaryResponse = void 0;
4
+ const src_1 = require("../../../../src");
5
+ class UpaSafSummaryResponse {
6
+ totalAmount;
7
+ count;
8
+ summaryType;
9
+ transactions = [];
10
+ }
11
+ exports.UpaSafSummaryResponse = UpaSafSummaryResponse;
12
+ class UpaSAFResponse {
13
+ status;
14
+ command;
15
+ version = "";
16
+ deviceResponseCode;
17
+ deviceResponseText;
18
+ deviceResponseMessage;
19
+ referenceNumber = "";
20
+ totalCount;
21
+ totalAmount;
22
+ multipleMessage;
23
+ approved;
24
+ pending;
25
+ declined;
26
+ constructor(jsonResponse) {
27
+ if (typeof jsonResponse === "string") {
28
+ try {
29
+ jsonResponse = JSON.parse(jsonResponse);
30
+ }
31
+ catch {
32
+ throw new src_1.NotImplementedError("Invalid JSON string");
33
+ }
34
+ }
35
+ this.version = this.extractVersion(jsonResponse);
36
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
37
+ if (this.isGpApiResponse(jsonResponse)) {
38
+ const response = jsonResponse.response;
39
+ const cmdResult = response?.cmdResult;
40
+ this.status = cmdResult?.result ?? jsonResponse.status ?? "";
41
+ this.command = this.extractCommand(jsonResponse, response?.response);
42
+ this.deviceResponseCode = this.normalizeDeviceResponseCode(cmdResult?.errorCode, jsonResponse.action?.result_code);
43
+ this.deviceResponseText = this.status;
44
+ this.deviceResponseMessage = cmdResult?.errorMessage ?? "";
45
+ const responseData = response?.data;
46
+ if (responseData) {
47
+ this.referenceNumber =
48
+ responseData.referenceNumber ?? this.referenceNumber;
49
+ this.multipleMessage = responseData.multipleMessage;
50
+ const safDetails = responseData.SafDetails || [];
51
+ safDetails.forEach((detail) => {
52
+ this.totalAmount =
53
+ (this.totalAmount || 0) + Number(detail.SafTotal || 0);
54
+ this.totalCount =
55
+ (this.totalCount || 0) + Number(detail.SafCount || 0);
56
+ });
57
+ }
58
+ }
59
+ else {
60
+ // Native UPA device response
61
+ const data = jsonResponse?.data;
62
+ const cmdResult = data?.cmdResult;
63
+ this.deviceResponseText = cmdResult?.result ?? "";
64
+ this.deviceResponseCode = cmdResult?.errorCode ?? "00";
65
+ this.status = this.deviceResponseText;
66
+ this.deviceResponseMessage = cmdResult?.errorMessage ?? "";
67
+ this.command = this.extractCommand(jsonResponse, data?.response);
68
+ const innerData = data?.data;
69
+ if (innerData) {
70
+ this.referenceNumber =
71
+ innerData.referenceNumber ?? this.referenceNumber;
72
+ this.multipleMessage = innerData.multipleMessage;
73
+ this.parseSafDetails(innerData.SafDetails);
74
+ }
75
+ }
76
+ }
77
+ parseSafDetails(safDetails) {
78
+ const details = Array.isArray(safDetails) ? safDetails : [];
79
+ details.forEach((detail) => {
80
+ const summary = new UpaSafSummaryResponse();
81
+ summary.totalAmount = this.toNumber(detail?.SafTotal) ?? 0;
82
+ summary.count = this.toNumber(detail?.SafCount) ?? 0;
83
+ summary.summaryType = this.mapSummaryType(detail?.SafType);
84
+ summary.transactions = Array.isArray(detail?.SafRecords)
85
+ ? detail.SafRecords.map((record) => this.mapTransactionSummary(record))
86
+ : [];
87
+ this.totalAmount = (this.totalAmount || 0) + (summary.totalAmount || 0);
88
+ this.totalCount = (this.totalCount || 0) + (summary.count || 0);
89
+ this.assignSummary(summary);
90
+ });
91
+ }
92
+ assignSummary(summary) {
93
+ if (summary.summaryType === src_1.SummaryType.Approved) {
94
+ this.approved = this.approved ?? {};
95
+ this.approved[summary.summaryType] = summary;
96
+ return;
97
+ }
98
+ if (summary.summaryType === src_1.SummaryType.Pending) {
99
+ this.pending = this.pending ?? {};
100
+ this.pending[summary.summaryType] = summary;
101
+ return;
102
+ }
103
+ this.declined = this.declined ?? {};
104
+ this.declined[summary.summaryType] = summary;
105
+ }
106
+ mapTransactionSummary(record) {
107
+ const summary = new src_1.TransactionSummary();
108
+ summary.transactionType = record?.transactionType;
109
+ summary.transactionId = record?.transId;
110
+ summary.referenceNumber = record?.referenceNumber;
111
+ summary.gratuityAmount = record?.tipAmount;
112
+ summary.taxAmount = record?.taxAmount;
113
+ summary.amount = record?.baseAmount;
114
+ summary.authorizedAmount = record?.authorizedAmount;
115
+ summary.cardType = record?.cardType;
116
+ summary.maskedCardNumber = record?.maskedPan;
117
+ summary.authCode = record?.approvalCode;
118
+ summary.entryMode = record?.cardAcquisition;
119
+ summary.status = record?.responseCode;
120
+ const transactionDate = this.toDate(record?.transactionTime);
121
+ if (transactionDate) {
122
+ summary.transactionDate = transactionDate;
123
+ }
124
+ return summary;
125
+ }
126
+ mapSummaryType(safType) {
127
+ switch (safType) {
128
+ case "AUTHORIZED TRANSACTIONS":
129
+ return src_1.SummaryType.Approved;
130
+ case "PENDING TRANSACTIONS":
131
+ return src_1.SummaryType.Pending;
132
+ case "FAILED TRANSACTIONS":
133
+ default:
134
+ return src_1.SummaryType.Declined;
135
+ }
136
+ }
137
+ toDate(value) {
138
+ if (!value) {
139
+ return undefined;
140
+ }
141
+ const date = new Date(value);
142
+ return Number.isNaN(date.getTime()) ? undefined : date;
143
+ }
144
+ toNumber(value) {
145
+ if (value === undefined || value === null || value === "") {
146
+ return undefined;
147
+ }
148
+ const parsed = Number(value);
149
+ return Number.isNaN(parsed) ? undefined : parsed;
150
+ }
151
+ isGpApiResponse(jsonResponse) {
152
+ return !!(jsonResponse.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
153
+ }
154
+ normalizeDeviceResponseCode(cmdErrorCode, actionResultCode) {
155
+ if (cmdErrorCode) {
156
+ return cmdErrorCode;
157
+ }
158
+ return actionResultCode === "SUCCESS" ? "00" : actionResultCode ?? "";
159
+ }
160
+ extractVersion(jsonResponse) {
161
+ return (jsonResponse?.version ??
162
+ jsonResponse?.response?.version ??
163
+ jsonResponse?.data?.version ??
164
+ jsonResponse?.data?.data?.version ??
165
+ "");
166
+ }
167
+ extractReferenceNumber(jsonResponse) {
168
+ return (jsonResponse?.referenceNumber ??
169
+ jsonResponse?.response?.referenceNumber ??
170
+ jsonResponse?.response?.data?.referenceNumber ??
171
+ jsonResponse?.response?.data?.host?.referenceNumber ??
172
+ jsonResponse?.data?.referenceNumber ??
173
+ jsonResponse?.data?.data?.referenceNumber ??
174
+ jsonResponse?.data?.data?.host?.referenceNumber ??
175
+ "");
176
+ }
177
+ extractCommand(jsonResponse, fallback) {
178
+ if (fallback && fallback !== "SendCommand") {
179
+ return fallback;
180
+ }
181
+ return (jsonResponse?.requestType ??
182
+ jsonResponse?.command ??
183
+ jsonResponse?.response?.command ??
184
+ jsonResponse?.data?.command ??
185
+ jsonResponse?.data?.data?.command ??
186
+ fallback ??
187
+ "");
188
+ }
189
+ toString() {
190
+ return JSON.stringify(this);
191
+ }
192
+ }
193
+ exports.UpaSAFResponse = UpaSAFResponse;
194
+ //# sourceMappingURL=UpaSAFResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpaSAFResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/UpaSAFResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="node" />
2
+ import { ISignatureResponse } from "../../../../src";
3
+ export declare class UpaSignatureResponse implements ISignatureResponse {
4
+ status: string;
5
+ command: string;
6
+ version: string;
7
+ deviceResponseCode: string;
8
+ deviceResponseText: string;
9
+ referenceNumber: string;
10
+ signatureData?: Buffer;
11
+ sigData?: string;
12
+ constructor(jsonResponse: any);
13
+ private isGpApiResponse;
14
+ private normalizeDeviceResponseCode;
15
+ private extractVersion;
16
+ private extractReferenceNumber;
17
+ toString(): string;
18
+ }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpaSignatureResponse = void 0;
4
+ const src_1 = require("../../../../src");
5
+ class UpaSignatureResponse {
6
+ status;
7
+ command;
8
+ version = "";
9
+ deviceResponseCode;
10
+ deviceResponseText;
11
+ referenceNumber = "";
12
+ signatureData;
13
+ sigData;
14
+ constructor(jsonResponse) {
15
+ if (typeof jsonResponse === "string") {
16
+ try {
17
+ jsonResponse = JSON.parse(jsonResponse);
18
+ }
19
+ catch {
20
+ throw new src_1.NotImplementedError("Invalid JSON string");
21
+ }
22
+ }
23
+ this.version = this.extractVersion(jsonResponse);
24
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
25
+ if (this.isGpApiResponse(jsonResponse)) {
26
+ const response = jsonResponse.response;
27
+ const cmdResult = response?.cmdResult;
28
+ this.status = cmdResult?.result ?? jsonResponse.status ?? "";
29
+ this.command = response?.response ?? "";
30
+ this.deviceResponseText = this.status;
31
+ this.deviceResponseCode = this.normalizeDeviceResponseCode(cmdResult?.errorCode, jsonResponse.action?.result_code);
32
+ const responseData = response?.data;
33
+ if (responseData) {
34
+ this.referenceNumber =
35
+ responseData.referenceNumber ?? this.referenceNumber;
36
+ const rawSigData = responseData.signatureData;
37
+ if (rawSigData) {
38
+ this.sigData = rawSigData;
39
+ this.signatureData = Buffer.from(rawSigData, "base64");
40
+ }
41
+ }
42
+ }
43
+ else {
44
+ // Native UPA device response
45
+ const data = jsonResponse?.data;
46
+ const cmdResult = data?.cmdResult;
47
+ this.deviceResponseText = cmdResult?.result ?? "";
48
+ this.deviceResponseCode = cmdResult?.errorCode ?? "00";
49
+ this.status = this.deviceResponseText;
50
+ this.command = data?.response ?? "";
51
+ const innerData = data?.data;
52
+ if (innerData) {
53
+ this.referenceNumber =
54
+ innerData.referenceNumber ?? this.referenceNumber;
55
+ const rawSigData = innerData.signatureData;
56
+ if (rawSigData) {
57
+ this.sigData = rawSigData;
58
+ this.signatureData = Buffer.from(rawSigData, "base64");
59
+ }
60
+ }
61
+ }
62
+ }
63
+ isGpApiResponse(jsonResponse) {
64
+ return !!(jsonResponse.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
65
+ }
66
+ normalizeDeviceResponseCode(cmdErrorCode, actionResultCode) {
67
+ if (cmdErrorCode) {
68
+ return cmdErrorCode;
69
+ }
70
+ return actionResultCode === "SUCCESS" ? "00" : actionResultCode ?? "";
71
+ }
72
+ extractVersion(jsonResponse) {
73
+ return (jsonResponse?.version ??
74
+ jsonResponse?.response?.version ??
75
+ jsonResponse?.data?.version ??
76
+ jsonResponse?.data?.data?.version ??
77
+ "");
78
+ }
79
+ extractReferenceNumber(jsonResponse) {
80
+ return (jsonResponse?.referenceNumber ??
81
+ jsonResponse?.response?.referenceNumber ??
82
+ jsonResponse?.response?.data?.referenceNumber ??
83
+ jsonResponse?.response?.data?.host?.referenceNumber ??
84
+ jsonResponse?.data?.referenceNumber ??
85
+ jsonResponse?.data?.data?.referenceNumber ??
86
+ jsonResponse?.data?.data?.host?.referenceNumber ??
87
+ "");
88
+ }
89
+ toString() {
90
+ return JSON.stringify(this);
91
+ }
92
+ }
93
+ exports.UpaSignatureResponse = UpaSignatureResponse;
94
+ //# sourceMappingURL=UpaSignatureResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpaSignatureResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/UpaSignatureResponse.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,7 @@ class UpaController extends DeviceController_1.DeviceController {
57
57
  };
58
58
  const requestData = {
59
59
  command: this.mapTransactionType(transactionType),
60
- EcrId: builder.ecrId,
60
+ EcrId: builder.ecrId?.toString(),
61
61
  requestId: requestId.toString(),
62
62
  };
63
63
  const transactionData = {
@@ -73,6 +73,9 @@ class UpaController extends DeviceController_1.DeviceController {
73
73
  transactionData.transaction.taxIndicator = builder.taxIndicator;
74
74
  transactionData.transaction.invoiceNbr = builder.invoiceNumber;
75
75
  transactionData.transaction.processCPC = builder.processCPC;
76
+ if (transactionType === src_1.TransactionType.Refund) {
77
+ transactionData.transaction.totalAmount = builder.amount?.toFixed(2);
78
+ }
76
79
  requestData.data = transactionData;
77
80
  request.data = requestData;
78
81
  return TerminalUtils_1.TerminalUtils.buildUpaRequest(request);