trm-core 6.2.5 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/changelog.txt +29 -0
  2. package/dist/abapgit/DotAbapGit.d.ts +8 -0
  3. package/dist/abapgit/DotAbapGit.js +80 -0
  4. package/dist/abapgit/index.d.ts +1 -0
  5. package/dist/abapgit/index.js +17 -0
  6. package/dist/actions/checkPackageDependencies/analyze.js +1 -1
  7. package/dist/actions/findDependencies/parseSenvi.js +3 -0
  8. package/dist/actions/findDependencies/setTrmDependencies.js +93 -36
  9. package/dist/actions/install/checkTransports.js +71 -1
  10. package/dist/actions/install/executePostActivities.d.ts +3 -0
  11. package/dist/actions/install/executePostActivities.js +62 -0
  12. package/dist/actions/install/generateInstallTransport.js +1 -0
  13. package/dist/actions/install/importCustTransport.js +1 -0
  14. package/dist/actions/install/importDevcTransport.js +4 -0
  15. package/dist/actions/install/importLangTransport.js +1 -0
  16. package/dist/actions/install/importTadirTransport.js +2 -0
  17. package/dist/actions/install/index.d.ts +9 -4
  18. package/dist/actions/install/index.js +7 -1
  19. package/dist/actions/install/init.js +19 -3
  20. package/dist/actions/install/installDependencies.js +1 -9
  21. package/dist/actions/install/migrate.d.ts +3 -0
  22. package/dist/actions/install/migrate.js +35 -0
  23. package/dist/actions/install/readTadir.js +41 -2
  24. package/dist/actions/install/refreshTmsTxt.d.ts +3 -0
  25. package/dist/actions/install/refreshTmsTxt.js +33 -0
  26. package/dist/actions/install/setInstallDevclass.js +11 -1
  27. package/dist/actions/installDependency/index.d.ts +2 -2
  28. package/dist/actions/installDependency/init.js +4 -0
  29. package/dist/actions/publish/findDependencies.js +20 -15
  30. package/dist/actions/publish/generateCustTransport.js +2 -0
  31. package/dist/actions/publish/generateDevcTransport.js +2 -0
  32. package/dist/actions/publish/generateLangTransport.js +4 -0
  33. package/dist/actions/publish/generateTadirTransport.js +15 -1
  34. package/dist/actions/publish/getSourceCode.d.ts +3 -0
  35. package/dist/actions/publish/getSourceCode.js +36 -0
  36. package/dist/actions/publish/index.d.ts +12 -3
  37. package/dist/actions/publish/index.js +2 -0
  38. package/dist/actions/publish/init.js +10 -2
  39. package/dist/actions/publish/publishToRegistry.js +5 -1
  40. package/dist/actions/publish/setManifestValues.js +69 -1
  41. package/dist/actions/publish/setReadme.js +8 -1
  42. package/dist/client/RESTClient.d.ts +11 -0
  43. package/dist/client/RESTClient.js +91 -0
  44. package/dist/client/RFCClient.d.ts +11 -0
  45. package/dist/client/RFCClient.js +104 -19
  46. package/dist/client/components/LANGU.d.ts +1 -0
  47. package/dist/client/components/LANGU.js +2 -0
  48. package/dist/client/components/SEOCLSNAME.d.ts +1 -0
  49. package/dist/client/components/SEOCLSNAME.js +2 -0
  50. package/dist/client/components/SEODESCR.d.ts +1 -0
  51. package/dist/client/components/SEODESCR.js +2 -0
  52. package/dist/client/components/SYMSGID.d.ts +1 -0
  53. package/dist/client/components/SYMSGID.js +2 -0
  54. package/dist/client/components/SYMSGNO.d.ts +1 -0
  55. package/dist/client/components/SYMSGNO.js +2 -0
  56. package/dist/client/components/SYMSGTY.d.ts +1 -0
  57. package/dist/client/components/SYMSGTY.js +2 -0
  58. package/dist/client/components/SYMSGV.d.ts +1 -0
  59. package/dist/client/components/SYMSGV.js +2 -0
  60. package/dist/client/components/TRSTATUS.d.ts +1 -0
  61. package/dist/client/components/TRSTATUS.js +2 -0
  62. package/dist/client/components/ZTRM_TRKORR.d.ts +1 -0
  63. package/dist/client/components/ZTRM_TRKORR.js +2 -0
  64. package/dist/client/components/index.d.ts +9 -0
  65. package/dist/client/components/index.js +9 -0
  66. package/dist/client/struct/E070.d.ts +2 -1
  67. package/dist/client/struct/SEOCLASSTX.d.ts +6 -0
  68. package/dist/client/struct/SEOCLASSTX.js +2 -0
  69. package/dist/client/struct/SYMSG.d.ts +10 -0
  70. package/dist/client/struct/SYMSG.js +2 -0
  71. package/dist/client/struct/index.d.ts +2 -0
  72. package/dist/client/struct/index.js +2 -0
  73. package/dist/commons/checkCoreTrmDependencies.d.ts +7 -0
  74. package/dist/commons/checkCoreTrmDependencies.js +49 -0
  75. package/dist/commons/getCoreTrmDependencies.d.ts +3 -0
  76. package/dist/commons/getCoreTrmDependencies.js +8 -0
  77. package/dist/commons/getNodePackage.d.ts +1 -0
  78. package/dist/commons/getNodePackage.js +61 -0
  79. package/dist/commons/index.d.ts +3 -0
  80. package/dist/commons/index.js +3 -0
  81. package/dist/logger/CliLogger.d.ts +1 -0
  82. package/dist/logger/CliLogger.js +19 -0
  83. package/dist/logger/ConsoleLogger.d.ts +1 -0
  84. package/dist/logger/ConsoleLogger.js +19 -0
  85. package/dist/logger/DummyLogger.d.ts +1 -0
  86. package/dist/logger/DummyLogger.js +1 -0
  87. package/dist/logger/ILogger.d.ts +1 -0
  88. package/dist/logger/Logger.d.ts +1 -0
  89. package/dist/logger/Logger.js +5 -0
  90. package/dist/manifest/Manifest.d.ts +1 -0
  91. package/dist/manifest/Manifest.js +69 -5
  92. package/dist/manifest/PostActivity.d.ts +11 -0
  93. package/dist/manifest/PostActivity.js +150 -0
  94. package/dist/manifest/TrmManifest.d.ts +1 -0
  95. package/dist/manifest/TrmManifestBase.d.ts +2 -0
  96. package/dist/manifest/TrmManifestNamespace.d.ts +1 -0
  97. package/dist/manifest/TrmManifestPostActivity.d.ts +7 -0
  98. package/dist/manifest/TrmManifestPostActivity.js +2 -0
  99. package/dist/manifest/index.d.ts +2 -0
  100. package/dist/manifest/index.js +2 -0
  101. package/dist/registry/AbstractRegistry.d.ts +19 -0
  102. package/dist/registry/AbstractRegistry.js +6 -0
  103. package/dist/registry/FileSystem.d.ts +23 -0
  104. package/dist/registry/FileSystem.js +161 -0
  105. package/dist/registry/Registry.d.ts +4 -3
  106. package/dist/registry/Registry.js +8 -5
  107. package/dist/registry/RegistryProvider.d.ts +5 -0
  108. package/dist/registry/RegistryProvider.js +35 -0
  109. package/dist/registry/RegistryType.d.ts +2 -1
  110. package/dist/registry/RegistryType.js +1 -0
  111. package/dist/registry/index.d.ts +3 -1
  112. package/dist/registry/index.js +3 -1
  113. package/dist/systemConnector/ISystemConnector.d.ts +11 -0
  114. package/dist/systemConnector/ISystemConnectorBase.d.ts +4 -3
  115. package/dist/systemConnector/RESTSystemConnector.d.ts +11 -0
  116. package/dist/systemConnector/RESTSystemConnector.js +40 -0
  117. package/dist/systemConnector/RFCSystemConnector.d.ts +11 -0
  118. package/dist/systemConnector/RFCSystemConnector.js +40 -0
  119. package/dist/systemConnector/SystemConnector.d.ts +15 -3
  120. package/dist/systemConnector/SystemConnector.js +65 -2
  121. package/dist/systemConnector/SystemConnectorBase.d.ts +8 -5
  122. package/dist/systemConnector/SystemConnectorBase.js +86 -41
  123. package/dist/transport/Transport.d.ts +13 -3
  124. package/dist/transport/Transport.js +124 -39
  125. package/dist/trmPackage/TrmArtifact.d.ts +9 -2
  126. package/dist/trmPackage/TrmArtifact.js +30 -9
  127. package/dist/trmPackage/TrmPackage.d.ts +6 -6
  128. package/dist/trmPackage/TrmPackage.js +1 -2
  129. package/package.json +18 -8
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.checkCoreTrmDependencies = checkCoreTrmDependencies;
13
+ const getCoreTrmDependencies_1 = require("./getCoreTrmDependencies");
14
+ const registry_1 = require("../registry");
15
+ const systemConnector_1 = require("../systemConnector");
16
+ const semver_1 = require("semver");
17
+ function checkCoreTrmDependencies(systemPackages) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ var returnData = {
20
+ dependencies: [],
21
+ versionNotSatisfiedDependencies: [],
22
+ missingDependencies: []
23
+ };
24
+ const trmDependencies = (0, getCoreTrmDependencies_1.getCoreTrmDependencies)();
25
+ if (trmDependencies && Object.keys(trmDependencies).length > 0) {
26
+ const oPublicRegistry = registry_1.RegistryProvider.getRegistry();
27
+ if (!systemPackages) {
28
+ systemPackages = yield systemConnector_1.SystemConnector.getInstalledPackages(true);
29
+ }
30
+ Object.keys(trmDependencies).forEach(packageName => {
31
+ const versionRange = trmDependencies[packageName];
32
+ const installedPackage = systemPackages.find(o => o.packageName === packageName && o.compareRegistry(oPublicRegistry));
33
+ if (!installedPackage || !installedPackage.manifest) {
34
+ returnData.missingDependencies.push(packageName);
35
+ }
36
+ else {
37
+ const installedVersion = installedPackage.manifest.get().version;
38
+ if (!(0, semver_1.satisfies)(installedVersion, versionRange)) {
39
+ returnData.versionNotSatisfiedDependencies.push(installedPackage);
40
+ }
41
+ else {
42
+ returnData.dependencies.push(installedPackage);
43
+ }
44
+ }
45
+ });
46
+ }
47
+ return returnData;
48
+ });
49
+ }
@@ -0,0 +1,3 @@
1
+ export declare function getCoreTrmDependencies(): {
2
+ [key: string]: string;
3
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCoreTrmDependencies = getCoreTrmDependencies;
4
+ const getNodePackage_1 = require("./getNodePackage");
5
+ function getCoreTrmDependencies() {
6
+ const nodePackage = (0, getNodePackage_1.getNodePackage)();
7
+ return nodePackage.trmDependencies || {};
8
+ }
@@ -0,0 +1 @@
1
+ export declare function getNodePackage(): any;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getNodePackage = getNodePackage;
40
+ const fs = __importStar(require("fs"));
41
+ const path_1 = __importDefault(require("path"));
42
+ const get_root_path_1 = require("get-root-path");
43
+ const logger_1 = require("../logger");
44
+ function getNodePackage() {
45
+ var file;
46
+ var packageData;
47
+ logger_1.Logger.log(`root path: ${get_root_path_1.rootPath}`, true);
48
+ 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"));
53
+ }
54
+ if (file) {
55
+ packageData = JSON.parse(file.toString());
56
+ }
57
+ if (!packageData || packageData.name !== 'trm-core') {
58
+ throw new Error(`package.json not found!`);
59
+ }
60
+ return packageData;
61
+ }
@@ -11,3 +11,6 @@ export * from "./getPackageNamespace";
11
11
  export * from "./LogTableStruct";
