trm-core 8.5.3 → 9.1.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 +11 -5
- package/changelog.txt +17 -0
- package/dist/actions/commons/prompts/index.d.ts +1 -0
- package/dist/actions/commons/prompts/index.js +17 -0
- package/dist/actions/commons/prompts/setTransportTarget.d.ts +2 -0
- package/dist/actions/commons/prompts/setTransportTarget.js +63 -0
- package/dist/actions/install/addNamespace.js +19 -46
- package/dist/actions/install/{migrate.d.ts → checkObjectsLock.d.ts} +1 -1
- package/dist/actions/install/checkObjectsLock.js +52 -0
- package/dist/actions/install/checkTransports.js +76 -55
- package/dist/actions/install/executePostActivities.js +13 -11
- package/dist/actions/install/generateDevclass.js +1 -7
- package/dist/actions/install/generateInstallTransport.js +85 -99
- package/dist/actions/install/importCustTransport.js +34 -33
- package/dist/actions/install/importDevcTransport.js +1 -1
- package/dist/actions/install/importLangTransport.js +1 -1
- package/dist/actions/install/importTadirTransport.js +2 -18
- package/dist/actions/install/index.d.ts +5 -5
- package/dist/actions/install/index.js +7 -9
- package/dist/actions/install/init.js +6 -9
- package/dist/actions/install/readDevc.js +6 -2
- package/dist/actions/install/readTadir.js +4 -2
- package/dist/actions/install/refreshTmsTxt.js +2 -8
- package/dist/actions/install/{setPackageIntegrity.d.ts → updatePackageData.d.ts} +1 -1
- package/dist/actions/install/updatePackageData.js +35 -0
- package/dist/actions/publish/checkAllObjectsReleased.d.ts +3 -0
- package/dist/actions/publish/checkAllObjectsReleased.js +46 -0
- package/dist/actions/publish/generateCustTransport.js +24 -20
- package/dist/actions/publish/generateDevcTransport.js +0 -2
- package/dist/actions/publish/generateTadirTransport.js +0 -16
- package/dist/actions/publish/getSourceCode.js +1 -1
- package/dist/actions/publish/index.d.ts +7 -3
- package/dist/actions/publish/index.js +5 -3
- package/dist/actions/publish/init.js +9 -22
- package/dist/actions/publish/releaseTransports.js +3 -4
- package/dist/actions/publish/setCustomizingTransports.js +100 -44
- package/dist/actions/publish/setManifestValues.js +1 -1
- package/dist/actions/publish/setReadme.js +1 -1
- package/dist/actions/publish/setTransportTarget.js +2 -36
- package/dist/actions/publish/{finalizePublish.d.ts → updatePackageData.d.ts} +1 -1
- package/dist/actions/publish/{finalizePublish.js → updatePackageData.js} +10 -10
- package/dist/actions/stopWarning.js +5 -1
- package/dist/client/RESTClient.d.ts +5 -6
- package/dist/client/RESTClient.js +36 -51
- package/dist/client/RFCClient.d.ts +5 -6
- package/dist/client/RFCClient.js +168 -205
- package/dist/client/components/DDLANGUAGE.d.ts +1 -0
- package/dist/client/components/TARSYSTEM.d.ts +1 -0
- package/dist/client/components/index.d.ts +2 -0
- package/dist/client/components/index.js +2 -0
- package/dist/client/struct/E07T.d.ts +6 -0
- package/dist/client/struct/E07T.js +2 -0
- package/dist/client/struct/TADIR_KEY.d.ts +6 -0
- package/dist/client/struct/TADIR_KEY.js +2 -0
- package/dist/client/struct/ZTRM_DIRTY.d.ts +7 -0
- package/dist/client/struct/ZTRM_DIRTY.js +2 -0
- package/dist/client/struct/ZTRM_OBJ_LOCK.d.ts +7 -0
- package/dist/client/struct/ZTRM_OBJ_LOCK.js +2 -0
- package/dist/client/struct/ZTRM_PACKAGE.d.ts +14 -0
- package/dist/client/struct/ZTRM_PACKAGE.js +2 -0
- package/dist/client/struct/index.d.ts +5 -2
- package/dist/client/struct/index.js +5 -2
- package/dist/commons/index.d.ts +0 -1
- package/dist/commons/index.js +0 -1
- package/dist/dependencies/PackageDependencies.js +16 -5
- package/dist/lockfile/Lockfile.js +1 -1
- package/dist/manifest/Manifest.js +0 -31
- package/dist/registry/AbstractRegistry.d.ts +2 -1
- package/dist/registry/FileSystem.d.ts +1 -0
- package/dist/registry/FileSystem.js +5 -0
- package/dist/registry/RegistryV2.d.ts +2 -1
- package/dist/registry/RegistryV2.js +116 -6
- package/dist/systemConnector/ISystemConnector.d.ts +4 -5
- package/dist/systemConnector/ISystemConnectorBase.d.ts +0 -3
- package/dist/systemConnector/RESTSystemConnector.d.ts +5 -6
- package/dist/systemConnector/RESTSystemConnector.js +20 -25
- package/dist/systemConnector/RFCSystemConnector.d.ts +5 -6
- package/dist/systemConnector/RFCSystemConnector.js +20 -25
- package/dist/systemConnector/SystemConnector.d.ts +5 -9
- package/dist/systemConnector/SystemConnector.js +21 -42
- package/dist/systemConnector/SystemConnectorBase.d.ts +7 -9
- package/dist/systemConnector/SystemConnectorBase.js +41 -220
- package/dist/transport/Transport.d.ts +9 -4
- package/dist/transport/Transport.js +49 -52
- package/dist/trmPackage/TrmArtifact.d.ts +1 -1
- package/dist/trmPackage/TrmArtifact.js +9 -2
- package/dist/trmPackage/TrmPackage.d.ts +11 -5
- package/dist/trmPackage/TrmPackage.js +11 -22
- package/dist/validators/validateTransportTarget.d.ts +2 -2
- package/dist/validators/validateTransportTarget.js +1 -1
- package/package.json +4 -4
- package/dist/actions/install/migrate.js +0 -35
- package/dist/actions/install/setPackageIntegrity.js +0 -28
- package/dist/actions/install/setTrmServerUpgradeService.d.ts +0 -3
- package/dist/actions/install/setTrmServerUpgradeService.js +0 -32
- package/dist/client/struct/ZTRM_INTEGRITY.d.ts +0 -6
- package/dist/client/struct/ZTY_TRM_PACKAGE.d.ts +0 -14
- package/dist/commons/TrmServerUpgradeService.d.ts +0 -16
- package/dist/commons/TrmServerUpgradeService.js +0 -89
- /package/dist/client/{struct/ZTRM_INTEGRITY.js → components/DDLANGUAGE.js} +0 -0
- /package/dist/client/{struct/ZTY_TRM_PACKAGE.js → components/TARSYSTEM.js} +0 -0
package/README.md
CHANGED
|
@@ -4,26 +4,32 @@
|
|
|
4
4
|
[](https://github.com/RegestaItalia/trm-core)
|
|
5
5
|
[](https://www.npmjs.com/package/trm-core)
|
|
6
6
|
[](https://www.npmjs.com/package/trm-core)
|
|
7
|
+
[](https://codewiki.google/github.com/regestaitalia/trm-docs)
|
|
7
8
|
|
|
8
9
|
| 🚀 This project is funded and maintained by 🏦 | 🔗 |
|
|
9
10
|
|-------------------------------------------------|----------------------------------------------------------------|
|
|
10
11
|
| Regesta S.p.A. | [https://www.regestaitalia.eu/](https://www.regestaitalia.eu/) |
|
|
11
12
|
| Clarex S.r.l. | [https://www.clarex.it/](https://www.clarex.it/) |
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
[trm-core](https://www.npmjs.com/package/trm-core) is the server-side component of TRM.
|
|
14
15
|
|
|
15
|
-
TRM is a
|
|
16
|
+
🚚 **TRM (Transport Request Manager)** is a package manager inspired solution built leveraging CTS that simplifies SAP ABAP transports.
|
|
17
|
+
|
|
18
|
+
<p align="center">
|
|
19
|
+
<img src="https://docs.trmregistry.com/logo.png" alt="TRM Logo" />
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
TRM introduces **package-based software delivery** to the SAP ecosystem, bringing with it semantic versioning, dependency management, and automated deployment activities.
|
|
16
23
|
|
|
17
24
|
# Requirements
|
|
18
25
|
|
|
19
26
|
- [Node >=22.12.0](https://github.com/nodejs/node/releases/tag/v22.12.0)
|
|
20
27
|
|
|
21
|
-
# Documentation
|
|
28
|
+
# Documentation
|
|
22
29
|
|
|
23
30
|
Full documentation can be seen at [https://docs.trmregistry.com/](https://docs.trmregistry.com).
|
|
24
31
|
|
|
25
|
-
# Contributing
|
|
26
|
-
|
|
32
|
+
# Contributing
|
|
27
33
|
Like every other TRM open-source projects, contributions are always welcomed ❤️.
|
|
28
34
|
|
|
29
35
|
Make sure to open an issue first.
|
package/changelog.txt
CHANGED
|
@@ -8,6 +8,23 @@ Legend
|
|
|
8
8
|
+ : added
|
|
9
9
|
- : removed
|
|
10
10
|
|
|
11
|
+
2026-04-21 v9.1.0
|
|
12
|
+
-------------------
|
|
13
|
+
! abstract registry log for downloads
|
|
14
|
+
! abstract registry contents endpoint (wip)
|
|
15
|
+
! skip usage of r3trans when registry provides content (wip)
|
|
16
|
+
|
|
17
|
+
2026-04-14 v9.0.0
|
|
18
|
+
-------------------
|
|
19
|
+
! moved to namespace /ATRM/
|
|
20
|
+
! trm-commons ^3.7.1
|
|
21
|
+
* polling progress bar
|
|
22
|
+
* transport icon
|
|
23
|
+
! release check before TADIR transport (in publish)
|
|
24
|
+
- sap entries in transport documentation
|
|
25
|
+
! release on transport install
|
|
26
|
+
! multiple customizing transports allowed
|
|
27
|
+
|
|
11
28
|
2026-03-11 v8.5.3
|
|
12
29
|
-------------------
|
|
13
30
|
+ refresh transport text in cg3z
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./setTransportTarget";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./setTransportTarget"), exports);
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.setTransportTarget = setTransportTarget;
|
|
16
|
+
const trm_commons_1 = require("trm-commons");
|
|
17
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
+
const validators_1 = require("../../../validators");
|
|
19
|
+
function setTransportTarget(noInquirer, systemTargets, userInput, inquirerMessage) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
var needsValidation;
|
|
22
|
+
var transportTarget = userInput;
|
|
23
|
+
if (transportTarget === undefined) {
|
|
24
|
+
if (systemTargets.length === 1) {
|
|
25
|
+
transportTarget = systemTargets[0];
|
|
26
|
+
trm_commons_1.Logger.info(`Target system automatically set to ${chalk_1.default.bold(transportTarget)}`);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
if (!noInquirer) {
|
|
30
|
+
transportTarget = (yield trm_commons_1.Inquirer.prompt({
|
|
31
|
+
type: "list",
|
|
32
|
+
message: inquirerMessage || 'Transport target',
|
|
33
|
+
name: "transportTarget",
|
|
34
|
+
validate: (input) => __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
return yield (0, validators_1.validateTransportTarget)(input, systemTargets);
|
|
36
|
+
}),
|
|
37
|
+
choices: systemTargets.map(o => {
|
|
38
|
+
return {
|
|
39
|
+
name: o,
|
|
40
|
+
value: o
|
|
41
|
+
};
|
|
42
|
+
})
|
|
43
|
+
})).transportTarget;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
throw new Error(`Transport target was not declared.`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
needsValidation = false;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
needsValidation = true;
|
|
53
|
+
}
|
|
54
|
+
if (needsValidation) {
|
|
55
|
+
const validate = yield (0, validators_1.validateTransportTarget)(transportTarget, systemTargets);
|
|
56
|
+
if (validate && validate !== true) {
|
|
57
|
+
throw new Error(validate);
|
|
58
|
+
}
|
|
59
|
+
trm_commons_1.Logger.info(`Target system: ${chalk_1.default.bold(transportTarget)}`);
|
|
60
|
+
}
|
|
61
|
+
return transportTarget;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
@@ -30,12 +30,6 @@ exports.addNamespace = {
|
|
|
30
30
|
trm_commons_1.Logger.log(`Package install namespace is ${context.runtime.installData.namespace}`, true);
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
|
-
else {
|
|
34
|
-
if (context.rawInput.installData.installDevclass.skipNamespace) {
|
|
35
|
-
trm_commons_1.Logger.info(`Skipping install of namespace ${context.runtime.installData.namespace}`, false);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
33
|
trm_commons_1.Logger.loading(`Checking namespace ${context.runtime.installData.namespace}...`);
|
|
40
34
|
var namespace;
|
|
41
35
|
const namespaceCheck = yield systemConnector_1.SystemConnector.getNamespace(context.runtime.installData.namespace);
|
|
@@ -46,8 +40,13 @@ exports.addNamespace = {
|
|
|
46
40
|
trm_commons_1.Logger.log(`Namespace ${context.runtime.installData.namespace} already defined`, true);
|
|
47
41
|
return;
|
|
48
42
|
}
|
|
43
|
+
else {
|
|
44
|
+
if (context.rawInput.installData.installDevclass.skipNamespace) {
|
|
45
|
+
throw new Error(`Cannot generate packages without namespace ${context.runtime.installData.namespace}. Run install with namespace import or do not rename install packages.`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
49
48
|
var replicense;
|
|
50
|
-
var
|
|
49
|
+
var text;
|
|
51
50
|
var aTexts = [];
|
|
52
51
|
if (context.runtime.installData.namespace !== originalNamespace) {
|
|
53
52
|
if (!context.rawInput.contextData.noInquirer) {
|
|
@@ -64,7 +63,7 @@ exports.addNamespace = {
|
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
65
|
})).replicense;
|
|
67
|
-
|
|
66
|
+
text = yield trm_commons_1.Inquirer.prompt([{
|
|
68
67
|
message: `dummy`,
|
|
69
68
|
name: 'namespace',
|
|
70
69
|
type: 'input',
|
|
@@ -77,61 +76,35 @@ exports.addNamespace = {
|
|
|
77
76
|
}, {
|
|
78
77
|
message: `Namespace language`,
|
|
79
78
|
name: 'spras',
|
|
80
|
-
type: 'input'
|
|
79
|
+
type: 'input',
|
|
80
|
+
default: systemConnector_1.SystemConnector.getLogonLanguage(true)
|
|
81
81
|
}, {
|
|
82
82
|
message: `Namespace description`,
|
|
83
83
|
name: 'descriptn',
|
|
84
84
|
type: 'input'
|
|
85
85
|
}]);
|
|
86
|
+
aTexts.push(text);
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
else {
|
|
89
90
|
if (context.runtime.remotePackageData.manifest.namespace) {
|
|
90
91
|
replicense = context.runtime.remotePackageData.manifest.namespace.replicense;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
if (!context.rawInput.contextData.noInquirer) {
|
|
102
|
-
texts = (yield trm_commons_1.Inquirer.prompt({
|
|
103
|
-
type: 'list',
|
|
104
|
-
message: 'Choose namespace install text',
|
|
105
|
-
name: 'choice',
|
|
106
|
-
choices: context.runtime.remotePackageData.manifest.namespace.texts.map(o => {
|
|
107
|
-
return {
|
|
108
|
-
name: `${o.language} ${o.description} ${o.owner}`,
|
|
109
|
-
value: {
|
|
110
|
-
namespace: context.runtime.installData.namespace,
|
|
111
|
-
descriptn: o.description,
|
|
112
|
-
owner: o.owner,
|
|
113
|
-
spras: o.language
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
})
|
|
117
|
-
})).choice;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
92
|
+
aTexts = context.runtime.remotePackageData.manifest.namespace.texts.map(o => {
|
|
93
|
+
return {
|
|
94
|
+
namespace: context.runtime.remotePackageData.manifest.namespace.ns || context.runtime.installData.namespace,
|
|
95
|
+
spras: o.language,
|
|
96
|
+
descriptn: o.description,
|
|
97
|
+
owner: o.owner
|
|
98
|
+
};
|
|
99
|
+
});
|
|
121
100
|
}
|
|
122
101
|
}
|
|
123
102
|
if (!replicense) {
|
|
124
103
|
throw new Error(`Cannot use namespace ${context.runtime.installData.namespace}: repair license missing.`);
|
|
125
104
|
}
|
|
126
|
-
if (
|
|
105
|
+
if (aTexts.length === 0) {
|
|
127
106
|
throw new Error(`Cannot use namespace ${context.runtime.installData.namespace}: data missing.`);
|
|
128
107
|
}
|
|
129
|
-
else {
|
|
130
|
-
aTexts.push(texts);
|
|
131
|
-
if (texts.spras != systemConnector_1.SystemConnector.getLogonLanguage(true)) {
|
|
132
|
-
aTexts.push(Object.assign(Object.assign({}, texts), { spras: systemConnector_1.SystemConnector.getLogonLanguage(true) }));
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
108
|
if (!context.runtime.stopWarningShown) {
|
|
136
109
|
context.runtime.stopWarningShown = true;
|
|
137
110
|
(0, stopWarning_1.stopWarning)('install');
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.checkObjectsLock = void 0;
|
|
13
|
+
const trm_commons_1 = require("trm-commons");
|
|
14
|
+
const systemConnector_1 = require("../../systemConnector");
|
|
15
|
+
exports.checkObjectsLock = {
|
|
16
|
+
name: 'check-objects-lock',
|
|
17
|
+
filter: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
if (context.rawInput.installData.installTransport.create) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
trm_commons_1.Logger.log(`Skipping objects lock (user input, no install transport)`, true);
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}),
|
|
26
|
+
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
trm_commons_1.Logger.log('Check objects lock step', true);
|
|
28
|
+
const devclass = context.runtime.generatedData.devclass.map(d => {
|
|
29
|
+
return {
|
|
30
|
+
PGMID: 'R3TR',
|
|
31
|
+
OBJECT: 'DEVC',
|
|
32
|
+
OBJ_NAME: d
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
const locks = yield systemConnector_1.SystemConnector.getObjectsLocks(devclass.concat(context.runtime.packageTransportsData.e071.map(o => {
|
|
36
|
+
return {
|
|
37
|
+
PGMID: o.pgmid,
|
|
38
|
+
OBJECT: o.object,
|
|
39
|
+
OBJ_NAME: o.objName
|
|
40
|
+
};
|
|
41
|
+
})));
|
|
42
|
+
if (locks.length > 0) {
|
|
43
|
+
locks.forEach(l => {
|
|
44
|
+
trm_commons_1.Logger.error(`${l.pgmid} ${l.object} ${l.objName} is currently locked in transport ${l.trkorr}`);
|
|
45
|
+
});
|
|
46
|
+
throw new Error(`To generate install transports, all objects must be released`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
trm_commons_1.Logger.log(`All objects released, continue`, true);
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
};
|
|
@@ -20,8 +20,15 @@ exports.checkTransports = {
|
|
|
20
20
|
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
21
|
trm_commons_1.Logger.log('Check transports step', true);
|
|
22
22
|
var checkExistance = [];
|
|
23
|
+
try {
|
|
24
|
+
context.runtime.packageTransportsData = yield context.rawInput.packageData.registry.contents(context.rawInput.packageData.name, context.rawInput.packageData.version || 'latest', true);
|
|
25
|
+
context.runtime.remotePackageData.contents = true;
|
|
26
|
+
}
|
|
27
|
+
catch (_a) {
|
|
28
|
+
context.runtime.remotePackageData.contents = false;
|
|
29
|
+
}
|
|
23
30
|
trm_commons_1.Logger.loading(`Checking package transports...`);
|
|
24
|
-
const aTransports = yield context.runtime.remotePackageData.artifact.getTransportBinaries(context.rawInput.contextData.r3transOptions);
|
|
31
|
+
const aTransports = yield context.runtime.remotePackageData.artifact.getTransportBinaries(context.rawInput.contextData.r3transOptions, context.runtime.remotePackageData.contents);
|
|
25
32
|
trm_commons_1.Logger.log(`Package content: ${aTransports.map(o => {
|
|
26
33
|
return {
|
|
27
34
|
trkorr: o.trkorr,
|
|
@@ -61,9 +68,11 @@ exports.checkTransports = {
|
|
|
61
68
|
context.runtime.packageTransports.tadir.binaries = aTadirTransports[0];
|
|
62
69
|
trm_commons_1.Logger.log(`TADIR transport is ${context.runtime.packageTransports.tadir.binaries.trkorr}.`, true);
|
|
63
70
|
checkExistance.push(context.runtime.packageTransports.tadir.binaries.trkorr);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
71
|
+
if (!context.runtime.remotePackageData.contents) {
|
|
72
|
+
const tadirE071 = (0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(context.runtime.packageTransports.tadir.binaries.binaries.data, 'E071'));
|
|
73
|
+
trm_commons_1.Logger.log(`TADIR E071: ${JSON.stringify(tadirE071)}`, true);
|
|
74
|
+
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(tadirE071);
|
|
75
|
+
}
|
|
67
76
|
}
|
|
68
77
|
if (aLangTransports.length > 0) {
|
|
69
78
|
if (context.rawInput.installData.import.noLang === undefined) {
|
|
@@ -83,12 +92,12 @@ exports.checkTransports = {
|
|
|
83
92
|
}
|
|
84
93
|
context.runtime.packageTransports.lang.binaries = aLangTransports[0];
|
|
85
94
|
trm_commons_1.Logger.log(`LANG transport is ${context.runtime.packageTransports.lang.binaries.trkorr}.`, true);
|
|
86
|
-
|
|
87
|
-
|
|
95
|
+
checkExistance.push(context.runtime.packageTransports.lang.binaries.trkorr);
|
|
96
|
+
if (!context.runtime.remotePackageData.contents) {
|
|
97
|
+
const langE071 = (0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(context.runtime.packageTransports.lang.binaries.binaries.data, 'E071'));
|
|
98
|
+
trm_commons_1.Logger.log(`LANG E071: ${JSON.stringify(langE071)}`, true);
|
|
99
|
+
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(langE071);
|
|
88
100
|
}
|
|
89
|
-
const langE071 = (0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(context.runtime.packageTransports.lang.binaries.binaries.data, 'E071'));
|
|
90
|
-
trm_commons_1.Logger.log(`LANG E071: ${JSON.stringify(langE071)}`, true);
|
|
91
|
-
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(langE071);
|
|
92
101
|
}
|
|
93
102
|
}
|
|
94
103
|
if (aCustTransports.length > 0) {
|
|
@@ -97,36 +106,43 @@ exports.checkTransports = {
|
|
|
97
106
|
context.rawInput.installData.import.noCust = !(yield trm_commons_2.Inquirer.prompt({
|
|
98
107
|
type: `confirm`,
|
|
99
108
|
name: `noCust`,
|
|
100
|
-
message: `Import customizing transport?`,
|
|
109
|
+
message: `Import ${aCustTransports.length} customizing transport(s)?`,
|
|
101
110
|
default: true,
|
|
102
111
|
})).noCust;
|
|
103
112
|
}
|
|
104
113
|
}
|
|
105
114
|
if (!context.rawInput.installData.import.noCust) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
trm_commons_1.Logger.log(`CUST transport
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
context.runtime.packageTransports.cust = aCustTransports.map(o => {
|
|
116
|
+
return {
|
|
117
|
+
binaries: o
|
|
118
|
+
};
|
|
119
|
+
});
|
|
120
|
+
trm_commons_1.Logger.log(`CUST transport are ${context.runtime.packageTransports.cust.map(o => o.binaries.trkorr)}.`, true);
|
|
121
|
+
checkExistance = checkExistance.concat(context.runtime.packageTransports.cust.map(o => o.binaries.trkorr));
|
|
122
|
+
if (!context.runtime.remotePackageData.contents) {
|
|
123
|
+
var custE071 = [];
|
|
124
|
+
for (const transport of context.runtime.packageTransports.cust) {
|
|
125
|
+
custE071 = custE071.concat((0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(transport.binaries.binaries.data, 'E071')));
|
|
126
|
+
}
|
|
127
|
+
trm_commons_1.Logger.log(`CUST E071: ${JSON.stringify(custE071)}`, true);
|
|
128
|
+
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(custE071);
|
|
114
129
|
}
|
|
115
|
-
const custE071 = (0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(context.runtime.packageTransports.cust.binaries.binaries.data, 'E071'));
|
|
116
|
-
trm_commons_1.Logger.log(`CUST E071: ${JSON.stringify(custE071)}`, true);
|
|
117
|
-
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(custE071);
|
|
118
130
|
}
|
|
119
131
|
}
|
|
120
|
-
if (context.runtime.
|
|
121
|
-
|
|
132
|
+
if (!context.runtime.remotePackageData.contents) {
|
|
133
|
+
if (context.runtime.packageTransportsData.e071.find(o => o.pgmid === 'R3TR' && o.object === 'DEVC')) {
|
|
134
|
+
throw new Error(`Package has undeclared devclass.`);
|
|
135
|
+
}
|
|
122
136
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
137
|
+
if (!context.runtime.remotePackageData.contents) {
|
|
138
|
+
var devcE071 = (0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(context.runtime.packageTransports.devc.binaries.binaries.data, 'E071'));
|
|
139
|
+
trm_commons_1.Logger.log(`DEVC E071: ${JSON.stringify(devcE071)}`, true);
|
|
140
|
+
devcE071 = devcE071.filter(o => o.pgmid === 'R3TR' && o.object === 'DEVC');
|
|
141
|
+
if (devcE071.length === 0) {
|
|
142
|
+
throw new Error(`Package has no devclass.`);
|
|
143
|
+
}
|
|
144
|
+
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(devcE071);
|
|
128
145
|
}
|
|
129
|
-
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(devcE071);
|
|
130
146
|
context.runtime.installData.entries = context.runtime.packageTransportsData.e071;
|
|
131
147
|
trm_commons_1.Logger.loading(`Checking package transports...`);
|
|
132
148
|
trm_commons_1.Logger.loading(`Checking if ${checkExistance.length} transports exist before importing them`, true);
|
|
@@ -134,6 +150,7 @@ exports.checkTransports = {
|
|
|
134
150
|
const oTransport = new transport_1.Transport(trkorr);
|
|
135
151
|
const e070 = yield oTransport.getE070();
|
|
136
152
|
if (e070) {
|
|
153
|
+
var rewrite = false;
|
|
137
154
|
trm_commons_1.Logger.warning(`${trkorr} already exists in system!`, true);
|
|
138
155
|
const trmRelevant = yield oTransport.isTrmRelevant();
|
|
139
156
|
const linkedPackage = yield oTransport.getLinkedPackage();
|
|
@@ -141,47 +158,51 @@ exports.checkTransports = {
|
|
|
141
158
|
trm_commons_1.Logger.log(`${trkorr} package is ${linkedPackage.packageName}`, true);
|
|
142
159
|
if (linkedPackage.compareName(context.runtime.remotePackageData.manifest.name) && linkedPackage.compareRegistry(context.runtime.registry)) {
|
|
143
160
|
trm_commons_1.Logger.log(`${trkorr} same package (updating?)`, true);
|
|
161
|
+
context.runtime.generatedData.tmsTxtRefresh.push(oTransport);
|
|
144
162
|
}
|
|
145
163
|
else {
|
|
146
164
|
trm_commons_1.Logger.log(`${trkorr} is linked to another package, will later be migrated`, true);
|
|
147
|
-
|
|
165
|
+
rewrite = true;
|
|
148
166
|
}
|
|
149
|
-
context.runtime.generatedData.tmsTxtRefresh.push(oTransport);
|
|
150
167
|
}
|
|
151
168
|
else if (trmRelevant) {
|
|
152
|
-
trm_commons_1.Logger.log(`${trkorr} is TRM relevant but no linked package (could be DEVC, LANG etc..)
|
|
169
|
+
trm_commons_1.Logger.log(`${trkorr} is TRM relevant but no linked package (could be DEVC, LANG etc..).`, true);
|
|
153
170
|
context.runtime.generatedData.tmsTxtRefresh.push(oTransport);
|
|
154
171
|
}
|
|
155
172
|
else {
|
|
156
173
|
if (yield oTransport.isReleased()) {
|
|
157
|
-
|
|
158
|
-
trm_commons_1.Logger.warning(`If you continue, TRM will replace the content of transport ${trkorr} with the content of the transport with the same number of package "${context.runtime.remotePackageData.manifest.name}".`);
|
|
159
|
-
trm_commons_1.Logger.warning(`All of the content of the existing transport will remain untouched, however you need to manually create a new transport if you want to use it again in the future.`);
|
|
160
|
-
if (!context.rawInput.installData.import.replaceExistingTransports) {
|
|
161
|
-
var continueInstall;
|
|
162
|
-
if (!context.rawInput.contextData.noInquirer) {
|
|
163
|
-
continueInstall = (yield trm_commons_2.Inquirer.prompt({
|
|
164
|
-
name: `continue`,
|
|
165
|
-
message: `Continue install?`,
|
|
166
|
-
type: `confirm`,
|
|
167
|
-
default: true
|
|
168
|
-
})).continue;
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
continueInstall = false;
|
|
172
|
-
}
|
|
173
|
-
if (continueInstall) {
|
|
174
|
-
context.runtime.generatedData.tmsTxtRefresh.push(oTransport);
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
throw new Error(`Transport ${trkorr} already exists in target system ${systemConnector_1.SystemConnector.getDest()} and transport rewrite was denied.`);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
174
|
+
rewrite = true;
|
|
180
175
|
}
|
|
181
176
|
else {
|
|
182
177
|
throw new Error(`Transport ${trkorr} already exists in target system ${systemConnector_1.SystemConnector.getDest()} and is not released.`);
|
|
183
178
|
}
|
|
184
179
|
}
|
|
180
|
+
if (rewrite) {
|
|
181
|
+
trm_commons_1.Logger.warning(`Transport ${trkorr} already exists in target system ${systemConnector_1.SystemConnector.getDest()}`);
|
|
182
|
+
trm_commons_1.Logger.warning(`If you continue, TRM will replace the content of transport ${trkorr} with the content of the transport with the same number of package "${context.runtime.remotePackageData.manifest.name}".`);
|
|
183
|
+
trm_commons_1.Logger.warning(`All of its original content (objects or customizing) will remain untouched, however you may need to manually create a new transport for it.`);
|
|
184
|
+
trm_commons_1.Logger.warning(`Consider doing a copy now before the install will replace it.`);
|
|
185
|
+
if (!context.rawInput.installData.import.replaceExistingTransports) {
|
|
186
|
+
var continueInstall;
|
|
187
|
+
if (!context.rawInput.contextData.noInquirer) {
|
|
188
|
+
continueInstall = (yield trm_commons_2.Inquirer.prompt({
|
|
189
|
+
name: `continue`,
|
|
190
|
+
message: `Continue install?`,
|
|
191
|
+
type: `confirm`,
|
|
192
|
+
default: true
|
|
193
|
+
})).continue;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
continueInstall = false;
|
|
197
|
+
}
|
|
198
|
+
if (continueInstall) {
|
|
199
|
+
context.runtime.generatedData.tmsTxtRefresh.push(oTransport);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
throw new Error(`Transport ${trkorr} already exists in target system ${systemConnector_1.SystemConnector.getDest()} and transport rewrite was denied.`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
185
206
|
}
|
|
186
207
|
else {
|
|
187
208
|
trm_commons_1.Logger.success(`${trkorr} does not exist in system.`, true);
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.executePostActivities = void 0;
|
|
13
13
|
const trm_commons_1 = require("trm-commons");
|
|
14
14
|
const manifest_1 = require("../../manifest");
|
|
15
|
-
const
|
|
15
|
+
const transport_1 = require("../../transport");
|
|
16
16
|
exports.executePostActivities = {
|
|
17
17
|
name: 'execute-post-activities',
|
|
18
18
|
filter: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -22,13 +22,7 @@ exports.executePostActivities = {
|
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
24
|
if (context.runtime.remotePackageData.manifest.postActivities && context.runtime.remotePackageData.manifest.postActivities.length > 0) {
|
|
25
|
-
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
trm_commons_1.Logger.warning(`Coudln't execute post activities! After trm-server upgrade, run them manually!`, true);
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
25
|
+
return true;
|
|
32
26
|
}
|
|
33
27
|
else {
|
|
34
28
|
trm_commons_1.Logger.log(`Skipping post activities (none defined)`, true);
|
|
@@ -46,12 +40,20 @@ exports.executePostActivities = {
|
|
|
46
40
|
if (Array.isArray(data.parameters)) {
|
|
47
41
|
data.parameters.forEach(param => {
|
|
48
42
|
switch (param.value) {
|
|
49
|
-
case '&
|
|
43
|
+
case '&INSTALL_WB_TRANSPORT&':
|
|
44
|
+
try {
|
|
45
|
+
param.value = context.runtime.installData.transports.find(o => o.type === transport_1.TrmTransportIdentifier.TADIR).transport.trkorr;
|
|
46
|
+
}
|
|
47
|
+
catch (x) {
|
|
48
|
+
throw new Error(`Cannot find install workbench transport number`);
|
|
49
|
+
}
|
|
50
|
+
break;
|
|
51
|
+
case '&INSTALL_CUST_TRANSPORT&':
|
|
50
52
|
try {
|
|
51
|
-
param.value = context.runtime.installData.transport.trkorr;
|
|
53
|
+
param.value = context.runtime.installData.transports.find(o => o.type === transport_1.TrmTransportIdentifier.CUST).transport.trkorr;
|
|
52
54
|
}
|
|
53
55
|
catch (x) {
|
|
54
|
-
throw new Error(`Cannot find install transport number`);
|
|
56
|
+
throw new Error(`Cannot find install customizing transport number`);
|
|
55
57
|
}
|
|
56
58
|
break;
|
|
57
59
|
}
|
|
@@ -13,7 +13,6 @@ exports.generateDevclass = void 0;
|
|
|
13
13
|
const trm_commons_1 = require("trm-commons");
|
|
14
14
|
const commons_1 = require("../../commons");
|
|
15
15
|
const systemConnector_1 = require("../../systemConnector");
|
|
16
|
-
const TrmServerUpgradeService_1 = require("../../commons/TrmServerUpgradeService");
|
|
17
16
|
const stopWarning_1 = require("../stopWarning");
|
|
18
17
|
exports.generateDevclass = {
|
|
19
18
|
name: 'generate-devclass',
|
|
@@ -110,12 +109,7 @@ exports.generateDevclass = {
|
|
|
110
109
|
const installParentCl = (_b = context.rawInput.installData.installDevclass.replacements.find(o => o.originalDevclass === originalParentCl)) === null || _b === void 0 ? void 0 : _b.installDevclass;
|
|
111
110
|
if (installParentCl) {
|
|
112
111
|
if (!installRoot) {
|
|
113
|
-
|
|
114
|
-
yield systemConnector_1.SystemConnector.setPackageSuperpackage(packageReplacement.installDevclass, installParentCl);
|
|
115
|
-
}
|
|
116
|
-
catch (e) {
|
|
117
|
-
TrmServerUpgradeService_1.TrmServerUpgrade.getInstance().throwError(e);
|
|
118
|
-
}
|
|
112
|
+
yield systemConnector_1.SystemConnector.setPackageSuperpackage(packageReplacement.installDevclass, installParentCl);
|
|
119
113
|
}
|
|
120
114
|
}
|
|
121
115
|
}
|