globalpayments-api 3.10.11 → 3.10.12
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.
- package/CHANGELOG.md +232 -228
- package/LICENSE.md +257 -257
- package/README.md +148 -148
- package/lib/src/Entities/Enums.d.ts +4 -0
- package/lib/src/Entities/Enums.js +7 -2
- package/lib/src/Entities/Enums.js.map +1 -1
- package/lib/src/Entities/ServiceEndpoints.d.ts +3 -0
- package/lib/src/Entities/ServiceEndpoints.js +3 -0
- package/lib/src/Entities/ServiceEndpoints.js.map +1 -1
- package/lib/src/ServiceConfigs/Gateways/GpApiConfig.d.ts +2 -1
- package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js +18 -4
- package/lib/src/ServiceConfigs/Gateways/GpApiConfig.js.map +1 -1
- package/lib/src/Services/GpApiServices.js +17 -4
- package/lib/src/Services/GpApiServices.js.map +1 -1
- package/lib/test/Integration/Gateways/GpApiConnector/3DS2.test.js +15 -15
- package/lib/test/Integration/Gateways/GpApiConnector/3DSecure.test.js +5 -5
- package/lib/test/Integration/Gateways/GpApiConnector/DataResidency.test.d.ts +1 -0
- package/lib/test/Integration/Gateways/GpApiConnector/DataResidency.test.js +135 -0
- package/lib/test/Integration/Gateways/GpApiConnector/DataResidency.test.js.map +1 -0
- package/lib/test/Integration/Gateways/GpEcomConnector/Credit.test.js +4 -4
- package/lib/test/Integration/Gateways/PorticoConnector/Ecommerce.test.js +8 -8
- package/package.json +63 -63
|
@@ -527,11 +527,11 @@ test("frictionless full cycle - v2 - with mobile SDK", async () => {
|
|
|
527
527
|
mobileData.applicationReference = "f283b3ec-27da-42a1-acea-f3f70e75bbdc";
|
|
528
528
|
mobileData.sdkInterface = src_1.SdkInterface.Browser;
|
|
529
529
|
mobileData.sdkUiTypes = [src_1.SdkUiType.HtmlOther];
|
|
530
|
-
mobileData.ephemeralPublicKey = `{
|
|
531
|
-
"kty": "EC",
|
|
532
|
-
"crv": "P-256",
|
|
533
|
-
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
534
|
-
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
530
|
+
mobileData.ephemeralPublicKey = `{
|
|
531
|
+
"kty": "EC",
|
|
532
|
+
"crv": "P-256",
|
|
533
|
+
"x": "WWcpTjbOqiu_1aODllw5rYTq5oLXE_T0huCPjMIRbkI",
|
|
534
|
+
"y": "Wz_7anIeadV8SJZUfr4drwjzuWoUbOsHp5GdRZBAAiw"
|
|
535
535
|
}`;
|
|
536
536
|
mobileData.maximumTimeout = 50;
|
|
537
537
|
mobileData.referenceNumber = "3DS_LOA_SDK_PPFU_020100_00007";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const src_1 = require("../../../../src");
|
|
4
|
+
const AMOUNT = 10.99;
|
|
5
|
+
const CURRENCY = "EUR";
|
|
6
|
+
const setupGpApiConfigWithEU = () => {
|
|
7
|
+
const APP_ID = "QlI6DivlPcXboV1AAG3NGtf340bJO6A34SqUa5REJojQMzat";
|
|
8
|
+
const APP_KEY = "G3Gdx6biXAXgJJFaMnuLo0hlBCCMH18rCXnPzySl37nwctMAmrV1EykuXi6GQCrh";
|
|
9
|
+
const gpApiConfig = new src_1.GpApiConfig();
|
|
10
|
+
gpApiConfig.appId = APP_ID;
|
|
11
|
+
gpApiConfig.appKey = APP_KEY;
|
|
12
|
+
gpApiConfig.channel = src_1.Channel.CardNotPresent;
|
|
13
|
+
gpApiConfig.dataResidency = src_1.DataResidency.EU;
|
|
14
|
+
gpApiConfig.environment = src_1.Environment.Test;
|
|
15
|
+
// gpApiConfig.country = "DE";
|
|
16
|
+
gpApiConfig.requestLogger = new src_1.SampleRequestLogger(new src_1.Logger("logs"));
|
|
17
|
+
const accessTokenInfo = new src_1.AccessTokenInfo();
|
|
18
|
+
accessTokenInfo.transactionProcessingAccountName = "internet";
|
|
19
|
+
accessTokenInfo.transactionProcessingAccountID =
|
|
20
|
+
"TRA_a73688d0986548d1a7dc03cce5eb1066";
|
|
21
|
+
gpApiConfig.accessTokenInfo = accessTokenInfo;
|
|
22
|
+
src_1.ServicesContainer.configureService(gpApiConfig, "euConfig");
|
|
23
|
+
};
|
|
24
|
+
const setupGpApiConfigWithoutDataResidency = () => {
|
|
25
|
+
const APP_ID = "QlI6DivlPcXboV1AAG3NGtf340bJO6A34SqUa5REJojQMzat";
|
|
26
|
+
const APP_KEY = "G3Gdx6biXAXgJJFaMnuLo0hlBCCMH18rCXnPzySl37nwctMAmrV1EykuXi6GQCrh";
|
|
27
|
+
const gpApiConfig = new src_1.GpApiConfig();
|
|
28
|
+
gpApiConfig.appId = APP_ID;
|
|
29
|
+
gpApiConfig.appKey = APP_KEY;
|
|
30
|
+
gpApiConfig.channel = src_1.Channel.CardNotPresent;
|
|
31
|
+
// dataResidency not set, should default to None
|
|
32
|
+
gpApiConfig.environment = src_1.Environment.Test;
|
|
33
|
+
gpApiConfig.requestLogger = new src_1.SampleRequestLogger(new src_1.Logger("logs"));
|
|
34
|
+
const accessTokenInfo = new src_1.AccessTokenInfo();
|
|
35
|
+
accessTokenInfo.transactionProcessingAccountName = "internet";
|
|
36
|
+
accessTokenInfo.transactionProcessingAccountID =
|
|
37
|
+
"TRA_a73688d0986548d1a7dc03cce5eb1066";
|
|
38
|
+
gpApiConfig.accessTokenInfo = accessTokenInfo;
|
|
39
|
+
src_1.ServicesContainer.configureService(gpApiConfig, "defaultConfig");
|
|
40
|
+
};
|
|
41
|
+
describe("GP-API Data Residency", () => {
|
|
42
|
+
const card = new src_1.CreditCardData();
|
|
43
|
+
card.number = "4263970000005262";
|
|
44
|
+
card.expMonth = "12";
|
|
45
|
+
card.expYear = "2025";
|
|
46
|
+
card.cvn = "123";
|
|
47
|
+
card.cardHolderName = "James Mason";
|
|
48
|
+
afterAll(() => {
|
|
49
|
+
src_1.ServicesContainer.removeConfiguration();
|
|
50
|
+
});
|
|
51
|
+
describe("GPAPI config with Data Residency is EU", () => {
|
|
52
|
+
beforeAll(() => {
|
|
53
|
+
setupGpApiConfigWithEU();
|
|
54
|
+
});
|
|
55
|
+
test("Given SDK configuration via GPAPI, When Data Residency is set as EU, Then Data Residency is sent as EU on the request", async () => {
|
|
56
|
+
// Verify config has EU data residency set
|
|
57
|
+
const config = new src_1.GpApiConfig();
|
|
58
|
+
config.dataResidency = src_1.DataResidency.EU;
|
|
59
|
+
config.environment = src_1.Environment.Test;
|
|
60
|
+
expect(config.dataResidency).toBe(src_1.DataResidency.EU);
|
|
61
|
+
// Send transaction and verify it succeeds (which means EU endpoint was used)
|
|
62
|
+
const response = await card
|
|
63
|
+
.charge(AMOUNT)
|
|
64
|
+
.withCurrency(CURRENCY)
|
|
65
|
+
.execute("euConfig");
|
|
66
|
+
expect(response).toBeTruthy();
|
|
67
|
+
expect(response.responseCode).toBe("SUCCESS");
|
|
68
|
+
// Transaction success confirms data residency was properly sent to EU endpoint
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe("GPAPI Data Residency is unspecified", () => {
|
|
72
|
+
beforeAll(() => {
|
|
73
|
+
setupGpApiConfigWithoutDataResidency();
|
|
74
|
+
});
|
|
75
|
+
test("Given SDK configuration via GPAPI, When Data Residency is not set, Then Data Residency is sent as None on the request", async () => {
|
|
76
|
+
// Verify config defaults to None when not set
|
|
77
|
+
const config = new src_1.GpApiConfig();
|
|
78
|
+
expect(config.dataResidency).toBe(src_1.DataResidency.None);
|
|
79
|
+
});
|
|
80
|
+
test("should default to None when dataResidency is not set", () => {
|
|
81
|
+
const config = new src_1.GpApiConfig();
|
|
82
|
+
config.appId = "QlI6DivlPcXboV1AAG3NGtf340bJO6A34SqUa5REJojQMzat";
|
|
83
|
+
config.appKey =
|
|
84
|
+
"G3Gdx6biXAXgJJFaMnuLo0hlBCCMH18rCXnPzySl37nwctMAmrV1EykuXi6GQCrh";
|
|
85
|
+
config.environment = src_1.Environment.Test;
|
|
86
|
+
// Manually trigger URL setting logic without full container initialization
|
|
87
|
+
if (!config.serviceUrl) {
|
|
88
|
+
config.serviceUrl = "https://apis.sandbox.globalpay.com/ucp";
|
|
89
|
+
}
|
|
90
|
+
expect(config.dataResidency).toBe(src_1.DataResidency.None);
|
|
91
|
+
expect(config.serviceUrl).not.toContain("eu.globalpay.com");
|
|
92
|
+
expect(config.serviceUrl).toBe("https://apis.sandbox.globalpay.com/ucp");
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
describe("Non-GPAPI config", () => {
|
|
96
|
+
test("Given SDK configuration via non-GPAPI (Portico), Then Data Residency is not able to be set", () => {
|
|
97
|
+
const porticoConfig = new src_1.PorticoConfig();
|
|
98
|
+
porticoConfig.secretApiKey = "skapi_cert_test";
|
|
99
|
+
// Verify that PorticoConfig does not have dataResidency property
|
|
100
|
+
expect(porticoConfig.dataResidency).toBeUndefined();
|
|
101
|
+
// TypeScript compilation would fail if we tried to set it:
|
|
102
|
+
// porticoConfig.dataResidency = DataResidency.EU; // This won't compile
|
|
103
|
+
// Verify only GpApiConfig has the dataResidency property
|
|
104
|
+
const gpApiConfig = new src_1.GpApiConfig();
|
|
105
|
+
expect(gpApiConfig.dataResidency).toBeDefined();
|
|
106
|
+
expect(gpApiConfig.dataResidency).toBe(src_1.DataResidency.None);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
describe.only("Negative Test Cases - EU Data Residency", () => {
|
|
110
|
+
test("should NOT use EU endpoint when dataResidency is None", () => {
|
|
111
|
+
const config = new src_1.GpApiConfig();
|
|
112
|
+
config.appId = "test";
|
|
113
|
+
config.appKey = "test";
|
|
114
|
+
config.dataResidency = src_1.DataResidency.None;
|
|
115
|
+
config.environment = src_1.Environment.Test;
|
|
116
|
+
// Manually set URL based on logic
|
|
117
|
+
if (!config.serviceUrl) {
|
|
118
|
+
config.serviceUrl = "https://apis.sandbox.globalpay.com/ucp";
|
|
119
|
+
}
|
|
120
|
+
// Negative assertion - should NOT contain EU endpoint
|
|
121
|
+
expect(config.serviceUrl).not.toContain("eu.globalpay.com");
|
|
122
|
+
expect(config.serviceUrl).toBe("https://apis.sandbox.globalpay.com/ucp");
|
|
123
|
+
});
|
|
124
|
+
test("should NOT allow dataResidency on non-GPAPI gateway configs", () => {
|
|
125
|
+
const porticoConfig = new src_1.PorticoConfig();
|
|
126
|
+
// PorticoConfig should not have dataResidency as a defined property
|
|
127
|
+
const hasDataResidencyProperty = porticoConfig.hasOwnProperty("dataResidency") ||
|
|
128
|
+
"dataResidency" in Object.getPrototypeOf(porticoConfig);
|
|
129
|
+
expect(hasDataResidencyProperty).toBe(false);
|
|
130
|
+
expect(porticoConfig instanceof src_1.PorticoConfig).toBe(true);
|
|
131
|
+
expect(porticoConfig instanceof src_1.GpApiConfig).toBe(false);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=DataResidency.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataResidency.test.js","sourceRoot":"","sources":["../../../../../test/Integration/Gateways/GpApiConnector/DataResidency.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,10 +117,10 @@ test.skip("credit auth mobile - apple pay", async () => {
|
|
|
117
117
|
test.skip("credit auth mobile - google pay", async () => {
|
|
118
118
|
const encryptedCard = new src_1.CreditCardData();
|
|
119
119
|
// tslint:disable-next-line:max-line-length
|
|
120
|
-
encryptedCard.token = `{
|
|
121
|
-
"signature": "MEQCIAv8iIZmQK95xMrruLLLvJ2/uGuq54SSq190WS62M4a4AiAQhRwPHt3HXaOtCUYphfZLhIRznbF3TWxXLfPCGoutTQ==",
|
|
122
|
-
"protocolVersion": "ECv1",
|
|
123
|
-
"signedMessage": "{"encryptedMessage":"h1Zfi0b6wQoD3b1qOvfa6EjGa0Bv/Mtxmn/2rRmq/mjLPVuM3Ymu7Uk1IEoPQ/Hk3bafHMCoBrGMQ4YUzLRNMk+YideS4thnE898ZLmnlcPVxWzv+gDodx7spInIK3dTYhMDhdo/28dIqmovl6hPzjPWjAaOfKUs7FvCPjR+HQG7cZb6V41BOzuCCt9wSQGTY5AkIWcTxGVTbA4brd/88A+EZowF10PNl24dygX/ydTAhkBBlVzp33/Poj/Axo7GFtH+kFBgEkBd68LFDHnDd7+GK7HhLq2gv4zVVTUHBSXa3MZFKOWmrgtz3gSXYi3yi6mSGVQwULSp8n4cD3qKW9z38VfqPAR0ZrUsZHvExI/n24iXYs3k5LUspeGbldXAkGL10OJw3meKoHjw20d04fGnTl6DNv2b6/WMA3lUoV9SotEhU20bHKgwpy7VQP20AgKb","ephemeralPublicKey":"BKaqNecPUorCBVLMcKncrBg/eFnt44HsLjHoyzOKnl12DP5KR4SPBNdNDSOjn3Bt/RSN9Nb2e9AOed5Zj0JmGCI\\u003d","tag":"wAiHd29oNTj6BM6XYCx8Cop0ek7yJNZDxsW2d9bdJPA\\u003d"}"
|
|
120
|
+
encryptedCard.token = `{
|
|
121
|
+
"signature": "MEQCIAv8iIZmQK95xMrruLLLvJ2/uGuq54SSq190WS62M4a4AiAQhRwPHt3HXaOtCUYphfZLhIRznbF3TWxXLfPCGoutTQ==",
|
|
122
|
+
"protocolVersion": "ECv1",
|
|
123
|
+
"signedMessage": "{"encryptedMessage":"h1Zfi0b6wQoD3b1qOvfa6EjGa0Bv/Mtxmn/2rRmq/mjLPVuM3Ymu7Uk1IEoPQ/Hk3bafHMCoBrGMQ4YUzLRNMk+YideS4thnE898ZLmnlcPVxWzv+gDodx7spInIK3dTYhMDhdo/28dIqmovl6hPzjPWjAaOfKUs7FvCPjR+HQG7cZb6V41BOzuCCt9wSQGTY5AkIWcTxGVTbA4brd/88A+EZowF10PNl24dygX/ydTAhkBBlVzp33/Poj/Axo7GFtH+kFBgEkBd68LFDHnDd7+GK7HhLq2gv4zVVTUHBSXa3MZFKOWmrgtz3gSXYi3yi6mSGVQwULSp8n4cD3qKW9z38VfqPAR0ZrUsZHvExI/n24iXYs3k5LUspeGbldXAkGL10OJw3meKoHjw20d04fGnTl6DNv2b6/WMA3lUoV9SotEhU20bHKgwpy7VQP20AgKb","ephemeralPublicKey":"BKaqNecPUorCBVLMcKncrBg/eFnt44HsLjHoyzOKnl12DP5KR4SPBNdNDSOjn3Bt/RSN9Nb2e9AOed5Zj0JmGCI\\u003d","tag":"wAiHd29oNTj6BM6XYCx8Cop0ek7yJNZDxsW2d9bdJPA\\u003d"}"
|
|
124
124
|
}`;
|
|
125
125
|
encryptedCard.mobileType = "pay-with-google";
|
|
126
126
|
const missingAmountError = expect(() => encryptedCard
|
|
@@ -78,14 +78,14 @@ test("ecom with secure ecommerce", async () => {
|
|
|
78
78
|
test.skip("ecom with walletdata", async () => {
|
|
79
79
|
card.mobileType = src_1.MobilePaymentMethodType.GOOGLEPAY;
|
|
80
80
|
card.paymentSource = src_1.PaymentDataSourceType.GOOGLEPAYWEB;
|
|
81
|
-
card.token = `{
|
|
82
|
-
"signature": "MEQCICd1jRuaiWW5z9olPR+xBi6Z7CmW019Ys+EOKO2RIgy9AiA2d/hWKuRYtayJl//Cc1r2wifxv69lRrRHTTPbelKhzA==",
|
|
83
|
-
"protocolVersion": "ECv1",
|
|
84
|
-
"signedMessage": {
|
|
85
|
-
"encryptedMessage": "wuSFSWEDYmECYdL57Glj1jtQ4hVN69cp82vsXyWN7Nw05ocSTqh6dYBb1FRboq1IjYhPf4MPOliBSJHugiHbeYilrT8HeXD+cU+rF9nNtucMFjMIFltik9aOSnpM0E8t9AJ60CFBwLebhHXvA53TlrziBTCQbhoVk2IAMO/tJKl1mI5rR+7sUI+BlIXFBcUba6T8eLz4z7wYwPxuBptP20u5C5QqMV5kY4aF6mCKwbLT5AzDLBiKA+eW9VtlP9icuxigYMOTP6wsrdiW7FMtHc0o3/MnBpZwWRpcponfnoNQnQMjOSiROZVHcHUK0i/lFUJg9p1Xi20qSyXIjq2WjCF7hSoDw1KzRnYO7uyx1yHN9vmLo+NqVfipRSpT7AtBt9CR8yHQftNQlady+VKSIhmigPTXVIapIf7CA27hiRysVGpWbrMZrJJYilFXh6eFPbk2",
|
|
86
|
-
"ephemeralPublicKey": "BFe4YpEa1hfmaYlcWR4eyVxZmanOCzDak9yy90PCIAfIMeeRCT9zX5KAnj2k/vWa+oZIv1McjgBIKAp/BoWKNkM=",
|
|
87
|
-
"tag": "IpXW8ECpNCLzN36M3S7nbQ1YnXxDeMx1RLwElW0xCg0="
|
|
88
|
-
}
|
|
81
|
+
card.token = `{
|
|
82
|
+
"signature": "MEQCICd1jRuaiWW5z9olPR+xBi6Z7CmW019Ys+EOKO2RIgy9AiA2d/hWKuRYtayJl//Cc1r2wifxv69lRrRHTTPbelKhzA==",
|
|
83
|
+
"protocolVersion": "ECv1",
|
|
84
|
+
"signedMessage": {
|
|
85
|
+
"encryptedMessage": "wuSFSWEDYmECYdL57Glj1jtQ4hVN69cp82vsXyWN7Nw05ocSTqh6dYBb1FRboq1IjYhPf4MPOliBSJHugiHbeYilrT8HeXD+cU+rF9nNtucMFjMIFltik9aOSnpM0E8t9AJ60CFBwLebhHXvA53TlrziBTCQbhoVk2IAMO/tJKl1mI5rR+7sUI+BlIXFBcUba6T8eLz4z7wYwPxuBptP20u5C5QqMV5kY4aF6mCKwbLT5AzDLBiKA+eW9VtlP9icuxigYMOTP6wsrdiW7FMtHc0o3/MnBpZwWRpcponfnoNQnQMjOSiROZVHcHUK0i/lFUJg9p1Xi20qSyXIjq2WjCF7hSoDw1KzRnYO7uyx1yHN9vmLo+NqVfipRSpT7AtBt9CR8yHQftNQlady+VKSIhmigPTXVIapIf7CA27hiRysVGpWbrMZrJJYilFXh6eFPbk2",
|
|
86
|
+
"ephemeralPublicKey": "BFe4YpEa1hfmaYlcWR4eyVxZmanOCzDak9yy90PCIAfIMeeRCT9zX5KAnj2k/vWa+oZIv1McjgBIKAp/BoWKNkM=",
|
|
87
|
+
"tag": "IpXW8ECpNCLzN36M3S7nbQ1YnXxDeMx1RLwElW0xCg0="
|
|
88
|
+
}
|
|
89
89
|
}`;
|
|
90
90
|
const response = await card
|
|
91
91
|
.charge(10)
|
package/package.json
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "globalpayments-api",
|
|
3
|
-
"version" : "3.10.
|
|
4
|
-
"description": "Global Payments SDK for NodeJS for Global Payments eCommerce gateways",
|
|
5
|
-
"author": "Global Payments",
|
|
6
|
-
"license": "GPL-2.0",
|
|
7
|
-
"engines": {
|
|
8
|
-
"node": ">=16.20.2"
|
|
9
|
-
},
|
|
10
|
-
"repository": {
|
|
11
|
-
"type": "git",
|
|
12
|
-
"url": "https://github.com/globalpayments/node-sdk.git"
|
|
13
|
-
},
|
|
14
|
-
"main": "./lib/src/index.js",
|
|
15
|
-
"typings": "./lib/src/index",
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "tsc",
|
|
18
|
-
"test:jest": "jest",
|
|
19
|
-
"test:serial": "jest --runInBand
|
|
20
|
-
"build:netsuite": "webpack --env.GP_NETSUITE_BUILD --config config/webpack.netsuite.js && node bin/netsuite-post.js",
|
|
21
|
-
"build:clean": "rimraf lib",
|
|
22
|
-
"docs": "typedoc --mode file --name \"GlobalPayments.Api\" --project tsconfig.json --out docs src",
|
|
23
|
-
"format": "prettier --write --config .prettierrc 'src/**/*.ts' 'test/**/*.ts' '*.md'",
|
|
24
|
-
"prebuild": "npm-run-all test:lint",
|
|
25
|
-
"prepublish": "npm-run-all build",
|
|
26
|
-
"prepublishOnly": "npm-run-all build",
|
|
27
|
-
"pretest": "npm-run-all build:clean test:lint build",
|
|
28
|
-
"test:lint": "eslint \"src/**/*.ts*\" \"test/**/*.ts\" --fix"
|
|
29
|
-
},
|
|
30
|
-
"dependencies": {
|
|
31
|
-
"@azz/elementtree": "^0.1.6",
|
|
32
|
-
"es6-promise": "^4.2.8",
|
|
33
|
-
"eslint-config-prettier": "^9.0.0",
|
|
34
|
-
"sha1": "^1.1.1",
|
|
35
|
-
"typedarray": "^0.0.6",
|
|
36
|
-
"url": "^0.11.0"
|
|
37
|
-
},
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"@hitc/netsuite-types": "^2017.2.32",
|
|
40
|
-
"@types/jest": "^29.5.12",
|
|
41
|
-
"@types/node": "20.6.0",
|
|
42
|
-
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
|
43
|
-
"@typescript-eslint/parser": "^6.7.3",
|
|
44
|
-
"eslint": "^8.50.0",
|
|
45
|
-
"eslint-plugin-prettier": "^5.0.0",
|
|
46
|
-
"jest": "^29.7.0",
|
|
47
|
-
"npm-run-all": "^4.1.5",
|
|
48
|
-
"prettier": "3.0.3",
|
|
49
|
-
"rimraf": "^2.6.3",
|
|
50
|
-
"ts-jest": "^29.1.5",
|
|
51
|
-
"tslint": "^6.1.3",
|
|
52
|
-
"typedoc": "0.25.1",
|
|
53
|
-
"typescript": "5.2.2",
|
|
54
|
-
"webpack": "^5.94.0"
|
|
55
|
-
},
|
|
56
|
-
"files": [
|
|
57
|
-
"lib/src/**",
|
|
58
|
-
"lib/test/**",
|
|
59
|
-
"appsec.properties",
|
|
60
|
-
"CHANGELOG.md"
|
|
61
|
-
],
|
|
62
|
-
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
63
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "globalpayments-api",
|
|
3
|
+
"version" : "3.10.12",
|
|
4
|
+
"description": "Global Payments SDK for NodeJS for Global Payments eCommerce gateways",
|
|
5
|
+
"author": "Global Payments",
|
|
6
|
+
"license": "GPL-2.0",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=16.20.2"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/globalpayments/node-sdk.git"
|
|
13
|
+
},
|
|
14
|
+
"main": "./lib/src/index.js",
|
|
15
|
+
"typings": "./lib/src/index",
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc",
|
|
18
|
+
"test:jest": "jest",
|
|
19
|
+
"test:serial": "jest --runInBand --testPathPattern=DataResidency.test.ts$ --",
|
|
20
|
+
"build:netsuite": "webpack --env.GP_NETSUITE_BUILD --config config/webpack.netsuite.js && node bin/netsuite-post.js",
|
|
21
|
+
"build:clean": "rimraf lib",
|
|
22
|
+
"docs": "typedoc --mode file --name \"GlobalPayments.Api\" --project tsconfig.json --out docs src",
|
|
23
|
+
"format": "prettier --write --config .prettierrc 'src/**/*.ts' 'test/**/*.ts' '*.md'",
|
|
24
|
+
"prebuild": "npm-run-all test:lint",
|
|
25
|
+
"prepublish": "npm-run-all build",
|
|
26
|
+
"prepublishOnly": "npm-run-all build",
|
|
27
|
+
"pretest": "npm-run-all build:clean test:lint build",
|
|
28
|
+
"test:lint": "eslint \"src/**/*.ts*\" \"test/**/*.ts\" --fix"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@azz/elementtree": "^0.1.6",
|
|
32
|
+
"es6-promise": "^4.2.8",
|
|
33
|
+
"eslint-config-prettier": "^9.0.0",
|
|
34
|
+
"sha1": "^1.1.1",
|
|
35
|
+
"typedarray": "^0.0.6",
|
|
36
|
+
"url": "^0.11.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@hitc/netsuite-types": "^2017.2.32",
|
|
40
|
+
"@types/jest": "^29.5.12",
|
|
41
|
+
"@types/node": "20.6.0",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
|
43
|
+
"@typescript-eslint/parser": "^6.7.3",
|
|
44
|
+
"eslint": "^8.50.0",
|
|
45
|
+
"eslint-plugin-prettier": "^5.0.0",
|
|
46
|
+
"jest": "^29.7.0",
|
|
47
|
+
"npm-run-all": "^4.1.5",
|
|
48
|
+
"prettier": "3.0.3",
|
|
49
|
+
"rimraf": "^2.6.3",
|
|
50
|
+
"ts-jest": "^29.1.5",
|
|
51
|
+
"tslint": "^6.1.3",
|
|
52
|
+
"typedoc": "0.25.1",
|
|
53
|
+
"typescript": "5.2.2",
|
|
54
|
+
"webpack": "^5.94.0"
|
|
55
|
+
},
|
|
56
|
+
"files": [
|
|
57
|
+
"lib/src/**",
|
|
58
|
+
"lib/test/**",
|
|
59
|
+
"appsec.properties",
|
|
60
|
+
"CHANGELOG.md"
|
|
61
|
+
],
|
|
62
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
63
|
+
}
|