12
12
  export * from "./getAxiosInstance";
13
13
  export * from "./getNpmGlobalPath";
14
+ export * from "./getNodePackage";
15
+ export * from "./getCoreTrmDependencies";
16
+ export * from "./checkCoreTrmDependencies";
@@ -27,3 +27,6 @@ __exportStar(require("./getPackageNamespace"), exports);
27
27
  __exportStar(require("./LogTableStruct"), exports);
28
28
  __exportStar(require("./getAxiosInstance"), exports);
29
29
  __exportStar(require("./getNpmGlobalPath"), exports);
30
+ __exportStar(require("./getNodePackage"), exports);
31
+ __exportStar(require("./getCoreTrmDependencies"), exports);
32
+ __exportStar(require("./checkCoreTrmDependencies"), exports);
@@ -21,4 +21,5 @@ export declare class CliLogger implements ILogger {
21
21
  setPrefix(text: string): void;
22
22
  removePrefix(): void;
23
23
  getPrefix(): string;
24
+ msgty(msgty: string, text: string, debug?: boolean): void;
24
25
  }
@@ -204,5 +204,24 @@ class CliLogger {
204
204
  getPrefix() {
205
205
  return this._prefix;
206
206
  }
207
+ msgty(msgty, text, debug) {
208
+ switch (msgty) {
209
+ case 'A':
210
+ this.error(text, debug);
211
+ break;
212
+ case 'E':
213
+ this.error(text, debug);
214
+ break;
215
+ case 'I':
216
+ this.info(text, debug);
217
+ break;
218
+ case 'S':
219
+ this.success(text, debug);
220
+ break;
221
+ case 'W':
222
+ this.warning(text, debug);
223
+ break;
224
+ }
225
+ }
207
226
  }
