@eui/tools 4.21.10 → 5.0.0-rc.12

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 (47) hide show
  1. package/.version.properties +1 -1
  2. package/CHANGELOG.md +26 -0
  3. package/global.test.js +60 -40
  4. package/package.json +7 -7
  5. package/sandbox.js +50 -6
  6. package/scripts/csdr/config/global.js +9 -0
  7. package/scripts/csdr/config/packages.js +2 -0
  8. package/scripts/csdr/config/projects.test.js +11 -9
  9. package/scripts/csdr/install/build-app.js +6 -38
  10. package/scripts/csdr/install/build-package.js +12 -77
  11. package/scripts/csdr/install/composite-core.js +256 -0
  12. package/scripts/csdr/install/install-utils.js +8 -4
  13. package/scripts/csdr/install/local-dev.js +2 -2
  14. package/scripts/csdr/install/packages.js +90 -0
  15. package/scripts/csdr/install/projects.js +76 -0
  16. package/scripts/csdr/install/{remote.js → remotes.js} +46 -55
  17. package/scripts/csdr/metadata/app-envs.js +0 -39
  18. package/scripts/csdr/metadata/app-history.js +0 -66
  19. package/scripts/csdr/metadata/app-versions.js +2 -12
  20. package/scripts/csdr/metadata/app.js +2 -2
  21. package/scripts/csdr/metadata/metadata-utils.js +2 -0
  22. package/scripts/csdr/metadata/package-envs.js +71 -0
  23. package/scripts/csdr/metadata/package-versions.js +79 -0
  24. package/scripts/csdr/metadata/package.js +13 -50
  25. package/scripts/csdr/release/package/backend.js +2 -2
  26. package/scripts/csdr/release/package/common.js +59 -16
  27. package/scripts/csdr/release/package/release-package.js +10 -7
  28. package/scripts/csdr/release/package/remote.js +2 -2
  29. package/scripts/csdr/release/package/ui.js +2 -2
  30. package/scripts/csdr/version/app-common.js +32 -0
  31. package/scripts/csdr/version/app-env-target.js +5 -295
  32. package/scripts/csdr/version/app.js +5 -3
  33. package/scripts/csdr/version/{app-env-target.test.js → common..test.js} +32 -31
  34. package/scripts/csdr/version/common.js +277 -0
  35. package/scripts/csdr/version/package-common.js +158 -0
  36. package/scripts/csdr/version/package-default.js +144 -0
  37. package/scripts/csdr/version/package-remote.js +51 -0
  38. package/scripts/csdr/version/package.js +16 -275
  39. package/scripts/utils/api-utils.js +90 -0
  40. package/scripts/utils/build/package/nodeJs.js +2 -1
  41. package/scripts/utils/pre-build/elements.js +8 -8
  42. package/scripts/utils/pre-build/injection/config.js +1 -1
  43. package/scripts/utils/pre-build/injection/externals.js +16 -6
  44. package/scripts/utils/test/test-utils.js +39 -1
  45. package/scripts/csdr/install/composite-utils.js +0 -305
  46. package/scripts/csdr/jira/jira-utils.js +0 -169
  47. package/scripts/csdr/jira/update.js +0 -153
