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.
Files changed (101) hide show
  1. package/README.md +11 -5
  2. package/changelog.txt +17 -0
  3. package/dist/actions/commons/prompts/index.d.ts +1 -0
  4. package/dist/actions/commons/prompts/index.js +17 -0
  5. package/dist/actions/commons/prompts/setTransportTarget.d.ts +2 -0
  6. package/dist/actions/commons/prompts/setTransportTarget.js +63 -0
  7. package/dist/actions/install/addNamespace.js +19 -46
  8. package/dist/actions/install/{migrate.d.ts → checkObjectsLock.d.ts} +1 -1
  9. package/dist/actions/install/checkObjectsLock.js +52 -0
  10. package/dist/actions/install/checkTransports.js +76 -55
  11. package/dist/actions/install/executePostActivities.js +13 -11
  12. package/dist/actions/install/generateDevclass.js +1 -7
  13. package/dist/actions/install/generateInstallTransport.js +85 -99
  14. package/dist/actions/install/importCustTransport.js +34 -33
  15. package/dist/actions/install/importDevcTransport.js +1 -1
  16. package/dist/actions/install/importLangTransport.js +1 -1
  17. package/dist/actions/install/importTadirTransport.js +2 -18
  18. package/dist/actions/install/index.d.ts +5 -5
  19. package/dist/actions/install/index.js +7 -9
  20. package/dist/actions/install/init.js +6 -9
  21. package/dist/actions/install/readDevc.js +6 -2
  22. package/dist/actions/install/readTadir.js +4 -2
  23. package/dist/actions/install/refreshTmsTxt.js +2 -8
  24. package/dist/actions/install/{setPackageIntegrity.d.ts → updatePackageData.d.ts} +1 -1
  25. package/dist/actions/install/updatePackageData.js +35 -0
  26. package/dist/actions/publish/checkAllObjectsReleased.d.ts +3 -0
  27. package/dist/actions/publish/checkAllObjectsReleased.js +46 -0
  28. package/dist/actions/publish/generateCustTransport.js +24 -20
  29. package/dist/actions/publish/generateDevcTransport.js +0 -2
  30. package/dist/actions/publish/generateTadirTransport.js +0 -16
  31. package/dist/actions/publish/getSourceCode.js +1 -1
  32. package/dist/actions/publish/index.d.ts +7 -3
  33. package/dist/actions/publish/index.js +5 -3
  34. package/dist/actions/publish/init.js +9 -22
  35. package/dist/actions/publish/releaseTransports.js +3 -4
  36. package/dist/actions/publish/setCustomizingTransports.js +100 -44
  37. package/dist/actions/publish/setManifestValues.js +1 -1
  38. package/dist/actions/publish/setReadme.js +1 -1
  39. package/dist/actions/publish/setTransportTarget.js +2 -36
  40. package/dist/actions/publish/{finalizePublish.d.ts → updatePackageData.d.ts} +1 -1
  41. package/dist/actions/publish/{finalizePublish.js → updatePackageData.js} +10 -10
  42. package/dist/actions/stopWarning.js +5 -1
  43. package/dist/client/RESTClient.d.ts +5 -6
  44. package/dist/client/RESTClient.js +36 -51
  45. package/dist/client/RFCClient.d.ts +5 -6
  46. package/dist/client/RFCClient.js +168 -205
  47. package/dist/client/components/DDLANGUAGE.d.ts +1 -0
  48. package/dist/client/components/TARSYSTEM.d.ts +1 -0
  49. package/dist/client/components/index.d.ts +2 -0
  50. package/dist/client/components/index.js +2 -0
  51. package/dist/client/struct/E07T.d.ts +6 -0
  52. package/dist/client/struct/E07T.js +2 -0
  53. package/dist/client/struct/TADIR_KEY.d.ts +6 -0
  54. package/dist/client/struct/TADIR_KEY.js +2 -0
  55. package/dist/client/struct/ZTRM_DIRTY.d.ts +7 -0
  56. package/dist/client/struct/ZTRM_DIRTY.js +2 -0
  57. package/dist/client/struct/ZTRM_OBJ_LOCK.d.ts +7 -0
  58. package/dist/client/struct/ZTRM_OBJ_LOCK.js +2 -0
  59. package/dist/client/struct/ZTRM_PACKAGE.d.ts +14 -0
  60. package/dist/client/struct/ZTRM_PACKAGE.js +2 -0
  61. package/dist/client/struct/index.d.ts +5 -2
  62. package/dist/client/struct/index.js +5 -2
  63. package/dist/commons/index.d.ts +0 -1
  64. package/dist/commons/index.js +0 -1
  65. package/dist/dependencies/PackageDependencies.js +16 -5
  66. package/dist/lockfile/Lockfile.js +1 -1
  67. package/dist/manifest/Manifest.js +0 -31
  68. package/dist/registry/AbstractRegistry.d.ts +2 -1
  69. package/dist/registry/FileSystem.d.ts +1 -0
  70. package/dist/registry/FileSystem.js +5 -0
  71. package/dist/registry/RegistryV2.d.ts +2 -1
  72. package/dist/registry/RegistryV2.js +116 -6
  73. package/dist/systemConnector/ISystemConnector.d.ts +4 -5
  74. package/dist/systemConnector/ISystemConnectorBase.d.ts +0 -3
  75. package/dist/systemConnector/RESTSystemConnector.d.ts +5 -6
  76. package/dist/systemConnector/RESTSystemConnector.js +20 -25
  77. package/dist/systemConnector/RFCSystemConnector.d.ts +5 -6
  78. package/dist/systemConnector/RFCSystemConnector.js +20 -25
  79. package/dist/systemConnector/SystemConnector.d.ts +5 -9
  80. package/dist/systemConnector/SystemConnector.js +21 -42
  81. package/dist/systemConnector/SystemConnectorBase.d.ts +7 -9
  82. package/dist/systemConnector/SystemConnectorBase.js +41 -220
  83. package/dist/transport/Transport.d.ts +9 -4
  84. package/dist/transport/Transport.js +49 -52
  85. package/dist/trmPackage/TrmArtifact.d.ts +1 -1
  86. package/dist/trmPackage/TrmArtifact.js +9 -2
  87. package/dist/trmPackage/TrmPackage.d.ts +11 -5
  88. package/dist/trmPackage/TrmPackage.js +11 -22
  89. package/dist/validators/validateTransportTarget.d.ts +2 -2
  90. package/dist/validators/validateTransportTarget.js +1 -1
  91. package/package.json +4 -4
  92. package/dist/actions/install/migrate.js +0 -35
  93. package/dist/actions/install/setPackageIntegrity.js +0 -28
  94. package/dist/actions/install/setTrmServerUpgradeService.d.ts +0 -3
  95. package/dist/actions/install/setTrmServerUpgradeService.js +0 -32
  96. package/dist/client/struct/ZTRM_INTEGRITY.d.ts +0 -6
  97. package/dist/client/struct/ZTY_TRM_PACKAGE.d.ts +0 -14
  98. package/dist/commons/TrmServerUpgradeService.d.ts +0 -16
  99. package/dist/commons/TrmServerUpgradeService.js +0 -89
  100. /package/dist/client/{struct/ZTRM_INTEGRITY.js → components/DDLANGUAGE.js} +0 -0
  101. /package/dist/client/{struct/ZTY_TRM_PACKAGE.js → components/TARSYSTEM.js} +0 -0
