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,213 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BatchReportResponse = exports.BatchRecordResponse = exports.BatchTransactionResponse = void 0;
4
+ const src_1 = require("../../../../src");
5
+ const UpaMessageId_1 = require("../Entities/UpaMessageId");
6
+ class BatchTransactionResponse {
7
+ cardType = "";
8
+ totalAmount;
9
+ totalCnt;
10
+ creditCnt;
11
+ creditAmt;
12
+ debitCnt;
13
+ debitAmt;
14
+ saleCnt;
15
+ saleAmt;
16
+ returnCnt;
17
+ returnAmt;
18
+ totalGratuityAmt;
19
+ }
20
+ exports.BatchTransactionResponse = BatchTransactionResponse;
21
+ class BatchRecordResponse {
22
+ batchId;
23
+ batchSeqNbr;
24
+ batchStatus = "";
25
+ openUtcDateTime = "";
26
+ closeUtcDateTime = "";
27
+ openTnxId = "";
28
+ totalAmount;
29
+ totalCnt;
30
+ creditCnt;
31
+ creditAmt;
32
+ debitCnt;
33
+ debitAmt;
34
+ saleCnt;
35
+ saleAmt;
36
+ returnCnt;
37
+ returnAmt;
38
+ totalGratuityAmt;
39
+ batchTransactions = [];
40
+ transactionDetails = [];
41
+ }
42
+ exports.BatchRecordResponse = BatchRecordResponse;
43
+ class BatchReportResponse {
44
+ status = "";
45
+ command = "";
46
+ version = "";
47
+ deviceResponseCode = "";
48
+ deviceResponseText = "";
49
+ referenceNumber = "";
50
+ multipleMessage = "";
51
+ merchantName = "";
52
+ batchRecord;
53
+ constructor(jsonResponse) {
54
+ if (typeof jsonResponse === "string") {
55
+ try {
56
+ jsonResponse = JSON.parse(jsonResponse);
57
+ }
58
+ catch {
59
+ throw new src_1.NotImplementedError("Invalid JSON string");
60
+ }
61
+ }
62
+ this.version = this.extractVersion(jsonResponse);
63
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
64
+ if (this.isGpApiResponse(jsonResponse)) {
65
+ this.deviceResponseText = jsonResponse.status;
66
+ this.deviceResponseCode = jsonResponse.action?.result_code || "";
67
+ }
68
+ const data = this.isGpApiResponse(jsonResponse)
69
+ ? jsonResponse?.response
70
+ : jsonResponse?.data;
71
+ const cmdResult = data?.cmdResult;
72
+ if (!data || !cmdResult) {
73
+ return;
74
+ }
75
+ this.status = cmdResult.result ?? "";
76
+ this.command = data.response ?? "";
77
+ this.deviceResponseCode =
78
+ cmdResult.errorCode ?? this.deviceResponseCode ?? "00";
79
+ if (this.status === "Success") {
80
+ this.deviceResponseText = this.status;
81
+ }
82
+ else {
83
+ this.deviceResponseText = `Error: ${cmdResult.errorCode ?? ""} - ${cmdResult.errorMessage ?? ""}`;
84
+ }
85
+ if (this.status !== "Success") {
86
+ return;
87
+ }
88
+ const reportData = data.data;
89
+ if (!reportData) {
90
+ return;
91
+ }
92
+ this.merchantName = reportData.merchantName ?? "";
93
+ this.multipleMessage = reportData.multipleMessage ?? "";
94
+ const batchRecord = reportData.batchRecord;
95
+ if (!batchRecord) {
96
+ return;
97
+ }
98
+ this.batchRecord = {
99
+ batchId: this.toNumber(batchRecord.batchId),
100
+ batchSeqNbr: this.toNumber(batchRecord.batchSeqNbr),
101
+ batchStatus: batchRecord.batchStatus,
102
+ openUtcDateTime: batchRecord.openUtcDateTime,
103
+ closeUtcDateTime: batchRecord.closeUtcDateTime,
104
+ openTnxId: batchRecord.openTnxId,
105
+ totalAmount: this.toNumber(batchRecord.totalAmount),
106
+ totalCnt: this.toNumber(batchRecord.totalCnt),
107
+ creditCnt: this.toNumber(batchRecord.creditCnt ?? batchRecord.credictCnt),
108
+ creditAmt: this.toNumber(batchRecord.creditAmt),
109
+ debitCnt: this.toNumber(batchRecord.debitCnt),
110
+ debitAmt: this.toNumber(batchRecord.debitAmt),
111
+ saleCnt: this.toNumber(batchRecord.saleCnt),
112
+ saleAmt: this.toNumber(batchRecord.saleAmt),
113
+ returnCnt: this.toNumber(batchRecord.returnCnt),
114
+ returnAmt: this.toNumber(batchRecord.returnAmt),
115
+ totalGratuityAmt: this.toNumber(batchRecord.totalGratuityAmt),
116
+ batchTransactions: [],
117
+ transactionDetails: [],
118
+ };
119
+ if (this.command === UpaMessageId_1.UpaMessageId.GET_BATCH_REPORT) {
120
+ if (Array.isArray(batchRecord.batchTransactions)) {
121
+ this.batchRecord.batchTransactions = batchRecord.batchTransactions.map((transaction) => ({
122
+ cardType: transaction.cardType,
123
+ totalAmount: this.toNumber(transaction.totalAmount),
124
+ totalCnt: this.toNumber(transaction.totalCnt),
125
+ creditCnt: this.toNumber(transaction.creditCnt),
126
+ creditAmt: this.toNumber(transaction.creditAmt),
127
+ debitCnt: this.toNumber(transaction.debitCnt),
128
+ debitAmt: this.toNumber(transaction.debitAmt),
129
+ saleCnt: this.toNumber(transaction.saleCnt),
130
+ saleAmt: this.toNumber(transaction.saleAmt),
131
+ returnCnt: this.toNumber(transaction.returnCnt),
132
+ returnAmt: this.toNumber(transaction.returnAmt),
133
+ totalGratuityAmt: this.toNumber(transaction.totalGratuityAmt),
134
+ }));
135
+ }
136
+ else {
137
+ this.batchRecord.batchTransactions = [];
138
+ }
139
+ }
140
+ if (this.command === UpaMessageId_1.UpaMessageId.GET_BATCH_DETAILS) {
141
+ if (Array.isArray(batchRecord.batchDetailRecords)) {
142
+ this.batchRecord.transactionDetails =
143
+ batchRecord.batchDetailRecords.map((transaction) => this.mapTransactionSummary(transaction));
144
+ }
145
+ else {
146
+ this.batchRecord.transactionDetails = [];
147
+ }
148
+ }
149
+ }
150
+ mapTransactionSummary(transaction) {
151
+ const summary = new src_1.TransactionSummary();
152
+ const transactionDate = this.toDate(transaction.transactionTime);
153
+ if (transactionDate) {
154
+ summary.transactionDate = transactionDate;
155
+ }
156
+ summary.authCode = transaction.approvalCode;
157
+ summary.authorizedAmount = transaction.authorizedAmount;
158
+ summary.cardType = transaction.cardType;
159
+ summary.maskedCardNumber = transaction.maskedPAN ?? transaction.maskedPan;
160
+ summary.referenceNumber = transaction.referenceNumber;
161
+ summary.issuerTransactionId = transaction.gatewayTxnId;
162
+ summary.clerkId = transaction.clerkId;
163
+ summary.amount = transaction.requestedAmount;
164
+ summary.gatewayResponseCode = transaction.responseCode;
165
+ summary.gatewayResponseMessage = transaction.responseText;
166
+ summary.transactionStatus = transaction.transactionStatus;
167
+ summary.transactionType = transaction.transactionType;
168
+ summary.gratuityAmount = transaction.tipAmount;
169
+ summary.settlementAmount = transaction.settleAmount;
170
+ summary.taxAmount = transaction.taxAmount;
171
+ summary.cardSwiped = transaction.cardSwiped;
172
+ return summary;
173
+ }
174
+ toDate(value) {
175
+ if (!value) {
176
+ return undefined;
177
+ }
178
+ const date = new Date(value);
179
+ return Number.isNaN(date.getTime()) ? undefined : date;
180
+ }
181
+ toNumber(value) {
182
+ if (value === undefined || value === null || value === "") {
183
+ return undefined;
184
+ }
185
+ const parsed = Number(value);
186
+ return Number.isNaN(parsed) ? undefined : parsed;
187
+ }
188
+ isGpApiResponse(jsonResponse) {
189
+ return !!(jsonResponse?.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
190
+ }
191
+ extractVersion(jsonResponse) {
192
+ return (jsonResponse?.version ??
193
+ jsonResponse?.response?.version ??
194
+ jsonResponse?.data?.version ??
195
+ jsonResponse?.data?.data?.version ??
196
+ "");
197
+ }
198
+ extractReferenceNumber(jsonResponse) {
199
+ return (jsonResponse?.referenceNumber ??
200
+ jsonResponse?.response?.referenceNumber ??
201
+ jsonResponse?.response?.data?.referenceNumber ??
202
+ jsonResponse?.response?.data?.host?.referenceNumber ??
203
+ jsonResponse?.data?.referenceNumber ??
204
+ jsonResponse?.data?.data?.referenceNumber ??
205
+ jsonResponse?.data?.data?.host?.referenceNumber ??
206
+ "");
207
+ }
208
+ toString() {
209
+ return JSON.stringify(this);
210
+ }
211
+ }
212
+ exports.BatchReportResponse = BatchReportResponse;
213
+ //# sourceMappingURL=BatchReportResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchReportResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/BatchReportResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { ITerminalReport } from "../../../../src";
2
+ export declare class OpenTab {
3
+ authorizedAmount?: number;
4
+ cardType: string;
5
+ maskedPan: string;
6
+ transactionId: string;
7
+ }
8
+ export declare class OpenTabDetailsResponse implements ITerminalReport {
9
+ status: string;
10
+ command: string;
11
+ version: string;
12
+ deviceResponseCode: string;
13
+ deviceResponseText: string;
14
+ referenceNumber: string;
15
+ multipleMessage: string;
16
+ merchantName: string;
17
+ ecrId: string;
18
+ openTabs: OpenTab[];
19
+ constructor(jsonResponse: any);
20
+ private toNumber;
21
+ private isGpApiResponse;
22
+ private extractVersion;
23
+ private extractReferenceNumber;
24
+ toString(): string;
25
+ }
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenTabDetailsResponse = exports.OpenTab = void 0;
4
+ const src_1 = require("../../../../src");
5
+ class OpenTab {
6
+ authorizedAmount;
7
+ cardType = "";
8
+ maskedPan = "";
9
+ transactionId = "";
10
+ }
11
+ exports.OpenTab = OpenTab;
12
+ class OpenTabDetailsResponse {
13
+ status = "";
14
+ command = "";
15
+ version = "";
16
+ deviceResponseCode = "";
17
+ deviceResponseText = "";
18
+ referenceNumber = "";
19
+ multipleMessage = "";
20
+ merchantName = "";
21
+ ecrId = "";
22
+ openTabs = [];
23
+ constructor(jsonResponse) {
24
+ if (typeof jsonResponse === "string") {
25
+ try {
26
+ jsonResponse = JSON.parse(jsonResponse);
27
+ }
28
+ catch {
29
+ throw new src_1.NotImplementedError("Invalid JSON string");
30
+ }
31
+ }
32
+ this.version = this.extractVersion(jsonResponse);
33
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
34
+ if (this.isGpApiResponse(jsonResponse)) {
35
+ this.deviceResponseText = jsonResponse.status;
36
+ this.deviceResponseCode = jsonResponse.action?.result_code || "";
37
+ }
38
+ const data = this.isGpApiResponse(jsonResponse)
39
+ ? jsonResponse?.response
40
+ : jsonResponse?.data;
41
+ const cmdResult = data?.cmdResult;
42
+ if (!data || !cmdResult) {
43
+ return;
44
+ }
45
+ this.status = cmdResult.result ?? "";
46
+ this.command = data.response ?? "";
47
+ this.ecrId = data.ecrId ?? data.EcrId ?? "";
48
+ this.deviceResponseCode =
49
+ cmdResult.errorCode ?? this.deviceResponseCode ?? "00";
50
+ if (this.status === "Success") {
51
+ this.deviceResponseText = this.status;
52
+ }
53
+ else {
54
+ this.deviceResponseText = `Error: ${cmdResult.errorCode ?? ""} - ${cmdResult.errorMessage ?? ""}`;
55
+ }
56
+ if (this.status !== "Success") {
57
+ return;
58
+ }
59
+ const responseData = data.data;
60
+ if (!responseData) {
61
+ return;
62
+ }
63
+ this.merchantName = responseData.merchantName ?? "";
64
+ this.multipleMessage = responseData.multipleMessage ?? "";
65
+ if (Array.isArray(responseData.OpenTabDetails)) {
66
+ this.openTabs = responseData.OpenTabDetails.map((tab) => ({
67
+ authorizedAmount: this.toNumber(tab.authorizedAmount),
68
+ cardType: tab.cardType,
69
+ maskedPan: tab.maskedPan,
70
+ transactionId: tab.referenceNumber,
71
+ }));
72
+ }
73
+ else {
74
+ this.openTabs = [];
75
+ }
76
+ }
77
+ toNumber(value) {
78
+ if (value === undefined || value === null || value === "") {
79
+ return undefined;
80
+ }
81
+ const parsed = Number(value);
82
+ return Number.isNaN(parsed) ? undefined : parsed;
83
+ }
84
+ isGpApiResponse(jsonResponse) {
85
+ return !!(jsonResponse?.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
86
+ }
87
+ extractVersion(jsonResponse) {
88
+ return (jsonResponse?.version ??
89
+ jsonResponse?.response?.version ??
90
+ jsonResponse?.data?.version ??
91
+ jsonResponse?.data?.data?.version ??
92
+ "");
93
+ }
94
+ extractReferenceNumber(jsonResponse) {
95
+ return (jsonResponse?.referenceNumber ??
96
+ jsonResponse?.response?.referenceNumber ??
97
+ jsonResponse?.response?.data?.referenceNumber ??
98
+ jsonResponse?.response?.data?.host?.referenceNumber ??
99
+ jsonResponse?.data?.referenceNumber ??
100
+ jsonResponse?.data?.data?.referenceNumber ??
101
+ jsonResponse?.data?.data?.host?.referenceNumber ??
102
+ "");
103
+ }
104
+ toString() {
105
+ return JSON.stringify(this);
106
+ }
107
+ }
108
+ exports.OpenTabDetailsResponse = OpenTabDetailsResponse;
109
+ //# sourceMappingURL=OpenTabDetailsResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenTabDetailsResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/OpenTabDetailsResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { ITerminalReport, SummaryType, TransactionSummary } from "../../../../src";
2
+ export declare class SafSummaryResponse {
3
+ totalAmount?: number;
4
+ count?: number;
5
+ summaryType: SummaryType;
6
+ transactions: TransactionSummary[];
7
+ }
8
+ export declare class SafReport {
9
+ totalCount: number;
10
+ totalAmount: number;
11
+ approved?: Record<number, SafSummaryResponse>;
12
+ pending?: Record<number, SafSummaryResponse>;
13
+ declined?: Record<number, SafSummaryResponse>;
14
+ }
15
+ export declare class SafReportResponse implements ITerminalReport {
16
+ status: string;
17
+ command: string;
18
+ version: string;
19
+ deviceResponseCode: string;
20
+ deviceResponseText: string;
21
+ referenceNumber: string;
22
+ ecrId: string;
23
+ requestId: string;
24
+ multipleMessage: string;
25
+ reportResult?: SafReport;
26
+ constructor(jsonResponse: any);
27
+ private assignSummary;
28
+ private mapTransactionSummary;
29
+ private mapSummaryType;
30
+ private toDate;
31
+ private toNumber;
32
+ private isGpApiResponse;
33
+ private extractVersion;
34
+ private extractReferenceNumber;
35
+ toString(): string;
36
+ }
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SafReportResponse = exports.SafReport = exports.SafSummaryResponse = void 0;
4
+ const src_1 = require("../../../../src");
5
+ class SafSummaryResponse {
6
+ totalAmount;
7
+ count;
8
+ summaryType = src_1.SummaryType.Unknown;
9
+ transactions = [];
10
+ }
11
+ exports.SafSummaryResponse = SafSummaryResponse;
12
+ class SafReport {
13
+ totalCount = 0;
14
+ totalAmount = 0;
15
+ approved;
16
+ pending;
17
+ declined;
18
+ }
19
+ exports.SafReport = SafReport;
20
+ class SafReportResponse {
21
+ status = "";
22
+ command = "";
23
+ version = "";
24
+ deviceResponseCode = "";
25
+ deviceResponseText = "";
26
+ referenceNumber = "";
27
+ ecrId = "";
28
+ requestId = "";
29
+ multipleMessage = "";
30
+ reportResult;
31
+ constructor(jsonResponse) {
32
+ if (typeof jsonResponse === "string") {
33
+ try {
34
+ jsonResponse = JSON.parse(jsonResponse);
35
+ }
36
+ catch {
37
+ throw new src_1.NotImplementedError("Invalid JSON string");
38
+ }
39
+ }
40
+ this.version = this.extractVersion(jsonResponse);
41
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
42
+ if (this.isGpApiResponse(jsonResponse)) {
43
+ this.deviceResponseText = jsonResponse.status;
44
+ this.deviceResponseCode = jsonResponse.action?.result_code || "";
45
+ }
46
+ const data = this.isGpApiResponse(jsonResponse)
47
+ ? jsonResponse?.response
48
+ : jsonResponse?.data;
49
+ const cmdResult = data?.cmdResult;
50
+ if (!data || !cmdResult) {
51
+ return;
52
+ }
53
+ this.status = cmdResult.result ?? "";
54
+ this.command = data.response ?? "";
55
+ this.ecrId = data.ecrId ?? data.EcrId ?? "";
56
+ this.requestId = data.requestId ?? "";
57
+ this.deviceResponseCode =
58
+ cmdResult.errorCode ?? this.deviceResponseCode ?? "00";
59
+ if (this.status === "Success") {
60
+ this.deviceResponseText = this.status;
61
+ }
62
+ else {
63
+ this.deviceResponseText = `Error: ${cmdResult.errorCode ?? ""} - ${cmdResult.errorMessage ?? ""}`;
64
+ }
65
+ if (this.status !== "Success") {
66
+ return;
67
+ }
68
+ const responseData = data.data;
69
+ if (!responseData) {
70
+ return;
71
+ }
72
+ this.multipleMessage = responseData.multipleMessage ?? "";
73
+ this.reportResult = new SafReport();
74
+ const reportResult = this.reportResult;
75
+ const safDetails = Array.isArray(responseData.SafDetails)
76
+ ? responseData.SafDetails
77
+ : [];
78
+ safDetails.forEach((detail) => {
79
+ const summary = new SafSummaryResponse();
80
+ summary.totalAmount = this.toNumber(detail.SafTotal) ?? 0;
81
+ summary.count = this.toNumber(detail.SafCount) ?? 0;
82
+ summary.summaryType = this.mapSummaryType(detail.SafType);
83
+ if (Array.isArray(detail.SafRecords)) {
84
+ summary.transactions = detail.SafRecords.map((record) => this.mapTransactionSummary(record));
85
+ }
86
+ else {
87
+ summary.transactions = [];
88
+ }
89
+ reportResult.totalAmount += summary.totalAmount;
90
+ reportResult.totalCount += summary.count ?? 0;
91
+ this.assignSummary(summary);
92
+ });
93
+ }
94
+ assignSummary(summary) {
95
+ if (!this.reportResult) {
96
+ return;
97
+ }
98
+ if (summary.summaryType === src_1.SummaryType.Approved) {
99
+ this.reportResult.approved = this.reportResult.approved ?? {};
100
+ this.reportResult.approved[summary.summaryType] = summary;
101
+ return;
102
+ }
103
+ if (summary.summaryType === src_1.SummaryType.Pending) {
104
+ this.reportResult.pending = this.reportResult.pending ?? {};
105
+ this.reportResult.pending[summary.summaryType] = summary;
106
+ return;
107
+ }
108
+ this.reportResult.declined = this.reportResult.declined ?? {};
109
+ this.reportResult.declined[summary.summaryType] = summary;
110
+ }
111
+ mapTransactionSummary(record) {
112
+ const summary = new src_1.TransactionSummary();
113
+ summary.transactionType = record.transactionType;
114
+ summary.transactionId = record.transId;
115
+ summary.referenceNumber = record.referenceNumber;
116
+ summary.gratuityAmount = record.tipAmount;
117
+ summary.taxAmount = record.taxAmount;
118
+ summary.amount = record.baseAmount;
119
+ summary.authorizedAmount = record.authorizedAmount;
120
+ summary.cardType = record.cardType;
121
+ summary.maskedCardNumber = record.maskedPan;
122
+ const transactionDate = this.toDate(record.transactionTime);
123
+ if (transactionDate) {
124
+ summary.transactionDate = transactionDate;
125
+ }
126
+ summary.authCode = record.approvalCode;
127
+ summary.entryMode = record.cardAcquisition;
128
+ summary.status = record.responseCode;
129
+ return summary;
130
+ }
131
+ mapSummaryType(safType) {
132
+ switch (safType) {
133
+ case "AUTHORIZED TRANSACTIONS":
134
+ return src_1.SummaryType.Approved;
135
+ case "PENDING TRANSACTIONS":
136
+ return src_1.SummaryType.Pending;
137
+ case "FAILED TRANSACTIONS":
138
+ default:
139
+ return src_1.SummaryType.Declined;
140
+ }
141
+ }
142
+ toDate(value) {
143
+ if (!value) {
144
+ return undefined;
145
+ }
146
+ const date = new Date(value);
147
+ return Number.isNaN(date.getTime()) ? undefined : date;
148
+ }
149
+ toNumber(value) {
150
+ if (value === undefined || value === null || value === "") {
151
+ return undefined;
152
+ }
153
+ const parsed = Number(value);
154
+ return Number.isNaN(parsed) ? undefined : parsed;
155
+ }
156
+ isGpApiResponse(jsonResponse) {
157
+ return !!(jsonResponse?.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
158
+ }
159
+ extractVersion(jsonResponse) {
160
+ return (jsonResponse?.version ??
161
+ jsonResponse?.response?.version ??
162
+ jsonResponse?.data?.version ??
163
+ jsonResponse?.data?.data?.version ??
164
+ "");
165
+ }
166
+ extractReferenceNumber(jsonResponse) {
167
+ return (jsonResponse?.referenceNumber ??
168
+ jsonResponse?.response?.referenceNumber ??
169
+ jsonResponse?.response?.data?.referenceNumber ??
170
+ jsonResponse?.response?.data?.host?.referenceNumber ??
171
+ jsonResponse?.data?.referenceNumber ??
172
+ jsonResponse?.data?.data?.referenceNumber ??
173
+ jsonResponse?.data?.data?.host?.referenceNumber ??
174
+ "");
175
+ }
176
+ toString() {
177
+ return JSON.stringify(this);
178
+ }
179
+ }
180
+ exports.SafReportResponse = SafReportResponse;
181
+ //# sourceMappingURL=SafReportResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafReportResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/SafReportResponse.ts"],"names":[],"mappings":"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"}
@@ -59,11 +59,18 @@ class TransactionResponse {
59
59
  throw new src_1.NotImplementedError("Invalid JSON string");
60
60
  }
61
61
  if (this.isGpApiResponse(jsonResponse)) {
62
- this.requestId = this.transactionId = jsonResponse.id;
62
+ this.requestId = jsonResponse.id;
63
+ this.status = jsonResponse.status;
63
64
  this.deviceResponseText = jsonResponse.status;
64
65
  this.responseText = this.deviceResponseCode =
65
66
  jsonResponse.action?.result_code || "";
66
- this.deviceResponseText = jsonResponse.status;
67
+ const host = jsonResponse.response?.data?.host;
68
+ if (host) {
69
+ this.transactionId = host.referenceNumber || jsonResponse.id;
70
+ }
71
+ else {
72
+ this.transactionId = jsonResponse.id;
73
+ }
67
74
  }
68
75
  else {
69
76
  throw new src_1.NotImplementedError();
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/TransactionResponse.ts"],"names":[],"mappings":";;;AAAA,yCAKyB;AAEzB,MAAa,mBAAmB;IACvB,gBAAgB,CAAU;IAC1B,aAAa,CAAS;IACtB,iBAAiB,CAAS;IAC1B,KAAK,CAAS;IACd,gBAAgB,CAAS;IACzB,eAAe,CAAS;IACxB,aAAa,CAAS;IACtB,eAAe,CAAS;IACxB,gBAAgB,CAAS;IACzB,WAAW,CAAS;IACpB,iBAAiB,CAAS;IAC1B,iBAAiB,CAAS;IAC1B,SAAS,CAAS;IAClB,aAAa,CAAS;IACtB,OAAO,CAAS;IAChB,WAAW,CAAU;IACrB,cAAc,CAAS;IACvB,eAAe,CAAS;IACxB,eAAe,CAAS;IACxB,eAAe,CAAS;IACxB,eAAe,CAAS;IACxB,SAAS,CAAU;IACnB,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,WAAW,CAAS;IACpB,wBAAwB,CAAS;IACjC,gBAAgB,CAAS;IACzB,aAAa,CAAS;IACtB,yBAAyB,CAA4B;IACrD,qBAAqB,CAAS;IAC9B,4BAA4B,CAAS;IACrC,2BAA2B,CAAS;IACpC,WAAW,CAAU;IACrB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,kBAAkB,CAAS;IAC3B,kBAAkB,CAAS;IAC3B,YAAY,CAAS;IACrB,YAAY,CAAS;IACrB,YAAY,CAAS;IACrB,SAAS,CAAU;IACnB,UAAU,CAAU;IACpB,cAAc,CAAU;IACxB,eAAe,CAAS;IACxB,cAAc,CAAS;IACvB,SAAS,CAAS;IAEzB,YAAY,YAAiB;QAC3B,IAAI,OAAO,YAAY,KAAK,QAAQ;YAClC,IAAI;gBACF,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;aACzC;YAAC,MAAM;gBACN,MAAM,IAAI,yBAAmB,CAAC,qBAAqB,CAAC,CAAC;aACtD;QACH,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;YACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB;gBACzC,YAAY,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;SAC/C;aAAM;YACL,MAAM,IAAI,yBAAmB,EAAE,CAAC;SACjC;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;CACF;AAxED,kDAwEC"}
1
+ {"version":3,"file":"TransactionResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/TransactionResponse.ts"],"names":[],"mappings":";;;AAAA,yCAKyB;AAEzB,MAAa,mBAAmB;IACvB,gBAAgB,CAAU;IAC1B,aAAa,CAAS;IACtB,iBAAiB,CAAS;IAC1B,KAAK,CAAS;IACd,gBAAgB,CAAS;IACzB,eAAe,CAAS;IACxB,aAAa,CAAS;IACtB,eAAe,CAAS;IACxB,gBAAgB,CAAS;IACzB,WAAW,CAAS;IACpB,iBAAiB,CAAS;IAC1B,iBAAiB,CAAS;IAC1B,SAAS,CAAS;IAClB,aAAa,CAAS;IACtB,OAAO,CAAS;IAChB,WAAW,CAAU;IACrB,cAAc,CAAS;IACvB,eAAe,CAAS;IACxB,eAAe,CAAS;IACxB,eAAe,CAAS;IACxB,eAAe,CAAS;IACxB,SAAS,CAAU;IACnB,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,WAAW,CAAS;IACpB,wBAAwB,CAAS;IACjC,gBAAgB,CAAS;IACzB,aAAa,CAAS;IACtB,yBAAyB,CAA4B;IACrD,qBAAqB,CAAS;IAC9B,4BAA4B,CAAS;IACrC,2BAA2B,CAAS;IACpC,WAAW,CAAU;IACrB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,kBAAkB,CAAS;IAC3B,kBAAkB,CAAS;IAC3B,YAAY,CAAS;IACrB,YAAY,CAAS;IACrB,YAAY,CAAS;IACrB,SAAS,CAAU;IACnB,UAAU,CAAU;IACpB,cAAc,CAAU;IACxB,eAAe,CAAS;IACxB,cAAc,CAAS;IACvB,SAAS,CAAS;IAEzB,YAAY,YAAiB;QAC3B,IAAI,OAAO,YAAY,KAAK,QAAQ;YAClC,IAAI;gBACF,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;aACzC;YAAC,MAAM;gBACN,MAAM,IAAI,yBAAmB,CAAC,qBAAqB,CAAC,CAAC;aACtD;QACH,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE;YACtC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;YAClC,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB;gBACzC,YAAY,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;YAEzC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;YAC/C,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,IAAI,YAAY,CAAC,EAAE,CAAC;aAC9D;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC;aACtC;SACF;aAAM;YACL,MAAM,IAAI,yBAAmB,EAAE,CAAC;SACjC;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;CACF;AA/ED,kDA+EC"}
@@ -0,0 +1,21 @@
1
+ import { IEODResponse } from "../../../../src";
2
+ export declare class UpaEODResponse implements IEODResponse {
3
+ status: string;
4
+ command: string;
5
+ version: string;
6
+ deviceResponseCode: string;
7
+ deviceResponseText: string;
8
+ deviceResponseMessage?: string;
9
+ referenceNumber: string;
10
+ batchId?: number;
11
+ gatewayResponseCode?: number;
12
+ gatewayResponseMessage?: string;
13
+ respDateTime?: string;
14
+ multipleMessage?: string;
15
+ constructor(jsonResponse: any);
16
+ private isGpApiResponse;
17
+ private normalizeDeviceResponseCode;
18
+ private extractVersion;
19
+ private extractReferenceNumber;
20
+ toString(): string;
21
+ }