trm-core 6.2.5 → 6.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.txt +35 -0
- package/dist/abapgit/DotAbapGit.d.ts +8 -0
- package/dist/abapgit/DotAbapGit.js +80 -0
- package/dist/abapgit/index.d.ts +1 -0
- package/dist/abapgit/index.js +17 -0
- package/dist/actions/checkPackageDependencies/analyze.js +1 -1
- package/dist/actions/findDependencies/parseSenvi.js +3 -0
- package/dist/actions/findDependencies/setTrmDependencies.js +93 -36
- package/dist/actions/install/checkTransports.js +71 -1
- package/dist/actions/install/executePostActivities.d.ts +3 -0
- package/dist/actions/install/executePostActivities.js +62 -0
- package/dist/actions/install/generateInstallTransport.js +1 -0
- package/dist/actions/install/importCustTransport.js +1 -0
- package/dist/actions/install/importDevcTransport.js +4 -0
- package/dist/actions/install/importLangTransport.js +1 -0
- package/dist/actions/install/importTadirTransport.js +2 -0
- package/dist/actions/install/index.d.ts +9 -4
- package/dist/actions/install/index.js +7 -1
- package/dist/actions/install/init.js +19 -3
- package/dist/actions/install/installDependencies.js +1 -9
- package/dist/actions/install/migrate.d.ts +3 -0
- package/dist/actions/install/migrate.js +35 -0
- package/dist/actions/install/readTadir.js +41 -2
- package/dist/actions/install/refreshTmsTxt.d.ts +3 -0
- package/dist/actions/install/refreshTmsTxt.js +33 -0
- package/dist/actions/install/setInstallDevclass.js +11 -1
- package/dist/actions/installDependency/index.d.ts +2 -2
- package/dist/actions/installDependency/init.js +4 -0
- package/dist/actions/publish/findDependencies.js +20 -15
- package/dist/actions/publish/generateCustTransport.js +2 -0
- package/dist/actions/publish/generateDevcTransport.js +2 -0
- package/dist/actions/publish/generateLangTransport.js +4 -0
- package/dist/actions/publish/generateTadirTransport.js +15 -1
- package/dist/actions/publish/getSourceCode.d.ts +3 -0
- package/dist/actions/publish/getSourceCode.js +36 -0
- package/dist/actions/publish/index.d.ts +12 -3
- package/dist/actions/publish/index.js +2 -0
- package/dist/actions/publish/init.js +10 -2
- package/dist/actions/publish/publishToRegistry.js +5 -1
- package/dist/actions/publish/setManifestValues.js +69 -1
- package/dist/actions/publish/setReadme.js +8 -1
- package/dist/client/RESTClient.d.ts +11 -0
- package/dist/client/RESTClient.js +141 -39
- package/dist/client/RFCClient.d.ts +11 -0
- package/dist/client/RFCClient.js +104 -19
- package/dist/client/components/LANGU.d.ts +1 -0
- package/dist/client/components/LANGU.js +2 -0
- package/dist/client/components/SEOCLSNAME.d.ts +1 -0
- package/dist/client/components/SEOCLSNAME.js +2 -0
- package/dist/client/components/SEODESCR.d.ts +1 -0
- package/dist/client/components/SEODESCR.js +2 -0
- package/dist/client/components/SYMSGID.d.ts +1 -0
- package/dist/client/components/SYMSGID.js +2 -0
- package/dist/client/components/SYMSGNO.d.ts +1 -0
- package/dist/client/components/SYMSGNO.js +2 -0
- package/dist/client/components/SYMSGTY.d.ts +1 -0
- package/dist/client/components/SYMSGTY.js +2 -0
- package/dist/client/components/SYMSGV.d.ts +1 -0
- package/dist/client/components/SYMSGV.js +2 -0
- package/dist/client/components/TRSTATUS.d.ts +1 -0
- package/dist/client/components/TRSTATUS.js +2 -0
- package/dist/client/components/ZTRM_TRKORR.d.ts +1 -0
- package/dist/client/components/ZTRM_TRKORR.js +2 -0
- package/dist/client/components/index.d.ts +9 -0
- package/dist/client/components/index.js +9 -0
- package/dist/client/struct/E070.d.ts +2 -1
- package/dist/client/struct/SEOCLASSTX.d.ts +6 -0
- package/dist/client/struct/SEOCLASSTX.js +2 -0
- package/dist/client/struct/SYMSG.d.ts +10 -0
- package/dist/client/struct/SYMSG.js +2 -0
- package/dist/client/struct/index.d.ts +2 -0
- package/dist/client/struct/index.js +2 -0
- package/dist/commons/checkCoreTrmDependencies.d.ts +7 -0
- package/dist/commons/checkCoreTrmDependencies.js +49 -0
- package/dist/commons/getCoreTrmDependencies.d.ts +3 -0
- package/dist/commons/getCoreTrmDependencies.js +8 -0
- package/dist/commons/getNodePackage.d.ts +1 -0
- package/dist/commons/getNodePackage.js +61 -0
- package/dist/commons/index.d.ts +3 -0
- package/dist/commons/index.js +3 -0
- package/dist/logger/CliLogger.d.ts +1 -0
- package/dist/logger/CliLogger.js +19 -0
- package/dist/logger/ConsoleLogger.d.ts +1 -0
- package/dist/logger/ConsoleLogger.js +19 -0
- package/dist/logger/DummyLogger.d.ts +1 -0
- package/dist/logger/DummyLogger.js +1 -0
- package/dist/logger/ILogger.d.ts +1 -0
- package/dist/logger/Logger.d.ts +1 -0
- package/dist/logger/Logger.js +5 -0
- package/dist/manifest/Manifest.d.ts +1 -0
- package/dist/manifest/Manifest.js +106 -8
- package/dist/manifest/PostActivity.d.ts +11 -0
- package/dist/manifest/PostActivity.js +150 -0
- package/dist/manifest/TrmManifest.d.ts +1 -0
- package/dist/manifest/TrmManifestBase.d.ts +2 -0
- package/dist/manifest/TrmManifestNamespace.d.ts +1 -0
- package/dist/manifest/TrmManifestPostActivity.d.ts +7 -0
- package/dist/manifest/TrmManifestPostActivity.js +2 -0
- package/dist/manifest/index.d.ts +2 -0
- package/dist/manifest/index.js +2 -0
- package/dist/registry/AbstractRegistry.d.ts +19 -0
- package/dist/registry/AbstractRegistry.js +6 -0
- package/dist/registry/FileSystem.d.ts +23 -0
- package/dist/registry/FileSystem.js +161 -0
- package/dist/registry/Registry.d.ts +4 -3
- package/dist/registry/Registry.js +8 -5
- package/dist/registry/RegistryProvider.d.ts +5 -0
- package/dist/registry/RegistryProvider.js +35 -0
- package/dist/registry/RegistryType.d.ts +2 -1
- package/dist/registry/RegistryType.js +1 -0
- package/dist/registry/index.d.ts +3 -1
- package/dist/registry/index.js +3 -1
- package/dist/systemConnector/ISystemConnector.d.ts +11 -0
- package/dist/systemConnector/ISystemConnectorBase.d.ts +4 -3
- package/dist/systemConnector/RESTSystemConnector.d.ts +11 -0
- package/dist/systemConnector/RESTSystemConnector.js +40 -0
- package/dist/systemConnector/RFCSystemConnector.d.ts +11 -0
- package/dist/systemConnector/RFCSystemConnector.js +40 -0
- package/dist/systemConnector/SystemConnector.d.ts +15 -3
- package/dist/systemConnector/SystemConnector.js +65 -2
- package/dist/systemConnector/SystemConnectorBase.d.ts +8 -5
- package/dist/systemConnector/SystemConnectorBase.js +86 -41
- package/dist/transport/Transport.d.ts +13 -3
- package/dist/transport/Transport.js +134 -39
- package/dist/trmPackage/TrmArtifact.d.ts +9 -2
- package/dist/trmPackage/TrmArtifact.js +30 -9
- package/dist/trmPackage/TrmPackage.d.ts +6 -6
- package/dist/trmPackage/TrmPackage.js +1 -2
- package/package.json +18 -8
|
@@ -18,6 +18,7 @@ const inquirer_1 = require("../../inquirer");
|
|
|
18
18
|
const registry_1 = require("../../registry");
|
|
19
19
|
const manifest_1 = require("../../manifest");
|
|
20
20
|
const chalk_1 = __importDefault(require("chalk"));
|
|
21
|
+
const FileSystem_1 = require("../../registry/FileSystem");
|
|
21
22
|
exports.setManifestValues = {
|
|
22
23
|
name: 'set-manifest-values',
|
|
23
24
|
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -86,6 +87,9 @@ exports.setManifestValues = {
|
|
|
86
87
|
name: `Private`,
|
|
87
88
|
value: true
|
|
88
89
|
}],
|
|
90
|
+
when: () => {
|
|
91
|
+
return context.rawInput.packageData.registry.getRegistryType() !== registry_1.RegistryType.LOCAL;
|
|
92
|
+
},
|
|
89
93
|
validate: (input) => {
|
|
90
94
|
return (0, inquirer_1.validatePackageVisibility)(context.rawInput.packageData.registry.getRegistryType(), context.rawInput.packageData.name, input, context.runtime.trmPackage.latestReleaseManifest ? context.runtime.trmPackage.latestReleaseManifest.private : undefined);
|
|
91
95
|
},
|
|
@@ -161,9 +165,15 @@ exports.setManifestValues = {
|
|
|
161
165
|
}]);
|
|
162
166
|
context.runtime.trmPackage.manifest = Object.assign(Object.assign({}, context.runtime.trmPackage.manifest), inq);
|
|
163
167
|
}
|
|
164
|
-
|
|
168
|
+
if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.LOCAL) {
|
|
169
|
+
context.runtime.trmPackage.manifest.private = true;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
logger_1.Logger.info(`Package visibility: ${chalk_1.default.bold(context.runtime.trmPackage.manifest.private ? 'private' : 'public')}`);
|
|
173
|
+
}
|
|
165
174
|
if (context.runtime.packageData.namespace) {
|
|
166
175
|
context.runtime.trmPackage.manifest.namespace = {
|
|
176
|
+
ns: context.runtime.packageData.namespace.trnspacet.namespace,
|
|
167
177
|
replicense: context.runtime.packageData.namespace.trnspacet.replicense,
|
|
168
178
|
texts: context.runtime.packageData.namespace.trnspacett.map(o => {
|
|
169
179
|
return {
|
|
@@ -174,6 +184,64 @@ exports.setManifestValues = {
|
|
|
174
184
|
})
|
|
175
185
|
};
|
|
176
186
|
}
|
|
187
|
+
if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.LOCAL) {
|
|
188
|
+
context.runtime.trmPackage.manifest.registry = FileSystem_1.LOCAL_RESERVED_KEYWORD;
|
|
189
|
+
}
|
|
190
|
+
else if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.PRIVATE) {
|
|
191
|
+
context.runtime.trmPackage.manifest.registry = context.rawInput.packageData.registry.endpoint;
|
|
192
|
+
}
|
|
193
|
+
if (!context.rawInput.contextData.noInquirer) {
|
|
194
|
+
const inq = yield inquirer_1.Inquirer.prompt([{
|
|
195
|
+
message: `Do you want to edit post activities?`,
|
|
196
|
+
type: 'confirm',
|
|
197
|
+
name: 'editPostActivities',
|
|
198
|
+
default: false
|
|
199
|
+
}, {
|
|
200
|
+
message: 'Editor post activities',
|
|
201
|
+
type: 'editor',
|
|
202
|
+
name: 'postActivities',
|
|
203
|
+
postfix: '.json',
|
|
204
|
+
when: (hash) => {
|
|
205
|
+
return hash.editPostActivities;
|
|
206
|
+
},
|
|
207
|
+
default: JSON.stringify(context.runtime.trmPackage.manifest.postActivities || [], null, 2),
|
|
208
|
+
validate: (input) => {
|
|
209
|
+
try {
|
|
210
|
+
const parsedInput = JSON.parse(input);
|
|
211
|
+
if (Array.isArray(parsedInput)) {
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
return 'Invalid array';
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch (e) {
|
|
219
|
+
return 'Invalid JSON';
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}]);
|
|
223
|
+
if (inq.postActivities) {
|
|
224
|
+
logger_1.Logger.log(`Post activities were manually changed: before -> ${JSON.stringify(context.runtime.trmPackage.manifest.postActivities)}, after -> ${JSON.parse(inq.postActivities)}`, true);
|
|
225
|
+
context.runtime.trmPackage.manifest.postActivities = JSON.parse(inq.postActivities);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (Array.isArray(context.runtime.trmPackage.manifest.postActivities) && context.runtime.trmPackage.manifest.postActivities.length > 0) {
|
|
229
|
+
var removedPostActivities = [];
|
|
230
|
+
logger_1.Logger.loading(`Checking post activities...`);
|
|
231
|
+
for (const data of context.runtime.trmPackage.manifest.postActivities) {
|
|
232
|
+
if (data.name) {
|
|
233
|
+
if (!removedPostActivities.find(c => c === data.name)) {
|
|
234
|
+
if (!(yield manifest_1.PostActivity.exists(data.name))) {
|
|
235
|
+
removedPostActivities.push(data.name.trim().toUpperCase());
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
removedPostActivities.forEach(name => {
|
|
241
|
+
logger_1.Logger.error(`Class "${name.trim().toUpperCase()}" does not exist and will be removed from post activities list.`);
|
|
242
|
+
context.runtime.trmPackage.manifest.postActivities = context.runtime.trmPackage.manifest.postActivities.filter(o => o.name !== name);
|
|
243
|
+
});
|
|
244
|
+
}
|
|
177
245
|
context.runtime.trmPackage.manifest = manifest_1.Manifest.normalize(context.runtime.trmPackage.manifest, false);
|
|
178
246
|
})
|
|
179
247
|
};
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.setReadme = void 0;
|
|
13
13
|
const logger_1 = require("../../logger");
|
|
14
14
|
const inquirer_1 = require("../../inquirer");
|
|
15
|
+
const registry_1 = require("../../registry");
|
|
15
16
|
exports.setReadme = {
|
|
16
17
|
name: 'set-readme',
|
|
17
18
|
filter: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -20,7 +21,13 @@ exports.setReadme = {
|
|
|
20
21
|
return false;
|
|
21
22
|
}
|
|
22
23
|
else {
|
|
23
|
-
|
|
24
|
+
if (context.rawInput.packageData.registry.getRegistryType() === registry_1.RegistryType.LOCAL) {
|
|
25
|
+
logger_1.Logger.log(`Skipping readme input (registry is local)`, true);
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
24
31
|
}
|
|
25
32
|
}),
|
|
26
33
|
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -22,11 +22,13 @@ export declare class RESTClient implements IClient {
|
|
|
22
22
|
createWbTransport(text: components.AS4TEXT, target?: components.TR_TARGET): Promise<components.TRKORR>;
|
|
23
23
|
setTransportDoc(trkorr: components.TRKORR, doc: struct.TLINE[]): Promise<void>;
|
|
24
24
|
getDevclassObjects(devclass: components.DEVCLASS): Promise<struct.TADIR[]>;
|
|
25
|
+
removeComments(trkorr: components.TRKORR, object: components.TROBJTYPE): Promise<void>;
|
|
25
26
|
addToTransportRequest(trkorr: components.TRKORR, content: struct.E071[], lock: boolean): Promise<void>;
|
|
26
27
|
repositoryEnvironment(objectType: components.SEU_OBJ, objectName: components.SOBJ_NAME): Promise<struct.SENVI[]>;
|
|
27
28
|
deleteTrkorr(trkorr: components.TRKORR): Promise<void>;
|
|
28
29
|
releaseTrkorr(trkorr: components.TRKORR, lock: boolean, timeout?: number): Promise<void>;
|
|
29
30
|
addSkipTrkorr(trkorr: components.TRKORR): Promise<void>;
|
|
31
|
+
removeSkipTrkorr(trkorr: components.TRKORR): Promise<void>;
|
|
30
32
|
addSrcTrkorr(trkorr: components.TRKORR): Promise<void>;
|
|
31
33
|
readTmsQueue(target: components.TMSSYSNAM): Promise<struct.STMSIQREQ[]>;
|
|
32
34
|
createPackage(scompkdtln: struct.SCOMPKDTLN): Promise<void>;
|
|
@@ -50,4 +52,13 @@ export declare class RESTClient implements IClient {
|
|
|
50
52
|
getExistingObjectsBulk(objects: struct.TADIR[]): Promise<struct.TADIR[]>;
|
|
51
53
|
addNamespace(namespace: components.NAMESPACE, replicense: components.TRNLICENSE, texts: struct.TRNSPACETT[]): Promise<void>;
|
|
52
54
|
getR3transInfo(): Promise<string>;
|
|
55
|
+
migrateTransport(trkorr: components.TRKORR): Promise<components.ZTRM_TRKORR>;
|
|
56
|
+
deleteTmsTransport(trkorr: components.TRKORR, system: components.TMSSYSNAM): Promise<void>;
|
|
57
|
+
refreshTransportTmsTxt(trkorr: components.TRKORR): Promise<void>;
|
|
58
|
+
getDotAbapgit(devclass: components.DEVCLASS): Promise<Buffer>;
|
|
59
|
+
getAbapgitSource(devclass: components.DEVCLASS): Promise<{
|
|
60
|
+
zip: Buffer;
|
|
61
|
+
objects: struct.TADIR[];
|
|
62
|
+
}>;
|
|
63
|
+
executePostActivity(data: Buffer): Promise<struct.SYMSG[]>;
|
|
53
64
|
}
|
|
@@ -46,6 +46,7 @@ exports.RESTClient = void 0;
|
|
|
46
46
|
const commons_1 = require("../commons");
|
|
47
47
|
const FormData = __importStar(require("form-data"));
|
|
48
48
|
const logger_1 = require("../logger");
|
|
49
|
+
const parse_multipart_data_1 = require("parse-multipart-data");
|
|
49
50
|
const AXIOS_CTX = "RestServer";
|
|
50
51
|
class RESTClient {
|
|
51
52
|
constructor(endpoint, rfcdest, _login, _cLangu) {
|
|
@@ -61,7 +62,7 @@ class RESTClient {
|
|
|
61
62
|
username: this._login.user,
|
|
62
63
|
password: this._login.passwd
|
|
63
64
|
},
|
|
64
|
-
timeout:
|
|
65
|
+
timeout: 30000,
|
|
65
66
|
}, AXIOS_CTX);
|
|
66
67
|
}
|
|
67
68
|
open() {
|
|
@@ -115,6 +116,7 @@ class RESTClient {
|
|
|
115
116
|
if (axiosError.response.data.log) {
|
|
116
117
|
rfcClientError.messageLog = axiosError.response.data.log;
|
|
117
118
|
}
|
|
119
|
+
rfcClientError.exceptionType = error.message;
|
|
118
120
|
logger_1.Logger.error(rfcClientError.toString(), true);
|
|
119
121
|
throw rfcClientError;
|
|
120
122
|
}));
|
|
@@ -149,49 +151,59 @@ class RESTClient {
|
|
|
149
151
|
}
|
|
150
152
|
readTable(tableName, fields, options) {
|
|
151
153
|
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
aSplit.
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
154
|
+
try {
|
|
155
|
+
var sqlOutput = [];
|
|
156
|
+
const delimiter = '|';
|
|
157
|
+
var aOptions = [];
|
|
158
|
+
if (options) {
|
|
159
|
+
const aSplit = options.split(/\s+AND\s+/);
|
|
160
|
+
if (aSplit.length > 1) {
|
|
161
|
+
aSplit.forEach((s, i) => {
|
|
162
|
+
var sText = s.trim();
|
|
163
|
+
if (i !== 0) {
|
|
164
|
+
sText = `AND ${sText}`;
|
|
165
|
+
}
|
|
166
|
+
aOptions.push({ text: sText });
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
aOptions = aSplit.map(s => {
|
|
171
|
+
return {
|
|
172
|
+
text: s
|
|
173
|
+
};
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const result = yield this._axiosInstance.get('/read_table', {
|
|
178
|
+
params: {
|
|
179
|
+
rfcdest: this.rfcdest
|
|
180
|
+
},
|
|
181
|
+
data: {
|
|
182
|
+
query_table: tableName.toUpperCase(),
|
|
183
|
+
delimiter,
|
|
184
|
+
options: aOptions,
|
|
185
|
+
fields: fields
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
const data = result.data;
|
|
189
|
+
data.forEach(tab512 => {
|
|
190
|
+
var sqlLine = {};
|
|
191
|
+
const waSplit = tab512.wa.split(delimiter);
|
|
192
|
+
fields.forEach((field, index) => {
|
|
193
|
+
sqlLine[field.fieldName] = waSplit[index].trim();
|
|
164
194
|
});
|
|
195
|
+
sqlOutput.push(sqlLine);
|
|
196
|
+
});
|
|
197
|
+
return (0, commons_1.normalize)(sqlOutput);
|
|
198
|
+
}
|
|
199
|
+
catch (e) {
|
|
200
|
+
if (e.message === 'TABLE_WITHOUT_DATA') {
|
|
201
|
+
return [];
|
|
165
202
|
}
|
|
166
203
|
else {
|
|
167
|
-
|
|
168
|
-
return {
|
|
169
|
-
text: s
|
|
170
|
-
};
|
|
171
|
-
});
|
|
204
|
+
throw e;
|
|
172
205
|
}
|
|
173
206
|
}
|
|
174
|
-
const result = yield this._axiosInstance.get('/read_table', {
|
|
175
|
-
params: {
|
|
176
|
-
rfcdest: this.rfcdest
|
|
177
|
-
},
|
|
178
|
-
data: {
|
|
179
|
-
query_table: tableName.toUpperCase(),
|
|
180
|
-
delimiter,
|
|
181
|
-
options: aOptions,
|
|
182
|
-
fields: fields
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
const data = result.data;
|
|
186
|
-
data.forEach(tab512 => {
|
|
187
|
-
var sqlLine = {};
|
|
188
|
-
const waSplit = tab512.wa.split(delimiter);
|
|
189
|
-
fields.forEach((field, index) => {
|
|
190
|
-
sqlLine[field.fieldName] = waSplit[index].trim();
|
|
191
|
-
});
|
|
192
|
-
sqlOutput.push(sqlLine);
|
|
193
|
-
});
|
|
194
|
-
return (0, commons_1.normalize)(sqlOutput);
|
|
195
207
|
});
|
|
196
208
|
}
|
|
197
209
|
getFileSystem() {
|
|
@@ -273,6 +285,16 @@ class RESTClient {
|
|
|
273
285
|
return result.tadir;
|
|
274
286
|
});
|
|
275
287
|
}
|
|
288
|
+
removeComments(trkorr, object) {
|
|
289
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
290
|
+
yield this._axiosInstance.delete('/remove_tr_comments', {
|
|
291
|
+
data: {
|
|
292
|
+
trkorr: trkorr.trim().toUpperCase(),
|
|
293
|
+
object: object.trim().toUpperCase()
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
}
|
|
276
298
|
addToTransportRequest(trkorr, content, lock) {
|
|
277
299
|
return __awaiter(this, void 0, void 0, function* () {
|
|
278
300
|
yield this._axiosInstance.put('/add_objs_tr', {
|
|
@@ -328,6 +350,15 @@ class RESTClient {
|
|
|
328
350
|
});
|
|
329
351
|
});
|
|
330
352
|
}
|
|
353
|
+
removeSkipTrkorr(trkorr) {
|
|
354
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
355
|
+
yield this._axiosInstance.delete('/remove_skip_trkorr', {
|
|
356
|
+
data: {
|
|
357
|
+
trkorr: trkorr.trim().toUpperCase()
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
});
|
|
361
|
+
}
|
|
331
362
|
addSrcTrkorr(trkorr) {
|
|
332
363
|
return __awaiter(this, void 0, void 0, function* () {
|
|
333
364
|
yield this._axiosInstance.put('/add_src_trkorr', {
|
|
@@ -511,5 +542,76 @@ class RESTClient {
|
|
|
511
542
|
return result.log;
|
|
512
543
|
});
|
|
513
544
|
}
|
|
545
|
+
migrateTransport(trkorr) {
|
|
546
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
547
|
+
const result = (yield this._axiosInstance.post('/migrate_transport', {
|
|
548
|
+
trkorr
|
|
549
|
+
})).data;
|
|
550
|
+
return result.trmTrkorr;
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
deleteTmsTransport(trkorr, system) {
|
|
554
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
555
|
+
yield this._axiosInstance.delete('/delete_transport', {
|
|
556
|
+
data: {
|
|
557
|
+
trkorr,
|
|
558
|
+
system
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
refreshTransportTmsTxt(trkorr) {
|
|
564
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
565
|
+
yield this._axiosInstance.post('/refresh_tms_transport_txt', {
|
|
566
|
+
trkorr
|
|
567
|
+
});
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
getDotAbapgit(devclass) {
|
|
571
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
572
|
+
const result = (yield this._axiosInstance.get('/get_dot_abapgit', {
|
|
573
|
+
responseType: 'arraybuffer',
|
|
574
|
+
headers: {
|
|
575
|
+
'Content-Type': 'application/octet-stream'
|
|
576
|
+
},
|
|
577
|
+
data: {
|
|
578
|
+
devclass
|
|
579
|
+
}
|
|
580
|
+
})).data;
|
|
581
|
+
return result;
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
getAbapgitSource(devclass) {
|
|
585
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
586
|
+
const { headers, data } = yield this._axiosInstance.get('/get_abapgit_source', {
|
|
587
|
+
responseType: 'arraybuffer',
|
|
588
|
+
headers: {
|
|
589
|
+
'Content-Type': 'multipart/mixed'
|
|
590
|
+
},
|
|
591
|
+
data: {
|
|
592
|
+
devclass
|
|
593
|
+
}
|
|
594
|
+
});
|
|
595
|
+
try {
|
|
596
|
+
const boundary = headers['content-type'].match(/boundary=([-0-9A-Za-z]+)/i)[1];
|
|
597
|
+
const parsedData = (0, parse_multipart_data_1.parse)(data, boundary);
|
|
598
|
+
return {
|
|
599
|
+
zip: parsedData.find(o => o.name === 'zip').data,
|
|
600
|
+
objects: JSON.parse(parsedData.find(o => o.name === 'objects').data.toString())
|
|
601
|
+
};
|
|
602
|
+
}
|
|
603
|
+
catch (e) {
|
|
604
|
+
throw new Error(`Can't parse api data.`);
|
|
605
|
+
}
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
executePostActivity(data) {
|
|
609
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
610
|
+
const result = (yield this._axiosInstance.post('/execute_post_activity', data, {
|
|
611
|
+
timeout: 60000
|
|
612
|
+
})).data;
|
|
613
|
+
return result.messages;
|
|
614
|
+
});
|
|
615
|
+
}
|
|
514
616
|
}
|
|
515
617
|
exports.RESTClient = RESTClient;
|
|
@@ -24,11 +24,13 @@ export declare class RFCClient implements IClient {
|
|
|
24
24
|
createWbTransport(text: components.AS4TEXT, target?: components.TR_TARGET): Promise<components.TRKORR>;
|
|
25
25
|
setTransportDoc(trkorr: components.TRKORR, doc: struct.TLINE[]): Promise<void>;
|
|
26
26
|
getDevclassObjects(devclass: components.DEVCLASS): Promise<struct.TADIR[]>;
|
|
27
|
+
removeComments(trkorr: components.TRKORR, object: components.TROBJTYPE): Promise<void>;
|
|
27
28
|
addToTransportRequest(trkorr: components.TRKORR, content: struct.E071[], lock: boolean): Promise<void>;
|
|
28
29
|
repositoryEnvironment(objectType: components.SEU_OBJ, objectName: components.SOBJ_NAME): Promise<struct.SENVI[]>;
|
|
29
30
|
deleteTrkorr(trkorr: components.TRKORR): Promise<void>;
|
|
30
31
|
releaseTrkorr(trkorr: components.TRKORR, lock: boolean, timeout?: number): Promise<void>;
|
|
31
32
|
addSkipTrkorr(trkorr: components.TRKORR): Promise<void>;
|
|
33
|
+
removeSkipTrkorr(trkorr: components.TRKORR): Promise<void>;
|
|
32
34
|
addSrcTrkorr(trkorr: components.TRKORR): Promise<void>;
|
|
33
35
|
readTmsQueue(target: components.TMSSYSNAM): Promise<struct.STMSIQREQ[]>;
|
|
34
36
|
createPackage(scompkdtln: struct.SCOMPKDTLN): Promise<void>;
|
|
@@ -49,4 +51,13 @@ export declare class RFCClient implements IClient {
|
|
|
49
51
|
trCopy(from: components.TRKORR, to: components.TRKORR, doc?: boolean): Promise<void>;
|
|
50
52
|
addNamespace(namespace: components.NAMESPACE, replicense: components.TRNLICENSE, texts: struct.TRNSPACETT[]): Promise<void>;
|
|
51
53
|
getR3transInfo(): Promise<string>;
|
|
54
|
+
migrateTransport(trkorr: components.TRKORR): Promise<components.ZTRM_TRKORR>;
|
|
55
|
+
deleteTmsTransport(trkorr: components.TRKORR, system: components.TMSSYSNAM): Promise<void>;
|
|
56
|
+
refreshTransportTmsTxt(trkorr: components.TRKORR): Promise<void>;
|
|
57
|
+
getDotAbapgit(devclass: components.DEVCLASS): Promise<Buffer>;
|
|
58
|
+
getAbapgitSource(devclass: components.DEVCLASS): Promise<{
|
|
59
|
+
zip: Buffer;
|
|
60
|
+
objects: struct.TADIR[];
|
|
61
|
+
}>;
|
|
62
|
+
executePostActivity(data: Buffer): Promise<struct.SYMSG[]>;
|
|
52
63
|
}
|
package/dist/client/RFCClient.js
CHANGED
|
@@ -158,6 +158,7 @@ class RFCClient {
|
|
|
158
158
|
if (messageError) {
|
|
159
159
|
rfcClientError.messageError = messageError;
|
|
160
160
|
}
|
|
161
|
+
rfcClientError.exceptionType = e.key;
|
|
161
162
|
logger_1.Logger.error(rfcClientError.toString(), true);
|
|
162
163
|
throw rfcClientError;
|
|
163
164
|
}
|
|
@@ -173,10 +174,19 @@ class RFCClient {
|
|
|
173
174
|
const aT100 = yield this._readTable(noErrorParsing, 'T100', [{ fieldName: 'SPRSL' }, { fieldName: 'ARBGB' }, { fieldName: 'MSGNR' }, { fieldName: 'TEXT' }], `SPRSL EQ '${this._cLangu}' AND ARBGB EQ '${data.class}' AND MSGNR EQ '${msgnr}'`);
|
|
174
175
|
if (aT100.length === 1 && aT100[0].text) {
|
|
175
176
|
var msg = aT100[0].text;
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
177
|
+
var counter = 1;
|
|
178
|
+
do {
|
|
179
|
+
if (msg.includes(`&${counter}`)) {
|
|
180
|
+
msg = msg.replace(new RegExp(`&${counter}`, 'gmi'), data[`v${counter}`] || '');
|
|
181
|
+
msg = msg.replace(new RegExp(`&${counter}&`, 'gmi'), data[`v${counter}`] || '');
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
msg = msg.replace("&", data[`v${counter}`] || '');
|
|
185
|
+
}
|
|
186
|
+
counter++;
|
|
187
|
+
} while (counter <= 4);
|
|
188
|
+
msg = msg.replace(new RegExp(`&\\d*`, 'gmi'), '');
|
|
189
|
+
msg = msg.replace(new RegExp(`&`, 'gmi'), '');
|
|
180
190
|
return msg.trim();
|
|
181
191
|
}
|
|
182
192
|
else {
|
|
@@ -213,22 +223,32 @@ class RFCClient {
|
|
|
213
223
|
});
|
|
214
224
|
}
|
|
215
225
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
226
|
+
try {
|
|
227
|
+
const result = yield this._call("RFC_READ_TABLE", {
|
|
228
|
+
query_table: tableName.toUpperCase(),
|
|
229
|
+
delimiter,
|
|
230
|
+
options: aOptions,
|
|
231
|
+
fields: fields
|
|
232
|
+
}, undefined, noErrorParsing);
|
|
233
|
+
const data = result['data'];
|
|
234
|
+
data.forEach(tab512 => {
|
|
235
|
+
var sqlLine = {};
|
|
236
|
+
const waSplit = tab512.wa.split(delimiter);
|
|
237
|
+
fields.forEach((field, index) => {
|
|
238
|
+
sqlLine[field['FIELDNAME']] = waSplit[index].trim();
|
|
239
|
+
});
|
|
240
|
+
sqlOutput.push(sqlLine);
|
|
228
241
|
});
|
|
229
|
-
|
|
230
|
-
}
|
|
231
|
-
|
|
242
|
+
return (0, commons_1.normalize)(sqlOutput);
|
|
243
|
+
}
|
|
244
|
+
catch (e) {
|
|
245
|
+
if (e.exceptionType === 'TABLE_WITHOUT_DATA') {
|
|
246
|
+
return [];
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
throw e;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
232
252
|
});
|
|
233
253
|
}
|
|
234
254
|
readTable(tableName, fields, options) {
|
|
@@ -298,6 +318,14 @@ class RFCClient {
|
|
|
298
318
|
return result['etTadir'];
|
|
299
319
|
});
|
|
300
320
|
}
|
|
321
|
+
removeComments(trkorr, object) {
|
|
322
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
323
|
+
yield this._call("ZTRM_REMOVE_TR_COMMENTS", {
|
|
324
|
+
iv_trkorr: trkorr.trim().toUpperCase(),
|
|
325
|
+
iv_object: object.trim().toUpperCase()
|
|
326
|
+
});
|
|
327
|
+
});
|
|
328
|
+
}
|
|
301
329
|
addToTransportRequest(trkorr, content, lock) {
|
|
302
330
|
return __awaiter(this, void 0, void 0, function* () {
|
|
303
331
|
yield this._call("ZTRM_ADD_OBJS_TR", {
|
|
@@ -344,6 +372,13 @@ class RFCClient {
|
|
|
344
372
|
});
|
|
345
373
|
});
|
|
346
374
|
}
|
|
375
|
+
removeSkipTrkorr(trkorr) {
|
|
376
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
377
|
+
yield this._call("ZTRM_REMOVE_SKIP_TRKORR", {
|
|
378
|
+
iv_trkorr: trkorr.trim().toUpperCase()
|
|
379
|
+
});
|
|
380
|
+
});
|
|
381
|
+
}
|
|
347
382
|
addSrcTrkorr(trkorr) {
|
|
348
383
|
return __awaiter(this, void 0, void 0, function* () {
|
|
349
384
|
yield this._call("ZTRM_ADD_SRC_TRKORR", {
|
|
@@ -497,5 +532,55 @@ class RFCClient {
|
|
|
497
532
|
return result['evLog'];
|
|
498
533
|
});
|
|
499
534
|
}
|
|
535
|
+
migrateTransport(trkorr) {
|
|
536
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
537
|
+
const result = yield this._call("ZTRM_MIGRATE_TRANSPORT", {
|
|
538
|
+
iv_trkorr: trkorr
|
|
539
|
+
});
|
|
540
|
+
return result['evTrmTrkorr'];
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
deleteTmsTransport(trkorr, system) {
|
|
544
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
545
|
+
yield this._call("ZTRM_DEL_TRANSPORT_TMS", {
|
|
546
|
+
iv_trkorr: trkorr,
|
|
547
|
+
iv_system: system
|
|
548
|
+
});
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
refreshTransportTmsTxt(trkorr) {
|
|
552
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
553
|
+
yield this._call("ZTRM_REFRESH_TR_TMS_TXT", {
|
|
554
|
+
iv_trkorr: trkorr
|
|
555
|
+
});
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
getDotAbapgit(devclass) {
|
|
559
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
560
|
+
const result = yield this._call("ZTRM_GET_DOT_ABAPGIT", {
|
|
561
|
+
iv_devclass: devclass
|
|
562
|
+
});
|
|
563
|
+
return result['evDotAbapgit'];
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
getAbapgitSource(devclass) {
|
|
567
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
568
|
+
const result = yield this._call("ZTRM_GET_ABAPGIT_SOURCE", {
|
|
569
|
+
iv_devclass: devclass
|
|
570
|
+
});
|
|
571
|
+
return {
|
|
572
|
+
zip: result['evZip'],
|
|
573
|
+
objects: result['etObjects']
|
|
574
|
+
};
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
executePostActivity(data) {
|
|
578
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
579
|
+
const result = yield this._call("ZTRM_EXECUTE_POST_ACTIVITY", {
|
|
580
|
+
iv_data: data
|
|
581
|
+
});
|
|
582
|
+
return result['etMessages'];
|
|
583
|
+
});
|
|
584
|
+
}
|
|
500
585
|
}
|
|
501
586
|
exports.RFCClient = RFCClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type LANGU = string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SEOCLSNAME = string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SEODESCR = string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SYMSGID = string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SYMSGNO = string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SYMSGTY = string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type SYMSGV = string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type TRSTATUS = string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ZTRM_TRKORR = string;
|
|
@@ -45,3 +45,12 @@ export * from "./NAMESPACE";
|
|
|
45
45
|
export * from "./TRNLICENSE";
|
|
46
46
|
export * from "./NSP_TEXT";
|
|
47
47
|
export * from "./NSP_OWNER";
|
|
48
|
+
export * from "./TRSTATUS";
|
|
49
|
+
export * from "./ZTRM_TRKORR";
|
|
50
|
+
export * from "./SYMSGTY";
|
|
51
|
+
export * from "./SYMSGID";
|
|
52
|
+
export * from "./SYMSGNO";
|
|
53
|
+
export * from "./SYMSGV";
|
|
54
|
+
export * from "./SEOCLSNAME";
|
|
55
|
+
export * from "./LANGU";
|
|
56
|
+
export * from "./SEODESCR";
|