trm-core 7.2.0 → 7.3.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 +4 -0
- package/changelog.txt +9 -0
- package/dist/actions/install/generateDevclass.js +3 -2
- package/dist/actions/install/generateInstallTransport.js +3 -1
- package/dist/actions/install/importCustTransport.js +17 -2
- package/dist/actions/install/importDevcTransport.js +17 -2
- package/dist/actions/install/importLangTransport.js +17 -2
- package/dist/actions/install/importTadirTransport.js +17 -2
- package/dist/actions/install/installDependencies.js +16 -7
- package/dist/commons/getPackageHierarchy.js +4 -1
- package/dist/scripts/checkEngine.d.ts +1 -0
- package/dist/scripts/checkEngine.js +17 -0
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -14,6 +14,10 @@ This module contains the core functionalities of [TRM (Transport Request Manager
|
|
|
14
14
|
|
|
15
15
|
TRM is a software designed to make transports between SAP ECC/S4 systems easy.
|
|
16
16
|
|
|
17
|
+
# Requirements
|
|
18
|
+
|
|
19
|
+
- [Node ^22.12.0](https://github.com/nodejs/node/releases/tag/v22.12.0)
|
|
20
|
+
|
|
17
21
|
# Documentation <!-- {docsify-remove} -->
|
|
18
22
|
|
|
19
23
|
Full documentation can be seen at [https://docs.trmregistry.com/](https://docs.trmregistry.com).
|
package/changelog.txt
CHANGED
|
@@ -8,6 +8,15 @@ Legend
|
|
|
8
8
|
+ : added
|
|
9
9
|
- : removed
|
|
10
10
|
|
|
11
|
+
2025-07-08 v7.3.0
|
|
12
|
+
+ enforce node engine ^22.12.0 with post install script
|
|
13
|
+
* install package hierarchy
|
|
14
|
+
|
|
15
|
+
2025-06-04 v7.2.1
|
|
16
|
+
-------------------
|
|
17
|
+
* inquirer/logger prefix on install dependency
|
|
18
|
+
+ removed useless wb transport find on package first install
|
|
19
|
+
|
|
11
20
|
2025-06-03 v7.2.0
|
|
12
21
|
-------------------
|
|
13
22
|
* find dependency with custom object not found without devc reference
|
|
@@ -69,10 +69,11 @@ exports.generateDevclass = {
|
|
|
69
69
|
}
|
|
70
70
|
trm_commons_1.Logger.loading(`Updating ABAP packages hierarchy...`);
|
|
71
71
|
const aDummyTdevc = [];
|
|
72
|
+
var parentcl;
|
|
72
73
|
const originalPackageHierarchy = (0, commons_1.getPackageHierarchy)(context.runtime.packageTransportsData.tdevc);
|
|
73
74
|
for (const packageReplacement of context.rawInput.installData.installDevclass.replacements) {
|
|
75
|
+
parentcl = '';
|
|
74
76
|
const originalRoot = originalPackageHierarchy.devclass === packageReplacement.originalDevclass;
|
|
75
|
-
var parentcl;
|
|
76
77
|
if (!originalRoot) {
|
|
77
78
|
const originalParentCl = context.runtime.packageTransportsData.tdevc.find(o => o.devclass === packageReplacement.originalDevclass).parentcl;
|
|
78
79
|
if (originalParentCl) {
|
|
@@ -81,7 +82,7 @@ exports.generateDevclass = {
|
|
|
81
82
|
}
|
|
82
83
|
aDummyTdevc.push({
|
|
83
84
|
devclass: packageReplacement.installDevclass,
|
|
84
|
-
parentcl: parentcl
|
|
85
|
+
parentcl: parentcl
|
|
85
86
|
});
|
|
86
87
|
}
|
|
87
88
|
const installPackageHierarchy = (0, commons_1.getPackageHierarchy)(aDummyTdevc);
|
|
@@ -33,7 +33,9 @@ exports.generateInstallTransport = {
|
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
trm_commons_1.Logger.loading(`Checking install transport...`);
|
|
36
|
-
|
|
36
|
+
if (context.runtime.update) {
|
|
37
|
+
context.runtime.installData.transport = yield context.runtime.remotePackageData.trmPackage.getWbTransport();
|
|
38
|
+
}
|
|
37
39
|
if (context.runtime.installData.transport) {
|
|
38
40
|
trm_commons_1.Logger.log(`Install transport (${context.runtime.installData.transport.trkorr}) already exists, won't create a new one.`, true);
|
|
39
41
|
trm_commons_1.Logger.loading(`Updating install transport...`);
|
|
@@ -41,11 +41,26 @@ exports.importCustTransport = {
|
|
|
41
41
|
r3transOption: context.rawInput.contextData.r3transOptions
|
|
42
42
|
});
|
|
43
43
|
yield context.runtime.packageTransports.cust.instance.deleteFromTms(systemConnector_1.SystemConnector.getDest());
|
|
44
|
+
const originalLPrefix = trm_commons_1.Logger.getPrefix();
|
|
45
|
+
const originalIPrefix = trm_commons_1.Inquirer.getPrefix();
|
|
46
|
+
const prefix = `(Customizing) `;
|
|
47
|
+
if (originalLPrefix) {
|
|
48
|
+
trm_commons_1.Logger.setPrefix(`${originalLPrefix}-> ${prefix}`);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
trm_commons_1.Logger.setPrefix(prefix);
|
|
52
|
+
}
|
|
53
|
+
if (originalIPrefix) {
|
|
54
|
+
trm_commons_1.Inquirer.setPrefix(`${originalIPrefix}-> ${prefix}`);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
trm_commons_1.Inquirer.setPrefix(prefix);
|
|
58
|
+
}
|
|
44
59
|
trm_commons_1.Logger.loading(`Importing ${context.runtime.packageTransports.cust.binaries.trkorr}`, true);
|
|
45
|
-
trm_commons_1.Logger.setPrefix(`(Customizing) `);
|
|
46
60
|
yield context.runtime.packageTransports.cust.instance.import(importTimeout);
|
|
47
|
-
trm_commons_1.Logger.removePrefix();
|
|
48
61
|
trm_commons_1.Logger.success(`Transport ${context.runtime.packageTransports.cust.binaries.trkorr} imported`, true);
|
|
62
|
+
trm_commons_1.Logger.setPrefix(originalLPrefix);
|
|
63
|
+
trm_commons_1.Inquirer.setPrefix(originalIPrefix);
|
|
49
64
|
}),
|
|
50
65
|
revert: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
66
|
trm_commons_1.Logger.log('Rollback CUST Transport step', true);
|
|
@@ -37,11 +37,26 @@ exports.importDevcTransport = {
|
|
|
37
37
|
r3transOption: context.rawInput.contextData.r3transOptions
|
|
38
38
|
});
|
|
39
39
|
yield context.runtime.packageTransports.devc.instance.deleteFromTms(systemConnector_1.SystemConnector.getDest());
|
|
40
|
+
const originalLPrefix = trm_commons_1.Logger.getPrefix();
|
|
41
|
+
const originalIPrefix = trm_commons_1.Inquirer.getPrefix();
|
|
42
|
+
const prefix = `(SAP Package) `;
|
|
43
|
+
if (originalLPrefix) {
|
|
44
|
+
trm_commons_1.Logger.setPrefix(`${originalLPrefix}-> ${prefix}`);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
trm_commons_1.Logger.setPrefix(prefix);
|
|
48
|
+
}
|
|
49
|
+
if (originalIPrefix) {
|
|
50
|
+
trm_commons_1.Inquirer.setPrefix(`${originalIPrefix}-> ${prefix}`);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
trm_commons_1.Inquirer.setPrefix(prefix);
|
|
54
|
+
}
|
|
40
55
|
trm_commons_1.Logger.loading(`Importing ${context.runtime.packageTransports.devc.binaries.trkorr}`, true);
|
|
41
|
-
trm_commons_1.Logger.setPrefix(`(SAP Package) `);
|
|
42
56
|
yield context.runtime.packageTransports.devc.instance.import(importTimeout);
|
|
43
|
-
trm_commons_1.Logger.removePrefix();
|
|
44
57
|
trm_commons_1.Logger.success(`Transport ${context.runtime.packageTransports.devc.binaries.trkorr} imported`, true);
|
|
58
|
+
trm_commons_1.Logger.setPrefix(originalLPrefix);
|
|
59
|
+
trm_commons_1.Inquirer.setPrefix(originalIPrefix);
|
|
45
60
|
trm_commons_1.Logger.loading(`Finalizing import...`);
|
|
46
61
|
if (rootDevclass && rootDevclass.parentcl) {
|
|
47
62
|
yield systemConnector_1.SystemConnector.setPackageSuperpackage(context.runtime.originalData.hierarchy.devclass, rootDevclass.parentcl);
|
|
@@ -41,11 +41,26 @@ exports.importLangTransport = {
|
|
|
41
41
|
r3transOption: context.rawInput.contextData.r3transOptions
|
|
42
42
|
});
|
|
43
43
|
yield context.runtime.packageTransports.lang.instance.deleteFromTms(systemConnector_1.SystemConnector.getDest());
|
|
44
|
+
const originalLPrefix = trm_commons_1.Logger.getPrefix();
|
|
45
|
+
const originalIPrefix = trm_commons_1.Inquirer.getPrefix();
|
|
46
|
+
const prefix = `(Translations) `;
|
|
47
|
+
if (originalLPrefix) {
|
|
48
|
+
trm_commons_1.Logger.setPrefix(`${originalLPrefix}-> ${prefix}`);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
trm_commons_1.Logger.setPrefix(prefix);
|
|
52
|
+
}
|
|
53
|
+
if (originalIPrefix) {
|
|
54
|
+
trm_commons_1.Inquirer.setPrefix(`${originalIPrefix}-> ${prefix}`);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
trm_commons_1.Inquirer.setPrefix(prefix);
|
|
58
|
+
}
|
|
44
59
|
trm_commons_1.Logger.loading(`Importing ${context.runtime.packageTransports.lang.binaries.trkorr}`, true);
|
|
45
|
-
trm_commons_1.Logger.setPrefix(`(Translations) `);
|
|
46
60
|
yield context.runtime.packageTransports.lang.instance.import(importTimeout);
|
|
47
|
-
trm_commons_1.Logger.removePrefix();
|
|
48
61
|
trm_commons_1.Logger.success(`Transport ${context.runtime.packageTransports.lang.binaries.trkorr} imported`, true);
|
|
62
|
+
trm_commons_1.Logger.setPrefix(originalLPrefix);
|
|
63
|
+
trm_commons_1.Inquirer.setPrefix(originalIPrefix);
|
|
49
64
|
}),
|
|
50
65
|
revert: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
66
|
trm_commons_1.Logger.log('Rollback LANG Transport step', true);
|
|
@@ -33,11 +33,26 @@ exports.importTadirTransport = {
|
|
|
33
33
|
if (commons_1.TrmServerUpgrade.getInstance().deleteFromTms()) {
|
|
34
34
|
yield context.runtime.packageTransports.tadir.instance.deleteFromTms(systemConnector_1.SystemConnector.getDest());
|
|
35
35
|
}
|
|
36
|
+
const originalLPrefix = trm_commons_1.Logger.getPrefix();
|
|
37
|
+
const originalIPrefix = trm_commons_1.Inquirer.getPrefix();
|
|
38
|
+
const prefix = `(Workbench) `;
|
|
39
|
+
if (originalLPrefix) {
|
|
40
|
+
trm_commons_1.Logger.setPrefix(`${originalLPrefix}-> ${prefix}`);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
trm_commons_1.Logger.setPrefix(prefix);
|
|
44
|
+
}
|
|
45
|
+
if (originalIPrefix) {
|
|
46
|
+
trm_commons_1.Inquirer.setPrefix(`${originalIPrefix}-> ${prefix}`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
trm_commons_1.Inquirer.setPrefix(prefix);
|
|
50
|
+
}
|
|
36
51
|
trm_commons_1.Logger.loading(`Importing ${context.runtime.packageTransports.tadir.binaries.trkorr}`, true);
|
|
37
|
-
trm_commons_1.Logger.setPrefix(`(Workbench) `);
|
|
38
52
|
yield context.runtime.packageTransports.tadir.instance.import(importTimeout);
|
|
39
|
-
trm_commons_1.Logger.removePrefix();
|
|
40
53
|
trm_commons_1.Logger.success(`Transport ${context.runtime.packageTransports.tadir.binaries.trkorr} imported`, true);
|
|
54
|
+
trm_commons_1.Logger.setPrefix(originalLPrefix);
|
|
55
|
+
trm_commons_1.Inquirer.setPrefix(originalIPrefix);
|
|
41
56
|
trm_commons_1.Logger.loading(`Finalizing import...`);
|
|
42
57
|
for (const tadir of context.runtime.packageTransportsData.tadir) {
|
|
43
58
|
var object = lodash_1.default.cloneDeep(tadir);
|
|
@@ -83,15 +83,24 @@ exports.installDependencies = {
|
|
|
83
83
|
throw new Error(`Install aborted`);
|
|
84
84
|
}
|
|
85
85
|
var counter = 0;
|
|
86
|
+
const originalLPrefix = trm_commons_1.Logger.getPrefix();
|
|
87
|
+
const originalIPrefix = trm_commons_1.Inquirer.getPrefix();
|
|
86
88
|
for (const dependency of context.runtime.dependenciesToInstall) {
|
|
87
89
|
counter++;
|
|
88
90
|
trm_commons_1.Logger.loading(`Getting ready to install missing dependency "${dependency.name}"...`);
|
|
89
|
-
var prefix = `
|
|
90
|
-
if (
|
|
91
|
-
|
|
91
|
+
var prefix = `(${counter}/${context.runtime.dependenciesToInstall.length}) `;
|
|
92
|
+
if (originalLPrefix) {
|
|
93
|
+
trm_commons_1.Logger.setPrefix(`${originalLPrefix}-> ${prefix}`);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
trm_commons_1.Logger.setPrefix(` ${prefix}`);
|
|
97
|
+
}
|
|
98
|
+
if (originalIPrefix) {
|
|
99
|
+
trm_commons_1.Inquirer.setPrefix(`${originalIPrefix}-> ${prefix}`);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
trm_commons_1.Inquirer.setPrefix(` ${prefix}`);
|
|
92
103
|
}
|
|
93
|
-
trm_commons_1.Logger.setPrefix(prefix);
|
|
94
|
-
trm_commons_1.Inquirer.setPrefix(prefix);
|
|
95
104
|
var inputData = {
|
|
96
105
|
dependencyDataPackage: {
|
|
97
106
|
name: dependency.name,
|
|
@@ -108,8 +117,8 @@ exports.installDependencies = {
|
|
|
108
117
|
trm_commons_1.Logger.log(`Ready to execute sub-workflow ${SUBWORKFLOW_NAME}, input data: ${(0, trm_commons_1.inspect)(inputData, { breakLength: Infinity, compact: true })}`, true);
|
|
109
118
|
const result = yield (0, __1.installDependency)(inputData);
|
|
110
119
|
trm_commons_1.Logger.log(`Workflow ${SUBWORKFLOW_NAME} result: ${(0, trm_commons_1.inspect)(result, { breakLength: Infinity, compact: true })}`, true);
|
|
111
|
-
trm_commons_1.Logger.
|
|
112
|
-
trm_commons_1.Inquirer.
|
|
120
|
+
trm_commons_1.Logger.setPrefix(originalLPrefix);
|
|
121
|
+
trm_commons_1.Inquirer.setPrefix(originalIPrefix);
|
|
113
122
|
}
|
|
114
123
|
})
|
|
115
124
|
};
|
|
@@ -20,7 +20,10 @@ function getPackageHierarchy(input) {
|
|
|
20
20
|
roots.push(child);
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
|
-
if (roots.length
|
|
23
|
+
if (roots.length === 0) {
|
|
24
|
+
throw new Error(`No root found in package hierarchy.`);
|
|
25
|
+
}
|
|
26
|
+
else if (roots.length > 1) {
|
|
24
27
|
throw new Error(`Multiple roots found in package hierarchy.`);
|
|
25
28
|
}
|
|
26
29
|
return roots[0];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fs_1 = require("fs");
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const semver_1 = require("semver");
|
|
6
|
+
const currentVersion = process.version;
|
|
7
|
+
const pkgPath = (0, path_1.resolve)(__dirname, '../../package.json');
|
|
8
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)(pkgPath, 'utf8'));
|
|
9
|
+
const requiredRange = pkg.engines && pkg.engines.node;
|
|
10
|
+
if (!requiredRange) {
|
|
11
|
+
console.warn('No "engines.node" field in package.json. Skipping Node version check.');
|
|
12
|
+
process.exit(0);
|
|
13
|
+
}
|
|
14
|
+
if (!(0, semver_1.satisfies)(currentVersion, requiredRange)) {
|
|
15
|
+
console.error(`\nERROR: This package requires Node.js ${requiredRange}, but you are using ${currentVersion}.\n`);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trm-core",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.0",
|
|
4
4
|
"description": "TRM (Transport Request Manager) Core",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"cleanBuild": "rimraf dist/",
|
|
18
18
|
"build": "npm run cleanBuild && tsc --sourceMap false",
|
|
19
19
|
"test": "jest",
|
|
20
|
-
"prepublishOnly": "npm run build"
|
|
20
|
+
"prepublishOnly": "npm run build",
|
|
21
|
+
"postinstall": "node dist/scripts/checkEngine.js"
|
|
21
22
|
},
|
|
22
23
|
"keywords": [
|
|
23
24
|
"trm",
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
"homepage": "https://www.trmregistry.com",
|
|
27
28
|
"repository": {
|
|
28
29
|
"type": "git",
|
|
29
|
-
"url": "https://github.com/RegestaItalia/trm-core.git"
|
|
30
|
+
"url": "git+https://github.com/RegestaItalia/trm-core.git"
|
|
30
31
|
},
|
|
31
32
|
"author": {
|
|
32
33
|
"name": "Simone Gaffurini",
|
|
@@ -86,5 +87,8 @@
|
|
|
86
87
|
"ts-jest": "^29.1.2",
|
|
87
88
|
"ts-node": "^10.9.2",
|
|
88
89
|
"typescript": "^5.8.2"
|
|
90
|
+
},
|
|
91
|
+
"engines": {
|
|
92
|
+
"node": "^22.12.0"
|
|
89
93
|
}
|
|
90
94
|
}
|