trm-core 6.5.1 → 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/changelog.txt CHANGED
@@ -8,6 +8,13 @@ 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
+
11
18
  2025-05-08 v6.5.1
12
19
  -------------------
13
20
  ! rest error handling
@@ -29,6 +29,7 @@ export type SapEntriesDependency = {
29
29
  export type TrmDependency = {
30
30
  devclass: DEVCLASS;
31
31
  package: TrmPackage;
32
+ ignoreNoIntegrity: boolean;
32
33
  integrity?: string;
33
34
  sapEntries: SapEntriesDependency[];
34
35
  };
@@ -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
- throw new Error(` (${i + 1}/${result.trmPackageDependencies.withTrmPackage.length}) ${dependencyManifest.name}: Integrity not found!`);
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
- const response = yield this._axiosInstance.get('/', {
73
- timeout: 5000
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 Error(`Couldn't reach ${this.endpoint}!`);
82
+ throw new _1.RESTClientError("ZNO_CONN", null, null, `Couldn't reach ${this.endpoint}!`);
77
83
  }
78
84
  else {
79
85
  this._connected = true;
@@ -153,7 +159,7 @@ class RESTClient {
153
159
  return msg.trim();
154
160
  }
155
161
  else {
156
- throw new Error(`Message ${msgnr}, class ${data.class}, lang ${this._cLangu} not found.`);
162
+ throw new _1.RESTClientError("ZMSG_NOT_FOUND", null, null, `Message ${msgnr}, class ${data.class}, lang ${this._cLangu} not found.`);
157
163
  }
158
164
  });
159
165
  }
@@ -609,7 +615,7 @@ class RESTClient {
609
615
  };
610
616
  }
611
617
  catch (e) {
612
- throw new Error(`Can't parse api data.`);
618
+ throw new _1.RESTClientError("ZPARSE_API_DATA", null, null, `Can't parse api data.`);
613
619
  }
614
620
  });
615
621
  }
@@ -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 Error(`${nodeRfcLib} not found. Run command "npm install ${nodeRfcLib} -g" to continue.`);
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
- trm_commons_1.Logger.loading(`Opening RFC connection`, true);
86
- yield (yield this.getRfcClient()).open();
87
- trm_commons_1.Logger.success(`RFC open`, true);
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 Error(`Message ${msgnr}, class ${data.class}, lang ${this._cLangu} not found.`);
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
- sError = error.response.data;
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.5.1",
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.0"
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",