208
227
  exports.CliLogger = CliLogger;
@@ -17,4 +17,5 @@ export declare class ConsoleLogger implements ILogger {
17
17
  setPrefix(text: string): void;
18
18
  removePrefix(): void;
19
19
  getPrefix(): string;
20
+ msgty(msgty: string, text: string, debug?: boolean): void;
20
21
  }
@@ -81,5 +81,24 @@ class ConsoleLogger {
81
81
  getPrefix() {
82
82
  return this._prefix;
83
83
  }
84
+ msgty(msgty, text, debug) {
85
+ switch (msgty) {
86
+ case 'A':
87
+ this.error(text, debug);
88
+ break;
89
+ case 'E':
90
+ this.error(text, debug);
91
+ break;
92
+ case 'I':
93
+ this.info(text, debug);
94
+ break;
95
+ case 'S':
96
+ this.success(text, debug);
97
+ break;
98
+ case 'W':
99
+ this.warning(text, debug);
100
+ break;
101
+ }
102
+ }
84
103
  }
85
104
  exports.ConsoleLogger = ConsoleLogger;
@@ -16,4 +16,5 @@ export declare class DummyLogger implements ILogger {
16
16
  setPrefix(text: string): void;
17
17
  removePrefix(): void;
18
18
  getPrefix(): string;
19
+ msgty(msgty: string, text: string, debug?: boolean): void;
19
20
  }
