trm-core 7.5.4 → 8.0.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 (63) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +35 -35
  3. package/changelog.txt +186 -171
  4. package/dist/actions/checkPackageDependencies/analyze.js +5 -51
  5. package/dist/actions/checkPackageDependencies/index.d.ts +2 -5
  6. package/dist/actions/checkPackageDependencies/init.js +5 -7
  7. package/dist/actions/checkSapEntries/analyze.js +2 -2
  8. package/dist/actions/checkSapEntries/index.d.ts +2 -2
  9. package/dist/actions/checkSapEntries/init.js +1 -4
  10. package/dist/actions/findDependencies/index.d.ts +0 -2
  11. package/dist/actions/findDependencies/setTrmDependencies.js +11 -55
  12. package/dist/actions/install/addNamespace.js +14 -9
  13. package/dist/actions/install/checkAlreadyInstalled.js +2 -2
  14. package/dist/actions/install/checkDependencies.js +2 -16
  15. package/dist/actions/install/checkSapEntries.js +1 -1
  16. package/dist/actions/install/checkTransports.js +2 -2
  17. package/dist/actions/install/executePostActivities.js +3 -3
  18. package/dist/actions/install/generateInstallTransport.js +40 -5
  19. package/dist/actions/install/index.d.ts +6 -10
  20. package/dist/actions/install/index.js +2 -4
  21. package/dist/actions/install/init.js +37 -45
  22. package/dist/actions/install/installDependencies.js +0 -1
  23. package/dist/actions/install/setPackageIntegrity.js +1 -1
  24. package/dist/actions/install/setTrmServerUpgradeService.js +1 -1
  25. package/dist/actions/installDependency/findInstallRelease.js +18 -18
  26. package/dist/actions/installDependency/index.d.ts +0 -1
  27. package/dist/actions/installDependency/init.js +0 -7
  28. package/dist/actions/installDependency/installRelease.js +0 -1
  29. package/dist/actions/publish/findDependencies.js +0 -12
  30. package/dist/actions/publish/generateCustTransport.js +0 -3
  31. package/dist/actions/publish/generateDevcTransport.js +0 -4
  32. package/dist/actions/publish/generateLangTransport.js +0 -3
  33. package/dist/actions/publish/getSourceCode.js +1 -1
  34. package/dist/actions/publish/index.d.ts +1 -1
  35. package/dist/actions/publish/init.js +71 -95
  36. package/dist/actions/publish/setManifestValues.js +4 -13
  37. package/dist/commons/getAxiosInstance.d.ts +1 -1
  38. package/dist/manifest/Manifest.d.ts +2 -0
  39. package/dist/manifest/Manifest.js +47 -17
  40. package/dist/manifest/TrmManifestDependency.d.ts +0 -1
  41. package/dist/registry/AbstractRegistry.d.ts +7 -7
  42. package/dist/registry/FileSystem.d.ts +7 -6
  43. package/dist/registry/FileSystem.js +35 -34
  44. package/dist/registry/RegistryProvider.js +4 -4
  45. package/dist/registry/{Registry.d.ts → RegistryV2.d.ts} +11 -10
  46. package/dist/registry/{Registry.js → RegistryV2.js} +146 -74
  47. package/dist/registry/index.d.ts +1 -1
  48. package/dist/registry/index.js +1 -1
  49. package/dist/systemConnector/ISystemConnectorBase.d.ts +1 -1
  50. package/dist/systemConnector/SystemConnector.d.ts +1 -1
  51. package/dist/systemConnector/SystemConnector.js +3 -3
  52. package/dist/systemConnector/SystemConnectorBase.d.ts +1 -1
  53. package/dist/systemConnector/SystemConnectorBase.js +33 -11
  54. package/dist/transport/Transport.d.ts +4 -1
  55. package/dist/transport/Transport.js +53 -30
  56. package/dist/trmPackage/TrmArtifact.js +3 -5
  57. package/dist/trmPackage/TrmPackage.d.ts +0 -16
  58. package/dist/trmPackage/TrmPackage.js +10 -133
  59. package/dist/validators/validatePackageVisibility.d.ts +1 -1
  60. package/dist/validators/validatePackageVisibility.js +2 -16
  61. package/package.json +98 -97
  62. package/dist/actions/install/checkIntegrity.d.ts +0 -3
  63. package/dist/actions/install/checkIntegrity.js +0 -42
@@ -26,10 +26,7 @@ exports.init = {
26
26
  },
27
27
  missingTables: []
28
28
  };
29
- if (context.rawInput.packageData.package.manifest) {
30
- const manifest = context.rawInput.packageData.package.manifest.get();
31
- context.output.sapEntries = manifest.sapEntries || {};
32
- }
29
+ context.output.sapEntries = context.rawInput.packageData.manifest.sapEntries || {};
33
30
  if (!context.rawInput.printOptions) {
34
31
  context.rawInput.printOptions = {};
35
32
  }
