globalpayments-api 3.10.14 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/CHANGELOG.md +255 -240
  2. package/LICENSE.md +257 -257
  3. package/README.md +148 -148
  4. package/appsec.properties +8 -0
  5. package/lib/src/Builders/BaseBuilder/ValidationClause.d.ts +3 -2
  6. package/lib/src/Builders/BaseBuilder/ValidationClause.js +23 -15
  7. package/lib/src/Builders/BaseBuilder/ValidationClause.js.map +1 -1
  8. package/lib/src/Builders/BaseBuilder/Validations.js +7 -2
  9. package/lib/src/Builders/BaseBuilder/Validations.js.map +1 -1
  10. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.d.ts +11 -2
  11. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js +44 -5
  12. package/lib/src/Builders/RequestBuilder/GpApi/GpApiSessionInfo.js.map +1 -1
  13. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomManagementRequestBuilder.js +2 -2
  14. package/lib/src/Builders/RequestBuilder/GpEcom/GpEcomManagementRequestBuilder.js.map +1 -1
  15. package/lib/src/Entities/Enums.d.ts +4 -2
  16. package/lib/src/Entities/Enums.js +3 -1
  17. package/lib/src/Entities/Enums.js.map +1 -1
  18. package/lib/src/Entities/GpApi/PorticoTokenConfig.d.ts +25 -0
  19. package/lib/src/Entities/GpApi/PorticoTokenConfig.js +30 -0
  20. package/lib/src/Entities/GpApi/PorticoTokenConfig.js.map +1 -0
  21. package/lib/src/Entities/GpApi/index.d.ts +1 -0
  22. package/lib/src/Entities/GpApi/index.js +1 -0
  23. package/lib/src/Entities/GpApi/index.js.map +1 -1
  24. package/lib/src/Entities/RecurringEntity.js +2 -2
  25. package/lib/src/Entities/RecurringEntity.js.map +1 -1
  26. package/lib/src/Entities/Transaction.d.ts +2 -0
  27. package/lib/src/Entities/Transaction.js +2 -0
  28. package/lib/src/Entities/Transaction.js.map +1 -1
  29. package/lib/src/Entities/TransactionSummary.d.ts +1 -0
  30. package/lib/src/Entities/TransactionSummary.js +1 -0
  31. package/lib/src/Entities/TransactionSummary.js.map +1 -1
  32. package/lib/src/Entities/UPA/ExtraChargeType.d.ts +8 -0
  33. package/lib/src/Entities/UPA/ExtraChargeType.js +13 -0
  34. package/lib/src/Entities/UPA/ExtraChargeType.js.map +1 -0
  35. package/lib/src/Entities/UPA/Lodging.d.ts +11 -0
  36. package/lib/src/Entities/UPA/Lodging.js +15 -0
  37. package/lib/src/Entities/UPA/Lodging.js.map +1 -0
  38. package/lib/src/Entities/UPA/POSData.d.ts +6 -0
  39. package/lib/src/Entities/UPA/POSData.js +11 -0
  40. package/lib/src/Entities/UPA/POSData.js.map +1 -0
  41. package/lib/src/Entities/UPA/ProcessIndicator.d.ts +1 -1
  42. package/lib/src/Entities/UPA/ProcessIndicator.js.map +1 -1
  43. package/lib/src/Entities/UPA/UpaParam.d.ts +7 -7
  44. package/lib/src/Entities/UPA/UpaParam.js.map +1 -1
  45. package/lib/src/Entities/UPA/UpaTransactionData.d.ts +5 -5
  46. package/lib/src/Entities/UPA/UpaTransactionData.js.map +1 -1
  47. package/lib/src/Entities/UPA/index.d.ts +3 -0
  48. package/lib/src/Entities/UPA/index.js +3 -0
  49. package/lib/src/Entities/UPA/index.js.map +1 -1
  50. package/lib/src/Gateways/GpApiConnector.js +23 -4
  51. package/lib/src/Gateways/GpApiConnector.js.map +1 -1
  52. package/lib/src/Gateways/PorticoConnector.d.ts +1 -1
  53. package/lib/src/Gateways/PorticoConnector.js +2 -0
  54. package/lib/src/Gateways/PorticoConnector.js.map +1 -1
  55. package/lib/src/Mapping/GpApiMapping.js +7 -0
  56. package/lib/src/Mapping/GpApiMapping.js.map +1 -1
  57. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.d.ts +6 -0
  58. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js +25 -2
  59. package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js.map +1 -1
  60. package/lib/src/Services/GpApiServices.js +4 -1
  61. package/lib/src/Services/GpApiServices.js.map +1 -1
  62. package/lib/src/Terminals/Abstractions/IDeviceInterface.d.ts +23 -2
  63. package/lib/src/Terminals/Abstractions/IDeviceResponse.d.ts +71 -24
  64. package/lib/src/Terminals/Builders/TerminalAuthBuilder.d.ts +54 -22
  65. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js +98 -13
  66. package/lib/src/Terminals/Builders/TerminalAuthBuilder.js.map +1 -1
  67. package/lib/src/Terminals/Builders/TerminalBuilder.d.ts +6 -3
  68. package/lib/src/Terminals/Builders/TerminalBuilder.js +9 -0
  69. package/lib/src/Terminals/Builders/TerminalBuilder.js.map +1 -1
  70. package/lib/src/Terminals/Builders/TerminalManageBuilder.d.ts +16 -6
  71. package/lib/src/Terminals/Builders/TerminalManageBuilder.js +27 -2
  72. package/lib/src/Terminals/Builders/TerminalManageBuilder.js.map +1 -1
  73. package/lib/src/Terminals/Builders/TerminalReportBuilder.d.ts +17 -0
  74. package/lib/src/Terminals/Builders/TerminalReportBuilder.js +57 -0
  75. package/lib/src/Terminals/Builders/TerminalReportBuilder.js.map +1 -0
  76. package/lib/src/Terminals/Builders/index.d.ts +1 -0
  77. package/lib/src/Terminals/Builders/index.js +1 -0
  78. package/lib/src/Terminals/Builders/index.js.map +1 -1
  79. package/lib/src/Terminals/DeviceController.d.ts +6 -5
  80. package/lib/src/Terminals/DeviceController.js.map +1 -1
  81. package/lib/src/Terminals/DeviceInterface.d.ts +23 -3
  82. package/lib/src/Terminals/DeviceInterface.js +68 -0
  83. package/lib/src/Terminals/DeviceInterface.js.map +1 -1
  84. package/lib/src/Terminals/Enums.d.ts +11 -0
  85. package/lib/src/Terminals/Enums.js +14 -1
  86. package/lib/src/Terminals/Enums.js.map +1 -1
  87. package/lib/src/Terminals/TerminalResponse.d.ts +44 -36
  88. package/lib/src/Terminals/TerminalResponse.js +8 -0
  89. package/lib/src/Terminals/TerminalResponse.js.map +1 -1
  90. package/lib/src/Terminals/UPA/Entities/UpaMessageId.d.ts +10 -1
  91. package/lib/src/Terminals/UPA/Entities/UpaMessageId.js +9 -0
  92. package/lib/src/Terminals/UPA/Entities/UpaMessageId.js.map +1 -1
  93. package/lib/src/Terminals/UPA/Entities/UpaModels.d.ts +62 -0
  94. package/lib/src/Terminals/UPA/Entities/UpaModels.js +28 -0
  95. package/lib/src/Terminals/UPA/Entities/UpaModels.js.map +1 -0
  96. package/lib/src/Terminals/UPA/Entities/UpaSearchCriteria.d.ts +7 -0
  97. package/lib/src/Terminals/UPA/Entities/UpaSearchCriteria.js +12 -0
  98. package/lib/src/Terminals/UPA/Entities/UpaSearchCriteria.js.map +1 -0
  99. package/lib/src/Terminals/UPA/Entities/index.d.ts +1 -0
  100. package/lib/src/Terminals/UPA/Entities/index.js +1 -0
  101. package/lib/src/Terminals/UPA/Entities/index.js.map +1 -1
  102. package/lib/src/Terminals/UPA/Interfaces/UpaMicInterface.d.ts +1 -1
  103. package/lib/src/Terminals/UPA/Interfaces/UpaMicInterface.js +7 -5
  104. package/lib/src/Terminals/UPA/Interfaces/UpaMicInterface.js.map +1 -1
  105. package/lib/src/Terminals/UPA/Reponses/BatchList.d.ts +17 -0
  106. package/lib/src/Terminals/UPA/Reponses/BatchList.js +84 -0
  107. package/lib/src/Terminals/UPA/Reponses/BatchList.js.map +1 -0
  108. package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.d.ts +56 -0
  109. package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.js +215 -0
  110. package/lib/src/Terminals/UPA/Reponses/BatchReportResponse.js.map +1 -0
  111. package/lib/src/Terminals/UPA/Reponses/OpenTabDetailsResponse.d.ts +27 -0
  112. package/lib/src/Terminals/UPA/Reponses/OpenTabDetailsResponse.js +113 -0
  113. package/lib/src/Terminals/UPA/Reponses/OpenTabDetailsResponse.js.map +1 -0
  114. package/lib/src/Terminals/UPA/Reponses/SafReportResponse.d.ts +39 -0
  115. package/lib/src/Terminals/UPA/Reponses/SafReportResponse.js +187 -0
  116. package/lib/src/Terminals/UPA/Reponses/SafReportResponse.js.map +1 -0
  117. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.d.ts +48 -25
  118. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js +151 -15
  119. package/lib/src/Terminals/UPA/Reponses/TransactionResponse.js.map +1 -1
  120. package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.d.ts +21 -0
  121. package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.js +106 -0
  122. package/lib/src/Terminals/UPA/Reponses/UpaEODResponse.js.map +1 -0
  123. package/lib/src/Terminals/UPA/Reponses/UpaGiftCardResponse.d.ts +41 -0
  124. package/lib/src/Terminals/UPA/Reponses/UpaGiftCardResponse.js +93 -0
  125. package/lib/src/Terminals/UPA/Reponses/UpaGiftCardResponse.js.map +1 -0
  126. package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.d.ts +35 -0
  127. package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.js +195 -0
  128. package/lib/src/Terminals/UPA/Reponses/UpaSAFResponse.js.map +1 -0
  129. package/lib/src/Terminals/UPA/Reponses/UpaSignatureResponse.d.ts +18 -0
  130. package/lib/src/Terminals/UPA/Reponses/UpaSignatureResponse.js +94 -0
  131. package/lib/src/Terminals/UPA/Reponses/UpaSignatureResponse.js.map +1 -0
  132. package/lib/src/Terminals/UPA/Reponses/index.d.ts +8 -0
  133. package/lib/src/Terminals/UPA/Reponses/index.js +8 -0
  134. package/lib/src/Terminals/UPA/Reponses/index.js.map +1 -1
  135. package/lib/src/Terminals/UPA/UpaController.d.ts +17 -5
  136. package/lib/src/Terminals/UPA/UpaController.js +338 -79
  137. package/lib/src/Terminals/UPA/UpaController.js.map +1 -1
  138. package/lib/src/Terminals/UPA/UpaInterface.d.ts +26 -3
  139. package/lib/src/Terminals/UPA/UpaInterface.js +311 -12
  140. package/lib/src/Terminals/UPA/UpaInterface.js.map +1 -1
  141. package/lib/src/Terminals/index.d.ts +2 -0
  142. package/lib/src/Terminals/index.js +2 -0
  143. package/lib/src/Terminals/index.js.map +1 -1
  144. package/lib/src/Utils/StringUtils.js +1 -1
  145. package/lib/src/Utils/StringUtils.js.map +1 -1
  146. package/lib/test/Integration/Gateways/CI/upa_mitc/UpaFunctionalityTests.test.js +19 -8
  147. package/lib/test/Integration/Gateways/CI/upa_mitc/UpaFunctionalityTests.test.js.map +1 -1
  148. package/lib/test/Integration/Gateways/GpApiConnector/3DS2.test.js +15 -15
  149. package/lib/test/Integration/Gateways/GpApiConnector/3DSecure.test.js +5 -5
  150. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenPorticoCredentials.test.d.ts +1 -0
  151. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenPorticoCredentials.test.js +175 -0
  152. package/lib/test/Integration/Gateways/GpApiConnector/AccessTokenPorticoCredentials.test.js.map +1 -0
  153. package/lib/test/Integration/Gateways/GpApiConnector/GpApiCreateTokenWithPorticoCredentialTests.test.d.ts +1 -0
  154. package/lib/test/Integration/Gateways/GpApiConnector/GpApiCreateTokenWithPorticoCredentialTests.test.js +205 -0
  155. package/lib/test/Integration/Gateways/GpApiConnector/GpApiCreateTokenWithPorticoCredentialTests.test.js.map +1 -0
  156. package/lib/test/Integration/Gateways/GpEcomConnector/Credit.test.js +4 -4
  157. package/lib/test/Integration/Gateways/PorticoConnector/Ecommerce.test.js +8 -8
  158. package/lib/test/Integration/Gateways/PorticoConnector/GlobalTransactionId.test.d.ts +1 -0
  159. package/lib/test/Integration/Gateways/PorticoConnector/GlobalTransactionId.test.js +243 -0
  160. package/lib/test/Integration/Gateways/PorticoConnector/GlobalTransactionId.test.js.map +1 -0
  161. package/lib/test/Integration/Gateways/Terminals/RequestIdProvider.d.ts +15 -1
  162. package/lib/test/Integration/Gateways/Terminals/RequestIdProvider.js +88 -3
  163. package/lib/test/Integration/Gateways/Terminals/RequestIdProvider.js.map +1 -1
  164. package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.d.ts +1 -0
  165. package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.js +147 -0
  166. package/lib/test/Unit/Builders/AuthorizationBuilder/SupplementaryData.test.js.map +1 -0
  167. package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.d.ts +1 -0
  168. package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js +1260 -0
  169. package/lib/test/Unit/Terminals/UPA/UpaAdmin.test.js.map +1 -0
  170. package/lib/test/Unit/Terminals/UPA/UpaCredit.test.d.ts +1 -0
  171. package/lib/test/Unit/Terminals/UPA/UpaCredit.test.js +411 -0
  172. package/lib/test/Unit/Terminals/UPA/UpaCredit.test.js.map +1 -0
  173. package/lib/test/Unit/Terminals/UPA/UpaHelpertest.d.ts +55 -0
  174. package/lib/test/Unit/Terminals/UPA/UpaHelpertest.js +490 -0
  175. package/lib/test/Unit/Terminals/UPA/UpaHelpertest.js.map +1 -0
  176. package/lib/test/Unit/Terminals/UPA/UpaReport.test.d.ts +1 -0
  177. package/lib/test/Unit/Terminals/UPA/UpaReport.test.js +801 -0
  178. package/lib/test/Unit/Terminals/UPA/UpaReport.test.js.map +1 -0
  179. package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.d.ts +1 -0
  180. package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.js +250 -0
  181. package/lib/test/Unit/Terminals/UPA/UpaStory1Methods.test.js.map +1 -0
  182. package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.d.ts +1 -0
  183. package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.js +1277 -0
  184. package/lib/test/Unit/Terminals/UPA/UpaStory2Methods.test.js.map +1 -0
  185. package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.d.ts +1 -0
  186. package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.js +411 -0
  187. package/lib/test/Unit/Terminals/UPA/UpaStory3_4Methods.test.js.map +1 -0
  188. package/package.json +63 -63
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BatchList = void 0;
4
+ const src_1 = require("../../../../src");
5
+ class BatchList {
6
+ status = "";
7
+ command = "";
8
+ version = "";
9
+ deviceResponseCode = "";
10
+ deviceResponseText = "";
11
+ referenceNumber = "";
12
+ ecrId = "";
13
+ batches = [];
14
+ deviceSerialNumber = "";
15
+ constructor(jsonResponse) {
16
+ if (typeof jsonResponse === "string") {
17
+ try {
18
+ jsonResponse = JSON.parse(jsonResponse);
19
+ }
20
+ catch {
21
+ throw new src_1.NotImplementedError("Invalid JSON string");
22
+ }
23
+ }
24
+ this.version = this.extractVersion(jsonResponse);
25
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
26
+ if (this.isGpApiResponse(jsonResponse)) {
27
+ this.deviceResponseText = jsonResponse.status;
28
+ this.deviceResponseCode = jsonResponse.action?.result_code || "";
29
+ }
30
+ const data = this.isGpApiResponse(jsonResponse)
31
+ ? jsonResponse?.response
32
+ : jsonResponse?.data;
33
+ const cmdResult = data?.cmdResult;
34
+ if (!data || !cmdResult) {
35
+ return;
36
+ }
37
+ this.status = cmdResult.result ?? "";
38
+ this.command = data.response ?? "";
39
+ this.ecrId = data.ecrId ?? data.EcrId ?? "";
40
+ this.deviceResponseCode =
41
+ cmdResult.errorCode ?? this.deviceResponseCode ?? "00";
42
+ if (this.status === "Success") {
43
+ this.deviceResponseText = this.status;
44
+ }
45
+ else {
46
+ this.deviceResponseText = `Error: ${cmdResult.errorCode ?? ""} - ${cmdResult.errorMessage ?? ""}`;
47
+ }
48
+ if (this.status !== "Success") {
49
+ return;
50
+ }
51
+ const availableBatches = data.data?.batchesAvail;
52
+ if (Array.isArray(availableBatches)) {
53
+ this.batches = availableBatches
54
+ .map((batch) => Number(batch.batchId))
55
+ .filter((batchId) => !Number.isNaN(batchId));
56
+ }
57
+ this.deviceSerialNumber = data.data?.deviceSerialNumber ?? "";
58
+ }
59
+ isGpApiResponse(jsonResponse) {
60
+ return !!(jsonResponse?.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
61
+ }
62
+ extractVersion(jsonResponse) {
63
+ return (jsonResponse?.version ??
64
+ jsonResponse?.response?.version ??
65
+ jsonResponse?.data?.version ??
66
+ jsonResponse?.data?.data?.version ??
67
+ "");
68
+ }
69
+ extractReferenceNumber(jsonResponse) {
70
+ return (jsonResponse?.referenceNumber ??
71
+ jsonResponse?.response?.referenceNumber ??
72
+ jsonResponse?.response?.data?.referenceNumber ??
73
+ jsonResponse?.response?.data?.host?.referenceNumber ??
74
+ jsonResponse?.data?.referenceNumber ??
75
+ jsonResponse?.data?.data?.referenceNumber ??
76
+ jsonResponse?.data?.data?.host?.referenceNumber ??
77
+ "");
78
+ }
79
+ toString() {
80
+ return JSON.stringify(this);
81
+ }
82
+ }
83
+ exports.BatchList = BatchList;
84
+ //# sourceMappingURL=BatchList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchList.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/BatchList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { ITerminalReport, TransactionSummary } from "../../../../src";
2
+ export declare class BatchTransactionResponse {
3
+ cardType: string;
4
+ totalAmount?: number;
5
+ totalCnt?: number;
6
+ creditCnt?: number;
7
+ creditAmt?: number;
8
+ debitCnt?: number;
9
+ debitAmt?: number;
10
+ saleCnt?: number;
11
+ saleAmt?: number;
12
+ returnCnt?: number;
13
+ returnAmt?: number;
14
+ totalGratuityAmt?: number;
15
+ }
16
+ export declare class BatchRecordResponse {
17
+ batchId?: number;
18
+ batchSeqNbr?: number;
19
+ batchStatus: string;
20
+ openUtcDateTime: string;
21
+ closeUtcDateTime: string;
22
+ openTnxId: string;
23
+ totalAmount?: number;
24
+ totalCnt?: number;
25
+ creditCnt?: number;
26
+ creditAmt?: number;
27
+ debitCnt?: number;
28
+ debitAmt?: number;
29
+ saleCnt?: number;
30
+ saleAmt?: number;
31
+ returnCnt?: number;
32
+ returnAmt?: number;
33
+ totalGratuityAmt?: number;
34
+ batchTransactions: BatchTransactionResponse[];
35
+ transactionDetails: TransactionSummary[];
36
+ }
37
+ export declare class BatchReportResponse implements ITerminalReport {
38
+ status: string;
39
+ command: string;
40
+ version: string;
41
+ deviceResponseCode: string;
42
+ deviceResponseText: string;
43
+ referenceNumber: string;
44
+ multipleMessage: string;
45
+ merchantName: string;
46
+ deviceSerialNumber: string;
47
+ batchRecord?: BatchRecordResponse;
48
+ constructor(jsonResponse: any);
49
+ private mapTransactionSummary;
50
+ private toDate;
51
+ private toNumber;
52
+ private isGpApiResponse;
53
+ private extractVersion;
54
+ private extractReferenceNumber;
55
+ toString(): string;
56
+ }
@@ -0,0 +1,215 @@
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
+ deviceSerialNumber = "";
53
+ batchRecord;
54
+ constructor(jsonResponse) {
55
+ if (typeof jsonResponse === "string") {
56
+ try {
57
+ jsonResponse = JSON.parse(jsonResponse);
58
+ }
59
+ catch {
60
+ throw new src_1.NotImplementedError("Invalid JSON string");
61
+ }
62
+ }
63
+ this.version = this.extractVersion(jsonResponse);
64
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
65
+ if (this.isGpApiResponse(jsonResponse)) {
66
+ this.deviceResponseText = jsonResponse.status;
67
+ this.deviceResponseCode = jsonResponse.action?.result_code || "";
68
+ }
69
+ const data = this.isGpApiResponse(jsonResponse)
70
+ ? jsonResponse?.response
71
+ : jsonResponse?.data;
72
+ const cmdResult = data?.cmdResult;
73
+ if (!data || !cmdResult) {
74
+ return;
75
+ }
76
+ this.status = cmdResult.result ?? "";
77
+ this.command = data.response ?? "";
78
+ this.deviceResponseCode =
79
+ cmdResult.errorCode ?? this.deviceResponseCode ?? "00";
80
+ if (this.status === "Success") {
81
+ this.deviceResponseText = this.status;
82
+ }
83
+ else {
84
+ this.deviceResponseText = `Error: ${cmdResult.errorCode ?? ""} - ${cmdResult.errorMessage ?? ""}`;
85
+ }
86
+ if (this.status !== "Success") {
87
+ return;
88
+ }
89
+ const reportData = data.data;
90
+ if (!reportData) {
91
+ return;
92
+ }
93
+ this.merchantName = reportData.merchantName ?? "";
94
+ this.multipleMessage = reportData.multipleMessage ?? "";
95
+ this.deviceSerialNumber = reportData.deviceSerialNumber ?? "";
96
+ const batchRecord = reportData.batchRecord;
97
+ if (!batchRecord) {
98
+ return;
99
+ }
100
+ this.batchRecord = {
101
+ batchId: this.toNumber(batchRecord.batchId),
102
+ batchSeqNbr: this.toNumber(batchRecord.batchSeqNbr),
103
+ batchStatus: batchRecord.batchStatus,
104
+ openUtcDateTime: batchRecord.openUtcDateTime,
105
+ closeUtcDateTime: batchRecord.closeUtcDateTime,
106
+ openTnxId: batchRecord.openTnxId,
107
+ totalAmount: this.toNumber(batchRecord.totalAmount),
108
+ totalCnt: this.toNumber(batchRecord.totalCnt),
109
+ creditCnt: this.toNumber(batchRecord.creditCnt ?? batchRecord.credictCnt),
110
+ creditAmt: this.toNumber(batchRecord.creditAmt),
111
+ debitCnt: this.toNumber(batchRecord.debitCnt),
112
+ debitAmt: this.toNumber(batchRecord.debitAmt),
113
+ saleCnt: this.toNumber(batchRecord.saleCnt),
114
+ saleAmt: this.toNumber(batchRecord.saleAmt),
115
+ returnCnt: this.toNumber(batchRecord.returnCnt),
116
+ returnAmt: this.toNumber(batchRecord.returnAmt),
117
+ totalGratuityAmt: this.toNumber(batchRecord.totalGratuityAmt),
118
+ batchTransactions: [],
119
+ transactionDetails: [],
120
+ };
121
+ if (this.command === UpaMessageId_1.UpaMessageId.GET_BATCH_REPORT) {
122
+ if (Array.isArray(batchRecord.batchTransactions)) {
123
+ this.batchRecord.batchTransactions = batchRecord.batchTransactions.map((transaction) => ({
124
+ cardType: transaction.cardType,
125
+ totalAmount: this.toNumber(transaction.totalAmount),
126
+ totalCnt: this.toNumber(transaction.totalCnt),
127
+ creditCnt: this.toNumber(transaction.creditCnt),
128
+ creditAmt: this.toNumber(transaction.creditAmt),
129
+ debitCnt: this.toNumber(transaction.debitCnt),
130
+ debitAmt: this.toNumber(transaction.debitAmt),
131
+ saleCnt: this.toNumber(transaction.saleCnt),
132
+ saleAmt: this.toNumber(transaction.saleAmt),
133
+ returnCnt: this.toNumber(transaction.returnCnt),
134
+ returnAmt: this.toNumber(transaction.returnAmt),
135
+ totalGratuityAmt: this.toNumber(transaction.totalGratuityAmt),
136
+ }));
137
+ }
138
+ else {
139
+ this.batchRecord.batchTransactions = [];
140
+ }
141
+ }
142
+ if (this.command === UpaMessageId_1.UpaMessageId.GET_BATCH_DETAILS) {
143
+ if (Array.isArray(batchRecord.batchDetailRecords)) {
144
+ this.batchRecord.transactionDetails =
145
+ batchRecord.batchDetailRecords.map((transaction) => this.mapTransactionSummary(transaction));
146
+ }
147
+ else {
148
+ this.batchRecord.transactionDetails = [];
149
+ }
150
+ }
151
+ }
152
+ mapTransactionSummary(transaction) {
153
+ const summary = new src_1.TransactionSummary();
154
+ const transactionDate = this.toDate(transaction.transactionTime);
155
+ if (transactionDate) {
156
+ summary.transactionDate = transactionDate;
157
+ }
158
+ summary.authCode = transaction.approvalCode;
159
+ summary.authorizedAmount = transaction.authorizedAmount;
160
+ summary.cardType = transaction.cardType;
161
+ summary.maskedCardNumber = transaction.maskedPAN ?? transaction.maskedPan;
162
+ summary.referenceNumber = transaction.referenceNumber;
163
+ summary.issuerTransactionId = transaction.gatewayTxnId;
164
+ summary.clerkId = transaction.clerkId;
165
+ summary.amount = transaction.requestedAmount;
166
+ summary.gatewayResponseCode = transaction.responseCode;
167
+ summary.gatewayResponseMessage = transaction.responseText;
168
+ summary.transactionStatus = transaction.transactionStatus;
169
+ summary.transactionType = transaction.transactionType;
170
+ summary.gratuityAmount = transaction.tipAmount;
171
+ summary.settlementAmount = transaction.settleAmount;
172
+ summary.taxAmount = transaction.taxAmount;
173
+ summary.cardSwiped = transaction.cardSwiped;
174
+ return summary;
175
+ }
176
+ toDate(value) {
177
+ if (!value) {
178
+ return undefined;
179
+ }
180
+ const date = new Date(value);
181
+ return Number.isNaN(date.getTime()) ? undefined : date;
182
+ }
183
+ toNumber(value) {
184
+ if (value === undefined || value === null || value === "") {
185
+ return undefined;
186
+ }
187
+ const parsed = Number(value);
188
+ return Number.isNaN(parsed) ? undefined : parsed;
189
+ }
190
+ isGpApiResponse(jsonResponse) {
191
+ return !!(jsonResponse?.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
192
+ }
193
+ extractVersion(jsonResponse) {
194
+ return (jsonResponse?.version ??
195
+ jsonResponse?.response?.version ??
196
+ jsonResponse?.data?.version ??
197
+ jsonResponse?.data?.data?.version ??
198
+ "");
199
+ }
200
+ extractReferenceNumber(jsonResponse) {
201
+ return (jsonResponse?.referenceNumber ??
202
+ jsonResponse?.response?.referenceNumber ??
203
+ jsonResponse?.response?.data?.referenceNumber ??
204
+ jsonResponse?.response?.data?.host?.referenceNumber ??
205
+ jsonResponse?.data?.referenceNumber ??
206
+ jsonResponse?.data?.data?.referenceNumber ??
207
+ jsonResponse?.data?.data?.host?.referenceNumber ??
208
+ "");
209
+ }
210
+ toString() {
211
+ return JSON.stringify(this);
212
+ }
213
+ }
214
+ exports.BatchReportResponse = BatchReportResponse;
215
+ //# 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,27 @@
1
+ import { ITerminalReport } from "../../../../src";
2
+ export declare class OpenTab {
3
+ authorizedAmount?: number;
4
+ cardType: string;
5
+ maskedPan: string;
6
+ transactionId: string;
7
+ clerkId: string;
8
+ }
9
+ export declare class OpenTabDetailsResponse implements ITerminalReport {
10
+ status: string;
11
+ command: string;
12
+ version: string;
13
+ deviceResponseCode: string;
14
+ deviceResponseText: string;
15
+ referenceNumber: string;
16
+ multipleMessage: string;
17
+ merchantName: string;
18
+ ecrId: string;
19
+ deviceSerialNumber: string;
20
+ openTabs: OpenTab[];
21
+ constructor(jsonResponse: any);
22
+ private toNumber;
23
+ private isGpApiResponse;
24
+ private extractVersion;
25
+ private extractReferenceNumber;
26
+ toString(): string;
27
+ }
@@ -0,0 +1,113 @@
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
+ clerkId = "";
11
+ }
12
+ exports.OpenTab = OpenTab;
13
+ class OpenTabDetailsResponse {
14
+ status = "";
15
+ command = "";
16
+ version = "";
17
+ deviceResponseCode = "";
18
+ deviceResponseText = "";
19
+ referenceNumber = "";
20
+ multipleMessage = "";
21
+ merchantName = "";
22
+ ecrId = "";
23
+ deviceSerialNumber = "";
24
+ openTabs = [];
25
+ constructor(jsonResponse) {
26
+ if (typeof jsonResponse === "string") {
27
+ try {
28
+ jsonResponse = JSON.parse(jsonResponse);
29
+ }
30
+ catch {
31
+ throw new src_1.NotImplementedError("Invalid JSON string");
32
+ }
33
+ }
34
+ this.version = this.extractVersion(jsonResponse);
35
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
36
+ if (this.isGpApiResponse(jsonResponse)) {
37
+ this.deviceResponseText = jsonResponse.status;
38
+ this.deviceResponseCode = jsonResponse.action?.result_code || "";
39
+ }
40
+ const data = this.isGpApiResponse(jsonResponse)
41
+ ? jsonResponse?.response
42
+ : jsonResponse?.data;
43
+ const cmdResult = data?.cmdResult;
44
+ if (!data || !cmdResult) {
45
+ return;
46
+ }
47
+ this.status = cmdResult.result ?? "";
48
+ this.command = data.response ?? "";
49
+ this.ecrId = data.ecrId ?? data.EcrId ?? "";
50
+ this.deviceResponseCode =
51
+ cmdResult.errorCode ?? this.deviceResponseCode ?? "00";
52
+ if (this.status === "Success") {
53
+ this.deviceResponseText = this.status;
54
+ }
55
+ else {
56
+ this.deviceResponseText = `Error: ${cmdResult.errorCode ?? ""} - ${cmdResult.errorMessage ?? ""}`;
57
+ }
58
+ if (this.status !== "Success") {
59
+ return;
60
+ }
61
+ const responseData = data.data;
62
+ if (!responseData) {
63
+ return;
64
+ }
65
+ this.merchantName = responseData.merchantName ?? "";
66
+ this.multipleMessage = responseData.multipleMessage ?? "";
67
+ this.deviceSerialNumber = responseData.deviceSerialNumber ?? "";
68
+ if (Array.isArray(responseData.OpenTabDetails)) {
69
+ this.openTabs = responseData.OpenTabDetails.map((tab) => ({
70
+ authorizedAmount: this.toNumber(tab.authorizedAmount),
71
+ cardType: tab.cardType,
72
+ maskedPan: tab.maskedPan,
73
+ transactionId: tab.referenceNumber,
74
+ clerkId: tab.clerkId ?? "",
75
+ }));
76
+ }
77
+ else {
78
+ this.openTabs = [];
79
+ }
80
+ }
81
+ toNumber(value) {
82
+ if (value === undefined || value === null || value === "") {
83
+ return undefined;
84
+ }
85
+ const parsed = Number(value);
86
+ return Number.isNaN(parsed) ? undefined : parsed;
87
+ }
88
+ isGpApiResponse(jsonResponse) {
89
+ return !!(jsonResponse?.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
90
+ }
91
+ extractVersion(jsonResponse) {
92
+ return (jsonResponse?.version ??
93
+ jsonResponse?.response?.version ??
94
+ jsonResponse?.data?.version ??
95
+ jsonResponse?.data?.data?.version ??
96
+ "");
97
+ }
98
+ extractReferenceNumber(jsonResponse) {
99
+ return (jsonResponse?.referenceNumber ??
100
+ jsonResponse?.response?.referenceNumber ??
101
+ jsonResponse?.response?.data?.referenceNumber ??
102
+ jsonResponse?.response?.data?.host?.referenceNumber ??
103
+ jsonResponse?.data?.referenceNumber ??
104
+ jsonResponse?.data?.data?.referenceNumber ??
105
+ jsonResponse?.data?.data?.host?.referenceNumber ??
106
+ "");
107
+ }
108
+ toString() {
109
+ return JSON.stringify(this);
110
+ }
111
+ }
112
+ exports.OpenTabDetailsResponse = OpenTabDetailsResponse;
113
+ //# 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,39 @@
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
+ reportType: string;
27
+ reportOutput: string;
28
+ deviceSerialNumber: string;
29
+ constructor(jsonResponse: any);
30
+ private assignSummary;
31
+ private mapTransactionSummary;
32
+ private mapSummaryType;
33
+ private toDate;
34
+ private toNumber;
35
+ private isGpApiResponse;
36
+ private extractVersion;
37
+ private extractReferenceNumber;
38
+ toString(): string;
39
+ }