@@ -42,7 +42,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
42
42
  });
43
43
  };
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.SystemConnectorBase = exports.SKIP_TRKORR_TABL = exports.SRC_TRKORR_TABL = exports.TRM_REST_PACKAGE_NAME = exports.TRM_SERVER_INTF = exports.TRM_SERVER_PACKAGE_NAME = void 0;
45
+ exports.SystemConnectorBase = exports.INSTALL_DEVCLASS_VIEW = exports.SKIP_TRKORR_TABL = exports.SRC_TRKORR_TABL = exports.TRM_REST_PACKAGE_NAME = exports.TRM_REST_INTF = exports.TRM_SERVER_INTF = exports.TRM_SERVER_PACKAGE_NAME = void 0;
46
46
  const semver_1 = require("semver");
47
47
  const trm_commons_1 = require("trm-commons");
48
48
  const manifest_1 = require("../manifest");
@@ -51,14 +51,15 @@ const trmPackage_1 = require("../trmPackage");
51
51
  const registry_1 = require("../registry");
52
52
  const node_r3trans_1 = require("node-r3trans");
53
53
  const dependencies_1 = require("../dependencies");
54
- const commons_1 = require("../commons");
55
54
  const SystemConnector_1 = require("./SystemConnector");
56
55
  const cliProgress = __importStar(require("cli-progress"));
57
56
  exports.TRM_SERVER_PACKAGE_NAME = 'trm-server';
58
- exports.TRM_SERVER_INTF = 'ZIF_TRM';
57
+ exports.TRM_SERVER_INTF = '/ATRM/IF_SERVER';
58
+ exports.TRM_REST_INTF = '/ATRM/IF_REST';
59
59
  exports.TRM_REST_PACKAGE_NAME = 'trm-rest';
60
- exports.SRC_TRKORR_TABL = 'ZTRM_SRC_TRKORR';
61
- exports.SKIP_TRKORR_TABL = 'ZTRM_SKIP_TRKORR';
60
+ exports.SRC_TRKORR_TABL = '/ATRM/SRC_TRKORR';
61
+ exports.SKIP_TRKORR_TABL = '/ATRM/SKIPTRKORR';
62
+ exports.INSTALL_DEVCLASS_VIEW = '/ATRM/V_INSTDEVC';
62
63
  class SystemConnectorBase {
63
64
  constructor() {
64
65
  this._tableKeys = {};
@@ -75,62 +76,6 @@ class SystemConnectorBase {
75
76
  }
76
77
  });
77
78
  }