@@ -17,5 +17,6 @@ class DummyLogger {
17
17
  getPrefix() {
18
18
  return '';
19
19
  }
20
+ msgty(msgty, text, debug) { }
20
21
  }
21
22
  exports.DummyLogger = DummyLogger;
@@ -14,4 +14,5 @@ export interface ILogger {
14
14
  table: (header: string[], data: string[][], debug?: boolean) => void;
15
15
  registryResponse: (response: ResponseMessage, debug?: boolean) => void;
16
16
  tree: (data: TreeLog, debug?: boolean) => void;
17
+ msgty: (msgty: string, text: string, debug?: boolean) => void;
17
18
  }
@@ -17,4 +17,5 @@ export declare namespace Logger {
17
17
  function setPrefix(text: string): void;
18
18
  function removePrefix(): void;
19
19
  function getPrefix(): string;
20
+ function msgty(msgty: string, text: string, debug?: boolean): void;
20
21
  }
@@ -78,4 +78,9 @@ var Logger;
78
78
  return Logger.logger.getPrefix();
79
79
  }
80
80
  Logger.getPrefix = getPrefix;
81
+ function msgty(msgty, text, debug) {
82
+ checkLogger();
83
+ return Logger.logger.msgty(msgty, text, debug);
84
+ }
85
+ Logger.msgty = msgty;
81
86
  })(Logger || (exports.Logger = Logger = {}));
