trm-core 6.4.1 → 6.5.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 (126) hide show
  1. package/changelog.txt +6 -0
  2. package/dist/actions/checkPackageDependencies/analyze.js +7 -7
  3. package/dist/actions/checkPackageDependencies/index.js +3 -3
  4. package/dist/actions/checkPackageDependencies/init.js +2 -2
  5. package/dist/actions/checkSapEntries/analyze.js +8 -8
  6. package/dist/actions/checkSapEntries/index.js +3 -3
  7. package/dist/actions/checkSapEntries/init.js +2 -2
  8. package/dist/actions/commons/setSystemPackages.js +3 -3
  9. package/dist/actions/findDependencies/index.js +3 -3
  10. package/dist/actions/findDependencies/init.js +4 -4
  11. package/dist/actions/findDependencies/parseSenvi.js +10 -10
  12. package/dist/actions/findDependencies/print.js +4 -4
  13. package/dist/actions/findDependencies/readRepositoryEnvironment.js +6 -6
  14. package/dist/actions/findDependencies/setObjects.js +6 -7
  15. package/dist/actions/findDependencies/setTrmDependencies.js +16 -16
  16. package/dist/actions/install/addNamespace.js +10 -11
  17. package/dist/actions/install/checkAlreadyInstalled.js +6 -6
  18. package/dist/actions/install/checkDependencies.js +9 -9
  19. package/dist/actions/install/checkIntegrity.js +6 -6
  20. package/dist/actions/install/checkObjectTypes.js +6 -6
  21. package/dist/actions/install/checkSapEntries.js +8 -8
  22. package/dist/actions/install/checkTransports.js +32 -32
  23. package/dist/actions/install/executePostActivities.js +15 -8
  24. package/dist/actions/install/generateDevclass.js +17 -11
  25. package/dist/actions/install/generateInstallTransport.js +26 -24
  26. package/dist/actions/install/importCustTransport.js +10 -10
  27. package/dist/actions/install/importDevcTransport.js +11 -11
  28. package/dist/actions/install/importLangTransport.js +10 -10
  29. package/dist/actions/install/importTadirTransport.js +22 -17
  30. package/dist/actions/install/index.js +5 -3
  31. package/dist/actions/install/init.js +11 -11
  32. package/dist/actions/install/installDependencies.js +16 -17
  33. package/dist/actions/install/migrate.js +5 -5
  34. package/dist/actions/install/readDevc.js +5 -5
  35. package/dist/actions/install/readTadir.js +9 -9
  36. package/dist/actions/install/refreshTmsTxt.js +11 -6
  37. package/dist/actions/install/setInstallDevclass.js +5 -6
  38. package/dist/actions/install/setPackageIntegrity.js +3 -3
  39. package/dist/actions/install/setR3trans.js +7 -7
  40. package/dist/actions/install/setTrmServerUpgradeService.d.ts +3 -0
  41. package/dist/actions/install/setTrmServerUpgradeService.js +32 -0
  42. package/dist/actions/installDependency/findInstallRelease.js +2 -2
  43. package/dist/actions/installDependency/index.js +3 -3
  44. package/dist/actions/installDependency/init.js +6 -7
  45. package/dist/actions/installDependency/installRelease.js +4 -4
  46. package/dist/actions/publish/finalizePublish.js +7 -7
  47. package/dist/actions/publish/findDependencies.js +21 -22
  48. package/dist/actions/publish/generateCustTransport.js +10 -10
  49. package/dist/actions/publish/generateDevcTransport.js +8 -8
  50. package/dist/actions/publish/generateLangTransport.js +12 -12
  51. package/dist/actions/publish/generateTadirTransport.js +9 -9
  52. package/dist/actions/publish/getSourceCode.js +5 -5
  53. package/dist/actions/publish/index.js +3 -3
  54. package/dist/actions/publish/init.js +16 -16
  55. package/dist/actions/publish/publishToRegistry.js +4 -4
  56. package/dist/actions/publish/releaseTransports.js +8 -9
  57. package/dist/actions/publish/setCustomizingTransports.js +10 -11
  58. package/dist/actions/publish/setDevclass.js +10 -10
  59. package/dist/actions/publish/setManifestValues.js +11 -11
  60. package/dist/actions/publish/setReadme.js +5 -6
  61. package/dist/actions/publish/setTransportTarget.js +7 -7
  62. package/dist/client/ClientError.d.ts +7 -0
  63. package/dist/client/ClientError.js +13 -0
  64. package/dist/client/RESTClient.js +13 -14
  65. package/dist/client/RESTClientError.d.ts +10 -0
  66. package/dist/client/RESTClientError.js +15 -0
  67. package/dist/client/RFCClient.js +32 -28
  68. package/dist/client/RFCClientError.d.ts +8 -0
  69. package/dist/client/RFCClientError.js +15 -0
  70. package/dist/client/index.d.ts +3 -0
  71. package/dist/client/index.js +3 -0
  72. package/dist/commons/TrmServerUpgradeService.d.ts +15 -0
  73. package/dist/commons/TrmServerUpgradeService.js +81 -0
  74. package/dist/commons/getAxiosInstance.js +8 -8
  75. package/dist/commons/getNodePackage.js +47 -6
  76. package/dist/commons/getNpmGlobalPath.js +3 -3
  77. package/dist/commons/index.d.ts +1 -0
  78. package/dist/commons/index.js +1 -0
  79. package/dist/index.d.ts +0 -2
  80. package/dist/index.js +0 -2
  81. package/dist/manifest/Manifest.js +3 -3
  82. package/dist/manifest/PostActivity.js +5 -5
  83. package/dist/registry/Registry.js +12 -13
  84. package/dist/systemConnector/RESTSystemConnector.js +6 -6
  85. package/dist/systemConnector/RFCSystemConnector.js +4 -4
  86. package/dist/systemConnector/SystemConnectorBase.js +29 -29
  87. package/dist/transport/Transport.js +48 -50
  88. package/dist/trmPackage/TrmArtifact.js +11 -11
  89. package/dist/trmPackage/TrmPackage.js +2 -2
  90. package/dist/{inquirer/validators → validators}/validateDevclass.d.ts +1 -1
  91. package/dist/{inquirer/validators → validators}/validateDevclass.js +1 -1
  92. package/dist/{inquirer/validators → validators}/validatePackageVisibility.d.ts +1 -1
  93. package/dist/{inquirer/validators → validators}/validatePackageVisibility.js +2 -2
  94. package/dist/{inquirer/validators → validators}/validateTransportTarget.d.ts +1 -1
  95. package/package.json +2 -4
  96. package/dist/inquirer/CliInquirer.d.ts +0 -10
  97. package/dist/inquirer/CliInquirer.js +0 -103
  98. package/dist/inquirer/IInquirer.d.ts +0 -7
  99. package/dist/inquirer/IInquirer.js +0 -2
  100. package/dist/inquirer/Inquirer.d.ts +0 -9
  101. package/dist/inquirer/Inquirer.js +0 -31
  102. package/dist/inquirer/Question.d.ts +0 -12
  103. package/dist/inquirer/Question.js +0 -2
  104. package/dist/inquirer/index.d.ts +0 -5
  105. package/dist/inquirer/index.js +0 -21
  106. package/dist/logger/CliLogFileLogger.d.ts +0 -25
  107. package/dist/logger/CliLogFileLogger.js +0 -92
  108. package/dist/logger/CliLogger.d.ts +0 -25
  109. package/dist/logger/CliLogger.js +0 -227
  110. package/dist/logger/ConsoleLogger.d.ts +0 -21
  111. package/dist/logger/ConsoleLogger.js +0 -104
  112. package/dist/logger/DummyLogger.d.ts +0 -20
  113. package/dist/logger/DummyLogger.js +0 -22
  114. package/dist/logger/ILogger.d.ts +0 -18
  115. package/dist/logger/ILogger.js +0 -2
  116. package/dist/logger/JSONLog.d.ts +0 -4
  117. package/dist/logger/JSONLog.js +0 -2
  118. package/dist/logger/Logger.d.ts +0 -21
  119. package/dist/logger/Logger.js +0 -86
  120. package/dist/logger/TreeLog.d.ts +0 -4
  121. package/dist/logger/TreeLog.js +0 -2
  122. package/dist/logger/index.d.ts +0 -8
  123. package/dist/logger/index.js +0 -24
  124. /package/dist/{inquirer/validators → validators}/index.d.ts +0 -0
  125. /package/dist/{inquirer/validators → validators}/index.js +0 -0
  126. /package/dist/{inquirer/validators → validators}/validateTransportTarget.js +0 -0