@@ -0,0 +1,277 @@
1
+ 'use strict';
2
+
3
+ // externals
4
+ const semver = require('semver');
5
+
6
+ // local
7
+ const tools = require('../../utils/tools');
8
+
9
+
10
+ const getNewVersionForDev = (versionsMetadata, envsMetadata, rootEnv) => {
11
+ let version;
12
+ const lastIntMetadata = envsMetadata[rootEnv];
13
+
14
+ if (lastIntMetadata) {
15
+ const rootVersion = semver.coerce(envsMetadata[rootEnv].version).raw;
16
+ version = semver.inc(rootVersion, 'major') + '-SNAPSHOT';
17
+ } else {
18
+ version = '1.0.0-SNAPSHOT';
19
+ }
20
+
21
+ tools.logInfo(`Probable new version : ${version}`);
22
+
23
+ // if no versions history is found for the current project, initial version is set
24
+ if (!versionsMetadata.versions) {
25
+ tools.logSuccess(`No historical version found : version = ${version}`);
26
+ version += '.0';
27
+
28
+ } else {
29
+ // check if the root version already exsists
30
+ const prevVersions = versionsMetadata.versions.filter((v) => {
31
+ return v.name.indexOf(version) > -1;
32
+ });
33
+
34
+ // do the increment over the last version found having the same root version
35
+ if (prevVersions.length) {
36
+ const lastVersion = prevVersions[prevVersions.length - 1];
37
+
38
+ if (lastVersion) {
39
+ tools.logInfo(`Version already found [${lastVersion.name}]`);
40
+ version = semver.inc(lastVersion.name, 'prerelease');
41
+ tools.logSuccess(`Final version : ${version}`);
42
+ }
43
+
44
+ // if it's a branch new DEV stream release, the snapshot is itialized
45
+ } else {
46
+ version += '.0';
47
+ }
48
+ }
49
+
50
+ return version;
51
+ }
52
+
53
+ const getNewVersionForProd = (versionsMetadata, envsMetadata) => {
54
+ let version;
55
+
56
+ // get the last DEV version from env metadata
57
+ const lastAccVersion = envsMetadata['ACC'].version;
58
+
59
+ tools.logInfo(`Fetched last version from ACC : ${lastAccVersion}`);
60
+
61
+ // coerce the version (X.Y.Z-INT.n will generate : X.Y.Z)
62
+ const rootVersion = semver.coerce(lastAccVersion).raw;
63
+ const tempVersion = rootVersion.split('.');
64
+ const rootVersionMinor = `${tempVersion[0]}.${tempVersion[1]}`;
65
+
66
+ // check if the root version already exists
67
+ const prevVersions = versionsMetadata.versions.filter((v) => {
68
+ return v.name.indexOf(rootVersionMinor) > -1 && v.envTarget === 'PROD';
69
+ });
70
+
71
+ if (prevVersions.length) {
72
+ const lastVersion = prevVersions[prevVersions.length - 1];
73
+
74
+ tools.logInfo(`Version already found [${lastVersion.name}]`);
75
+ version = semver.inc(lastVersion.name, 'patch');
76
+ tools.logInfo(`Incremented version : ${version}`);
77
+
78
+ } else {
79
+ version = rootVersion;
80
+ }
81
+
82
+ tools.logSuccess(`Final version : ${version}`);
83
+
84
+ return version;
85
+ }
86
+
87
+
88
+ const getNewVersionForEnv = (versionsMetadata, envsMetadata, rootEnv, envTarget) => {
89
+ let version;
90
+
91
+ tools.logInfo(`Fetching version from rootEnv: ${rootEnv} for target: ${envTarget}`);
92
+
93
+ // check if envMetadata contains data for the rootEnv
94
+ if (!envsMetadata[rootEnv]) {
95
+ throw new Error(`No metadata found for rootEnv: ${rootEnv} for envTarget build: ${envTarget}`);
96
+ }
97
+
98
+ // get the last DEV version from env metadata
99
+ const lastRootEnvVersion = envsMetadata[rootEnv].version;
100
+
101
+ tools.logInfo(`Fetched last version from ${rootEnv} : ${lastRootEnvVersion}`);
102
+
103
+ // coerce the version (X.Y.Z-SNAPSHOT will generate : X.Y.Z)
104
+ const rootVersion = semver.coerce(lastRootEnvVersion).raw;
105
+
106
+ // check if the root version already exists
107
+ const prevVersions = versionsMetadata.versions.filter((v) => {
108
+ return v.name.indexOf(rootVersion) > -1 && v.envTarget === envTarget;
109
+ });
110
+
111
+ if (prevVersions.length) {
112
+ const lastVersion = prevVersions[prevVersions.length - 1];
113
+
114
+ tools.logInfo(`Version already found [${lastVersion.name}]`);
115
+ version = semver.inc(lastVersion.name, 'prerelease');
116
+ tools.logInfo(`Incremented version : ${version}`);
117
+
118
+ } else {
119
+ version = rootVersion + '-' + envTarget + '.0';
120
+ }
121
+
122
+ tools.logSuccess(`Final version : ${version}`);
123
+
124
+ return version;
125
+ }
126
+
127
+
128
+
129
+
130
+ module.exports.getNewVersionDefault = (envTarget, versionsMetadata, envsMetadata) => {
131
+ tools.logInfo(`Retrieve version for ${envTarget}`);
132
+
133
+ return Promise.resolve()
134
+ .then(() => {
135
+ let version;
136
+
137
+ // =====================================================================
138
+ // DEV target : format : X.Y.Z-SNAPSHOT.n
139
+ // - where X.Y.Z is last INT release next MAJOR version
140
+ // =====================================================================
141
+
142
+ if (envTarget === 'DEV') {
143
+ version = getNewVersionForDev(versionsMetadata, envsMetadata, 'INT');
144
+ }
145
+
146
+
147
+ // =====================================================================
148
+ // TST target : format : X.Y.Z-TST.n
149
+ // - where X.Y.Z is the last root version of DEV env target
150
+ // =====================================================================
151
+
152
+ if (envTarget === 'TST') {
153
+ version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'DEV', 'TST');
154
+ }
155
+
156
+
157
+ // =====================================================================
158
+ // INT target : format : X.Y.Z-INT.n
159
+ // - where X.Y.Z is the last root version of TST env target
160
+ // =====================================================================
161
+
162
+ if (envTarget === 'INT') {
163
+ version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'TST', 'INT');
164
+ }
165
+
166
+
167
+ // =====================================================================
168
+ // ACC target : format : X.Y.Z-envTarget.n
169
+ // - where X.Y.Z is the last root version of INT env target
170
+ // =====================================================================
171
+
172
+ if (envTarget === 'ACC') {
173
+ version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'INT', 'ACC');
174
+ }
175
+
176
+ // =====================================================================
177
+ // DLT targets : format : X.Y.Z-envTarget.n
178
+ // - where X.Y.Z is the last root version of ACC env target
179
+ // =====================================================================
180
+
181
+ if (envTarget === 'DLT') {
182
+ version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'ACC', 'DLT');
183
+ }
184
+
185
+ // =====================================================================
186
+ // TRN targets : format : X.Y.Z-envTarget.n
187
+ // - where X.Y.Z is the last root version of PROD env target
188
+ // =====================================================================
189
+
190
+ if (envTarget === 'TRN') {
191
+ version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'ACC', 'TRN');
192
+ }
193
+
194
+ // =====================================================================
195
+ // FOR PROD : format X.Y.Z(+1)
196
+ // - where X.Y.Z is the last version of PROD with the same INT root
197
+ // =====================================================================
198
+
199
+ if (envTarget === 'PROD') {
200
+ version = getNewVersionForProd(versionsMetadata, envsMetadata);
201
+ }
202
+
203
+ // Check if version has been found, it can never be empty
204
+ if (!version) {
205
+ throw new Error(`Unable to generate version for ${envTarget}`);
206
+ }
207
+
208
+ return version;
209
+ })
210
+
211
+ .catch((e) => {
212
+ throw e;
213
+ })
214
+ }
215
+
216
+
217
+
218
+ module.exports.getNewVersionDTAP = (envTarget, versionsMetadata, envsMetadata) => {
219
+ tools.logInfo(`Retrieve version for ${envTarget}`);
220
+
221
+ return Promise.resolve()
222
+ .then(() => {
223
+ let version;
224
+
225
+ // =====================================================================
226
+ // DEV target : format : X.Y.Z-SNAPSHOT.n
227
+ // - where X.Y.Z is last INT release next MAJOR version
228
+ // =====================================================================
229
+
230
+ if (envTarget === 'DEV') {
231
+ version = getNewVersionForDev(versionsMetadata, envsMetadata, 'TST');
232
+ }
233
+
234
+
235
+ // =====================================================================
236
+ // TST target : format : X.Y.Z-TST.n
237
+ // - where X.Y.Z is the last root version of DEV env target
238
+ // =====================================================================
239
+
240
+ if (envTarget === 'TST') {
241
+ version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'DEV', 'TST');
242
+ }
243
+
244
+
245
+ // =====================================================================
246
+ // ACC target : format : X.Y.Z-envTarget.n
247
+ // - where X.Y.Z is the last root version of INT env target
248
+ // =====================================================================
249
+
250
+ if (envTarget === 'ACC') {
251
+ version = getNewVersionForEnv(versionsMetadata, envsMetadata, 'TST', 'ACC');
252
+ }
253
+
254
+
255
+ // =====================================================================
256
+ // FOR PROD : format X.Y.Z(+1)
257
+ // - where X.Y.Z is the last version of PROD with the same INT root
258
+ // =====================================================================
259
+
260
+ if (envTarget === 'PROD') {
261
+ version = getNewVersionForProd(versionsMetadata, envsMetadata);
262
+ }
263
+
264
+ // Check if version has been found, it can never be empty
265
+ if (!version) {
266
+ throw new Error(`Unable to generate version for ${envTarget}`);
267
+ }
268
+
269
+ return version;
270
+ })
271
+
272
+ .catch((e) => {
273
+ throw e;
274
+ })
275
+ }
276
+
277
+
@@ -0,0 +1,158 @@
1
+ 'use strict';
2
+
3
+ // externals
4
+ const semver = require('semver');
5
+ const path = require('path');
6
+ const execa = require('execa');
7
+ const fs = require('fs');
8
+
9
+ // local
10
+ const tools = require('../../utils/tools');
11
+ const templateUtils = require('../templates/template-utils');
12
+ const configUtils = require('../config/config-utils');
13
+
14
+
15
+ // constants
16
+ const { dryRun, nexusUser, nexusPassword } = tools.getArgs();
17
+
18
+
19
+ const writePackageJsonCore = (newVersion, folder, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch) => {
20
+ return Promise.resolve()
21
+ .then(() => {
22
+ const pkgJsonFile = path.resolve(folder, 'package.json');
23
+ const pkgJson = require(pkgJsonFile);
24
+
25
+ let tag;
26
+
27
+ if (isSnapshot) {
28
+ tag = 'snapshot';
29
+ } else if (isNextBranch) {
30
+ tag = 'next';
31
+ } else if (isSupportBranch) {
32
+ tag = 'prev';
33
+ } else {
34
+ tag = 'latest';
35
+ }
36
+
37
+ pkgJson.version = newVersion;
38
+ pkgJson.tag = tag;
39
+
40
+ tools.logInfo(`Updating package version : ${newVersion} / tag: ${tag} for ${pkgJsonFile}`);
41
+
42
+ if (!dryRun) {
43
+ tools.writeJsonFileSync(pkgJsonFile, pkgJson);
44
+ }
45
+ })
46
+ .catch((e) => {
47
+ throw e;
48
+ })
49
+ }
50
+
51
+ const writePackageJson = (pkg, newVersion, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch) => {
52
+ return Promise.resolve()
53
+ .then(() => {
54
+ tools.logTitle('updating package version');
55
+
56
+ if (!pkg.parent) {
57
+ return Promise.resolve()
58
+ .then(() => {
59
+ return writePackageJsonCore(newVersion, pkg.paths.pkgDirectory, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch);
60
+ })
61
+ .then(() => {
62
+ if (!pkg.element && !pkg.config) {
63
+ return writePackageJsonCore(newVersion, pkg.paths.pkgPublish, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch);
64
+ }
65
+ })
66
+ .catch((e) => {
67
+ throw e;
68
+ })
69
+
70
+ } else {
71
+ return Promise.resolve()
72
+ .then(() => {
73
+ return writePackageJsonCore(newVersion, pkg.paths.pkgDirectory, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch);
74
+ })
75
+ .then(() => {
76
+ let linkedPackages = Object.keys(pkg.packages)
77
+ .map(p => {
78
+ const pkg = configUtils.packages.getPackage(p);
79
+ return pkg;
80
+ })
81
+
82
+ return tools.removeArrayDuplicates(linkedPackages, 'name');
83
+ })
84
+
85
+ .then((linkedPackages) => Promise.resolve().then(() => {
86
+ return linkedPackages.reduce((promise, pkg) => {
87
+ return promise.then(() => (
88
+ writePackageJsonCore(newVersion, pkg.paths.pkgPublish, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch)
89
+ ));
90
+ }, Promise.resolve());
91
+ }))
92
+
93
+ .catch((e) => {
94
+ throw e;
95
+ })
96
+ }
97
+ })
98
+ .then(() => {
99
+ tools.logSuccess();
100
+ })
101
+ .catch((e) => {
102
+ throw e;
103
+ })
104
+ }
105
+
106
+
107
+
108
+ const writePomXml = (pkg, newVersion, isSnapshot, isForceTimestamp = true) => {
109
+
110
+ tools.logTitle(`updating project pom.xml version: ${newVersion}`);
111
+
112
+
113
+ if (dryRun) {
114
+ return;
115
+ }
116
+
117
+ return Promise.resolve()
118
+ .then(() => {
119
+ return templateUtils.generateMavenSettings(nexusUser, nexusPassword);
120
+ })
121
+
122
+ .then((mavenSettingsFile) => {
123
+
124
+ tools.logInfo(`Executing mvn versions on : ${pkg.paths.pkgDirectory}`);
125
+
126
+ execa.shellSync('mvn versions:set -T1 -DnewVersion=' + newVersion + ' -s ' + mavenSettingsFile, { cwd: pkg.paths.pkgDirectory });
127
+ execa.shellSync('mvn versions:commit -T1' + ' -s ' + mavenSettingsFile, { cwd: pkg.paths.pkgDirectory });
128
+
129
+ if (isForceTimestamp) {
130
+ // timestamp file is forced to have at least one file to commit, as snapshot release
131
+ // for backend can keep the same version until its latest
132
+ const tsversionFile = path.resolve(pkg.paths.pkgDirectory, '.tsversion');
133
+ fs.writeFileSync(tsversionFile, Date.now());
134
+
135
+ const versionFile = path.resolve(pkg.paths.pkgDirectory, '.version.properties');
136
+ fs.writeFileSync(versionFile, newVersion);
137
+ }
138
+ })
139
+ .then(() => {
140
+ tools.logSuccess();
141
+ })
142
+ .catch((e) => {
143
+ throw e;
144
+ })
145
+ }
146
+
147
+
148
+
149
+ module.exports.updateVersion = (pkg, newVersion, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch) => {
150
+ if (pkg.backend) {
151
+ return writePomXml(pkg, newVersion, isSnapshot);
152
+ }
153
+ else {
154
+ return writePackageJson(pkg, newVersion, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch);
155
+ }
156
+ }
157
+
158
+
@@ -0,0 +1,144 @@
1
+ 'use strict';
2
+
3
+ // externals
4
+ const semver = require('semver');
5
+ const path = require('path');
6
+
7
+ // local
8
+ const tools = require('../../utils/tools');
9
+
10
+
11
+ const getCurrentVersion = (pkg) => {
12
+ return Promise.resolve()
13
+ .then(() => {
14
+ let currentVersion;
15
+
16
+ tools.logTitle('Extracting current version');
17
+
18
+ if (pkg.backend) {
19
+ // if nodejs backend, explicitely declared
20
+ if (pkg.build && pkg.build.nodejs) {
21
+ tools.logInfo('UI package => extracting from package.json');
22
+
23
+ const pathPkgJson = path.resolve(pkg.paths.pkgDirectory, 'package.json');
24
+ const pkgJson = require(pathPkgJson);
25
+ currentVersion = pkgJson.version;
26
+
27
+ // by default maven java backend is taken into account
28
+ } else {
29
+ tools.logInfo('Backend => extracting pom.xml');
30
+ const xmlContent = tools.getXMLJsContent(path.join(pkg.paths.pkgDirectory, 'pom.xml'));
31
+
32
+ tools.logInfo('Content found:');
33
+ console.log(xmlContent);
34
+
35
+ currentVersion = xmlContent.project.version.toString();
36
+ }
37
+
38
+ } else {
39
+ tools.logInfo('UI package => extracting from package.json');
40
+
41
+ const pathPkgJson = path.resolve(pkg.paths.pkgDirectory, 'package.json');
42
+ const pkgJson = require(pathPkgJson);
43
+ currentVersion = pkgJson.version;
44
+ }
45
+
46
+ tools.logSuccess('Current version found : ' + currentVersion);
47
+ return currentVersion;
48
+ })
49
+ .catch((e) => {
50
+ throw e;
51
+ })
52
+ }
53
+
54
+
55
+ const getReleaseType = (commitsMetadata) => {
56
+ tools.logInfo('Getting release type based on commits metadata parsed from last tag');
57
+
58
+ const RELEASE_TYPES = ['major', 'minor', 'patch'];
59
+
60
+ let level = 2;
61
+ let breakings = 0;
62
+ let features = 0;
63
+
64
+ commitsMetadata.forEach((commit) => {
65
+ if (commit.breakingChange) {
66
+ breakings += commit.body;
67
+ level = 1; // no major bump on "breaking changes"
68
+ } else if (commit.type === 'feat') {
69
+ features += 1;
70
+ if (level === 2) {
71
+ level = 1;
72
+ }
73
+ }
74
+ });
75
+
76
+ return {
77
+ level: level,
78
+ reason: 'There are ' + breakings + ' BREAKING CHANGES and ' + features + ' features',
79
+ releaseType: RELEASE_TYPES[level]
80
+ };
81
+ }
82
+
83
+
84
+ // PUBLIC METHODS
85
+
86
+ module.exports.getNewVersion = (
87
+ pkg,
88
+ commits,
89
+ isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch
90
+ ) => {
91
+ return Promise.resolve()
92
+ .then(() => {
93
+ return getCurrentVersion(pkg);
94
+ })
95
+
96
+ .then((currentVersion) => {
97
+ tools.logTitle('Extracting recommended version');
98
+
99
+ tools.logInfo(`Current version found : ${currentVersion}`);
100
+
101
+ const release = getReleaseType(commits);
102
+ tools.logInfo('release info found : ' + JSON.stringify(release));
103
+
104
+ let newVersion = '1.0.0';
105
+
106
+ if (isNextBranch) {
107
+ newVersion = semver.inc(currentVersion, 'prerelease');
108
+ } else {
109
+ newVersion = semver.valid(release.releaseType) || semver.inc(currentVersion, release.releaseType)
110
+ }
111
+
112
+ tools.logInfo('probable new version : ' + newVersion);
113
+
114
+ if (isSnapshot) {
115
+ if (pkg.backend) {
116
+ if (pkg.build && pkg.build.nodejs) {
117
+ newVersion += '-snapshot-' + Date.now();
118
+ } else {
119
+ newVersion += '-SNAPSHOT';
120
+ }
121
+ } else {
122
+ newVersion += '-snapshot-' + Date.now();
123
+ }
124
+
125
+ } else if (isSupportBranch) {
126
+ if (pkg.backend) {
127
+ newVersion = semver.inc(currentVersion, 'prerelease');
128
+ }
129
+ } else if (isHotfixBranch) {
130
+ newVersion = semver.inc(currentVersion, 'prerelease');
131
+ }
132
+
133
+ tools.logSuccess('new version generated : ' + newVersion);
134
+
135
+ return newVersion;
136
+ })
137
+ .catch((e) => {
138
+ throw e;
139
+ })
140
+ }
141
+
142
+
143
+
144
+
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ // externals
4
+ const semver = require('semver');
5
+ const path = require('path');
6
+ const execa = require('execa');
7
+ const fs = require('fs');
8
+
9
+ // local
10
+ const tools = require('../../utils/tools');
11
+ const metadataUtils = require('../metadata/metadata-utils');
12
+
13
+ // inner modules
14
+ const innerCommon = require('./common');
15
+
16
+ // constants
17
+ const { dryRun } = tools.getArgs();
18
+
19
+
20
+ // for env-based build, we take the latest TST release version as the base
21
+ module.exports.getNewVersion = (pkg, envTarget) => {
22
+ let versionsMetadata;
23
+ let envsMetadata;
24
+
25
+ return Promise.resolve()
26
+ // fetch versions history and store
27
+ .then(() => {
28
+ return metadataUtils.packageVersions.getMetadata(pkg);
29
+ })
30
+ .then((metadata) => {
31
+ versionsMetadata = metadata;
32
+ })
33
+
34
+ // fetch envs metadata and store
35
+ .then(() => {
36
+ return metadataUtils.packageEnvs.getMetadata(pkg);
37
+ })
38
+ .then((metadata) => {
39
+ envsMetadata = metadata;
40
+ })
41
+
42
+
43
+ // generating new version based on the env target and the envs cycle type
44
+ .then(() => {
45
+ return innerCommon.getNewVersionDefault(envTarget, versionsMetadata, envsMetadata);
46
+ })
47
+
48
+ .catch((e) => {
49
+ throw e;
50
+ })
51
+ }