@@ -8,6 +8,7 @@ export declare class Manifest {
8
8
  get(keepRuntimeValues?: boolean): TrmManifest;
9
9
  getKey(keepVersion?: boolean): string;
10
10
  setDistFolder(dist: string): Manifest;
11
+ setSrcFolder(src: string): Manifest;
11
12
  setLinkedTransport(transport: Transport): Manifest;
12
13
  getLinkedTransport(): Transport | null;
13
14
  setRegistryEndpoint(endpoint: string): void;
@@ -45,7 +45,7 @@ const registry_1 = require("../registry");
45
45
  const normalize_url_1 = __importDefault(require("@esm2cjs/normalize-url"));
46
46
  const email_validator_1 = require("email-validator");
47
47
  const SpdxLicenseIds = __importStar(require("spdx-license-ids/index.json"));
48
- const xmldom_1 = require("xmldom");
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
51
  const logger_1 = require("../logger");
@@ -76,6 +76,10 @@ class Manifest {
76
76
  this._manifest.distFolder = dist;
77
77
  return this;
78
78
  }
79
+ setSrcFolder(src) {
80
+ this._manifest.srcFolder = src;
81
+ return this;
82
+ }
79
83
  setLinkedTransport(transport) {
80
84
  this._manifest.linkedTransport = transport;
81
85
  return this;
@@ -112,6 +116,11 @@ class Manifest {
112
116
  }
113
117
  }
114
118
  };
119
+ if (manifest.registry) {
120
+ oAbapXml['asx:abap']['asx:values']['TRM_MANIFEST']['REGISTRY'] = {
121
+ "_text": manifest.registry
122
+ };
123
+ }
115
124
  if (manifest.description) {
116
125
  oAbapXml['asx:abap']['asx:values']['TRM_MANIFEST']['DESCRIPTION'] = {
117
126
  "_text": manifest.description
@@ -175,6 +184,11 @@ class Manifest {
175
184
  };
176
185
  }
177
186
  }
187
+ if (manifest.namespace.ns) {
188
+ oAbapXml['asx:abap']['asx:values']['TRM_MANIFEST']['NS'] = {
189
+ "_text": manifest.namespace.ns
190
+ };
191
+ }
178
192
  }
