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,187 @@
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
+ reportType = "";
32
+ reportOutput = "";
33
+ deviceSerialNumber = "";
34
+ constructor(jsonResponse) {
35
+ if (typeof jsonResponse === "string") {
36
+ try {
37
+ jsonResponse = JSON.parse(jsonResponse);
38
+ }
39
+ catch {
40
+ throw new src_1.NotImplementedError("Invalid JSON string");
41
+ }
42
+ }
43
+ this.version = this.extractVersion(jsonResponse);
44
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
45
+ if (this.isGpApiResponse(jsonResponse)) {
46
+ this.deviceResponseText = jsonResponse.status;
47
+ this.deviceResponseCode = jsonResponse.action?.result_code || "";
48
+ }
49
+ const data = this.isGpApiResponse(jsonResponse)
50
+ ? jsonResponse?.response
51
+ : jsonResponse?.data;
52
+ const cmdResult = data?.cmdResult;
53
+ if (!data || !cmdResult) {
54
+ return;
55
+ }
56
+ this.status = cmdResult.result ?? "";
57
+ this.command = data.response ?? "";
58
+ this.ecrId = data.ecrId ?? data.EcrId ?? "";
59
+ this.requestId = data.requestId ?? "";
60
+ this.deviceResponseCode =
61
+ cmdResult.errorCode ?? this.deviceResponseCode ?? "00";
62
+ if (this.status === "Success") {
63
+ this.deviceResponseText = this.status;
64
+ }
65
+ else {
66
+ this.deviceResponseText = `Error: ${cmdResult.errorCode ?? ""} - ${cmdResult.errorMessage ?? ""}`;
67
+ }
68
+ if (this.status !== "Success") {
69
+ return;
70
+ }
71
+ const responseData = data.data;
72
+ if (!responseData) {
73
+ return;
74
+ }
75
+ this.multipleMessage = responseData.multipleMessage ?? "";
76
+ this.reportType = responseData.reportType ?? "";
77
+ this.reportOutput = responseData.reportOutput ?? "";
78
+ this.deviceSerialNumber = responseData.deviceSerialNumber ?? "";
79
+ this.reportResult = new SafReport();
80
+ const reportResult = this.reportResult;
81
+ const safDetails = Array.isArray(responseData.SafDetails)
82
+ ? responseData.SafDetails
83
+ : [];
84
+ safDetails.forEach((detail) => {
85
+ const summary = new SafSummaryResponse();
86
+ summary.totalAmount = this.toNumber(detail.SafTotal) ?? 0;
87
+ summary.count = this.toNumber(detail.SafCount) ?? 0;
88
+ summary.summaryType = this.mapSummaryType(detail.SafType);
89
+ if (Array.isArray(detail.SafRecords)) {
90
+ summary.transactions = detail.SafRecords.map((record) => this.mapTransactionSummary(record));
91
+ }
92
+ else {
93
+ summary.transactions = [];
94
+ }
95
+ reportResult.totalAmount += summary.totalAmount;
96
+ reportResult.totalCount += summary.count ?? 0;
97
+ this.assignSummary(summary);
98
+ });
99
+ }
100
+ assignSummary(summary) {
101
+ if (!this.reportResult) {
102
+ return;
103
+ }
104
+ if (summary.summaryType === src_1.SummaryType.Approved) {
105
+ this.reportResult.approved = this.reportResult.approved ?? {};
106
+ this.reportResult.approved[summary.summaryType] = summary;
107
+ return;
108
+ }
109
+ if (summary.summaryType === src_1.SummaryType.Pending) {
110
+ this.reportResult.pending = this.reportResult.pending ?? {};
111
+ this.reportResult.pending[summary.summaryType] = summary;
112
+ return;
113
+ }
114
+ this.reportResult.declined = this.reportResult.declined ?? {};
115
+ this.reportResult.declined[summary.summaryType] = summary;
116
+ }
117
+ mapTransactionSummary(record) {
118
+ const summary = new src_1.TransactionSummary();
119
+ summary.transactionType = record.transactionType;
120
+ summary.transactionId = record.transId;
121
+ summary.referenceNumber = record.referenceNumber;
122
+ summary.gratuityAmount = record.tipAmount;
123
+ summary.taxAmount = record.taxAmount;
124
+ summary.amount = record.baseAmount;
125
+ summary.authorizedAmount = record.authorizedAmount;
126
+ summary.cardType = record.cardType;
127
+ summary.maskedCardNumber = record.maskedPan;
128
+ const transactionDate = this.toDate(record.transactionTime);
129
+ if (transactionDate) {
130
+ summary.transactionDate = transactionDate;
131
+ }
132
+ summary.authCode = record.approvalCode;
133
+ summary.entryMode = record.cardAcquisition;
134
+ summary.status = record.responseCode;
135
+ return summary;
136
+ }
137
+ mapSummaryType(safType) {
138
+ switch (safType) {
139
+ case "AUTHORIZED TRANSACTIONS":
140
+ return src_1.SummaryType.Approved;
141
+ case "PENDING TRANSACTIONS":
142
+ return src_1.SummaryType.Pending;
143
+ case "FAILED TRANSACTIONS":
144
+ default:
145
+ return src_1.SummaryType.Declined;
146
+ }
147
+ }
148
+ toDate(value) {
149
+ if (!value) {
150
+ return undefined;
151
+ }
152
+ const date = new Date(value);
153
+ return Number.isNaN(date.getTime()) ? undefined : date;
154
+ }
155
+ toNumber(value) {
156
+ if (value === undefined || value === null || value === "") {
157
+ return undefined;
158
+ }
159
+ const parsed = Number(value);
160
+ return Number.isNaN(parsed) ? undefined : parsed;
161
+ }
162
+ isGpApiResponse(jsonResponse) {
163
+ return !!(jsonResponse?.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
164
+ }
165
+ extractVersion(jsonResponse) {
166
+ return (jsonResponse?.version ??
167
+ jsonResponse?.response?.version ??
168
+ jsonResponse?.data?.version ??
169
+ jsonResponse?.data?.data?.version ??
170
+ "");
171
+ }
172
+ extractReferenceNumber(jsonResponse) {
173
+ return (jsonResponse?.referenceNumber ??
174
+ jsonResponse?.response?.referenceNumber ??
175
+ jsonResponse?.response?.data?.referenceNumber ??
176
+ jsonResponse?.response?.data?.host?.referenceNumber ??
177
+ jsonResponse?.data?.referenceNumber ??
178
+ jsonResponse?.data?.data?.referenceNumber ??
179
+ jsonResponse?.data?.data?.host?.referenceNumber ??
180
+ "");
181
+ }
182
+ toString() {
183
+ return JSON.stringify(this);
184
+ }
185
+ }
186
+ exports.SafReportResponse = SafReportResponse;
187
+ //# 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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"}
@@ -4,36 +4,44 @@ export declare class TransactionResponse implements ITerminalResponse {
4
4
  availableBalance?: number;
5
5
  transactionId: string;
6
6
  terminalRefNumber: string;
7
- token: string;
8
- cardBrandTransId: string;
9
- signatureStatus: string;
10
- signatureData: Buffer;
11
- transactionType: string;
7
+ token?: string;
8
+ cardBrandTransId?: string;
9
+ signatureStatus?: string;
10
+ signatureData?: Buffer;
11
+ transactionType?: string;
12
12
  maskedCardNumber: string;
13
13
  entryMethod: string;
14
14
  authorizationCode: string;
15
15
  transactionAmount: number;
16
- amountDue: number;
17
- balanceAmount: number;
18
- cardBIN: string;
19
- cardPresent: boolean;
20
- expirationDate: string;
21
- avsResponseCode: string;
22
- avsResponseText: string;
23
- cvvResponseCode: string;
24
- cvvResponseText: string;
25
- taxExempt: boolean;
26
- taxExemptId: string;
27
- ticketNumber: string;
16
+ amountDue?: number;
17
+ balanceAmount?: number;
18
+ cardBIN?: string;
19
+ cardPresent?: boolean;
20
+ expirationDate?: string;
21
+ avsResponseCode?: string;
22
+ avsResponseText?: string;
23
+ cvvResponseCode?: string;
24
+ cvvResponseText?: string;
25
+ taxExempt?: boolean;
26
+ taxExemptId?: string;
27
+ ticketNumber?: string;
28
28
  paymentType: string;
29
- applicationPreferredName: string;
30
- applicationLabel: string;
31
- applicationId: string;
32
- applicationCryptogramType: ApplicationCryptogramType;
33
- applicationCryptogram: string;
34
- cardHolderVerificationMethod: string;
35
- terminalVerificationResults: string;
29
+ cardType: string;
30
+ cardGroup: string;
31
+ ebtType: string;
32
+ clerkId: string;
33
+ pinVerified: string;
34
+ fallback: string;
35
+ applicationPreferredName?: string;
36
+ applicationLabel?: string;
37
+ applicationId?: string;
38
+ applicationCryptogramType?: ApplicationCryptogramType;
39
+ applicationCryptogram?: string;
40
+ cardHolderVerificationMethod?: string;
41
+ terminalVerificationResults?: string;
36
42
  merchantFee?: number;
43
+ storeAndForward?: number;
44
+ safTransaction?: boolean;
37
45
  status: string;
38
46
  command: string;
39
47
  version: string;
@@ -46,8 +54,23 @@ export declare class TransactionResponse implements ITerminalResponse {
46
54
  baseAmount?: number;
47
55
  cashBackAmount?: number;
48
56
  referenceNumber: string;
49
- cardHolderName: string;
57
+ cardHolderName?: string;
50
58
  requestId: string;
59
+ deviceResponseMessage: string;
60
+ ecrId: string;
61
+ multipleMessage: string;
62
+ terminalNumber: string;
63
+ responseId: string;
64
+ respDateTime: string;
65
+ gatewayResponseCode: string;
66
+ gatewayResponseMessage: string;
67
+ invoiceNumber: string;
68
+ extraChargeTotal?: number;
51
69
  constructor(jsonResponse: any);
52
70
  private isGpApiResponse;
71
+ private toNumber;
72
+ private toStringValue;
73
+ private normalizeDeviceResponseCode;
74
+ private extractVersion;
75
+ private extractReferenceNumber;
53
76
  }
@@ -28,6 +28,12 @@ class TransactionResponse {
28
28
  taxExemptId;
29
29
  ticketNumber;
30
30
  paymentType;
31
+ cardType = "";
32
+ cardGroup = "";
33
+ ebtType = "";
34
+ clerkId = "";
35
+ pinVerified = "";
36
+ fallback = "";
31
37
  applicationPreferredName;
32
38
  applicationLabel;
33
39
  applicationId;
@@ -36,9 +42,11 @@ class TransactionResponse {
36
42
  cardHolderVerificationMethod;
37
43
  terminalVerificationResults;
38
44
  merchantFee;
45
+ storeAndForward;
46
+ safTransaction;
39
47
  status;
40
48
  command;
41
- version;
49
+ version = "";
42
50
  deviceResponseCode;
43
51
  deviceResponseText;
44
52
  responseCode;
@@ -47,9 +55,19 @@ class TransactionResponse {
47
55
  tipAmount;
48
56
  baseAmount;
49
57
  cashBackAmount;
50
- referenceNumber;
58
+ referenceNumber = "";
51
59
  cardHolderName;
52
60
  requestId;
61
+ deviceResponseMessage;
62
+ ecrId;
63
+ multipleMessage = "";
64
+ terminalNumber = "";
65
+ responseId = "";
66
+ respDateTime = "";
67
+ gatewayResponseCode = "";
68
+ gatewayResponseMessage = "";
69
+ invoiceNumber = "";
70
+ extraChargeTotal;
53
71
  constructor(jsonResponse) {
54
72
  if (typeof jsonResponse === "string")
55
73
  try {
@@ -58,27 +76,145 @@ class TransactionResponse {
58
76
  catch {
59
77
  throw new src_1.NotImplementedError("Invalid JSON string");
60
78
  }
79
+ this.version = this.extractVersion(jsonResponse);
80
+ this.referenceNumber = this.extractReferenceNumber(jsonResponse);
61
81
  if (this.isGpApiResponse(jsonResponse)) {
62
- this.requestId = jsonResponse.id;
63
- this.status = jsonResponse.status;
64
- this.deviceResponseText = jsonResponse.status;
65
- this.responseText = this.deviceResponseCode =
66
- jsonResponse.action?.result_code || "";
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
- }
82
+ const response = jsonResponse.response;
83
+ const cmdResult = response?.cmdResult;
84
+ const responseData = response?.data;
85
+ const host = responseData?.host;
86
+ const payment = responseData?.payment;
87
+ const transaction = responseData?.transaction;
88
+ this.requestId = this.toStringValue(response?.requestId ?? jsonResponse.id);
89
+ this.transactionId = this.toStringValue(host?.referenceNumber ?? jsonResponse.id);
90
+ this.command = response?.response ?? "";
91
+ this.ecrId = response?.EcrId ?? "";
92
+ this.status = cmdResult?.result ?? jsonResponse.status ?? "";
93
+ this.deviceResponseCode = this.normalizeDeviceResponseCode(cmdResult?.errorCode, jsonResponse.action?.result_code);
94
+ this.deviceResponseText = jsonResponse.status ?? this.status;
95
+ this.deviceResponseMessage = cmdResult?.errorMessage ?? "";
96
+ this.responseCode = host?.responseCode ?? this.deviceResponseCode;
97
+ this.responseText =
98
+ host?.responseText ?? jsonResponse.action?.result_code ?? "";
99
+ this.approvalCode = host?.approvalCode ?? "";
100
+ this.referenceNumber = this.toStringValue(host?.referenceNumber);
101
+ this.terminalRefNumber = this.toStringValue(host?.tranNo);
102
+ this.authorizationCode = host?.approvalCode ?? "";
103
+ this.avsResponseCode = host?.AvsResultCode ?? "";
104
+ this.avsResponseText = host?.AvsResultText ?? "";
105
+ this.cvvResponseCode = host?.CvvResultCode ?? "";
106
+ this.cvvResponseText = host?.CvvResultText ?? "";
107
+ this.token = host?.tokenValue ?? "";
108
+ this.cardBrandTransId = host?.cardBrandTransId ?? "";
109
+ this.storeAndForward = this.toNumber(payment?.storeAndForward ?? host?.storeAndForward);
110
+ this.safTransaction = this.storeAndForward === 1;
111
+ this.baseAmount = this.toNumber(host?.baseAmount ?? transaction?.baseAmount);
112
+ this.tipAmount = this.toNumber(host?.tipAmount ?? transaction?.tipAmount);
113
+ this.cashBackAmount = this.toNumber(host?.cashBackAmount ?? transaction?.cashBackAmount);
114
+ this.transactionAmount =
115
+ this.toNumber(host?.totalAmount ?? transaction?.totalAmount) ?? 0;
116
+ this.availableBalance = this.toNumber(host?.availableBalance);
117
+ this.balanceAmount = this.toNumber(host?.balanceDue) ?? 0;
118
+ this.paymentType = payment?.cardType ?? "";
119
+ this.cardType = payment?.cardType ?? "";
120
+ this.cardGroup = payment?.cardGroup ?? "";
121
+ this.ebtType = payment?.ebtType ?? "";
122
+ this.clerkId = payment?.clerkId ?? "";
123
+ this.pinVerified = payment?.PinVerified ?? "";
124
+ this.fallback = payment?.fallback ?? "";
125
+ this.maskedCardNumber = payment?.maskedPan ?? payment?.maskedPAN ?? "";
126
+ this.entryMethod = payment?.cardAcquisition ?? "";
127
+ this.cardHolderName = payment?.cardHolderName ?? "";
128
+ this.expirationDate = payment?.expiryDate ?? "";
129
+ this.transactionType = payment?.transactionType ?? "";
130
+ this.multipleMessage = this.toStringValue(responseData?.multipleMessage);
131
+ this.terminalNumber = this.toStringValue(responseData?.terminalNumber);
132
+ this.responseId = this.toStringValue(host?.responseId);
133
+ this.respDateTime = this.toStringValue(host?.respDateTime);
134
+ this.gatewayResponseCode = this.toStringValue(host?.gatewayResponseCode);
135
+ this.gatewayResponseMessage = this.toStringValue(host?.gatewayResponseMessage);
136
+ this.invoiceNumber = this.toStringValue(payment?.invoiceNbr);
137
+ this.extraChargeTotal = this.toNumber(transaction?.extraChargeTotal);
74
138
  }
75
139
  else {
76
- throw new src_1.NotImplementedError();
140
+ // Native UPA device response
141
+ const data = jsonResponse?.data;
142
+ const cmdResult = data?.cmdResult;
143
+ const responseData = data?.data;
144
+ const host = responseData?.host;
145
+ const payment = responseData?.payment;
146
+ const transaction = responseData?.transaction;
147
+ this.deviceResponseText = cmdResult?.result ?? "";
148
+ this.deviceResponseCode = cmdResult?.errorCode ?? "00";
149
+ this.status = this.deviceResponseText;
150
+ this.deviceResponseMessage = cmdResult?.errorMessage ?? "";
151
+ this.requestId = this.toStringValue(data?.requestId);
152
+ this.command = data?.response ?? "";
153
+ this.ecrId = data?.EcrId ?? "";
154
+ this.multipleMessage = this.toStringValue(responseData?.multipleMessage);
155
+ this.terminalNumber = this.toStringValue(responseData?.terminalNumber);
156
+ this.responseCode = this.toStringValue(host?.responseCode);
157
+ this.responseText = this.toStringValue(host?.responseText);
158
+ this.responseId = this.toStringValue(host?.responseId);
159
+ this.respDateTime = this.toStringValue(host?.respDateTime);
160
+ this.gatewayResponseCode = this.toStringValue(host?.gatewayResponseCode);
161
+ this.gatewayResponseMessage = this.toStringValue(host?.gatewayResponseMessage);
162
+ this.cardType = this.toStringValue(payment?.cardType);
163
+ this.paymentType = this.cardType;
164
+ this.entryMethod = this.toStringValue(payment?.cardAcquisition);
165
+ this.cardGroup = this.toStringValue(payment?.cardGroup);
166
+ this.clerkId = this.toStringValue(payment?.clerkId);
167
+ this.invoiceNumber = this.toStringValue(payment?.invoiceNbr);
168
+ this.maskedCardNumber = this.toStringValue(payment?.maskedPan ?? payment?.maskedPAN);
169
+ this.transactionAmount =
170
+ this.toNumber(transaction?.totalAmount ?? host?.totalAmount) ?? 0;
171
+ this.extraChargeTotal = this.toNumber(transaction?.extraChargeTotal);
172
+ this.transactionId = this.toStringValue(host?.referenceNumber);
173
+ this.terminalRefNumber = this.toStringValue(host?.tranNo);
174
+ this.approvalCode = this.toStringValue(host?.approvalCode);
175
+ this.authorizationCode = this.approvalCode;
176
+ this.referenceNumber =
177
+ this.referenceNumber || this.toStringValue(host?.referenceNumber);
77
178
  }
78
179
  }
79
180
  isGpApiResponse(jsonResponse) {
80
181
  return !!(jsonResponse.provider && jsonResponse.provider === src_1.GatewayProvider.GpApi);
81
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
+ toStringValue(value) {
191
+ if (value === undefined || value === null) {
192
+ return "";
193
+ }
194
+ return String(value);
195
+ }
196
+ normalizeDeviceResponseCode(cmdErrorCode, actionResultCode) {
197
+ if (cmdErrorCode) {
198
+ return cmdErrorCode;
199
+ }
200
+ return actionResultCode === "SUCCESS" ? "00" : actionResultCode ?? "";
201
+ }
202
+ extractVersion(jsonResponse) {
203
+ return (jsonResponse?.version ??
204
+ jsonResponse?.response?.version ??
205
+ jsonResponse?.data?.version ??
206
+ jsonResponse?.data?.data?.version ??
207
+ "");
208
+ }
209
+ extractReferenceNumber(jsonResponse) {
210
+ return this.toStringValue(jsonResponse?.referenceNumber ??
211
+ jsonResponse?.response?.referenceNumber ??
212
+ jsonResponse?.response?.data?.referenceNumber ??
213
+ jsonResponse?.response?.data?.host?.referenceNumber ??
214
+ jsonResponse?.data?.referenceNumber ??
215
+ jsonResponse?.data?.data?.referenceNumber ??
216
+ jsonResponse?.data?.data?.host?.referenceNumber);
217
+ }
82
218
  }
83
219
  exports.TransactionResponse = TransactionResponse;
84
220
  //# sourceMappingURL=TransactionResponse.js.map
@@ -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,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"}
1
+ {"version":3,"file":"TransactionResponse.js","sourceRoot":"","sources":["../../../../../src/Terminals/UPA/Reponses/TransactionResponse.ts"],"names":[],"mappings":"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"}
@@ -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
+ }
@@ -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