78
- getWbTransports(trmPackage) {
79
- return __awaiter(this, void 0, void 0, function* () {
80
- var sqlWhere = `PGMID EQ '*' AND OBJECT EQ '${transport_1.COMMENT_OBJ}'`;
81
- if (trmPackage instanceof trmPackage_1.TrmPackage) {
82
- sqlWhere += ` AND OBJ_NAME EQ 'name=${trmPackage.packageName}'`;
83
- }
84
- else if (typeof trmPackage === 'string') {
85
- sqlWhere += ` AND OBJ_NAME EQ 'name=${trmPackage}'`;
86
- }
87
- var aTrkorr = (yield this.readTable('E071', [{ fieldName: 'TRKORR' }], sqlWhere)).map(o => o.trkorr);
88
- aTrkorr = Array.from(new Set(aTrkorr));
89
- var aSkipTrkorr = [];
90
- for (const sTrkorr of aTrkorr) {
91
- var canBeReleased = false;
92
- try {
93
- canBeReleased = (yield this.getTransportStatus(sTrkorr)) === 'D';
94
- }
95
- catch (e) {
96
- canBeReleased = false;
97
- }
98
- if (!canBeReleased) {
99
- aSkipTrkorr.push(sTrkorr);
100
- }
101
- }
102
- aTrkorr = aTrkorr.filter(trkorr => !aSkipTrkorr.includes(trkorr));
103
- var packageTransports = [];
104
- var transports = aTrkorr.map(trkorr => new transport_1.Transport(trkorr));
105
- for (let i = transports.length - 1; i >= 0; i--) {
106
- if (!(yield transports[i].getLinkedPackage())) {
107
- transports.splice(i, 1);
108
- }
109
- }
110
- if (trmPackage instanceof trmPackage_1.TrmPackage) {
111
- for (const transport of transports) {
112
- const transportPackage = yield transport.getLinkedPackage();
113
- if (transportPackage) {
114
- if (trmPackage_1.TrmPackage.compare(transportPackage, trmPackage)) {
115
- packageTransports.push(transport);
116
- }
117
- }
118
- }
119
- return [yield transport_1.Transport.getLatest(packageTransports)];
120
- }
121
- else if (typeof trmPackage === 'string') {
122
- for (const transport of transports) {
123
- if ((yield transport.getTrmPackageName()) === trmPackage) {
124
- packageTransports.push(transport);
125
- }
126
- }
127
- return packageTransports;
128
- }
129
- else {
130
- return transports;
131
- }
132
- });
133
- }
134
79
  getSourceTrkorr(refresh) {
135
80
  return __awaiter(this, void 0, void 0, function* () {
136
81
  if (!this._sourceTrkorr || refresh) {
@@ -179,7 +124,7 @@ class SystemConnectorBase {
179
124
  return __awaiter(this, void 0, void 0, function* () {
180
125
  var oPackage;
181
126
  const oPublicRegistry = registry_1.RegistryProvider.getRegistry();
182
- const intf = yield this.getObject('R3TR', 'INTF', 'ZIF_TRM');
127
+ const intf = yield this.getObject('R3TR', 'INTF', exports.TRM_SERVER_INTF);
183
128
  if (intf) {
184
129
  try {
185
130
  const trmServerVersion = yield this.getTrmServerVersion();
@@ -203,7 +148,7 @@ class SystemConnectorBase {
203
148
  return __awaiter(this, void 0, void 0, function* () {
204
149
  var oPackage;
205
150
  const oPublicRegistry = registry_1.RegistryProvider.getRegistry();
206
- const intf = yield this.getObject('R3TR', 'INTF', 'ZIF_TRM_REST');
151
+ const intf = yield this.getObject('R3TR', 'INTF', exports.TRM_REST_INTF);
207
152
  if (intf) {
208
153
  try {
209
154
  const trmRestVersion = yield this.getTrmRestVersion();
@@ -223,53 +168,29 @@ class SystemConnectorBase {
223
168
  return oPackage;
224
169
  });
225
170
  }
226
- getInstalledPackages() {
227
- return __awaiter(this, arguments, void 0, function* (includeSoruces = true, refresh, includeLocals) {
171
+ getInstalledPackages(refresh, includeLocals) {
172
+ return __awaiter(this, void 0, void 0, function* () {
228
173
  var trmPackages = [];
229
174
  var fromBackend = false;
230
175
  if (!refresh) {
231
- if (includeSoruces && this._installedPackagesI) {
232
- trm_commons_1.Logger.log(`Cached version of installed packages with sources`, true);
233
- return this._installedPackagesI;
234
- }
235
- else if (!includeSoruces && this._installedPackages) {
236
- trm_commons_1.Logger.log(`Cached version of installed packages without sources`, true);
237
- return this._installedPackages;
238
- }
176
+ trm_commons_1.Logger.log(`Reading cached version of installed packages`, true);
177
+ return this._installedPackages;
239
178
  }
240
- trm_commons_1.Logger.log(`Include sources: ${includeSoruces}`, true);
241
- const aSourceTrkorr = includeSoruces ? (yield this.getSourceTrkorr(refresh)) : [];
242
179
  const serverExists = yield this.readTable('TADIR', [{ fieldName: 'OBJ_NAME' }], `PGMID EQ 'R3TR' AND OBJECT EQ 'INTF' AND OBJ_NAME EQ '${exports.TRM_SERVER_INTF}'`);
243
180
  if (serverExists.length === 1) {
244
- trm_commons_1.Logger.log(`INTF ${exports.TRM_SERVER_INTF} exists`, true);
181
+ trm_commons_1.Logger.log(`INTF ${exports.TRM_SERVER_INTF} exists, reading packages from backend API`, true);
245
182
  try {
246
183
  var installedPackagesBackend = yield this.getInstalledPackagesBackend();
247
- if (!includeSoruces) {
248
- installedPackagesBackend = installedPackagesBackend.filter(o => !aSourceTrkorr.includes(o.transport.trkorr));
249
- }
184
+ installedPackagesBackend = installedPackagesBackend.sort((a, b) => Number(`${b.as4Date}${b.as4Time}`) - Number(`${a.as4Date}${a.as4Time}`));
250
185
  if (!includeLocals) {
251
- installedPackagesBackend = installedPackagesBackend.filter(o => o.registry !== registry_1.LOCAL_RESERVED_KEYWORD);
186
+ installedPackagesBackend = installedPackagesBackend.filter(o => o.packageRegistry !== registry_1.LOCAL_RESERVED_KEYWORD);
252
187
  }
253
188
  for (const o of installedPackagesBackend) {
254
- const transport = o.transport.trkorr ? new transport_1.Transport(o.transport.trkorr, null, o.transport.migration) : null;
255
189
  const manifest = manifest_1.Manifest.fromAbapXml(o.manifest);
256
- if (transport) {
257
- manifest.setLinkedTransport(transport);
190
+ if (o.trkorr) {
191
+ manifest.setLinkedTransport(new transport_1.Transport(o.trkorr, null));
258
192
  }
259
- const trmPackage = new trmPackage_1.TrmPackage(o.name, registry_1.RegistryProvider.getRegistry(o.registry), manifest);
260
- if (transport) {
261
- try {
262
- trmPackage.setDevclass(yield transport.getDevclass(o.tdevc));
263
- }
264
- catch (_a) { }
265
- }
266
- else {
267
- try {
268
- trmPackage.setDevclass((0, commons_1.getPackageHierarchy)(o.tdevc).devclass);
269
- }
270
- catch (_b) { }
271
- }
272
- trmPackage.setWbTransport(o.trkorr ? new transport_1.Transport(o.trkorr) : null);
193
+ const trmPackage = new trmPackage_1.TrmPackage(o.packageName, registry_1.RegistryProvider.getRegistry(o.packageRegistry), manifest).setDevclass(o.devclass).setDirtyEntries(o.dirty);
273
194
  trmPackages.push(trmPackage);
274
195
  }
275
196
  fromBackend = true;
@@ -280,63 +201,33 @@ class SystemConnectorBase {
280
201
  }
281
202
  }
282
203
  if (fromBackend) {
283
- trm_commons_1.Logger.log(`Packages were fetched from backend`, true);
204
+ trm_commons_1.Logger.log(`Packages were fetched from backend API`, true);
284
205
  return trmPackages;
285
206
  }
286
207
  else {
287
- trm_commons_1.Logger.log(`Packages weren't fetched from backend, continue`, true);
208
+ trm_commons_1.Logger.log(`Packages weren't fetched from backend API, continue`, true);
288
209
  }
289
210
  var packageTransports = [];
290
211
  trm_commons_1.Logger.log(`Ready to read installed packages`, true);
291
- trm_commons_1.Logger.log(`Source trkorr ${JSON.stringify(aSourceTrkorr)}`, true);
292
- var aSkipTrkorr = yield this.getIgnoredTrkorr();
293
- trm_commons_1.Logger.log(`Ignored trkorr ${JSON.stringify(aSkipTrkorr)}`, true);
294
- var aMigrationTrkorr;
295
- var aActualTrkorr = (yield this.readTable('E071', [{ fieldName: 'TRKORR' }], `PGMID EQ '*' AND OBJECT EQ '${transport_1.COMMENT_OBJ}'`)).map(o => o.trkorr);
296
- aActualTrkorr = Array.from(new Set(aActualTrkorr));
297
- try {
298
- aMigrationTrkorr = (yield this.readTable('ZTRM_E070', [{ fieldName: 'TRM_TROKRR' }])).map(o => o.trmTrokrr);
299
- }
300
- catch (e) {
301
- aMigrationTrkorr = [];
302
- }
303
- var aTrkorr = aActualTrkorr.map(s => {
304
- return {
305
- trkorr: s,
306
- migration: false
307
- };
308
- }).concat(aMigrationTrkorr.map(s => {
309
- return {
310
- trkorr: s,
311
- migration: true
312
- };
313
- }));
314
- for (const sTrkorr of aTrkorr) {
315
- if (!aSourceTrkorr.includes(sTrkorr.trkorr)) {
316
- trm_commons_1.Logger.log(`${sTrkorr.trkorr} not from source`, true);
317
- var aTrkorrStatusCheck;
318
- try {
319
- trm_commons_1.Logger.log(`Checking ${sTrkorr.trkorr} TMS import result`, true);
320
- if (!sTrkorr.migration) {
321
- aTrkorrStatusCheck = (yield this.readTable('TMSBUFFER', [{ fieldName: 'TRKORR' }, { fieldName: 'MAXRC' }], `SYSNAM EQ '${this.getSysname()}' AND TRKORR EQ '${sTrkorr.trkorr}' AND IMPSING NE 'X'`));
322
- }
323
- else {
324
- aTrkorrStatusCheck = (yield this.readTable('ZTRM_TMSBUFFER', [{ fieldName: 'TRKORR' }, { fieldName: 'MAXRC' }], `SYSNAM EQ '${this.getSysname()}' AND TRM_TROKRR EQ '${sTrkorr.trkorr}' AND IMPSING NE 'X'`));
325
- }
326
- aTrkorrStatusCheck = aTrkorrStatusCheck.filter(o => parseInt(o.maxrc) >= 0);
327
- }
328
- catch (e) {
329
- aTrkorrStatusCheck = [];
330
- }
331
- if (aTrkorrStatusCheck.length === 0) {
332
- trm_commons_1.Logger.log(`Adding ${sTrkorr.trkorr} to skipped filter`, true);
333
- aSkipTrkorr.push(sTrkorr.trkorr);
334
- }
212
+ var allTransports = (yield this.readTable('E071', [{ fieldName: 'TRKORR' }], `PGMID EQ '*' AND OBJECT EQ '${transport_1.COMMENT_OBJ}'`)).map(o => o.trkorr);
213
+ allTransports = Array.from(new Set(allTransports));
214
+ for (const trkorr of allTransports) {
215
+ var aTrkorrStatusCheck;
216
+ try {
217
+ trm_commons_1.Logger.log(`Checking ${trkorr} TMS import result`, true);
218
+ aTrkorrStatusCheck = (yield this.readTable('TMSBUFFER', [{ fieldName: 'TRKORR' }, { fieldName: 'MAXRC' }], `SYSNAM EQ '${this.getSysname()}' AND TRKORR EQ '${trkorr}' AND IMPSING NE 'X'`));
219
+ aTrkorrStatusCheck = aTrkorrStatusCheck.filter(o => parseInt(o.maxrc) >= 0);
220
+ }
221
+ catch (e) {
222
+ aTrkorrStatusCheck = [];
223
+ }
224
+ if (aTrkorrStatusCheck.length === 0) {
225
+ trm_commons_1.Logger.log(`${trkorr} is ignored: no status!`, true);
226
+ allTransports = allTransports.filter(s => s !== trkorr);
335
227
  }
336
228
  }
337
- aTrkorr = aTrkorr.filter(trkorr => !aSkipTrkorr.includes(trkorr.trkorr));
338
- trm_commons_1.Logger.log(`Final transports ${JSON.stringify(aTrkorr)}`, true);
339
- const transports = aTrkorr.map(trkorr => new transport_1.Transport(trkorr.trkorr, null, trkorr.migration));
229
+ trm_commons_1.Logger.log(`All transports to check: ${JSON.stringify(allTransports)}`, true);
230
+ const transports = allTransports.map(trkorr => new transport_1.Transport(trkorr, null));
340
231
  for (const transport of transports) {
341
232
  const trmPackage = yield transport.getLinkedPackage();
342
233
  if (trmPackage) {
@@ -370,68 +261,7 @@ class SystemConnectorBase {
370
261
  }
371
262
  }
372
263
  trm_commons_1.Logger.log(`Packages found: ${(0, trm_commons_1.inspect)(trmPackages, { breakLength: Infinity, compact: true })}`, true);
373
- trm_commons_1.Logger.log(`Excluding trm-server (adding it manually)`, true);
374
- try {
375
- const trmServerPackage = trmPackages.find(o => o.packageName === exports.TRM_SERVER_PACKAGE_NAME && o.compareRegistry(registry_1.RegistryProvider.getRegistry()));
376
- var generatedTrmServerPackage = yield this.getTrmServerPackage();
377
- if (trmServerPackage && trmServerPackage.manifest) {
378
- trm_commons_1.Logger.log(`trm-server was found (it was imported via transport)`, true);
379
- if (trmServerPackage.manifest.get().version === generatedTrmServerPackage.manifest.get().version) {
380
- trm_commons_1.Logger.log(`trm-server imported is the one currenlty in use`, true);
381
- generatedTrmServerPackage.manifest = trmServerPackage.manifest;
382
- }
383
- }
384
- else {
385
- trm_commons_1.Logger.log(`trm-server from abapgit is the one currenlty in use, setting manifest value from registry`, true);
386
- try {
387
- const registryPackage = yield registry_1.RegistryProvider.getRegistry().getPackage(exports.TRM_SERVER_PACKAGE_NAME, generatedTrmServerPackage.manifest.get().version);
388
- generatedTrmServerPackage.manifest = new manifest_1.Manifest(registryPackage.manifest);
389
- }
390
- catch (e) {
391
- trm_commons_1.Logger.error(`Error fetching trm-server manifest in registry`, true);
392
- trm_commons_1.Logger.error(e.toString(), true);
393
- }
394
- }
395
- trmPackages = trmPackages.filter(o => !(o.packageName === exports.TRM_SERVER_PACKAGE_NAME && o.compareRegistry(registry_1.RegistryProvider.getRegistry())));
396
- trmPackages.push(generatedTrmServerPackage);
397
- }
398
- catch (e) {
399
- trm_commons_1.Logger.warning(`${exports.TRM_SERVER_PACKAGE_NAME} is not installed`, true);
400
- }
401
- trm_commons_1.Logger.log(`Excluding trm-rest (adding it manually)`, true);
402
- try {
403
- const trmRestPackage = trmPackages.find(o => o.packageName === exports.TRM_REST_PACKAGE_NAME && o.compareRegistry(registry_1.RegistryProvider.getRegistry()));
404
- var generatedTrmRestPackage = yield this.getTrmRestPackage();
405
- if (trmRestPackage && trmRestPackage.manifest) {
406
- trm_commons_1.Logger.log(`trm-rest was found (it was imported via transport)`, true);
407
- if (trmRestPackage.manifest.get().version === generatedTrmRestPackage.manifest.get().version) {
408
- trm_commons_1.Logger.log(`trm-rest imported is the one currenlty in use`, true);
409
- generatedTrmRestPackage.manifest = trmRestPackage.manifest;
410
- }
411
- }
412
- else {
413
- trm_commons_1.Logger.log(`trm-rest from abapgit is the one currenlty in use, setting manifest value from registry`, true);
414
- try {
415
- const registryPackage = yield registry_1.RegistryProvider.getRegistry().getPackage(exports.TRM_REST_PACKAGE_NAME, generatedTrmRestPackage.manifest.get().version);
416
- generatedTrmRestPackage.manifest = new manifest_1.Manifest(registryPackage.manifest);
417
- }
418
- catch (e) {
419
- trm_commons_1.Logger.error(`Error fetching trm-rest manifest in registry`, true);
420
- trm_commons_1.Logger.error(e.toString(), true);
421
- }
422
- }
423
- trmPackages = trmPackages.filter(o => !(o.packageName === exports.TRM_REST_PACKAGE_NAME && o.compareRegistry(registry_1.RegistryProvider.getRegistry())));
424
- trmPackages.push(generatedTrmRestPackage);
425
- }
426
- catch (e) {
427
- trm_commons_1.Logger.warning(`${exports.TRM_SERVER_PACKAGE_NAME} is not installed`, true);
428
- }
429
- if (includeSoruces) {
430
- this._installedPackagesI = trmPackages;
431
- }
432
- else {
433
- this._installedPackages = trmPackages;
434
- }
264
+ this._installedPackages = trmPackages;
435
265
  return trmPackages;
436
266
  });
437
267
  }
@@ -443,16 +273,6 @@ class SystemConnectorBase {
443
273
  }
444
274
  });
445
275
  }
446
- getTransportTargets() {
447
- return __awaiter(this, void 0, void 0, function* () {
448
- try {
449
- return yield this.readTable('TMSCSYS', [{ fieldName: 'SYSNAM' }, { fieldName: 'SYSTXT' }, { fieldName: 'SYSTYP' }]);
450
- }
451
- catch (e) {
452
- return yield this.readTable('TMSCSYS', [{ fieldName: 'SYSNAM' }, { fieldName: 'SYSTXT' }]);
453
- }
454
- });
455
- }
456
276
  getSubpackages(devclass) {
457
277
  return __awaiter(this, void 0, void 0, function* () {
458
278
  const queryFields = [{ fieldName: 'DEVCLASS' }, { fieldName: 'PARENTCL' }];
@@ -494,7 +314,7 @@ class SystemConnectorBase {
494
314
  getInstallPackages(packageName, registry) {
495
315
  return __awaiter(this, void 0, void 0, function* () {
496
316
  const registryEndpoint = registry.getRegistryType() === registry_1.RegistryType.PUBLIC ? registry_1.PUBLIC_RESERVED_KEYWORD : registry.endpoint;
497
- return yield this.readTable('ZTRMVINSTALLDEVC', [{ fieldName: 'ORIGINAL_DEVCLASS' }, { fieldName: 'INSTALL_DEVCLASS' }], `PACKAGE_NAME EQ '${packageName}' AND PACKAGE_REGISTRY EQ '${registryEndpoint}'`);
317
+ return yield this.readTable(exports.INSTALL_DEVCLASS_VIEW, [{ fieldName: 'ORIGINAL_DEVCLASS' }, { fieldName: 'INSTALL_DEVCLASS' }], `PACKAGE_NAME EQ '${packageName}' AND PACKAGE_REGISTRY EQ '${registryEndpoint}'`);
498
318
  });
499
319
  }
500
320
  setPackageSuperpackage(devclass, superpackage) {
@@ -603,6 +423,7 @@ class SystemConnectorBase {
603
423
  return __awaiter(this, void 0, void 0, function* () {
604
424
  var packageDependencies;
605
425
  if (log) {
426
+ trm_commons_1.Logger.forceStop();
606
427
  const logProgress = new cliProgress.SingleBar({
607
428
  clearOnComplete: true,
608
429
  hideCursor: true,
@@ -800,7 +621,7 @@ class SystemConnectorBase {
800
621
  }
801
622
  catch (e) {
802
623
  trm_commons_1.Logger.error(`Cannot read/parse system timezone!`, true);
803
- trm_commons_1.Logger.error(e.toString());
624
+ trm_commons_1.Logger.error(e.toString(), true);
804
625
  this._timezone = 'UTC';
805
626
  }
806
627
  }
@@ -6,27 +6,29 @@ import { TransportContent } from "./TransportContent";
6
6
  import { Documentation } from "./Documentation";
7
7
  import { TrmTransportIdentifier } from "./TrmTransportIdentifier";
8
8
  import { TrmPackage } from "../trmPackage";
9
- import { TROBJTYPE, E070, E071, TRKORR, TR_TARGET, DEVCLASS, TROBJ_NAME, AS4TEXT, PGMID, SOBJ_NAME, TMSSYSNAM, TDEVC, TR_AS4USER } from "../client";
9
+ import { TROBJTYPE, E070, E071, E07T, TRKORR, TR_TARGET, DEVCLASS, TROBJ_NAME, AS4TEXT, PGMID, SOBJ_NAME, TMSSYSNAM, TDEVC, TR_AS4USER } from "../client";
10
10
  export declare const COMMENT_OBJ: TROBJTYPE;
11
11
  export declare class Transport {
12
12
  trkorr: TRKORR;
13
13
  private _trTarget?;
14
- private _migration?;
15
14
  private _fileNames;
16
15
  private _e070;
17
16
  private _e071;
17
+ private _e07t;
18
18
  private _docs;
19
19
  private _trmPackageName;
20
20
  private _trmPackageVersion;
21
21
  private _linkedTrmPackage;
22
22
  private _rootDevclass;
23
23
  trmIdentifier?: TrmTransportIdentifier;
24
- constructor(trkorr: TRKORR, _trTarget?: TR_TARGET, _migration?: boolean);
24
+ constructor(trkorr: TRKORR, _trTarget?: TR_TARGET);
25
25
  setTrmIdentifier(identifier?: TrmTransportIdentifier): Transport;
26
26
  isImported(): Promise<boolean>;
27
27
  isIgnored(): Promise<boolean>;
28
28
  getE070(): Promise<E070>;
29
29
  getE071(): Promise<E071[]>;
30
+ getE07T(): Promise<E07T[]>;
31
+ getDescription(): Promise<AS4TEXT>;
30
32
  getTasks(): Promise<Transport[]>;
31
33
  getDevclass(aTdevc?: TDEVC[]): Promise<DEVCLASS>;
32
34
  getDate(): Promise<Date>;
@@ -62,6 +64,10 @@ export declare class Transport {
62
64
  target: TR_TARGET;
63
65
  trmIdentifier?: TrmTransportIdentifier;
64
66
  }): Promise<Transport>;
67
+ static createCust(data: {
68
+ text: AS4TEXT;
69
+ target: TR_TARGET;
70
+ }): Promise<Transport>;
65
71
  static createLang(data: {
66
72
  text: AS4TEXT;
67
73
  target: TR_TARGET;
@@ -87,7 +93,6 @@ export declare class Transport {
87
93
  canBeDeleted(): Promise<boolean>;
88
94
  isReleased(): Promise<boolean>;
89
95
  addObjectsFromTransport(from: TRKORR): Promise<void>;
90
- migrate(rollback?: boolean): Promise<Transport | void>;
91
96
  deleteFromTms(system: TMSSYSNAM): Promise<void>;
92
97
  refreshTmsTxt(): Promise<void>;
93
98
  changeOwner(newOwner: TR_AS4USER): Promise<void>;
@@ -59,13 +59,10 @@ const systemConnector_1 = require("../systemConnector");
59
59
  const chalk_1 = __importDefault(require("chalk"));
60
60
  exports.COMMENT_OBJ = 'ZTRM';
61
61
  class Transport {
62
- constructor(trkorr, _trTarget, _migration) {
62
+ constructor(trkorr, _trTarget) {
63
63
  this.trkorr = trkorr;
64
64
  this._trTarget = _trTarget;
65
- this._migration = _migration;
66
- if (!this._migration) {
67
- this._fileNames = Transport._getFileNames(trkorr, systemConnector_1.SystemConnector.getDest());
68
- }
65
+ this._fileNames = Transport._getFileNames(trkorr, systemConnector_1.SystemConnector.getDest());
69
66
  }
70
67
  setTrmIdentifier(identifier) {
71
68
  this.trmIdentifier = identifier;
@@ -94,12 +91,7 @@ class Transport {
94
91
  { fieldName: 'AS4TIME' }
95
92
  ];
96
93
  var e070;
97
- if (!this._migration) {
98
- e070 = yield systemConnector_1.SystemConnector.readTable('E070', fields, `TRKORR EQ '${this.trkorr}'`);
99
- }
100
- else {
101
- e070 = yield systemConnector_1.SystemConnector.readTable('ZTRM_E070', fields, `TRM_TRKORR EQ '${this.trkorr}'`);
102
- }
94
+ e070 = yield systemConnector_1.SystemConnector.readTable('E070', fields, `TRKORR EQ '${this.trkorr}'`);
103
95
  if (e070.length === 1) {
104
96
  this._e070 = e070[0];
105
97
  }
@@ -115,16 +107,39 @@ class Transport {
115
107
  { fieldName: 'OBJECT' },
116
108
  { fieldName: 'OBJ_NAME' }
117
109
  ];
118
- if (!this._migration) {
119
- this._e071 = yield systemConnector_1.SystemConnector.readTable('E071', fields, `TRKORR EQ '${this.trkorr}'`);
120
- }
121
- else {
122
- this._e071 = yield systemConnector_1.SystemConnector.readTable('ZTRM_E071', fields, `TRM_TROKRR EQ '${this.trkorr}'`);
123
- }
110
+ this._e071 = yield systemConnector_1.SystemConnector.readTable('E071', fields, `TRKORR EQ '${this.trkorr}'`);
124
111
  }
125
112
  return this._e071;
126
113
  });
127
114
  }
115
+ getE07T() {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ if (!this._e07t) {
118
+ const fields = [
119
+ { fieldName: 'TRKORR' },
120
+ { fieldName: 'LANGU' },
121
+ { fieldName: 'AS4TEXT' }
122
+ ];
123
+ this._e07t = yield systemConnector_1.SystemConnector.readTable('E07T', fields, `TRKORR EQ '${this.trkorr}'`);
124
+ }
125
+ return this._e07t;
126
+ });
127
+ }
128
+ getDescription() {
129
+ return __awaiter(this, void 0, void 0, function* () {
130
+ const e07t = yield this.getE07T();
131
+ if (e07t.length > 0) {
132
+ var description = e07t.find(o => o.langu === systemConnector_1.SystemConnector.getLogonLanguage(true));
133
+ if (!description) {
134
+ description = e07t[0];
135
+ }
136
+ return description.as4Text;
137
+ }
138
+ else {
139
+ return '';
140
+ }
141
+ });
142
+ }
128
143
  getTasks() {
129
144
  return __awaiter(this, void 0, void 0, function* () {
130
145
  var tasks = [];
@@ -277,12 +292,7 @@ class Transport {
277
292
  trm_commons_1.Logger.loading(`Reading ${this.trkorr} documentation...`, true);
278
293
  const fields = [{ fieldName: 'LANGU' }, { fieldName: 'DOKVERSION' }, { fieldName: 'LINE' }, { fieldName: 'DOKTEXT' }];
279
294
  var doktl;
280
- if (!this._migration) {
281
- doktl = yield systemConnector_1.SystemConnector.readTable('DOKTL', fields, `ID EQ 'TA' AND OBJECT EQ '${this.trkorr}'`);
282
- }
283
- else {
284
- doktl = yield systemConnector_1.SystemConnector.readTable('ZTRM_DOKTL', fields, `TRM_TROKRR EQ '${this.trkorr}'`);
285
- }
295
+ doktl = yield systemConnector_1.SystemConnector.readTable('DOKTL', fields, `ID EQ 'TA' AND OBJECT EQ '${this.trkorr}'`);
286
296
  this._docs = Transport.doktlToDoc(doktl);
287
297
  this._docs = this._docs.sort((a, b) => b.version - a.version);
288
298
  trm_commons_1.Logger.success(`Found ${this.trkorr} ${this._docs.length} documentation.`, true);
@@ -398,7 +408,7 @@ class Transport {
398
408
  }
399
409
  release(lock, skipLog, tmpFolder) {
400
410
  return __awaiter(this, void 0, void 0, function* () {
401
- trm_commons_1.Logger.loading('Releasing transport...', skipLog);
411
+ trm_commons_1.Logger.loading(`${Transport.getTransportIcon()} Releasing transport...`, skipLog);
402
412
  yield systemConnector_1.SystemConnector.releaseTrkorr(this.trkorr, lock);
403
413
  yield systemConnector_1.SystemConnector.dequeueTransport(this.trkorr);
404
414
  if (tmpFolder) {
@@ -417,9 +427,7 @@ class Transport {
417
427
  const systemR3transUnicode = yield systemConnector_1.SystemConnector.getR3transUnicode();
418
428
  trm_commons_1.Logger.log(`System R3trans: ${systemR3transVersion}`, true);
419
429
  trm_commons_1.Logger.log(`System R3trans unicode: ${systemR3transUnicode}`, true);
420
- if (trm_commons_1.Logger.logger instanceof trm_commons_1.CliLogger || trm_commons_1.Logger.logger instanceof trm_commons_1.CliLogFileLogger) {
421
- trm_commons_1.Logger.logger.forceStop();
422
- }
430
+ trm_commons_1.Logger.forceStop();
423
431
  const multibar = new cliProgress.MultiBar({
424
432
  clearOnComplete: true,
425
433
  hideCursor: true,
@@ -545,11 +553,11 @@ class Transport {
545
553
  error = new Error(`Error occurred during transport ${this.trkorr} release.`);
546
554
  }
547
555
  if (whileResult === "SUCCESS") {
548
- trm_commons_1.Logger.success(`${Transport.getTransportIcon()} ${this.trkorr} released with success.`);
556
+ trm_commons_1.Logger.success(`${Transport.getTransportIcon()} ${this.trkorr} released with success.`);
549
557
  rc = 0;
550
558
  }
551
559
  if (whileResult === "WARNING") {
552
- trm_commons_1.Logger.warning(`${Transport.getTransportIcon()} ${this.trkorr} released with warning.`);
560
+ trm_commons_1.Logger.warning(`${Transport.getTransportIcon()} ${this.trkorr} released with warning.`);
553
561
  rc = 4;
554
562
  }
555
563
  }
@@ -567,6 +575,7 @@ class Transport {
567
575
  var inQueue = false;
568
576
  var rc = 12;
569
577
  var message;
578
+ var lastCheck;
570
579
  if (this._trTarget) {
571
580
  var inQueueAttempts = 0;
572
581
  trm_commons_1.Logger.loading(`Checking transport status...`, skipLog);
@@ -574,11 +583,11 @@ class Transport {
574
583
  inQueueAttempts++;
575
584
  trm_commons_1.Logger.log(`Attempt ${inQueueAttempts}, reading in 3 seconds...`, true);
576
585
  yield (0, promises_1.setTimeout)(3000);
586
+ lastCheck = new Date();
577
587
  if (!checkImpSing) {
578
- trm_commons_1.Logger.loading(`${Transport.getTransportIcon()} Releasing...`, skipLog);
588
+ trm_commons_1.Logger.loading(`${Transport.getTransportIcon()} Releasing, last check ${lastCheck.toISOString().split("T")[0]} ${lastCheck.toTimeString().split(" ")[0]}...`, skipLog);
579
589
  }
580
590
  else {
581
- const lastCheck = new Date();
582
591
  try {
583
592
  const tpstat = yield systemConnector_1.SystemConnector.getTransportImportStatus(this.trkorr, this._trTarget);
584
593
  if (tpstat.message) {
@@ -617,7 +626,7 @@ class Transport {
617
626
  }
618
627
  }
619
628
  if (!checkImpSing) {
620
- trm_commons_1.Logger.success(`${Transport.getTransportIcon()} ${this.trkorr} released.`, skipLog);
629
+ trm_commons_1.Logger.success(`${Transport.getTransportIcon()} ${this.trkorr} released.`, skipLog);
621
630
  rc = -1;
622
631
  }
623
632
  else {
@@ -699,6 +708,14 @@ class Transport {
699
708
  return new Transport(trkorr, data.target).setTrmIdentifier(data.trmIdentifier);
700
709
  });
701
710
  }
711
+ static createCust(data) {
712
+ return __awaiter(this, void 0, void 0, function* () {
713
+ trm_commons_1.Logger.loading(`Creating transport request (CUST)...`, true);
714
+ const trkorr = yield systemConnector_1.SystemConnector.createCustTransport(data.text, data.target);
715
+ trm_commons_1.Logger.success(`Transport request ${trkorr} generated successfully.`, true);
716
+ return new Transport(trkorr, data.target).setTrmIdentifier(TrmTransportIdentifier_1.TrmTransportIdentifier.CUST);
717
+ });
718
+ }
702
719
  static createLang(data) {
703
720
  return __awaiter(this, void 0, void 0, function* () {
704
721
  trm_commons_1.Logger.loading(`Creating transport request (LANG)...`, true);
@@ -846,26 +863,6 @@ class Transport {
846
863
  yield systemConnector_1.SystemConnector.trCopy(from, this.trkorr, false);
847
864
  });
848
865
  }
849
- migrate(rollback) {
850
- return __awaiter(this, void 0, void 0, function* () {
851
- if (!rollback) {
852
- try {
853
- const trmTrkorr = yield systemConnector_1.SystemConnector.migrateTransport(this.trkorr);
854
- return new Transport(trmTrkorr, null, true);
855
- }
856
- catch (e) {
857
- if (e.exceptionType === 'SNRO_INTERVAL_NOT_FOUND') {
858
- throw new Error(`trm-server has no migration interval defined: re-install or execute post activities to generate number range interval.`);
859
- }
860
- else {
861
- throw e;
862
- }
863
- }
864
- }
865
- else {
866
- }
867
- });
868
- }
869
866
  deleteFromTms(system) {
870
867
  return __awaiter(this, void 0, void 0, function* () {
871
868
  yield systemConnector_1.SystemConnector.deleteTmsTransport(this.trkorr, system);
@@ -16,7 +16,7 @@ export declare class TrmArtifact {
16
16
  getManifest(): Manifest | null;
17
17
  replaceManifest(oManifest: Manifest): void;
18
18
  getDistFolder(): string | null;
19
- getTransportBinaries(r3transOption?: R3transOptions): Promise<TransportBinary[]>;
19
+ getTransportBinaries(r3transOption?: R3transOptions, noCheck?: boolean): Promise<TransportBinary[]>;
20
20
  getContent(r3transConfig?: R3transOptions): Promise<any>;
21
21
  static create(data: {
22
22
  transports: Transport[];
@@ -94,7 +94,7 @@ class TrmArtifact {
94
94
  }
95
95
  return this._distFolder;
96
96
  }
97
- getTransportBinaries(r3transOption) {
97
+ getTransportBinaries(r3transOption, noCheck) {
98
98
  return __awaiter(this, void 0, void 0, function* () {
99
99
  var _a, _b;
100
100
  if (!this._binaries) {
@@ -114,7 +114,14 @@ class TrmArtifact {
114
114
  const oHeader = (_a = aPackedTransportEntries.find(o => o.comment === 'header')) === null || _a === void 0 ? void 0 : _a.getData();
115
115
  const oData = (_b = aPackedTransportEntries.find(o => o.comment === 'data')) === null || _b === void 0 ? void 0 : _b.getData();
116
116
  if (oHeader && oData) {
117
- const trkorr = yield r3trans.getTransportTrkorr(oData);
117
+ var trkorr;
118
+ if (noCheck) {
119
+ const filename = aPackedTransportEntries.find(o => o.comment === 'header').entryName;
120
+ trkorr = (filename.slice(-3) + filename.slice(0, -3)).slice(0, -1);
121
+ }
122
+ else {
123
+ trkorr = yield r3trans.getTransportTrkorr(oData);
124
+ }
118
125
  aResult.push({
119
126
  trkorr,
120
127
  type: type,