trm-core 6.5.0 → 6.6.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.
- package/README.md +2 -0
- package/changelog.txt +11 -0
- package/dist/actions/findDependencies/index.d.ts +1 -0
- package/dist/actions/findDependencies/setTrmDependencies.js +5 -0
- package/dist/actions/publish/findDependencies.js +9 -2
- package/dist/client/RESTClient.js +26 -11
- package/dist/client/RFCClient.js +10 -5
- package/dist/commons/getAxiosInstance.js +12 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -22,3 +22,5 @@ Make sure to open an issue first.
|
|
|
22
22
|
Contributions will be merged upon approval.
|
|
23
23
|
|
|
24
24
|
[Click here](https://docs.trmregistry.com/#/CONTRIBUTING) for the full list of TRM contribution guidelines.
|
|
25
|
+
|
|
26
|
+
[<img src="https://trmregistry.com/public/contributors?image=true">](https://docs.trmregistry.com/#/?id=contributors)
|
package/changelog.txt
CHANGED
|
@@ -8,6 +8,17 @@ Legend
|
|
|
8
8
|
+ : added
|
|
9
9
|
- : removed
|
|
10
10
|
|
|
11
|
+
2025-05-08 v6.6.0
|
|
12
|
+
-------------------
|
|
13
|
+
* no integrity with trm-server/trm-rest dependency allowed
|
|
14
|
+
! REST Client and RFC Client error generic -> specific
|
|
15
|
+
! REST Client error xml body parsing with title as message
|
|
16
|
+
! trm-server ^2.2.2
|
|
17
|
+
|
|
18
|
+
2025-05-08 v6.5.1
|
|
19
|
+
-------------------
|
|
20
|
+
! rest error handling
|
|
21
|
+
|
|
11
22
|
2025-05-05 v6.5.0
|
|
12
23
|
-------------------
|
|
13
24
|
! trm-commons ^1.0.0
|
|
@@ -98,6 +98,7 @@ const _getTadirDependencies = (tadirDependencies) => __awaiter(void 0, void 0, v
|
|
|
98
98
|
var arrayIndex1;
|
|
99
99
|
var arrayIndex2;
|
|
100
100
|
var append;
|
|
101
|
+
var ignoreNoIntegrity;
|
|
101
102
|
if (trmServerPackage.package && trmServerPackage.package.getDevclass() === tadir.devclass) {
|
|
102
103
|
trm_commons_1.Logger.log(`Dependency with TRM SERVER package`, true);
|
|
103
104
|
devclass = trmServerPackage.package.getDevclass();
|
|
@@ -110,6 +111,7 @@ const _getTadirDependencies = (tadirDependencies) => __awaiter(void 0, void 0, v
|
|
|
110
111
|
trmServerPackage.integrity = integrity;
|
|
111
112
|
}
|
|
112
113
|
append = true;
|
|
114
|
+
ignoreNoIntegrity = true;
|
|
113
115
|
}
|
|
114
116
|
else if (trmRestPackage.package && trmRestPackage.package.getDevclass() === tadir.devclass) {
|
|
115
117
|
trm_commons_1.Logger.log(`Dependency with TRM REST package`, true);
|
|
@@ -123,8 +125,10 @@ const _getTadirDependencies = (tadirDependencies) => __awaiter(void 0, void 0, v
|
|
|
123
125
|
trmRestPackage.integrity = integrity;
|
|
124
126
|
}
|
|
125
127
|
append = true;
|
|
128
|
+
ignoreNoIntegrity = true;
|
|
126
129
|
}
|
|
127
130
|
else {
|
|
131
|
+
ignoreNoIntegrity = false;
|
|
128
132
|
trm_commons_1.Logger.log(`Searching transports for object ${tadir.pgmid} ${tadir.object} ${tadir.objName}`, true);
|
|
129
133
|
const allTransports = yield transport_1.Transport.getTransportsFromObject(tadir, transportsObjectCache);
|
|
130
134
|
trm_commons_1.Logger.log(`Found ${allTransports.length} transports for object ${tadir.pgmid} ${tadir.object} ${tadir.objName}`, true);
|
|
@@ -213,6 +217,7 @@ const _getTadirDependencies = (tadirDependencies) => __awaiter(void 0, void 0, v
|
|
|
213
217
|
devclass,
|
|
214
218
|
package: trmPackage,
|
|
215
219
|
integrity,
|
|
220
|
+
ignoreNoIntegrity,
|
|
216
221
|
sapEntries: []
|
|
217
222
|
});
|
|
218
223
|
arrayIndex1--;
|
|
@@ -73,9 +73,16 @@ exports.findDependencies = {
|
|
|
73
73
|
const dependencyVersionRange = `^${dependencyManifest.version}`;
|
|
74
74
|
const dependencyRegistry = o.package.registry.getRegistryType() === registry_1.RegistryType.PUBLIC ? undefined : o.package.registry.endpoint;
|
|
75
75
|
if (!o.integrity) {
|
|
76
|
-
|
|
76
|
+
if (o.ignoreNoIntegrity) {
|
|
77
|
+
trm_commons_1.Logger.warning(` (${i + 1}/${result.trmPackageDependencies.withTrmPackage.length}) ${dependencyManifest.name}: ${dependencyVersionRange} (Integrity not found!)`);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
throw new Error(` (${i + 1}/${result.trmPackageDependencies.withTrmPackage.length}) ${dependencyManifest.name}: Integrity not found!`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
trm_commons_1.Logger.info(` (${i + 1}/${result.trmPackageDependencies.withTrmPackage.length}) ${dependencyManifest.name} ${dependencyVersionRange}`);
|
|
77
85
|
}
|
|
78
|
-
trm_commons_1.Logger.info(` (${i + 1}/${result.trmPackageDependencies.withTrmPackage.length}) ${dependencyManifest.name} ${dependencyVersionRange}`);
|
|
79
86
|
context.runtime.trmPackage.manifest.dependencies.push({
|
|
80
87
|
name: dependencyManifest.name,
|
|
81
88
|
version: dependencyVersionRange,
|
|
@@ -69,11 +69,17 @@ class RESTClient {
|
|
|
69
69
|
open() {
|
|
70
70
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
71
|
if (!this._connected) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
var response;
|
|
73
|
+
try {
|
|
74
|
+
response = yield this._axiosInstance.get('/', {
|
|
75
|
+
timeout: 5000
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
throw new _1.RESTClientError("ZNO_CONN", null, e, e.message);
|
|
80
|
+
}
|
|
75
81
|
if (response.status !== 200) {
|
|
76
|
-
throw new
|
|
82
|
+
throw new _1.RESTClientError("ZNO_CONN", null, null, `Couldn't reach ${this.endpoint}!`);
|
|
77
83
|
}
|
|
78
84
|
else {
|
|
79
85
|
this._connected = true;
|
|
@@ -107,7 +113,7 @@ class RESTClient {
|
|
|
107
113
|
}
|
|
108
114
|
catch (k) {
|
|
109
115
|
messageError = k;
|
|
110
|
-
message = `Couldn't read error message ${axiosError.response.data.message.
|
|
116
|
+
message = `Couldn't read error message ${axiosError.response.data.message.msgid} ${axiosError.response.data.message.msgno} ${axiosError.response.data.message.msgv1} ${axiosError.response.data.message.msgv2} ${axiosError.response.data.message.msgv3} ${axiosError.response.data.message.msgv4}`;
|
|
111
117
|
}
|
|
112
118
|
var rfcClientError = new _1.RESTClientError(error.message, sapMessage, axiosError, message);
|
|
113
119
|
if (messageError) {
|
|
@@ -137,14 +143,23 @@ class RESTClient {
|
|
|
137
143
|
const aT100 = yield this.readTable('T100', [{ fieldName: 'SPRSL' }, { fieldName: 'ARBGB' }, { fieldName: 'MSGNR' }, { fieldName: 'TEXT' }], `SPRSL EQ '${this._cLangu}' AND ARBGB EQ '${data.class}' AND MSGNR EQ '${msgnr}'`);
|
|
138
144
|
if (aT100.length === 1 && aT100[0].text) {
|
|
139
145
|
var msg = aT100[0].text;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
146
|
+
var counter = 1;
|
|
147
|
+
do {
|
|
148
|
+
if (msg.includes(`&${counter}`)) {
|
|
149
|
+
msg = msg.replace(new RegExp(`&${counter}`, 'gmi'), data[`v${counter}`] || '');
|
|
150
|
+
msg = msg.replace(new RegExp(`&${counter}&`, 'gmi'), data[`v${counter}`] || '');
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
msg = msg.replace("&", data[`v${counter}`] || '');
|
|
154
|
+
}
|
|
155
|
+
counter++;
|
|
156
|
+
} while (counter <= 4);
|
|
157
|
+
msg = msg.replace(new RegExp(`&\\d*`, 'gmi'), '');
|
|
158
|
+
msg = msg.replace(new RegExp(`&`, 'gmi'), '');
|
|
144
159
|
return msg.trim();
|
|
145
160
|
}
|
|
146
161
|
else {
|
|
147
|
-
throw new
|
|
162
|
+
throw new _1.RESTClientError("ZMSG_NOT_FOUND", null, null, `Message ${msgnr}, class ${data.class}, lang ${this._cLangu} not found.`);
|
|
148
163
|
}
|
|
149
164
|
});
|
|
150
165
|
}
|
|
@@ -600,7 +615,7 @@ class RESTClient {
|
|
|
600
615
|
};
|
|
601
616
|
}
|
|
602
617
|
catch (e) {
|
|
603
|
-
throw new
|
|
618
|
+
throw new _1.RESTClientError("ZPARSE_API_DATA", null, null, `Can't parse api data.`);
|
|
604
619
|
}
|
|
605
620
|
});
|
|
606
621
|
}
|
package/dist/client/RFCClient.js
CHANGED
|
@@ -73,7 +73,7 @@ class RFCClient {
|
|
|
73
73
|
const libPath = path_1.default.join(globalPath, nodeRfcLib);
|
|
74
74
|
trm_commons_1.Logger.log(`Node RFC lib path: ${libPath}`, true);
|
|
75
75
|
if (!(0, fs_1.existsSync)(libPath)) {
|
|
76
|
-
throw new
|
|
76
|
+
throw new _1.RFCClientError("ZRFC_LIB_NOT_FOUND", null, null, `${nodeRfcLib} not found. Run command "npm install ${nodeRfcLib} -g" to continue.`);
|
|
77
77
|
}
|
|
78
78
|
this._rfcClient = new (yield Promise.resolve(`${libPath}`).then(s => __importStar(require(s)))).Client(this._rfcClientArgs);
|
|
79
79
|
}
|
|
@@ -82,9 +82,14 @@ class RFCClient {
|
|
|
82
82
|
}
|
|
83
83
|
open() {
|
|
84
84
|
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
try {
|
|
86
|
+
trm_commons_1.Logger.loading(`Opening RFC connection`, true);
|
|
87
|
+
yield (yield this.getRfcClient()).open();
|
|
88
|
+
trm_commons_1.Logger.success(`RFC open`, true);
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
throw new _1.RFCClientError("ZNO_CONN", null, e, e.message);
|
|
92
|
+
}
|
|
88
93
|
});
|
|
89
94
|
}
|
|
90
95
|
checkConnection() {
|
|
@@ -194,7 +199,7 @@ class RFCClient {
|
|
|
194
199
|
return msg.trim();
|
|
195
200
|
}
|
|
196
201
|
else {
|
|
197
|
-
throw new
|
|
202
|
+
throw new _1.RFCClientError("ZMSG_NOT_FOUND", null, null, `Message ${msgnr}, class ${data.class}, lang ${this._cLangu} not found.`);
|
|
198
203
|
}
|
|
199
204
|
});
|
|
200
205
|
}
|
|
@@ -8,6 +8,7 @@ exports.getAxiosInstance = getAxiosInstance;
|
|
|
8
8
|
const axios_1 = __importDefault(require("axios"));
|
|
9
9
|
const util_1 = require("util");
|
|
10
10
|
const trm_commons_1 = require("trm-commons");
|
|
11
|
+
const node_html_parser_1 = require("node-html-parser");
|
|
11
12
|
const uuid_1 = require("uuid");
|
|
12
13
|
exports.AXIOS_SESSION_HEADER = 'X-TRM-SESSION-ID';
|
|
13
14
|
exports.AXIOS_INTERNAL_HEADER = 'X-TRM-REQUEST-ID';
|
|
@@ -68,7 +69,17 @@ function getAxiosInstance(config, sCtx) {
|
|
|
68
69
|
sError = error.response.data.message;
|
|
69
70
|
}
|
|
70
71
|
else if (typeof (error.response.data) === 'string') {
|
|
71
|
-
|
|
72
|
+
if (error.response.data[0] === '<') {
|
|
73
|
+
try {
|
|
74
|
+
sError = (0, node_html_parser_1.parse)(error.response.data).querySelector('title').innerText;
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
sError = error.response.data;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
sError = error.response.data;
|
|
82
|
+
}
|
|
72
83
|
}
|
|
73
84
|
else {
|
|
74
85
|
sError = error.response.statusText;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trm-core",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.6.0",
|
|
4
4
|
"description": "TRM (Transport Request Manager) Core",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"license": "MIT",
|
|
36
36
|
"trmDependencies": {
|
|
37
|
-
"trm-server": "^2.2.
|
|
37
|
+
"trm-server": "^2.2.2"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@esm2cjs/normalize-url": "^8.0.0",
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"get-root-path": "^3.0.1",
|
|
52
52
|
"get-stack-trace": "^3.1.1",
|
|
53
53
|
"lodash": "^4.17.21",
|
|
54
|
+
"node-html-parser": "^7.0.1",
|
|
54
55
|
"node-r3trans": "^1.5.0",
|
|
55
56
|
"object-keys-normalizer": "^1.0.1",
|
|
56
57
|
"opener": "^1.5.2",
|