@@ -29,8 +29,6 @@ export type SapEntriesDependency = {
29
29
  export type TrmDependency = {
30
30
  devclass: DEVCLASS;
31
31
  package: TrmPackage;
32
- ignoreNoIntegrity: boolean;
33
- integrity?: string;
34
32
  sapEntries: SapEntriesDependency[];
35
33
  };
36
34
  type WorkflowRuntime = {
@@ -55,31 +55,15 @@ const _getTadirDependencies = (tadirDependencies) => __awaiter(void 0, void 0, v
55
55
  var index = 0;
56
56
  if (!trmServerPackage) {
57
57
  try {
58
- const systemTrmServerPackage = yield systemConnector_1.SystemConnector.getTrmServerPackage();
59
- if (systemTrmServerPackage.manifest) {
60
- trmServerPackage = { package: systemTrmServerPackage };
61
- }
62
- else {
63
- trmServerPackage = {};
64
- }
65
- }
66
- catch (e) {
67
- trmServerPackage = {};
58
+ trmServerPackage = yield systemConnector_1.SystemConnector.getTrmServerPackage();
68
59
  }
60
+ catch (_a) { }
69
61
  }
70
62
  if (!trmRestPackage) {
71
63
  try {
72
- const systemTrmRestPackage = yield systemConnector_1.SystemConnector.getTrmRestPackage();
73
- if (systemTrmRestPackage.manifest) {
74
- trmRestPackage = { package: systemTrmRestPackage };
75
- }
76
- else {
77
- trmRestPackage = {};
78
- }
79
- }
80
- catch (e) {
81
- trmRestPackage = {};
64
+ trmRestPackage = yield systemConnector_1.SystemConnector.getTrmRestPackage();
82
65
  }
66
+ catch (_b) { }
83
67
  }
84
68
  for (const tadirDependency of tadirDependencies) {
85
69
  index++;
@@ -94,41 +78,22 @@ const _getTadirDependencies = (tadirDependencies) => __awaiter(void 0, void 0, v
94
78
  var latestTransport;
95
79
  var devclass;
96
80
  var trmPackage;
97
- var integrity;
98
81
  var arrayIndex1;
99
82
  var arrayIndex2;
100
83
  var append;
101
- var ignoreNoIntegrity;
102
- if (trmServerPackage.package && trmServerPackage.package.getDevclass() === tadir.devclass) {
84
+ if (trmServerPackage && trmServerPackage.getDevclass() === tadir.devclass) {
103
85
  trm_commons_1.Logger.log(`Dependency with TRM SERVER package`, true);
104
- devclass = trmServerPackage.package.getDevclass();
105
- trmPackage = trmServerPackage.package;
106
- if (trmServerPackage.integrity) {
107
- integrity = trmServerPackage.integrity;
108
- }
109
- else {
110
- integrity = yield systemConnector_1.SystemConnector.getPackageIntegrity(trmPackage);
111
- trmServerPackage.integrity = integrity;
112
- }
86
+ devclass = trmServerPackage.getDevclass();
87
+ trmPackage = trmServerPackage;
113
88
  append = true;
114
- ignoreNoIntegrity = true;
115
89
  }
116
- else if (trmRestPackage.package && trmRestPackage.package.getDevclass() === tadir.devclass) {
90
+ else if (trmRestPackage && trmRestPackage.getDevclass() === tadir.devclass) {
117
91
  trm_commons_1.Logger.log(`Dependency with TRM REST package`, true);
118
- devclass = trmRestPackage.package.getDevclass();
119
- trmPackage = trmRestPackage.package;
120
- if (trmRestPackage.integrity) {
121
- integrity = trmRestPackage.integrity;
122
- }
123
- else {
124
- integrity = yield systemConnector_1.SystemConnector.getPackageIntegrity(trmPackage);
125
- trmRestPackage.integrity = integrity;
126
- }
92
+ devclass = trmRestPackage.getDevclass();
93
+ trmPackage = trmRestPackage;
127
94
  append = true;
128
- ignoreNoIntegrity = true;
129
95
  }
130
96
  else {
131
- ignoreNoIntegrity = false;
132
97
  trm_commons_1.Logger.log(`Searching transports for object ${tadir.pgmid} ${tadir.object} ${tadir.objName}`, true);
133
98
  const allTransports = yield transport_1.Transport.getTransportsFromObject(tadir, transportsObjectCache);
134
99
  trm_commons_1.Logger.log(`Found ${allTransports.length} transports for object ${tadir.pgmid} ${tadir.object} ${tadir.objName}`, true);
@@ -159,23 +124,17 @@ const _getTadirDependencies = (tadirDependencies) => __awaiter(void 0, void 0, v
159
124
  if (latestTransport) {
160
125
  trm_commons_1.Logger.log(`Latest transport is ${latestTransport.trkorr}`, true);
161
126
  const iTransportsCache = transportsCache.findIndex(o => o.trkorr === latestTransport.trkorr);
162
- if (transportsCache[iTransportsCache].devclass && transportsCache[iTransportsCache].integrity) {
127
+ if (transportsCache[iTransportsCache].devclass) {
163
128
  trm_commons_1.Logger.log(`Transport ${latestTransport.trkorr} in cache, not reading again...`, true);
164
129
  devclass = transportsCache[iTransportsCache].devclass;
165
- integrity = transportsCache[iTransportsCache].integrity;
166
130
  }
167
131
  else {
168
132
  trmPackage = yield latestTransport.getLinkedPackage();
169
133
  const alreadyInArray = trmDependencies.find(o => o.package && trmPackage_1.TrmPackage.compare(o.package, trmPackage));
170
134
  if (alreadyInArray) {
171
135
  devclass = alreadyInArray.devclass;
172
- integrity = alreadyInArray.integrity;
173
136
  }
174
137
  else {
175
- integrity = yield systemConnector_1.SystemConnector.getPackageIntegrity(trmPackage);
176
- if (!integrity) {
177
- throw new Error(`Package "${trmPackage.packageName}", integrity not found!`);
178
- }
179
138
  try {
180
139
  devclass = yield latestTransport.getDevclass();
181
140
  }
@@ -184,7 +143,6 @@ const _getTadirDependencies = (tadirDependencies) => __awaiter(void 0, void 0, v
184
143
  }
185
144
  }
186
145
  transportsCache[iTransportsCache].devclass = devclass;
187
- transportsCache[iTransportsCache].integrity = integrity;
188
146
  }
189
147
  append = true;
190
148
  }
@@ -214,8 +172,6 @@ const _getTadirDependencies = (tadirDependencies) => __awaiter(void 0, void 0, v
214
172
  arrayIndex1 = trmDependencies.push({
215
173
  devclass,
216
174
  package: trmPackage,
217
- integrity,
218
- ignoreNoIntegrity,
219
175
  sapEntries: []
220
176
  });
221
177
  arrayIndex1--;
@@ -17,7 +17,6 @@ exports.addNamespace = {
17
17
  name: 'add-namespace',
18
18
  run: (context) => __awaiter(void 0, void 0, void 0, function* () {
19
19
  trm_commons_1.Logger.log('Add namespace step', true);
20
- context.runtime.rollback = true;
21
20
  var originalNamespace = (0, commons_1.getPackageNamespace)(context.runtime.originalData.hierarchy.devclass);
22
21
  trm_commons_1.Logger.log(`Package original namespace is ${originalNamespace}`, true);
23
22
  if (!context.rawInput.installData.installDevclass.keepOriginal && context.rawInput.installData.installDevclass.replacements.length > 0) {
@@ -30,6 +29,12 @@ exports.addNamespace = {
30
29
  trm_commons_1.Logger.log(`Package install namespace is ${context.runtime.installData.namespace}`, true);
31
30
  return;
32
31
  }
32
+ else {
33
+ if (context.rawInput.installData.installDevclass.skipNamespace) {
34
+ trm_commons_1.Logger.info(`Skipping install of namespace ${context.runtime.installData.namespace}`, false);
35
+ return;
36
+ }
37
+ }
33
38
  trm_commons_1.Logger.loading(`Checking namespace ${context.runtime.installData.namespace}...`);
34
39
  var namespace;
35
40
  const namespaceCheck = yield systemConnector_1.SystemConnector.getNamespace(context.runtime.installData.namespace);
@@ -80,15 +85,15 @@ exports.addNamespace = {
80
85
  }
81
86
  }
82
87
  else {
83
- if (context.runtime.remotePackageData.trmManifest.namespace) {
84
- replicense = context.runtime.remotePackageData.trmManifest.namespace.replicense;
85
- if (context.runtime.remotePackageData.trmManifest.namespace.texts && context.runtime.remotePackageData.trmManifest.namespace.texts.length > 0) {
86
- if (context.runtime.remotePackageData.trmManifest.namespace.texts.length === 1 || context.rawInput.contextData.noInquirer) {
88
+ if (context.runtime.remotePackageData.manifest.namespace) {
89
+ replicense = context.runtime.remotePackageData.manifest.namespace.replicense;
90
+ if (context.runtime.remotePackageData.manifest.namespace.texts && context.runtime.remotePackageData.manifest.namespace.texts.length > 0) {
91
+ if (context.runtime.remotePackageData.manifest.namespace.texts.length === 1 || context.rawInput.contextData.noInquirer) {
87
92
  texts = {
88
93
  namespace: context.runtime.installData.namespace,
89
- descriptn: context.runtime.remotePackageData.trmManifest.namespace.texts[0].description,
90
- owner: context.runtime.remotePackageData.trmManifest.namespace.texts[0].owner,
91
- spras: context.runtime.remotePackageData.trmManifest.namespace.texts[0].language
94
+ descriptn: context.runtime.remotePackageData.manifest.namespace.texts[0].description,
95
+ owner: context.runtime.remotePackageData.manifest.namespace.texts[0].owner,
96
+ spras: context.runtime.remotePackageData.manifest.namespace.texts[0].language
92
97
  };
93
98
  }
94
99
  else {
@@ -97,7 +102,7 @@ exports.addNamespace = {
97
102
  type: 'list',
98
103
  message: 'Choose namespace install text',
99
104
  name: 'choice',
100
- choices: context.runtime.remotePackageData.trmManifest.namespace.texts.map(o => {
105
+ choices: context.runtime.remotePackageData.manifest.namespace.texts.map(o => {
101
106
  return {
102
107
  name: `${o.language} ${o.description} ${o.owner}`,
103
108
  value: {
@@ -19,8 +19,8 @@ exports.checkAlreadyInstalled = {
19
19
  trm_commons_1.Logger.log('Check already installed step', true);
20
20
  const installedPackages = context.rawInput.contextData.systemPackages;
21
21
  const manifest = context.runtime.remotePackageData.manifest;
22
- const trmManifest = context.runtime.remotePackageData.trmManifest;
23
- const installedPackage = installedPackages.find(o => manifest_1.Manifest.compare(o.manifest, manifest, false));
22
+ const trmManifest = context.runtime.remotePackageData.manifest;
23
+ const installedPackage = installedPackages.find(o => manifest_1.Manifest.compare(o.manifest, new manifest_1.Manifest(manifest), false));
24
24
  if (installedPackage) {
25
25
  const installVersion = trmManifest.version;
26
26
  const installedVersion = installedPackage.manifest.get().version;
@@ -28,7 +28,7 @@ exports.checkDependencies = {
28
28
  trm_commons_1.Logger.log('Check dependencies step', true);
29
29
  const inputData = {
30
30
  packageData: {
31
- package: context.runtime.remotePackageData.trmPackage
31
+ manifest: context.runtime.remotePackageData.manifest
32
32
  },
33
33
  contextData: {
34
34
  systemPackages: context.rawInput.contextData.systemPackages
@@ -50,20 +50,6 @@ exports.checkDependencies = {
50
50
  trm_commons_1.Logger.info(`"${context.rawInput.packageData.name}" has ${result.dependencies.length} dependencies: ${result.dependencyStatus.filter(o => o.match).length} installed, ${result.dependencyStatus.filter(o => !o.match).length} missing.`);
51
51
  }
52
52
  }
53
- result.dependencyStatus.forEach(o => {
54
- if (!o.match) {
55
- context.runtime.dependenciesToInstall.push(o.dependency);
56
- }
57
- else {
58
- if (!o.safe) {
59
- if (context.rawInput.installData.checks.safe) {
60
- throw new Error(`Dependency "${o.dependency.name}" is installed, but integrity doesn't match.`);
61
- }
62
- else {
63
- trm_commons_1.Logger.warning(`Dependency "${o.dependency.name}" is installed, but integrity doesn't match.`);
64
- }
65
- }
66
- }
67
- });
53
+ context.runtime.dependenciesToInstall = result.dependencyStatus.filter(o => !o.match).map(k => k.dependency);
68
54
  })
69
55
  };
@@ -28,7 +28,7 @@ exports.checkSapEntries = {
28
28
  trm_commons_1.Logger.log('Check sap entries step', true);
29
29
  const inputData = {
30
30
  packageData: {
31
- package: context.runtime.remotePackageData.trmPackage
31
+ manifest: context.runtime.remotePackageData.manifest
32
32
  },
33
33
  printOptions: {
34
34
  entriesStatus: false,
@@ -138,7 +138,7 @@ exports.checkTransports = {
138
138
  const linkedPackage = yield oTransport.getLinkedPackage();
139
139
  if (linkedPackage) {
140
140
  trm_commons_1.Logger.log(`${trkorr} package is ${linkedPackage.packageName}`, true);
141
- if (linkedPackage.compareName(context.runtime.remotePackageData.trmManifest.name) && linkedPackage.compareRegistry(context.runtime.registry)) {
141
+ if (linkedPackage.compareName(context.runtime.remotePackageData.manifest.name) && linkedPackage.compareRegistry(context.runtime.registry)) {
142
142
  trm_commons_1.Logger.log(`${trkorr} same package (updating?)`, true);
143
143
  }
144
144
  else {
@@ -154,7 +154,7 @@ exports.checkTransports = {
154
154
  else {
155
155
  if (yield oTransport.isReleased()) {
156
156
  trm_commons_1.Logger.warning(`Transport ${trkorr} already exists in target system ${systemConnector_1.SystemConnector.getDest()}`);
157
- trm_commons_1.Logger.warning(`If you continue, TRM will replace the content of transport ${trkorr} with the content of the transport with the same number of package "${context.runtime.remotePackageData.trmManifest.name}".`);
157
+ trm_commons_1.Logger.warning(`If you continue, TRM will replace the content of transport ${trkorr} with the content of the transport with the same number of package "${context.runtime.remotePackageData.manifest.name}".`);
158
158
  trm_commons_1.Logger.warning(`All of the content of the existing transport will remain untouched, however you need to manually create a new transport if you want to use it again in the future.`);
159
159
  if (!context.rawInput.installData.import.replaceExistingTransports) {
160
160
  var continueInstall;
@@ -21,7 +21,7 @@ exports.executePostActivities = {
21
21
  return false;
22
22
  }
23
23
  else {
24
- if (context.runtime.remotePackageData.trmManifest.postActivities && context.runtime.remotePackageData.trmManifest.postActivities.length > 0) {
24
+ if (context.runtime.remotePackageData.manifest.postActivities && context.runtime.remotePackageData.manifest.postActivities.length > 0) {
25
25
  if (commons_1.TrmServerUpgrade.getInstance().executePostActivities()) {
26
26
  return true;
27
27
  }
@@ -39,9 +39,9 @@ exports.executePostActivities = {
39
39
  run: (context) => __awaiter(void 0, void 0, void 0, function* () {
40
40
  trm_commons_1.Logger.log('Execute post activities step', true);
41
41
  var counter = 0;
42
- for (var data of context.runtime.remotePackageData.trmManifest.postActivities) {
42
+ for (var data of context.runtime.remotePackageData.manifest.postActivities) {
43
43
  counter++;
44
- trm_commons_1.Logger.setPrefix(`(${counter}/${context.runtime.remotePackageData.trmManifest.postActivities.length}) `);
44
+ trm_commons_1.Logger.setPrefix(`(${counter}/${context.runtime.remotePackageData.manifest.postActivities.length}) `);
45
45
  try {
46
46
  if (Array.isArray(data.parameters)) {
47
47
  data.parameters.forEach(param => {
@@ -14,6 +14,9 @@ const trm_commons_1 = require("trm-commons");
14
14
  const commons_1 = require("../../commons");
15
15
  const systemConnector_1 = require("../../systemConnector");
16
16
  const transport_1 = require("../../transport");
17
+ const registry_1 = require("../../registry");
18
+ const trmPackage_1 = require("../../trmPackage");
19
+ const manifest_1 = require("../../manifest");
17
20
  exports.generateInstallTransport = {
18
21
  name: 'generate-install-transport',
19
22
  filter: (context) => __awaiter(void 0, void 0, void 0, function* () {
@@ -34,7 +37,39 @@ exports.generateInstallTransport = {
34
37
  }
35
38
  trm_commons_1.Logger.loading(`Checking install transport...`);
36
39
  if (context.runtime.update) {
37
- context.runtime.installData.transport = yield context.runtime.remotePackageData.trmPackage.getWbTransport();
40
+ context.runtime.installData.transport = yield (new trmPackage_1.TrmPackage(context.rawInput.packageData.name, context.rawInput.packageData.registry)).getWbTransport();
41
+ }
42
+ else {
43
+ if (!context.rawInput.contextData.noInquirer) {
44
+ var transports = yield systemConnector_1.SystemConnector.getWbTransports(context.rawInput.packageData.name);
45
+ if (context.runtime.registry.getRegistryType() !== registry_1.RegistryType.LOCAL) {
46
+ for (var i = transports.length - 1; i >= 0; i--) {
47
+ const linkedPackage = yield transports[i].getLinkedPackage();
48
+ if (linkedPackage.registry.getRegistryType() !== registry_1.RegistryType.LOCAL) {
49
+ transports.splice(i, 1);
50
+ }
51
+ }
52
+ }
53
+ if (transports.length > 0) {
54
+ const trkorr = (yield trm_commons_1.Inquirer.prompt({
55
+ name: 'trkorr',
56
+ message: `Found ${transports.length} install transport(s) that might be linked to ${context.rawInput.packageData.name}, do you want to use one of these?`,
57
+ type: 'select',
58
+ choices: transports.map(o => {
59
+ return {
60
+ name: o.trkorr,
61
+ value: o.trkorr
62
+ };
63
+ }).concat([{
64
+ name: 'Generate new',
65
+ value: null
66
+ }])
67
+ })).trkorr;
68
+ if (trkorr) {
69
+ context.runtime.installData.transport = transports.find(o => o.trkorr === trkorr);
70
+ }
71
+ }
72
+ }
38
73
  }
39
74
  if (context.runtime.installData.transport) {
40
75
  trm_commons_1.Logger.log(`Install transport (${context.runtime.installData.transport.trkorr}) already exists, won't create a new one.`, true);
@@ -54,10 +89,10 @@ exports.generateInstallTransport = {
54
89
  });
55
90
  trm_commons_1.Logger.log(`Generated transport ${context.runtime.installData.transport.trkorr}`, true);
56
91
  }
57
- yield context.runtime.installData.transport.addComment(`name=${context.runtime.remotePackageData.trmManifest.name}`);
58
- yield context.runtime.installData.transport.addComment(`version=${context.runtime.remotePackageData.trmManifest.version}`);
59
- yield context.runtime.installData.transport.setDocumentation(context.runtime.remotePackageData.manifest.getAbapXml());
60
- yield context.runtime.installData.transport.rename(`@X1@TRM: ${context.runtime.remotePackageData.trmManifest.name} v${context.runtime.remotePackageData.trmManifest.version}`);
92
+ yield context.runtime.installData.transport.addComment(`name=${context.runtime.remotePackageData.manifest.name}`);
93
+ yield context.runtime.installData.transport.addComment(`version=${context.runtime.remotePackageData.manifest.version}`);
94
+ yield context.runtime.installData.transport.setDocumentation(new manifest_1.Manifest(context.runtime.remotePackageData.manifest).getAbapXml());
95
+ yield context.runtime.installData.transport.rename(`@X1@TRM: ${context.runtime.remotePackageData.manifest.name} v${context.runtime.remotePackageData.manifest.version}`);
61
96
  var tadirObjects = context.runtime.packageTransportsData.tadir;
62
97
  if (context.rawInput.installData.installDevclass.keepOriginal) {
63
98
  tadirObjects = tadirObjects.concat(context.runtime.packageTransportsData.tdevc.map(o => {
@@ -1,11 +1,12 @@
1
1
  import { R3trans, R3transOptions } from "node-r3trans";
2
2
  import { Transport } from "../../transport";
3
3
  import { TransportBinary, TrmArtifact, TrmPackage } from "../../trmPackage";
4
- import { Manifest, TrmManifest, TrmManifestDependency } from "../../manifest";
4
+ import { TrmManifest, TrmManifestDependency } from "../../manifest";
5
5
  import { IActionContext } from "..";
6
6
  import { DEVCLASS, E071, NAMESPACE, TADIR, TDEVC, TDEVCT } from "../../client";
7
7
  import { PackageHierarchy } from "../../commons";
8
8
  import { AbstractRegistry } from "../../registry";
9
+ import { Package } from "trm-registry-types";
9
10
  export type InstallPackageReplacements = {
10
11
  originalDevclass: string;
11
12
  installDevclass: string;
@@ -24,7 +25,6 @@ export type InstallActionInputInstallData = {
24
25
  replaceExistingTransports?: boolean;
25
26
  };
26
27
  checks?: {
27
- safe?: boolean;
28
28
  noSapEntries?: boolean;
29
29
  noObjectTypes?: boolean;
30
30
  noDependencies?: boolean;
@@ -34,6 +34,7 @@ export type InstallActionInputInstallData = {
34
34
  keepOriginal?: boolean;
35
35
  transportLayer?: string;
36
36
  replacements?: InstallPackageReplacements[];
37
+ skipNamespace?: boolean;
37
38
  };
38
39
  installTransport?: {
39
40
  create?: boolean;
@@ -46,7 +47,6 @@ export interface InstallActionInput {
46
47
  packageData: {
47
48
  name: string;
48
49
  version?: string;
49
- integrity?: string;
50
50
  registry: AbstractRegistry;
51
51
  overwrite?: boolean;
52
52
  };
@@ -59,14 +59,10 @@ type TransportRuntime = {
59
59
  type WorkflowRuntime = {
60
60
  registry: AbstractRegistry;
61
61
  update: boolean;
62
- rollback: boolean;
63
62
  remotePackageData: {
64
- version: string;
65
- trmPackage: TrmPackage;
63
+ data: Package;
64
+ manifest: TrmManifest;
66
65
  artifact: TrmArtifact;
67
- manifest: Manifest;
68
- trmManifest: TrmManifest;
69
- integrity: string;
70
66
  };
71
67
  packageTransports: {
72
68
  devc: TransportRuntime;
@@ -98,7 +94,7 @@ type WorkflowRuntime = {
98
94
  };
99
95
  };
100
96
  export type InstallActionOutput = {
101
- trmPackage: TrmPackage;
97
+ manifest: TrmManifest;
102
98
  registry: AbstractRegistry;
103
99
  installTransport?: Transport;
104
100
  };
@@ -20,7 +20,6 @@ const init_1 = require("./init");
20
20
  const __1 = require("..");
21
21
  const setSystemPackages_1 = require("../commons/setSystemPackages");
22
22
  const checkAlreadyInstalled_1 = require("./checkAlreadyInstalled");
23
- const checkIntegrity_1 = require("./checkIntegrity");
24
23
  const checkSapEntries_1 = require("./checkSapEntries");
25
24
  const checkDependencies_1 = require("./checkDependencies");
26
25
  const installDependencies_1 = require("./installDependencies");
@@ -53,7 +52,6 @@ function install(inputData) {
53
52
  setSystemPackages_1.setSystemPackages,
54
53
  setTrmServerUpgradeService_1.setTrmServerUpgradeService,
55
54
  checkAlreadyInstalled_1.checkAlreadyInstalled,
56
- checkIntegrity_1.checkIntegrity,
57
55
  checkSapEntries_1.checkSapEntries,
58
56
  checkDependencies_1.checkDependencies,
59
57
  setR3trans_1.setR3trans,
@@ -81,11 +79,11 @@ function install(inputData) {
81
79
  rawInput: inputData
82
80
  });
83
81
  trm_commons_1.Logger.log(`Workflow ${WORKFLOW_NAME} result: ${(0, util_1.inspect)(result, { breakLength: Infinity, compact: true })}`, true);
84
- const trmPackage = result.runtime.remotePackageData.trmPackage;
82
+ const manifest = result.runtime.remotePackageData.manifest;
85
83
  const registry = result.runtime.registry;
86
84
  const installTransport = result.runtime.installData.transport;
87
85
  return {
88
- trmPackage,
86
+ manifest,
89
87
  registry,
90
88
  installTransport
91
89
  };
@@ -11,61 +11,59 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.init = void 0;
13
13
  const trm_commons_1 = require("trm-commons");
14
- const trmPackage_1 = require("../../trmPackage");
15
- const commons_1 = require("../../commons");
16
14
  const crypto_1 = require("crypto");
17
15
  const systemConnector_1 = require("../../systemConnector");
18
16
  const registry_1 = require("../../registry");
17
+ const semver_1 = require("semver");
19
18
  exports.init = {
20
19
  name: 'init',
21
20
  run: (context) => __awaiter(void 0, void 0, void 0, function* () {
22
21
  trm_commons_1.Logger.log('Init step', true);
23
22
  const registry = context.rawInput.packageData.registry;
23
+ var artifact;
24
+ var manifest;
25
+ var packageData;
24
26
  var actualRegistry;
25
- var actualTrmPackage;
26
27
  if (registry.getRegistryType() === registry_1.RegistryType.LOCAL) {
27
- actualTrmPackage = (yield registry.getArtifact(null, null)).getManifest().getPackage();
28
- actualRegistry = actualTrmPackage.registry;
29
- context.rawInput.packageData.name = actualTrmPackage.packageName;
30
- }
31
- context.rawInput.packageData.name = (0, commons_1.parsePackageName)({
32
- fullName: context.rawInput.packageData.name
33
- }).fullName;
34
- if (!context.rawInput.packageData.version || context.rawInput.packageData.version.trim().toLowerCase() === 'latest') {
35
- context.rawInput.packageData.version = 'latest';
36
- }
37
- if (registry.getRegistryType() === registry_1.RegistryType.LOCAL) {
38
- trm_commons_1.Logger.loading(`Reading TRM package data...`);
39
- }
40
- else {
41
- trm_commons_1.Logger.loading(`Searching TRM package in registry ${registry.name}...`);
42
- }
43
- const trmPackage = new trmPackage_1.TrmPackage(context.rawInput.packageData.name, registry);
44
- const artifact = yield trmPackage.fetchRemoteArtifact(context.rawInput.packageData.version);
45
- const integrity = (0, crypto_1.createHash)("sha512").update(artifact.binary).digest("hex");
46
- const manifest = yield trmPackage.fetchRemoteManifest(context.rawInput.packageData.version);
47
- const trmManifest = manifest.get();
48
- var sVersion = trmManifest.version;
49
- if (context.rawInput.packageData.version === 'latest') {
50
- sVersion = `latest -> ${trmManifest.version}`;
51
- }
52
- if (registry.getRegistryType() === registry_1.RegistryType.LOCAL) {
53
- trm_commons_1.Logger.info(`Ready to install "${trmManifest.name}" version ${trmManifest.version}.`);
54
- }
55
- else {
56
- trm_commons_1.Logger.info(`Ready to install "${trmManifest.name}" version ${sVersion} from registry "${registry.name}".`);
28
+ try {
29
+ artifact = yield registry.downloadArtifact('dummy', 'dummy');
30
+ }
31
+ catch (_a) {
32
+ throw new Error(`Unable to read local package.`);
33
+ }
34
+ const oManifest = artifact.getManifest();
35
+ manifest = oManifest.get();
36
+ packageData.manifest = manifest;
37
+ actualRegistry = oManifest.getPackage().registry;
38
+ context.rawInput.packageData.name = manifest.name;
39
+ }
40
+ context.rawInput.packageData.version = (0, semver_1.valid)(context.rawInput.packageData.version);
41
+ if (registry.getRegistryType() !== registry_1.RegistryType.LOCAL) {
42
+ trm_commons_1.Logger.loading(`Fetching package in registry ${registry.name}...`);
43
+ packageData = yield registry.getPackage(context.rawInput.packageData.name, context.rawInput.packageData.version || 'latest');
44
+ artifact = yield registry.downloadArtifact(packageData.name, packageData.manifest.version);
45
+ const checksum = (0, crypto_1.createHash)("sha512").update(artifact.binary).digest("base64");
46
+ if (checksum !== packageData.checksum) {
47
+ var ping;
48
+ try {
49
+ ping = yield registry.ping();
50
+ }
51
+ catch (_b) { }
52
+ trm_commons_1.Logger.error(`SECURITY ISSUE! Release checksum does NOT match!`);
53
+ trm_commons_1.Logger.error(`SECURITY ISSUE! Expected SHA is ${packageData.checksum}, current SHA is ${checksum}`);
54
+ trm_commons_1.Logger.error(`SECURITY ISSUE! Please, report the issue to ${ping && ping.alert_email ? ping.alert_email : 'registry moderation team'}`);
55
+ throw new Error(`Cannot continue due to security issues.`);
56
+ }
57
+ manifest = artifact.getManifest().get();
57
58
  }
59
+ trm_commons_1.Logger.info(`Ready to install ${manifest.name} v${manifest.version}.`);
58
60
  context.runtime = {
59
61
  registry: actualRegistry || registry,
60
62
  update: undefined,
61
- rollback: false,
62
63
  remotePackageData: {
63
- version: context.rawInput.packageData.version,
64
- trmPackage: actualTrmPackage || trmPackage,
65
- trmManifest,
66
- manifest,
64
+ data: packageData,
67
65
  artifact,
68
- integrity
66
+ manifest
69
67
  },
70
68
  dependenciesToInstall: [],
71
69
  r3trans: undefined,
@@ -163,11 +161,5 @@ exports.init = {
163
161
  throw new Error(`Transport layer "${context.rawInput.installData.installDevclass.transportLayer}" doesn't exist.`);
164
162
  }
165
163
  }
166
- }),
167
- revert: (context) => __awaiter(void 0, void 0, void 0, function* () {
168
- trm_commons_1.Logger.log('Rollback init step', true);
169
- if (context.runtime && context.runtime.rollback) {
170
- trm_commons_1.Logger.success(`Rollback executed.`);
171
- }
172
164
  })
173
165
  };
@@ -105,7 +105,6 @@ exports.installDependencies = {
105
105
  dependencyDataPackage: {
106
106
  name: dependency.name,
107
107
  versionRange: dependency.version,
108
- integrity: dependency.integrity,
109
108
  registry: registry_1.RegistryProvider.getRegistry(dependency.registry)
110
109
  },
111
110
  contextData: _.cloneDeep(context.rawInput.contextData),
@@ -22,7 +22,7 @@ exports.setPackageIntegrity = {
22
22
  yield systemConnector_1.SystemConnector.setPackageIntegrity({
23
23
  package_name: context.rawInput.packageData.name,
24
24
  package_registry: packageRegistry,
25
- integrity: context.runtime.remotePackageData.integrity
25
+ integrity: context.runtime.remotePackageData.data.checksum
26
26
  });
27
27
  })
28
28
  };
@@ -27,6 +27,6 @@ exports.setTrmServerUpgradeService = {
27
27
  }),
28
28
  run: (context) => __awaiter(void 0, void 0, void 0, function* () {
29
29
  trm_commons_1.Logger.log('Set TRM Server upgrade service step', true);
30
- commons_1.TrmServerUpgrade.createInstance(context.rawInput.contextData.systemPackages.find(o => o.compareName(systemConnector_1.TRM_SERVER_PACKAGE_NAME)).manifest.get().version, context.runtime.remotePackageData.trmManifest.version);
30
+ commons_1.TrmServerUpgrade.createInstance(context.rawInput.contextData.systemPackages.find(o => o.compareName(systemConnector_1.TRM_SERVER_PACKAGE_NAME)).manifest.get().version, context.runtime.remotePackageData.manifest.version);
31
31
  })
32
32
  };