179
193
  if (manifest.authors) {
180
194
  var authors = [];
@@ -280,14 +294,13 @@ class Manifest {
280
294
  }
281
295
  getPackage() {
282
296
  const manifest = this.get(true);
283
- const registry = new registry_1.Registry(manifest.registry || registry_1.PUBLIC_RESERVED_KEYWORD);
297
+ const registry = registry_1.RegistryProvider.getRegistry(manifest.registry);
284
298
  return new trmPackage_1.TrmPackage(manifest.name, registry, this);
285
299
  }
286
300
  static normalize(manifest, keepRuntimeValues) {
287
301
  var manifestClone = lodash_1.default.cloneDeep(manifest);
288
302
  if (!keepRuntimeValues) {
289
303
  delete manifestClone.linkedTransport;
290
- delete manifestClone.registry;
291
304
  }
292
305
  if (!manifestClone.name) {
293
306
  throw new Error('Package name missing.');
@@ -304,6 +317,11 @@ class Manifest {
304
317
  throw new Error('Invalid package version declared.');
305
318
  }
306
319
  }
320
+ if (manifestClone.registry) {
321
+ if (manifestClone.registry === registry_1.PUBLIC_RESERVED_KEYWORD) {
322
+ delete manifestClone.registry;
323
+ }
324
+ }
307
325
  manifestClone.private = manifestClone.private ? true : false;
308
326
  manifestClone.backwardsCompatible = manifestClone.backwardsCompatible ? true : false;
309
327
  if (manifestClone.git) {
@@ -506,6 +524,49 @@ class Manifest {
506
524
  else {
507
525
  delete manifestClone.distFolder;
508
526
  }
527
+ if (manifestClone.srcFolder) {
528
+ try {
529
+ manifestClone.srcFolder = manifestClone.srcFolder.replace(/^\//, '');
530
+ manifestClone.srcFolder = manifestClone.srcFolder.replace(/\/$/, '');
531
+ }
532
+ catch (e) {
533
+ delete manifestClone.srcFolder;
534
+ }
535
+ }
536
+ else {
537
+ delete manifestClone.srcFolder;
538
+ }
539
+ if (manifestClone.postActivities && manifestClone.postActivities.length > 0) {
540
+ var originalPostActivities = manifestClone.postActivities;
541
+ delete manifestClone.postActivities;
542
+ originalPostActivities.forEach((pa) => {
543
+ if (!pa.name) {
544
+ throw new Error(`Invalid post activity: name must be declared.`);
545
+ }
546
+ pa.name = pa.name.toUpperCase();
547
+ if (Array.isArray(pa.parameters)) {
548
+ manifestClone.postActivities = [];
549
+ pa.parameters.forEach(param => {
550
+ if (!param.name) {
551
+ throw new Error(`Invalid post activity: parameter name must be declared.`);
552
+ }
553
+ param.name = param.name.toUpperCase();
554
+ });
555
+ manifestClone.postActivities.push({
556
+ name: pa.name,
557
+ parameters: pa.parameters
558
+ });
559
+ }
560
+ else {
561
+ manifestClone.postActivities.push({
562
+ name: pa.name
563
+ });
564
+ }
565
+ });
566
+ }
567
+ else {
568
+ delete manifestClone.postActivities;
569
+ }
509
570
  return manifestClone;
510
571
  }
511
572
  static fromAbapXml(sXml) {
@@ -545,7 +606,7 @@ class Manifest {
545
606
  manifest.private = oAbapManifest.private.text === 'X';
546
607
  }
547
608
  if (oAbapManifest.registry && oAbapManifest.registry.text) {
548
- manifest.registry = oAbapManifest.registry;
609
+ manifest.registry = oAbapManifest.registry.text;
549
610
  }
550
611
  if (oAbapManifest.git && oAbapManifest.git.text) {
551
612
  manifest.git = oAbapManifest.git.text;
@@ -556,11 +617,14 @@ class Manifest {
556
617
  if (oAbapManifest.license && oAbapManifest.license.text) {
557
618
  manifest.license = oAbapManifest.license.text;
558
619
  }
559
- if (oAbapManifest.replicense) {
620
+ if (oAbapManifest.replicense && oAbapManifest.replicense.text) {
560
621
  manifest.namespace = {
561
622
  replicense: oAbapManifest.replicense.text,
562
623
  texts: []
563
624
  };
625
+ if (oAbapManifest.ns && oAbapManifest.ns.text) {
626
+ manifest.namespace.ns = oAbapManifest.ns.text;
627
+ }
564
628
  if (oAbapManifest.replicenseT && oAbapManifest.replicenseT.item) {
565
629
  if (Array.isArray(oAbapManifest.replicenseT.item)) {
566
630
  manifest.namespace.texts = oAbapManifest.replicenseT.item.map(o => {
@@ -0,0 +1,11 @@
1
+ import { TrmManifestPostActivity } from "./TrmManifestPostActivity";
2
+ export declare class PostActivity {
3
+ data: TrmManifestPostActivity;
4
+ private _xml;
5
+ private _descriptions;
6
+ constructor(data: TrmManifestPostActivity);
7
+ execute(silent?: boolean): Promise<void>;
8
+ getDescription(): Promise<string>;
9
+ private getAbapXml;
10
+ static exists(className: string): Promise<boolean>;
11
+ }
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.PostActivity = void 0;
46
+ const systemConnector_1 = require("../systemConnector");
47
+ const xml = __importStar(require("xml-js"));
48
+ const logger_1 = require("../logger");
49
+ class PostActivity {
50
+ constructor(data) {
51
+ this.data = data;
52
+ this._xml = this.getAbapXml(this.data);
53
+ if (!this._xml) {
54
+ throw new Error(`Can't parse post activity.`);
55
+ }
56
+ }
57
+ execute(silent) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ logger_1.Logger.loading(`Executing post activity: ${this.data.name}`, silent);
60
+ if (!PostActivity.exists(this.data.name)) {
61
+ throw new Error(`Class "${this.data.name}" doesn't exist.`);
62
+ }
63
+ const description = yield this.getDescription();
64
+ logger_1.Logger.loading(`Executing post activity: ${description}`, silent);
65
+ const messages = yield systemConnector_1.SystemConnector.executePostActivity(Buffer.from(this._xml, 'utf8'));
66
+ if (messages && messages.length > 0) {
67
+ for (const message of messages) {
68
+ const parsedMessage = yield systemConnector_1.SystemConnector.getMessage({
69
+ class: message.msgid,
70
+ no: message.msgno,
71
+ v1: message.msgv1,
72
+ v2: message.msgv2,
73
+ v3: message.msgv3,
74
+ v4: message.msgv4,
75
+ });
76
+ logger_1.Logger.msgty(message.msgty, parsedMessage, silent);
77
+ }
78
+ }
79
+ else {
80
+ logger_1.Logger.success(`Executed post activity: ${this.getDescription()}`, silent);
81
+ }
82
+ });
83
+ }
84
+ getDescription() {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ if (this._descriptions === undefined) {
87
+ this._descriptions = yield systemConnector_1.SystemConnector.readClassDescriptions(this.data.name);
88
+ }
89
+ if (!this._descriptions || this._descriptions.length === 0) {
90
+ return this.data.name || `Unknown`;
91
+ }
92
+ else {
93
+ if (this._descriptions.find(o => o.langu === systemConnector_1.SystemConnector.getLogonLanguage(true))) {
94
+ return this._descriptions.find(o => o.langu === systemConnector_1.SystemConnector.getLogonLanguage(true)).descript;
95
+ }
96
+ else {
97
+ return this._descriptions[0].descript;
98
+ }
99
+ }
100
+ });
101
+ }
102
+ getAbapXml(data) {
103
+ var oAbapXml = {
104
+ "_declaration": {
105
+ "_attributes": {
106
+ "version": "1.0",
107
+ "encoding": "utf-8"
108
+ }
109
+ },
110
+ "asx:abap": {
111
+ "_attributes": {
112
+ "xmlns:asx": "http://www.sap.com/abapxml",
113
+ "version": "1.0"
114
+ },
115
+ "asx:values": {
116
+ "DATA": {
117
+ "NAME": {
118
+ "_text": data.name
119
+ }
120
+ }
121
+ }
122
+ }
123
+ };
124
+ if (Array.isArray(data.parameters)) {
125
+ var parameters = data.parameters.map(param => {
126
+ return {
127
+ "NAME": {
128
+ "_text": param.name
129
+ },
130
+ "VALUE": {
131
+ "_text": param.value || ''
132
+ }
133
+ };
134
+ });
135
+ if (parameters.length > 0) {
136
+ oAbapXml['asx:abap']['asx:values']['DATA']['PARAMETERS'] = {
137
+ "item": parameters
138
+ };
139
+ }
140
+ }
141
+ return xml.js2xml(oAbapXml, { compact: true });
142
+ }
143
+ static exists(className) {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ const classObject = systemConnector_1.SystemConnector.getObject('R3TR', 'CLAS', className.trim().toUpperCase());
146
+ return classObject ? true : false;
147
+ });
148
+ }
149
+ }
150
+ exports.PostActivity = PostActivity;
@@ -8,5 +8,6 @@ export interface TrmManifest extends TrmManifestBase {
8
8
  registry?: string;
9
9
  linkedTransport?: Transport;
10
10
  distFolder?: string;
11
+ srcFolder?: string;
11
12
  namespace?: TrmManifestNamespace;
12
13
  }
@@ -1,5 +1,6 @@
1
1
  import { TrmManifestAuthor } from "./TrmManifestAuthor";
2
2
  import { TrmManifestDependency } from "./TrmManifestDependency";
3
+ import { TrmManifestPostActivity } from "./TrmManifestPostActivity";
3
4
  export interface TrmManifestBase {
4
5
  backwardsCompatible?: boolean;
5
6
  description?: string;
@@ -10,4 +11,5 @@ export interface TrmManifestBase {
10
11
  keywords?: string | string[];
11
12
  dependencies?: TrmManifestDependency[];
12
13
  sapEntries?: any;
14
+ postActivities?: TrmManifestPostActivity[];
13
15
  }
@@ -1,4 +1,5 @@
1
1
  export type TrmManifestNamespace = {
2
+ ns?: string;
2
3
  replicense: string;
3
4
  texts: {
4
5
  language: string;
@@ -0,0 +1,7 @@
1
+ export type TrmManifestPostActivity = {
2
+ name: string;
3
+ parameters?: {
4
+ name: string;
5
+ value: string;
6
+ }[];
7
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -4,3 +4,5 @@ export * from "./TrmManifest";
4
4
  export * from "./TrmManifestAuthor";
5
5
  export * from "./TrmManifestDependency";
6
6
  export * from "./TrmManifestNamespace";
7
+ export * from "./TrmManifestPostActivity";
8
+ export * from "./PostActivity";
@@ -20,3 +20,5 @@ __exportStar(require("./TrmManifest"), exports);
20
20
  __exportStar(require("./TrmManifestAuthor"), exports);
21
21
  __exportStar(require("./TrmManifestDependency"), exports);
22
22
  __exportStar(require("./TrmManifestNamespace"), exports);
23
+ __exportStar(require("./TrmManifestPostActivity"), exports);
24
+ __exportStar(require("./PostActivity"), exports);
@@ -0,0 +1,19 @@
1
+ import { Ping, Release, View, WhoAmI } from "trm-registry-types";
2
+ import { RegistryType } from "./RegistryType";
3
+ import { TrmArtifact } from "../trmPackage";
4
+ export declare abstract class AbstractRegistry {
5
+ endpoint: string;
6
+ name: string;
7
+ abstract compare: (registry: AbstractRegistry) => boolean;
8
+ getRegistryType: () => RegistryType;
9
+ authenticate: (defaultData: any) => Promise<AbstractRegistry>;
10
+ getAuthData: () => any;
11
+ ping: () => Promise<Ping>;
12
+ whoAmI: () => Promise<WhoAmI>;
13
+ packageExists: (name: string, version?: string) => Promise<boolean>;
14
+ view: (name: string, version: string) => Promise<View>;
15
+ getArtifact: (name: string, version: string) => Promise<TrmArtifact>;
16
+ publishArtifact: (packageName: string, version: string, artifact: TrmArtifact, readme?: string) => Promise<void>;
17
+ unpublish: (packageName: string, version: string) => Promise<void>;
18
+ getReleases: (packageName: string, versionRange: string) => Promise<Release[]>;
19
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractRegistry = void 0;
4
+ class AbstractRegistry {
5
+ }
6
+ exports.AbstractRegistry = AbstractRegistry;