@@ -10,22 +10,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.setTransportTarget = void 0;
13
- const logger_1 = require("../../logger");
14
- const inquirer_1 = require("../../inquirer");
13
+ const trm_commons_1 = require("trm-commons");
14
+ const validators_1 = require("../../validators");
15
15
  exports.setTransportTarget = {
16
16
  name: 'set-transport-target',
17
17
  run: (context) => __awaiter(void 0, void 0, void 0, function* () {
18
- logger_1.Logger.log('Set transport target step', true);
18
+ trm_commons_1.Logger.log('Set transport target step', true);
19
19
  var needsValidation;
20
20
  var transportTarget = context.rawInput.systemData.transportTarget;
21
21
  if (transportTarget === undefined) {
22
22
  if (!context.rawInput.contextData.noInquirer) {
23
- transportTarget = (yield inquirer_1.Inquirer.prompt({
23
+ transportTarget = (yield trm_commons_1.Inquirer.prompt({
24
24
  type: "list",
25
25
  message: "Publish transport target",
26
26
  name: "transportTarget",
27
27
  validate: (input) => __awaiter(void 0, void 0, void 0, function* () {
28
- return yield (0, inquirer_1.validateTransportTarget)(input, context.runtime.systemData.transportTargets);
28
+ return yield (0, validators_1.validateTransportTarget)(input, context.runtime.systemData.transportTargets);
29
29
  }),
30
30
  choices: context.runtime.systemData.transportTargets.map(o => {
31
31
  return {
@@ -44,11 +44,11 @@ exports.setTransportTarget = {
44
44
  needsValidation = true;
45
45
  }
46
46
  if (needsValidation) {
47
- const validate = yield (0, inquirer_1.validateTransportTarget)(transportTarget, context.runtime.systemData.transportTargets);
47
+ const validate = yield (0, validators_1.validateTransportTarget)(transportTarget, context.runtime.systemData.transportTargets);
48
48
  if (validate && validate !== true) {
49
49
  throw new Error(validate);
50
50
  }
51
- logger_1.Logger.info(`Publish transport release target: ${transportTarget}`);
51
+ trm_commons_1.Logger.info(`Publish transport release target: ${transportTarget}`);
52
52
  }
53
53
  context.rawInput.systemData.transportTarget = transportTarget;
54
54
  })
@@ -0,0 +1,7 @@
1
+ import { SapMessage } from "./SapMessage";
2
+ export declare class ClientError extends Error {
3
+ exceptionType: string;
4
+ sapMessage: SapMessage;
5
+ messageError?: string;
6
+ constructor(exceptionType: string, sapMessage: SapMessage, message?: string);
7
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientError = void 0;
4
+ class ClientError extends Error {
5
+ constructor(exceptionType, sapMessage, message) {
6
+ super(message);
7
+ this.exceptionType = exceptionType;
8
+ this.sapMessage = sapMessage;
9
+ this.name = 'ClientError';
10
+ Object.setPrototypeOf(this, new.target.prototype);
11
+ }
12
+ }
13
+ exports.ClientError = ClientError;
@@ -45,7 +45,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
45
45
  exports.RESTClient = void 0;
46
46
  const commons_1 = require("../commons");
47
47
  const FormData = __importStar(require("form-data"));
48
- const logger_1 = require("../logger");
48
+ const trm_commons_1 = require("trm-commons");
49
+ const _1 = require(".");
49
50
  const parse_multipart_data_1 = require("parse-multipart-data");
50
51
  const AXIOS_CTX = "RestServer";
51
52
  class RESTClient {
@@ -93,31 +94,29 @@ class RESTClient {
93
94
  }
94
95
  var message;
95
96
  var messageError;
97
+ const sapMessage = {
98
+ no: `${axiosError.response.data.message.msgno}`,
99
+ class: axiosError.response.data.message.msgid,
100
+ v1: axiosError.response.data.message.msgv1,
101
+ v2: axiosError.response.data.message.msgv2,
102
+ v3: axiosError.response.data.message.msgv3,
103
+ v4: axiosError.response.data.message.msgv4
104
+ };
96
105
  try {
97
- message = yield this.getMessage({
98
- no: `${axiosError.response.data.message.msgno}`,
99
- class: axiosError.response.data.message.msgid,
100
- v1: axiosError.response.data.message.msgv1,
101
- v2: axiosError.response.data.message.msgv2,
102
- v3: axiosError.response.data.message.msgv3,
103
- v4: axiosError.response.data.message.msgv4
104
- });
106
+ message = yield this.getMessage(sapMessage);
105
107
  }
106
108
  catch (k) {
107
109
  messageError = k;
108
110
  message = `Couldn't read error message ${axiosError.response.data.message.abapMsgClass} ${axiosError.response.data.message.abapMsgNumber} ${axiosError.response.data.message.abapMsgV1} ${axiosError.response.data.message.abapMsgV2} ${axiosError.response.data.message.abapMsgV3} ${axiosError.response.data.message.abapMsgV4}`;
109
111
  }
110
- var rfcClientError = new Error(message.trim());
111
- rfcClientError.name = 'TrmRESTClient';
112
- rfcClientError.restError = axiosError;
112
+ var rfcClientError = new _1.RESTClientError(error.message, sapMessage, axiosError, message);
113
113
  if (messageError) {
114
114
  rfcClientError.messageError = messageError;
115
115
  }
116
116
  if (axiosError.response.data.log) {
117
117
  rfcClientError.messageLog = axiosError.response.data.log;
118
118
  }
119
- rfcClientError.exceptionType = error.message;
120
- logger_1.Logger.error(rfcClientError.toString(), true);
119
+ trm_commons_1.Logger.error(rfcClientError.toString(), true);
121
120
  throw rfcClientError;
122
121
  }));
123
122
  }
@@ -0,0 +1,10 @@
1
+ import { AxiosError } from "axios";
2
+ import { SapMessage } from "./SapMessage";
3
+ import { ClientError } from "./ClientError";
4
+ export declare class RESTClientError extends ClientError {
5
+ exceptionType: string;
6
+ sapMessage: SapMessage;
7
+ restError: AxiosError;
8
+ messageLog?: any;
9
+ constructor(exceptionType: string, sapMessage: SapMessage, restError: AxiosError, message?: string);
10
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RESTClientError = void 0;
4
+ const ClientError_1 = require("./ClientError");
5
+ class RESTClientError extends ClientError_1.ClientError {
6
+ constructor(exceptionType, sapMessage, restError, message) {
7
+ super(exceptionType, sapMessage, message);
8
+ this.exceptionType = exceptionType;
9
+ this.sapMessage = sapMessage;
10
+ this.restError = restError;
11
+ this.name = 'TrmRESTClient';
12
+ Object.setPrototypeOf(this, new.target.prototype);
13
+ }
14
+ }
15
+ exports.RESTClientError = RESTClientError;
@@ -47,9 +47,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.RFCClient = void 0;
49
49
  const commons_1 = require("../commons");
50
- const logger_1 = require("../logger");
50
+ const trm_commons_1 = require("trm-commons");
51
51
  const fs_1 = require("fs");
52
52
  const path_1 = __importDefault(require("path"));
53
+ const _1 = require(".");
53
54
  const nodeRfcLib = 'node-rfc';
54
55
  class RFCClient {
55
56
  constructor(_rfcClientArgs, _cLangu, traceDir) {
@@ -60,17 +61,17 @@ class RFCClient {
60
61
  process.env["RFC_TRACE_DIR"] = traceDir || process.cwd();
61
62
  }
62
63
  catch (e) {
63
- logger_1.Logger.warning(`Couldn't set RFC trace!`, true);
64
- logger_1.Logger.error(e.toString(), true);
64
+ trm_commons_1.Logger.warning(`Couldn't set RFC trace!`, true);
65
+ trm_commons_1.Logger.error(e.toString(), true);
65
66
  }
66
- logger_1.Logger.log(`RFC_TRACE_DIR: ${process.env["RFC_TRACE_DIR"]}`, true);
67
+ trm_commons_1.Logger.log(`RFC_TRACE_DIR: ${process.env["RFC_TRACE_DIR"]}`, true);
67
68
  }
68
69
  getRfcClient() {
69
70
  return __awaiter(this, void 0, void 0, function* () {
70
71
  if (!this._rfcClient) {
71
72
  const globalPath = yield (0, commons_1.getNpmGlobalPath)();
72
73
  const libPath = path_1.default.join(globalPath, nodeRfcLib);
73
- logger_1.Logger.log(`Node RFC lib path: ${libPath}`, true);
74
+ trm_commons_1.Logger.log(`Node RFC lib path: ${libPath}`, true);
74
75
  if (!(0, fs_1.existsSync)(libPath)) {
75
76
  throw new Error(`${nodeRfcLib} not found. Run command "npm install ${nodeRfcLib} -g" to continue.`);
76
77
  }
@@ -81,19 +82,19 @@ class RFCClient {
81
82
  }
82
83
  open() {
83
84
  return __awaiter(this, void 0, void 0, function* () {
84
- logger_1.Logger.loading(`Opening RFC connection`, true);
85
+ trm_commons_1.Logger.loading(`Opening RFC connection`, true);
85
86
  yield (yield this.getRfcClient()).open();
86
- logger_1.Logger.success(`RFC open`, true);
87
+ trm_commons_1.Logger.success(`RFC open`, true);
87
88
  });
88
89
  }
89
90
  checkConnection() {
90
91
  return __awaiter(this, void 0, void 0, function* () {
91
92
  if (!this._aliveCheck) {
92
93
  if ((yield this.getRfcClient()).alive) {
93
- logger_1.Logger.success(`RFC open`, true);
94
+ trm_commons_1.Logger.success(`RFC open`, true);
94
95
  }
95
96
  else {
96
- logger_1.Logger.warning(`RFC closed`, true);
97
+ trm_commons_1.Logger.warning(`RFC closed`, true);
97
98
  }
98
99
  this._aliveCheck = true;
99
100
  }
@@ -125,10 +126,10 @@ class RFCClient {
125
126
  };
126
127
  }
127
128
  try {
128
- logger_1.Logger.loading(`Executing RFC, FM ${fm}, args ${JSON.stringify(argNormalized)}, opts ${JSON.stringify(callOptions)}`, true);
129
+ trm_commons_1.Logger.loading(`Executing RFC, FM ${fm}, args ${JSON.stringify(argNormalized)}, opts ${JSON.stringify(callOptions)}`, true);
129
130
  const response = yield (yield this.getRfcClient()).call(fm, argNormalized, callOptions);
130
131
  const responseNormalized = (0, commons_1.normalize)(response);
131
- logger_1.Logger.success(`RFC resonse: ${JSON.stringify(responseNormalized)}`, true);
132
+ trm_commons_1.Logger.success(`RFC resonse: ${JSON.stringify(responseNormalized)}`, true);
132
133
  return responseNormalized;
133
134
  }
134
135
  catch (e) {
@@ -138,28 +139,31 @@ class RFCClient {
138
139
  else {
139
140
  var message;
140
141
  var messageError;
141
- try {
142
- message = yield this._getMessage(true, {
143
- no: `${e.abapMsgNumber}`,
144
- class: e.abapMsgClass,
145
- v1: e.abapMsgV1,
146
- v2: e.abapMsgV2,
147
- v3: e.abapMsgV3,
148
- v4: e.abapMsgV4
149
- });
142
+ const sapMessage = {
143
+ no: `${e.abapMsgNumber}`,
144
+ class: e.abapMsgClass,
145
+ v1: e.abapMsgV1,
146
+ v2: e.abapMsgV2,
147
+ v3: e.abapMsgV3,
148
+ v4: e.abapMsgV4
149
+ };
150
+ if (sapMessage.no && sapMessage.class) {
151
+ try {
152
+ message = yield this._getMessage(true, sapMessage);
153
+ }
154
+ catch (k) {
155
+ messageError = k;
156
+ message = `Couldn't read error message ${e.abapMsgClass} ${e.abapMsgNumber} ${e.abapMsgV1} ${e.abapMsgV2} ${e.abapMsgV3} ${e.abapMsgV4}`;
157
+ }
150
158
  }
151
- catch (k) {
152
- messageError = k;
153
- message = `Couldn't read error message ${e.abapMsgClass} ${e.abapMsgNumber} ${e.abapMsgV1} ${e.abapMsgV2} ${e.abapMsgV3} ${e.abapMsgV4}`;
159
+ else {
160
+ message = e.message;
154
161
  }
155
- var rfcClientError = new Error(message.trim());
156
- rfcClientError.name = 'TrmRFCClient';
157
- rfcClientError.rfcError = e;
162
+ var rfcClientError = new _1.RFCClientError(e.key, sapMessage, e, message);
158
163
  if (messageError) {
159
164
  rfcClientError.messageError = messageError;
160
165
  }
161
- rfcClientError.exceptionType = e.key;
162
- logger_1.Logger.error(rfcClientError.toString(), true);
166
+ trm_commons_1.Logger.error(rfcClientError.toString(), true);
163
167
  throw rfcClientError;
164
168
  }
165
169
  }
@@ -0,0 +1,8 @@
1
+ import { SapMessage } from "./SapMessage";
2
+ import { ClientError } from "./ClientError";
3
+ export declare class RFCClientError extends ClientError {
4
+ exceptionType: string;
5
+ sapMessage: SapMessage;
6
+ rfcError: any;
7
+ constructor(exceptionType: string, sapMessage: SapMessage, rfcError: any, message?: string);
8
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RFCClientError = void 0;
4
+ const ClientError_1 = require("./ClientError");
5
+ class RFCClientError extends ClientError_1.ClientError {
6
+ constructor(exceptionType, sapMessage, rfcError, message) {
7
+ super(exceptionType, sapMessage, message);
8
+ this.exceptionType = exceptionType;
9
+ this.sapMessage = sapMessage;
10
+ this.rfcError = rfcError;
11
+ this.name = 'TrmRFCClient';
12
+ Object.setPrototypeOf(this, new.target.prototype);
13
+ }
14
+ }
15
+ exports.RFCClientError = RFCClientError;
@@ -5,3 +5,6 @@ export * from "./RFCClient";
5
5
  export * from "./RESTClient";
6
6
  export * from "./SapMessage";
7
7
  export * from "./Login";
8
+ export * from "./ClientError";
9
+ export * from "./RESTClientError";
10
+ export * from "./RFCClientError";
@@ -21,3 +21,6 @@ __exportStar(require("./RFCClient"), exports);
21
21
  __exportStar(require("./RESTClient"), exports);
22
22
  __exportStar(require("./SapMessage"), exports);
23
23
  __exportStar(require("./Login"), exports);
24
+ __exportStar(require("./ClientError"), exports);
25
+ __exportStar(require("./RESTClientError"), exports);
26
+ __exportStar(require("./RFCClientError"), exports);
@@ -0,0 +1,15 @@
1
+ export declare class TrmServerUpgrade {
2
+ private currentVersion?;
3
+ private installVersion?;
4
+ private static instance;
5
+ private dummy;
6
+ private constructor();
7
+ static getInstance(): TrmServerUpgrade;
8
+ static createInstance(currentVersion: string, installVersion: string): void;
9
+ throwError(e: Error): void;
10
+ deleteFromTms(): boolean;
11
+ removeSkipTrkorr(): boolean;
12
+ executePostActivities(): boolean;
13
+ removeComments(): boolean;
14
+ refreshTmsTxt(): boolean;
15
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrmServerUpgrade = void 0;
4
+ const semver_1 = require("semver");
5
+ const client_1 = require("../client");
6
+ const trm_commons_1 = require("trm-commons");
7
+ class TrmServerUpgrade {
8
+ constructor(currentVersion, installVersion) {
9
+ this.currentVersion = currentVersion;
10
+ this.installVersion = installVersion;
11
+ if (this.currentVersion && this.installVersion) {
12
+ this.dummy = false;
13
+ }
14
+ else {
15
+ this.dummy = true;
16
+ }
17
+ }
18
+ static getInstance() {
19
+ if (!TrmServerUpgrade.instance) {
20
+ TrmServerUpgrade.instance = new TrmServerUpgrade();
21
+ }
22
+ return TrmServerUpgrade.instance;
23
+ }
24
+ static createInstance(currentVersion, installVersion) {
25
+ TrmServerUpgrade.instance = new TrmServerUpgrade(currentVersion, installVersion);
26
+ }
27
+ throwError(e) {
28
+ if (this.dummy) {
29
+ throw e;
30
+ }
31
+ if (e instanceof client_1.ClientError) {
32
+ if (e.sapMessage.class === 'PAK' && e.sapMessage.no === '058' && (0, semver_1.lt)(this.currentVersion, '2.2.0') && (0, semver_1.gte)(this.installVersion, '2.2.0')) {
33
+ trm_commons_1.Logger.log(`Ignored error (${e.toString()})): this is fixed in trm-server 2.2.0`, true);
34
+ return;
35
+ }
36
+ throw e;
37
+ }
38
+ throw e;
39
+ }
40
+ deleteFromTms() {
41
+ if (this.dummy) {
42
+ return true;
43
+ }
44
+ else {
45
+ return !((0, semver_1.lt)(this.currentVersion, '2.2.0') && (0, semver_1.gte)(this.installVersion, '2.2.0'));
46
+ }
47
+ }
48
+ removeSkipTrkorr() {
49
+ if (this.dummy) {
50
+ return true;
51
+ }
52
+ else {
53
+ return !((0, semver_1.lt)(this.currentVersion, '2.2.0') && (0, semver_1.gte)(this.installVersion, '2.2.0'));
54
+ }
55
+ }
56
+ executePostActivities() {
57
+ if (this.dummy) {
58
+ return true;
59
+ }
60
+ else {
61
+ return !((0, semver_1.lt)(this.currentVersion, '2.2.0') && (0, semver_1.gte)(this.installVersion, '2.2.0'));
62
+ }
63
+ }
64
+ removeComments() {
65
+ if (this.dummy) {
66
+ return true;
67
+ }
68
+ else {
69
+ return !((0, semver_1.lt)(this.currentVersion, '2.2.0') && (0, semver_1.gte)(this.installVersion, '2.2.0'));
70
+ }
71
+ }
72
+ refreshTmsTxt() {
73
+ if (this.dummy) {
74
+ return true;
75
+ }
76
+ else {
77
+ return !((0, semver_1.lt)(this.currentVersion, '2.2.0') && (0, semver_1.gte)(this.installVersion, '2.2.0'));
78
+ }
79
+ }
80
+ }
81
+ exports.TrmServerUpgrade = TrmServerUpgrade;
@@ -7,7 +7,7 @@ exports.AXIOS_INTERNAL_HEADER = exports.AXIOS_SESSION_HEADER = void 0;
7
7
  exports.getAxiosInstance = getAxiosInstance;
8
8
  const axios_1 = __importDefault(require("axios"));
9
9
  const util_1 = require("util");
10
- const logger_1 = require("../logger");
10
+ const trm_commons_1 = require("trm-commons");
11
11
  const uuid_1 = require("uuid");
12
12
  exports.AXIOS_SESSION_HEADER = 'X-TRM-SESSION-ID';
13
13
  exports.AXIOS_INTERNAL_HEADER = 'X-TRM-REQUEST-ID';
@@ -24,8 +24,8 @@ function getAxiosInstance(config, sCtx) {
24
24
  instance.interceptors.request.use((request) => {
25
25
  const internalId = (0, uuid_1.v4)();
26
26
  request.headers.set(exports.AXIOS_INTERNAL_HEADER, internalId);
27
- if (logger_1.Logger.logger instanceof logger_1.CliLogFileLogger) {
28
- request.headers.set(exports.AXIOS_SESSION_HEADER, logger_1.Logger.logger.getSessionId());
27
+ if (trm_commons_1.Logger.logger instanceof trm_commons_1.CliLogFileLogger) {
28
+ request.headers.set(exports.AXIOS_SESSION_HEADER, trm_commons_1.Logger.logger.getSessionId());
29
29
  }
30
30
  var sRequest = `${request.method} ${request.baseURL}${request.url}`;
31
31
  if (request.params) {
@@ -37,10 +37,10 @@ function getAxiosInstance(config, sCtx) {
37
37
  if (request.data) {
38
38
  sRequest += `, data: ${(0, util_1.inspect)(request.data, { breakLength: Infinity, compact: true })}`;
39
39
  }
40
- logger_1.Logger.log(`${sCtx} AXIOS request ${internalId}: ${sRequest}`, true);
40
+ trm_commons_1.Logger.log(`${sCtx} AXIOS request ${internalId}: ${sRequest}`, true);
41
41
  return request;
42
42
  }, (error) => {
43
- logger_1.Logger.error(`${sCtx} AXIOS request error: ${error}`, true);
43
+ trm_commons_1.Logger.error(`${sCtx} AXIOS request error: ${error}`, true);
44
44
  return Promise.reject(error);
45
45
  });
46
46
  instance.interceptors.response.use((response) => {
@@ -49,7 +49,7 @@ function getAxiosInstance(config, sCtx) {
49
49
  if (response.data) {
50
50
  sResponse += `, data: ${(0, util_1.inspect)(response.data, { breakLength: Infinity, compact: true })}`;
51
51
  }
52
- logger_1.Logger.log(`Ending ${sCtx} AXIOS request ${internalId}: ${sResponse}`, true);
52
+ trm_commons_1.Logger.log(`Ending ${sCtx} AXIOS request ${internalId}: ${sResponse}`, true);
53
53
  return response;
54
54
  }, (error) => {
55
55
  if (error.response) {
@@ -82,11 +82,11 @@ function getAxiosInstance(config, sCtx) {
82
82
  oError.status = error.response.status;
83
83
  oError.response = error.response.data || {};
84
84
  oError.axiosError = error;
85
- logger_1.Logger.error(`${sCtx} response id ${internalId} error: ${error} (${JSON.stringify(sError)})`, true);
85
+ trm_commons_1.Logger.error(`${sCtx} response id ${internalId} error: ${error} (${JSON.stringify(sError)})`, true);
86
86
  return Promise.reject(oError);
87
87
  }
88
88
  else {
89
- logger_1.Logger.error(`${sCtx} response error: ${error}`, true);
89
+ trm_commons_1.Logger.error(`${sCtx} response error: ${error}`, true);
90
90
  return Promise.reject(error);
91
91
  }
92
92
  });
@@ -40,17 +40,58 @@ exports.getNodePackage = getNodePackage;
40
40
  const fs = __importStar(require("fs"));
41
41
  const path_1 = __importDefault(require("path"));
42
42
  const get_root_path_1 = require("get-root-path");
43
- const logger_1 = require("../logger");
43
+ const trm_commons_1 = require("trm-commons");
44
+ const get_stack_trace_1 = require("get-stack-trace");
45
+ const _findPackageRoot = (startPath) => {
46
+ var currentPath = fs.statSync(startPath).isDirectory() ? startPath : path_1.default.dirname(startPath);
47
+ while (true) {
48
+ const packageJsonPath = path_1.default.join(currentPath, 'package.json');
49
+ if (fs.existsSync(packageJsonPath)) {
50
+ return currentPath;
51
+ }
52
+ const parentPath = path_1.default.dirname(currentPath);
53
+ if (parentPath === currentPath) {
54
+ return null;
55
+ }
56
+ currentPath = parentPath;
57
+ }
58
+ };
44
59
  function getNodePackage() {
45
60
  var file;
46
61
  var packageData;
47
- logger_1.Logger.log(`root path: ${get_root_path_1.rootPath}`, true);
62
+ trm_commons_1.Logger.log(`root path: ${get_root_path_1.rootPath}`, true);
63
+ const stack = (0, get_stack_trace_1.getStackTrace)();
64
+ var modules = [];
65
+ stack.forEach(o => {
66
+ var searchModule = true;
67
+ modules.forEach(m => {
68
+ if (o.fileName.startsWith(m.packageRoot)) {
69
+ searchModule = false;
70
+ }
71
+ });
72
+ if (searchModule) {
73
+ try {
74
+ const packageRoot = _findPackageRoot(o.fileName);
75
+ const modulePackage = JSON.parse(fs.readFileSync(path_1.default.join(packageRoot, "package.json")).toString());
76
+ if (modulePackage.name) {
77
+ modules.push({
78
+ name: modulePackage.name,
79
+ packageRoot
80
+ });
81
+ }
82
+ }
83
+ catch (e) { }
84
+ }
85
+ });
48
86
  try {
49
- file = fs.readFileSync(path_1.default.join(get_root_path_1.rootPath, "/node_modules/trm-core/package.json"));
50
- }
51
- catch (e) {
52
- file = fs.readFileSync(path_1.default.join(get_root_path_1.rootPath, "package.json"));
87
+ if (modules.length === 1) {
88
+ file = fs.readFileSync(path_1.default.join(get_root_path_1.rootPath, "package.json"));
89
+ }
90
+ else {
91
+ file = fs.readFileSync(path_1.default.join(modules[modules.length - 1].packageRoot, `/node_modules/trm-core/package.json`));
92
+ }
53
93
  }
94
+ catch (e) { }
54
95
  if (file) {
55
96
  packageData = JSON.parse(file.toString());
56
97
  }
@@ -16,15 +16,15 @@ exports.getNpmGlobalPath = getNpmGlobalPath;
16
16
  const child_process_1 = require("child_process");
17
17
  const path_1 = __importDefault(require("path"));
18
18
  const util_1 = require("util");
19
- const logger_1 = require("../logger");
19
+ const trm_commons_1 = require("trm-commons");
20
20
  function getNpmGlobalPath() {
21
21
  return __awaiter(this, void 0, void 0, function* () {
22
- logger_1.Logger.loading(`Reading NPM global path...`);
22
+ trm_commons_1.Logger.loading(`Reading NPM global path...`);
23
23
  const execPromise = (0, util_1.promisify)(child_process_1.exec);
24
24
  const { stdout } = yield execPromise(`npm config get prefix`);
25
25
  const prefixPath = stdout.replace(/\n$/, '');
26
26
  const globalPath = path_1.default.join(prefixPath, 'node_modules');
27
- logger_1.Logger.log(`NPM Global path: ${globalPath}`, true);
27
+ trm_commons_1.Logger.log(`NPM Global path: ${globalPath}`, true);
28
28
  return globalPath;
29
29
  });
30
30
  }
@@ -14,3 +14,4 @@ export * from "./getNpmGlobalPath";
14
14
  export * from "./getNodePackage";
15
15
  export * from "./getCoreTrmDependencies";
16
16
  export * from "./checkCoreTrmDependencies";
17
+ export * from "./TrmServerUpgradeService";
@@ -30,3 +30,4 @@ __exportStar(require("./getNpmGlobalPath"), exports);
30
30
  __exportStar(require("./getNodePackage"), exports);
31
31
  __exportStar(require("./getCoreTrmDependencies"), exports);
32
32
  __exportStar(require("./checkCoreTrmDependencies"), exports);
33
+ __exportStar(require("./TrmServerUpgradeService"), exports);
package/dist/index.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  export * from "./actions";
2
2
  export * from "./client";
3
3
  export * from "./commons";
4
- export * from "./inquirer";
5
- export * from "./logger";
6
4
  export * from "./manifest";
7
5
  export * from "./registry";
8
6
  export * from "./dependency";
package/dist/index.js CHANGED
@@ -17,8 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./actions"), exports);
18
18
  __exportStar(require("./client"), exports);
19
19
  __exportStar(require("./commons"), exports);
20
- __exportStar(require("./inquirer"), exports);
21
- __exportStar(require("./logger"), exports);
22
20
  __exportStar(require("./manifest"), exports);
23
21
  __exportStar(require("./registry"), exports);
24
22
  __exportStar(require("./dependency"), exports);
@@ -48,7 +48,7 @@ const SpdxLicenseIds = __importStar(require("spdx-license-ids/index.json"));
48
48
  const xmldom_1 = require("@xmldom/xmldom");
49
49
  const lodash_1 = __importDefault(require("lodash"));
50
50
  const xml_beautify_1 = __importDefault(require("xml-beautify"));
51
- const logger_1 = require("../logger");
51
+ const trm_commons_1 = require("trm-commons");
52
52
  function getManifestAuthor(sAuthor) {
53
53
  var author = {};
54
54
  const emailRegex = new RegExp("<([^>]*)>");
@@ -627,8 +627,8 @@ class Manifest {
627
627
  sapEntries = oAbapXml['asx:abap']['asx:values']['TRM_MANIFEST']['SAP_ENTRIES'];
628
628
  }
629
629
  catch (e) {
630
- logger_1.Logger.error(e.toString(), true);
631
- logger_1.Logger.error(`Couldn't parse sapEntries in abap xml manifest`, true);
630
+ trm_commons_1.Logger.error(e.toString(), true);
631
+ trm_commons_1.Logger.error(`Couldn't parse sapEntries in abap xml manifest`, true);
632
632
  }
633
633
  if (oAbapManifest.description && oAbapManifest.description.text) {
634
634
  manifest.description = oAbapManifest.description.text;
@@ -45,7 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
45
45
  exports.PostActivity = void 0;
46
46
  const systemConnector_1 = require("../systemConnector");
47
47
  const xml = __importStar(require("xml-js"));
48
- const logger_1 = require("../logger");
48
+ const trm_commons_1 = require("trm-commons");
49
49
  class PostActivity {
50
50
  constructor(data) {
51
51
  this.data = data;
@@ -56,12 +56,12 @@ class PostActivity {
56
56
  }
57
57
  execute(silent) {
58
58
  return __awaiter(this, void 0, void 0, function* () {
59
- logger_1.Logger.loading(`Executing post activity: ${this.data.name}`, silent);
59
+ trm_commons_1.Logger.loading(`Executing post activity: ${this.data.name}`, silent);
60
60
  if (!PostActivity.exists(this.data.name)) {
61
61
  throw new Error(`Class "${this.data.name}" doesn't exist.`);
62
62
  }
63
63
  const description = yield this.getDescription();
64
- logger_1.Logger.loading(`Executing post activity: ${description}`, silent);
64
+ trm_commons_1.Logger.loading(`Executing post activity: ${description}`, silent);
65
65
  const messages = yield systemConnector_1.SystemConnector.executePostActivity(Buffer.from(this._xml, 'utf8'));
66
66
  if (messages && messages.length > 0) {
67
67
  for (const message of messages) {
@@ -73,11 +73,11 @@ class PostActivity {
73
73
  v3: message.msgv3,
74
74
  v4: message.msgv4,
75
75
  });
76
- logger_1.Logger.msgty(message.msgty, parsedMessage, silent);
76
+ trm_commons_1.Logger.msgty(message.msgty, parsedMessage, silent);
77
77
  }
78
78
  }
79
79
  else {
80
- logger_1.Logger.success(`Executed post activity: ${this.getDescription()}`, silent);
80
+ trm_commons_1.Logger.success(`Executed post activity: ${description}`, silent);
81
81
  }
82
82
  });
83
83
  }