@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.
- package/.version.properties +1 -1
- package/CHANGELOG.md +26 -0
- package/global.test.js +60 -40
- package/package.json +7 -7
- package/sandbox.js +50 -6
- package/scripts/csdr/config/global.js +9 -0
- package/scripts/csdr/config/packages.js +2 -0
- package/scripts/csdr/config/projects.test.js +11 -9
- package/scripts/csdr/install/build-app.js +6 -38
- package/scripts/csdr/install/build-package.js +12 -77
- package/scripts/csdr/install/composite-core.js +256 -0
- package/scripts/csdr/install/install-utils.js +8 -4
- package/scripts/csdr/install/local-dev.js +2 -2
- package/scripts/csdr/install/packages.js +90 -0
- package/scripts/csdr/install/projects.js +76 -0
- package/scripts/csdr/install/{remote.js → remotes.js} +46 -55
- package/scripts/csdr/metadata/app-envs.js +0 -39
- package/scripts/csdr/metadata/app-history.js +0 -66
- package/scripts/csdr/metadata/app-versions.js +2 -12
- package/scripts/csdr/metadata/app.js +2 -2
- package/scripts/csdr/metadata/metadata-utils.js +2 -0
- package/scripts/csdr/metadata/package-envs.js +71 -0
- package/scripts/csdr/metadata/package-versions.js +79 -0
- package/scripts/csdr/metadata/package.js +13 -50
- package/scripts/csdr/release/package/backend.js +2 -2
- package/scripts/csdr/release/package/common.js +59 -16
- package/scripts/csdr/release/package/release-package.js +10 -7
- package/scripts/csdr/release/package/remote.js +2 -2
- package/scripts/csdr/release/package/ui.js +2 -2
- package/scripts/csdr/version/app-common.js +32 -0
- package/scripts/csdr/version/app-env-target.js +5 -295
- package/scripts/csdr/version/app.js +5 -3
- package/scripts/csdr/version/{app-env-target.test.js → common..test.js} +32 -31
- package/scripts/csdr/version/common.js +277 -0
- package/scripts/csdr/version/package-common.js +158 -0
- package/scripts/csdr/version/package-default.js +144 -0
- package/scripts/csdr/version/package-remote.js +51 -0
- package/scripts/csdr/version/package.js +16 -275
- package/scripts/utils/api-utils.js +90 -0
- package/scripts/utils/build/package/nodeJs.js +2 -1
- package/scripts/utils/pre-build/elements.js +8 -8
- package/scripts/utils/pre-build/injection/config.js +1 -1
- package/scripts/utils/pre-build/injection/externals.js +16 -6
- package/scripts/utils/test/test-utils.js +39 -1
- package/scripts/csdr/install/composite-utils.js +0 -305
- package/scripts/csdr/jira/jira-utils.js +0 -169
- package/scripts/csdr/jira/update.js +0 -153
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// GLOBAL
|
|
4
|
+
const path = require('path');
|
|
5
|
+
|
|
6
|
+
// LOCAL
|
|
7
|
+
const tools = require('../../utils/tools');
|
|
8
|
+
const metadataUtils = require('../metadata/metadata-utils');
|
|
9
|
+
|
|
10
|
+
// INNER MODULES
|
|
11
|
+
const innerCommon = require('./common');
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
const getDeps_DEV = (compositeDeps, prevSnapshotEnabled) => {
|
|
17
|
+
return Promise.resolve()
|
|
18
|
+
.then(() => {
|
|
19
|
+
if (prevSnapshotEnabled) {
|
|
20
|
+
tools.logInfo('project has prevSnapshot enabled, getting deps list from prevSnapshotsTag');
|
|
21
|
+
return metadataUtils.package.getPackagesDeps('packagesPrevSnapshotsTag');
|
|
22
|
+
} else {
|
|
23
|
+
tools.logInfo('getting project deps from snapshots metadata list');
|
|
24
|
+
return metadataUtils.package.getPackagesDeps('packages');
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
// Re-mapping the dependencies found against their max "carret" versions found in the base dependencies defs in the project
|
|
29
|
+
.then((metadataDeps) => {
|
|
30
|
+
return innerCommon.getRemappedDeps(metadataDeps, compositeDeps);
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
.catch((e) => {
|
|
34
|
+
throw e;
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
const getDeps_TST = (compositeDeps, prevSnapshotEnabled) => {
|
|
41
|
+
return Promise.resolve()
|
|
42
|
+
.then(() => {
|
|
43
|
+
if (prevSnapshotEnabled) {
|
|
44
|
+
tools.logInfo('project has prevSnapshot enabled, getting deps list from prevTag');
|
|
45
|
+
return metadataUtils.package.getPackagesDeps('packagesPrevTag');
|
|
46
|
+
} else {
|
|
47
|
+
tools.logInfo('getting project deps from packagesLatest metadata list');
|
|
48
|
+
return metadataUtils.package.getPackagesDeps('packagesLatestTag');
|
|
49
|
+
}
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
// Re-mapping the dependencies found against their max "carret" versions found in the base dependencies defs in the project
|
|
53
|
+
.then((metadataDeps) => {
|
|
54
|
+
return innerCommon.getRemappedDeps(metadataDeps, compositeDeps);
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
.catch((e) => {
|
|
58
|
+
throw e;
|
|
59
|
+
})
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
const getCompositeDepsByEnv = (compositePath, envTarget, compositeType, envsMetadata, prevEnv, currentEnv) => {
|
|
66
|
+
|
|
67
|
+
let prevEnvDeps = {}, currentEnvDeps = {};
|
|
68
|
+
|
|
69
|
+
if (envsMetadata[prevEnv]) {
|
|
70
|
+
prevEnvDeps = envsMetadata[prevEnv].dependencies;
|
|
71
|
+
} else {
|
|
72
|
+
throw new Error(`
|
|
73
|
+
${prevEnv} dependencies not found for ${currentEnv} dependencies fetch, ensure that the project/remote has been delivered to a previous environment first
|
|
74
|
+
`);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (envsMetadata[currentEnv]) {
|
|
78
|
+
currentEnvDeps = envsMetadata[currentEnv].dependencies;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
// if default composite type then we iterate over all detected composite files by env
|
|
83
|
+
if (compositeType === 'DEFAULT') {
|
|
84
|
+
return Promise.resolve()
|
|
85
|
+
.then(() => {
|
|
86
|
+
tools.logTitle('Processing accumulated composites for ALL composite types');
|
|
87
|
+
const filesByEnv = tools.getFiles(compositePath).filter(f => f.startsWith(`dependencies-composite-${envTarget}` ));
|
|
88
|
+
var returnedDeps = {};
|
|
89
|
+
|
|
90
|
+
filesByEnv.forEach((f) => {
|
|
91
|
+
tools.logInfo(`Parsing : ${f}`);
|
|
92
|
+
const compositeFile = path.join(process.cwd(), compositePath, f);
|
|
93
|
+
const fileDeps = tools.getJsonFileContent(compositeFile).lockedDependencies || {};
|
|
94
|
+
console.log(JSON.stringify(fileDeps, null, 2));
|
|
95
|
+
returnedDeps = { ...returnedDeps, ...fileDeps};
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
return { ...prevEnvDeps, ...returnedDeps };
|
|
99
|
+
})
|
|
100
|
+
.catch((e) => {
|
|
101
|
+
throw e;
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
// if particular composite type is provided, the dependencies are taken only from this one
|
|
105
|
+
} else {
|
|
106
|
+
return Promise.resolve()
|
|
107
|
+
.then(() => {
|
|
108
|
+
tools.logTitle(`Processing dependencies for composite type : ${compositeType}`);
|
|
109
|
+
const compositeFile = path.join(process.cwd(), compositePath, `dependencies-composite-${envTarget}-${compositeType}.json`);
|
|
110
|
+
const fileDeps = tools.getJsonFileContent(compositeFile).lockedDependencies || {};
|
|
111
|
+
console.log(JSON.stringify(fileDeps, null, 2));
|
|
112
|
+
return { ...currentEnvDeps, ...fileDeps };
|
|
113
|
+
})
|
|
114
|
+
.catch((e) => {
|
|
115
|
+
throw e;
|
|
116
|
+
})
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
module.exports.getCompositeDeps = (
|
|
128
|
+
compositePath,
|
|
129
|
+
envTarget = 'DEV',
|
|
130
|
+
compositeType = 'DEFAULT',
|
|
131
|
+
prevSnapshotEnabled = false,
|
|
132
|
+
envsMetadata
|
|
133
|
+
) => {
|
|
134
|
+
|
|
135
|
+
tools.logInfo(`Processing installation at : ${compositePath} for env: ${envTarget} - compositeType: ${compositeType}`);
|
|
136
|
+
|
|
137
|
+
return Promise.resolve()
|
|
138
|
+
// getting root composite - dependencies-composite.json content
|
|
139
|
+
.then(() => {
|
|
140
|
+
const compositeJsonFile = path.join(process.cwd(), compositePath, 'dependencies-composite.json');
|
|
141
|
+
return tools.getJsonFileContent(compositeJsonFile) || {};
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
// getting env specific composite with compositeType if provided
|
|
145
|
+
.then((compositeDeps) => {
|
|
146
|
+
/**
|
|
147
|
+
* For DEV target, we take the outermost known versions of the packages,
|
|
148
|
+
* including : SNAPSHOTS & LATEST
|
|
149
|
+
*/
|
|
150
|
+
if (envTarget === 'DEV') {
|
|
151
|
+
return getDeps_DEV(compositeDeps, prevSnapshotEnabled);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* For TST target, we take only the LATEST know versions of the packages,
|
|
157
|
+
* including : LATEST
|
|
158
|
+
*/
|
|
159
|
+
if (envTarget === 'TST') {
|
|
160
|
+
return getDeps_TST(compositeDeps, prevSnapshotEnabled);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* For INT target, the base versions of packages is
|
|
166
|
+
* Default : dependencies of LATEST TST known composite
|
|
167
|
+
* overridden by : INT composite - locked dependencies to declare the deps that are staying on the TST env and
|
|
168
|
+
* will not go further for the moment.
|
|
169
|
+
*/
|
|
170
|
+
if (envTarget === 'INT') {
|
|
171
|
+
return getCompositeDepsByEnv(
|
|
172
|
+
compositePath,
|
|
173
|
+
envTarget,
|
|
174
|
+
compositeType,
|
|
175
|
+
envsMetadata,
|
|
176
|
+
'TST', 'INT'
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* For ACC, the base versions of packages is
|
|
183
|
+
* Default : dependencies of LATEST INT known composite
|
|
184
|
+
* overridden by : lockedDependencies if any
|
|
185
|
+
*/
|
|
186
|
+
if (envTarget === 'ACC') {
|
|
187
|
+
return getCompositeDepsByEnv(
|
|
188
|
+
compositePath,
|
|
189
|
+
envTarget,
|
|
190
|
+
compositeType,
|
|
191
|
+
envsMetadata,
|
|
192
|
+
'INT', 'ACC'
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* For PROD target, the base versions of packages is
|
|
199
|
+
* Default : PROD respective composite
|
|
200
|
+
*/
|
|
201
|
+
if (envTarget === 'PROD') {
|
|
202
|
+
return getCompositeDepsByEnv(
|
|
203
|
+
compositePath,
|
|
204
|
+
envTarget,
|
|
205
|
+
compositeType,
|
|
206
|
+
envsMetadata,
|
|
207
|
+
'TRN', 'PROD'
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* For TRN, the base versions of packages is
|
|
214
|
+
* Default : dependencies of LATEST PROD known composite
|
|
215
|
+
* overridden by : hotfixDependencies if any
|
|
216
|
+
*/
|
|
217
|
+
if (envTarget === 'TRN') {
|
|
218
|
+
return getCompositeDepsByEnv(
|
|
219
|
+
compositePath,
|
|
220
|
+
envTarget,
|
|
221
|
+
compositeType,
|
|
222
|
+
envsMetadata,
|
|
223
|
+
'ACC', 'TRN'
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* For DLT, the base versions of packages is
|
|
230
|
+
* Default : dependencies of LATEST ACC known composite
|
|
231
|
+
*/
|
|
232
|
+
if (envTarget === 'DLT') {
|
|
233
|
+
return getCompositeDepsByEnv(
|
|
234
|
+
compositePath,
|
|
235
|
+
envTarget,
|
|
236
|
+
compositeType,
|
|
237
|
+
envsMetadata,
|
|
238
|
+
'ACC', 'DLT'
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
})
|
|
242
|
+
|
|
243
|
+
// Finally the re-mapped env-based composite of dependencies is returned
|
|
244
|
+
.then((finalDeps) => {
|
|
245
|
+
tools.logInfo('Packages composite found for target : ');
|
|
246
|
+
console.log(finalDeps);
|
|
247
|
+
|
|
248
|
+
// returning the composite packages found
|
|
249
|
+
return finalDeps;
|
|
250
|
+
})
|
|
251
|
+
|
|
252
|
+
.catch((e) => {
|
|
253
|
+
throw e;
|
|
254
|
+
})
|
|
255
|
+
}
|
|
256
|
+
|
|
@@ -5,12 +5,16 @@ const innerBuildApp = require('./build-app');
|
|
|
5
5
|
const innerBuildPackage = require('./build-package');
|
|
6
6
|
const innerLocalDev = require('./local-dev');
|
|
7
7
|
const innerCommon = require('./common');
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const innerProjects = require('./projects');
|
|
9
|
+
const innerRemotes = require('./remotes');
|
|
10
|
+
const innerPackages = require('./packages');
|
|
11
|
+
const innerCompositeCore = require('./composite-core');
|
|
10
12
|
|
|
11
13
|
module.exports.buildApp = innerBuildApp;
|
|
12
14
|
module.exports.buildPackage = innerBuildPackage;
|
|
13
15
|
module.exports.localDev = innerLocalDev;
|
|
14
16
|
module.exports.common = innerCommon;
|
|
15
|
-
module.exports.
|
|
16
|
-
module.exports.
|
|
17
|
+
module.exports.projects = innerProjects;
|
|
18
|
+
module.exports.remotes = innerRemotes;
|
|
19
|
+
module.exports.packages = innerPackages;
|
|
20
|
+
module.exports.compositeCore = innerCompositeCore;
|
|
@@ -11,7 +11,7 @@ const metadataUtils = require('../metadata/metadata-utils');
|
|
|
11
11
|
|
|
12
12
|
// INNER MODULES
|
|
13
13
|
const innerCommon = require('./common');
|
|
14
|
-
const
|
|
14
|
+
const innerRemotes = require('./remotes');
|
|
15
15
|
|
|
16
16
|
// FETCH ARGS
|
|
17
17
|
const { dryRun, skipInstall } = tools.getArgs();
|
|
@@ -100,7 +100,7 @@ module.exports.install = (pkg) => {
|
|
|
100
100
|
|
|
101
101
|
// checking remotes
|
|
102
102
|
.then(() => {
|
|
103
|
-
return
|
|
103
|
+
return innerRemotes.installDeps(pkg);
|
|
104
104
|
})
|
|
105
105
|
|
|
106
106
|
.then(() => {
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// GLOBAL
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const glob = require('glob');
|
|
6
|
+
|
|
7
|
+
// LOCAL
|
|
8
|
+
const tools = require('../../utils/tools');
|
|
9
|
+
const configUtils = require('../config/config-utils');
|
|
10
|
+
const metadataUtils = require('../metadata/metadata-utils');
|
|
11
|
+
|
|
12
|
+
// INNER MODULES
|
|
13
|
+
const innerCommon = require('./common');
|
|
14
|
+
const innerProjects = require('./projects');
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
module.exports.installDeps = (prj, pkg) => {
|
|
18
|
+
let compositeDeps, localPkgDeps, localPkgCompositeDeps;
|
|
19
|
+
|
|
20
|
+
return Promise.resolve()
|
|
21
|
+
.then(() => {
|
|
22
|
+
// when package is built against an app (depends on this app deps defined)
|
|
23
|
+
// the composite deps of that app is returned (default to DEV target)
|
|
24
|
+
if (prj) {
|
|
25
|
+
return innerProjects.getDeps(prj);
|
|
26
|
+
|
|
27
|
+
// when package is stand-alone, then we take only the deps from within the package.json
|
|
28
|
+
} else {
|
|
29
|
+
return {};
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
.then((deps) => {
|
|
34
|
+
// storing
|
|
35
|
+
compositeDeps = deps;
|
|
36
|
+
|
|
37
|
+
tools.logInfo(`Found composite deps : `);
|
|
38
|
+
console.log(JSON.stringify(compositeDeps, null, 2));
|
|
39
|
+
|
|
40
|
+
// fetching package own deps
|
|
41
|
+
return innerCommon.getLocalPackagesDeps();
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
.then((localPkgDepsIn) => {
|
|
46
|
+
// storing
|
|
47
|
+
localPkgDeps = localPkgDepsIn;
|
|
48
|
+
|
|
49
|
+
tools.logInfo(`Found local packages deps : `);
|
|
50
|
+
console.log(JSON.stringify(localPkgDeps, null, 2));
|
|
51
|
+
|
|
52
|
+
// fetching local package composite
|
|
53
|
+
return innerCommon.getLocalPackagesCompositeDeps();
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
// Get last known working build dependencies from DEVOPS metadata, including snapshot releases
|
|
57
|
+
.then((localPkgCompositeDepsIn) => {
|
|
58
|
+
// storing
|
|
59
|
+
localPkgCompositeDeps = localPkgCompositeDepsIn;
|
|
60
|
+
|
|
61
|
+
return metadataUtils.package.getPackagesDeps('packages');
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
.then((depsMetadata) => {
|
|
65
|
+
return innerCommon.getRemappedDeps(depsMetadata, localPkgCompositeDeps);
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
.then((remappedLocalPkgCompositeDeps) => {
|
|
69
|
+
// fetching extra dependencies on project if any
|
|
70
|
+
let prjDeps = {};
|
|
71
|
+
|
|
72
|
+
if (prj) {
|
|
73
|
+
const prjJsonFile = path.join(process.cwd(), prj.folder, 'dependencies-base.json');
|
|
74
|
+
prjDeps = tools.getJsonFileContent(prjJsonFile) || {};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const fixedDeps = configUtils.global.getConfig().npm.fixedDependencies;
|
|
78
|
+
|
|
79
|
+
if (pkg.build && pkg.build.ownDepsOnly) {
|
|
80
|
+
return innerCommon.installDeps({ ...remappedLocalPkgCompositeDeps, ...localPkgDeps, ...fixedDeps});
|
|
81
|
+
|
|
82
|
+
} else {
|
|
83
|
+
return innerCommon.installDeps({ ...remappedLocalPkgCompositeDeps, ...localPkgDeps, ...prjDeps, ...compositeDeps, ...fixedDeps });
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
.catch((e) => {
|
|
88
|
+
throw e;
|
|
89
|
+
})
|
|
90
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// GLOBAL
|
|
4
|
+
const execa = require('execa');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
|
|
7
|
+
// LOCAL
|
|
8
|
+
const tools = require('../../utils/tools');
|
|
9
|
+
const configUtils = require('../config/config-utils');
|
|
10
|
+
|
|
11
|
+
// INNER MODULES
|
|
12
|
+
const innerCommon = require('./common');
|
|
13
|
+
const innerCompositeCore = require('./composite-core');
|
|
14
|
+
|
|
15
|
+
// FETCH ARGS
|
|
16
|
+
const { dryRun, skipInstall } = tools.getArgs();
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
const getDeps = module.exports.getDeps = (prj, envTarget, compositeType) => {
|
|
21
|
+
return Promise.resolve()
|
|
22
|
+
.then(() => {
|
|
23
|
+
return metadataUtils.appEnvs.getMetadata(prj);
|
|
24
|
+
})
|
|
25
|
+
.then((envsMetadata) => {
|
|
26
|
+
return innerCompositeCore.getDeps(
|
|
27
|
+
prj.folder,
|
|
28
|
+
envTarget,
|
|
29
|
+
compositeType,
|
|
30
|
+
prj.build && prj.build.prevSnapshotEnabled,
|
|
31
|
+
envsMetadata
|
|
32
|
+
);
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
.catch((e) => {
|
|
36
|
+
throw e;
|
|
37
|
+
})
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports.installDeps = (prj, envTarget, compositeType) => {
|
|
41
|
+
let finalDeps, compositeDeps;
|
|
42
|
+
|
|
43
|
+
return Promise.resolve()
|
|
44
|
+
.then(() => {
|
|
45
|
+
return getDeps(prj, envTarget, compositeType);
|
|
46
|
+
})
|
|
47
|
+
.then((deps) => {
|
|
48
|
+
// storing compositeDeps
|
|
49
|
+
compositeDeps = deps;
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
.then(() => {
|
|
53
|
+
return innerCommon.getLocalProjectFixedDeps(prj);
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
.then((prjFixedDeps) => {
|
|
57
|
+
// storing for archiving
|
|
58
|
+
finalDeps = { ...compositeDeps, ...prjFixedDeps };
|
|
59
|
+
|
|
60
|
+
// fetching extra dependencies on project
|
|
61
|
+
const prjBaseJsonFile = path.join(process.cwd(), prj.folder, 'dependencies-base.json');
|
|
62
|
+
const prjBaseDeps = tools.getJsonFileContent(prjBaseJsonFile) || {};
|
|
63
|
+
const fixedDeps = configUtils.global.getConfig().npm.fixedDependencies;
|
|
64
|
+
|
|
65
|
+
return innerCommon.installDeps({ ...prjBaseDeps, ...compositeDeps, ...prjFixedDeps, ...fixedDeps });
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
.then(() => {
|
|
69
|
+
// returning only the composite deps found, only those will be stored in the metadata
|
|
70
|
+
return finalDeps;
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
.catch((e) => {
|
|
74
|
+
throw e;
|
|
75
|
+
})
|
|
76
|
+
}
|
|
@@ -10,30 +10,13 @@ const metadataUtils = require('../metadata/metadata-utils');
|
|
|
10
10
|
|
|
11
11
|
// INNER MODULES
|
|
12
12
|
const innerCommon = require('./common');
|
|
13
|
+
const innerCompositeCore = require('./composite-core');
|
|
13
14
|
|
|
14
15
|
// FETCH ARGS
|
|
15
16
|
const { dryRun } = tools.getArgs();
|
|
16
17
|
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
tools.logTitle('Remote dependencies installation');
|
|
20
|
-
|
|
21
|
-
return Promise.resolve()
|
|
22
|
-
.then(() => {
|
|
23
|
-
if (pkg) {
|
|
24
|
-
return pkgInstall(pkg, isMaster, envTarget);
|
|
25
|
-
} else {
|
|
26
|
-
return allPkgInstall(isMaster, envTarget);
|
|
27
|
-
}
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
.catch((e) => {
|
|
31
|
-
throw e;
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const allPkgInstall = (isMaster, envTarget) => {
|
|
19
|
+
const allPkgInstall = (envTarget, compositeType) => {
|
|
37
20
|
return Promise.resolve()
|
|
38
21
|
|
|
39
22
|
// getting packages to be remotely installed
|
|
@@ -52,7 +35,7 @@ const allPkgInstall = (isMaster, envTarget) => {
|
|
|
52
35
|
.then((packages) => Promise.resolve().then(() => {
|
|
53
36
|
return packages.reduce((promise, pkg) => {
|
|
54
37
|
return promise.then(() => (
|
|
55
|
-
pkgInstall(pkg,
|
|
38
|
+
pkgInstall(pkg, envTarget, compositeType)
|
|
56
39
|
));
|
|
57
40
|
}, Promise.resolve());
|
|
58
41
|
}))
|
|
@@ -62,22 +45,30 @@ const allPkgInstall = (isMaster, envTarget) => {
|
|
|
62
45
|
});
|
|
63
46
|
}
|
|
64
47
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const pkgInstall = (pkg, isMaster, envTarget) => {
|
|
48
|
+
const pkgInstall = (pkg, envTarget, compositeType) => {
|
|
68
49
|
tools.logTitle(`Processing installation for : ${pkg.name}`);
|
|
69
50
|
|
|
70
|
-
|
|
51
|
+
let finalDeps;
|
|
71
52
|
|
|
72
53
|
return Promise.resolve()
|
|
73
54
|
.then(() => {
|
|
74
55
|
// fetching deps from dependencies base and composite if any
|
|
75
|
-
return getDeps(pkg,
|
|
56
|
+
return getDeps(pkg, envTarget, compositeType);
|
|
76
57
|
})
|
|
77
|
-
|
|
78
|
-
.then((deps) => {
|
|
58
|
+
.then((compositeDeps) => {
|
|
79
59
|
// storing for later exports
|
|
80
|
-
|
|
60
|
+
finalDeps = compositeDeps;
|
|
61
|
+
|
|
62
|
+
// getting base deps (3rd parties)
|
|
63
|
+
let baseDeps = {}, deps;
|
|
64
|
+
|
|
65
|
+
const depsBaseJsonFile = path.join(pkg.paths.pkgRootDirectory, 'dependencies-base.json');
|
|
66
|
+
if (tools.isFileExists(depsBaseJsonFile)) {
|
|
67
|
+
baseDeps = tools.getJsonFileContent(depsBaseJsonFile);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// merging base+composite
|
|
71
|
+
deps = { ...baseDeps, ...compositeDeps };
|
|
81
72
|
|
|
82
73
|
// updating package json file before installation
|
|
83
74
|
const pkgJsonFile = path.resolve(pkg.paths.pkgRootDirectory, 'package.json');
|
|
@@ -105,7 +96,8 @@ const pkgInstall = (pkg, isMaster, envTarget) => {
|
|
|
105
96
|
})
|
|
106
97
|
|
|
107
98
|
.then(() => {
|
|
108
|
-
|
|
99
|
+
// returning only the composite deps found, only those will be stored in the metadata
|
|
100
|
+
return finalDeps;
|
|
109
101
|
})
|
|
110
102
|
|
|
111
103
|
.catch((e) => {
|
|
@@ -122,46 +114,45 @@ const pkgInstall = (pkg, isMaster, envTarget) => {
|
|
|
122
114
|
|
|
123
115
|
tools.writeJsonFileSync(pkgJsonFile, pkgJson);
|
|
124
116
|
}
|
|
125
|
-
return
|
|
117
|
+
return finalDeps;
|
|
126
118
|
});
|
|
127
119
|
}
|
|
128
120
|
|
|
129
121
|
|
|
130
|
-
const getDeps = (pkg,
|
|
122
|
+
const getDeps = module.exports.getDeps = (pkg, envTarget, compositeType) => {
|
|
131
123
|
return Promise.resolve()
|
|
132
124
|
.then(() => {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
125
|
+
return metadataUtils.packageEnvs.getMetadata(pkg);
|
|
126
|
+
})
|
|
127
|
+
.then((envsMetadata) => {
|
|
128
|
+
return innerCompositeCore.getCompositeDeps(
|
|
129
|
+
pkg.paths.pkgFromRoot,
|
|
130
|
+
envTarget,
|
|
131
|
+
compositeType,
|
|
132
|
+
pkg.build && pkg.build.prevSnapshotEnabled,
|
|
133
|
+
envsMetadata
|
|
134
|
+
);
|
|
138
135
|
})
|
|
139
|
-
// fetching base dependencies
|
|
140
|
-
.then((depsMetadata) => {
|
|
141
|
-
let depsBase = {};
|
|
142
|
-
|
|
143
|
-
const depsBaseJsonFile = path.join(pkg.paths.pkgRootDirectory, 'dependencies-base.json');
|
|
144
|
-
if (tools.isFileExists(depsBaseJsonFile)) {
|
|
145
|
-
depsBase = tools.getJsonFileContent(depsBaseJsonFile);
|
|
146
|
-
}
|
|
147
136
|
|
|
148
|
-
|
|
137
|
+
.catch((e) => {
|
|
138
|
+
throw e;
|
|
139
|
+
})
|
|
140
|
+
}
|
|
149
141
|
|
|
150
|
-
const depsCompositeJsonFile = path.join(pkg.paths.pkgRootDirectory, 'dependencies-composite.json');
|
|
151
|
-
if (tools.isFileExists(depsCompositeJsonFile)) {
|
|
152
|
-
depsComposite = tools.getJsonFileContent(depsCompositeJsonFile);
|
|
153
|
-
}
|
|
154
142
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
// }
|
|
143
|
+
module.exports.installDeps = (pkg, envTarget, compositeType) => {
|
|
144
|
+
tools.logTitle('Remote dependencies installation');
|
|
158
145
|
|
|
159
|
-
|
|
146
|
+
return Promise.resolve()
|
|
147
|
+
.then(() => {
|
|
148
|
+
if (pkg) {
|
|
149
|
+
return pkgInstall(pkg, envTarget, compositeType);
|
|
150
|
+
} else {
|
|
151
|
+
return allPkgInstall(envTarget, compositeType);
|
|
152
|
+
}
|
|
160
153
|
})
|
|
161
154
|
|
|
162
155
|
.catch((e) => {
|
|
163
156
|
throw e;
|
|
164
157
|
})
|
|
165
158
|
}
|
|
166
|
-
|
|
167
|
-
|
|
@@ -73,46 +73,7 @@ const storeMetadata = (project, newVersion, metadata, envTarget) => {
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
|
|
76
|
-
// const envsMetadataToTable = (metadata) => {
|
|
77
|
-
// return Promise.resolve()
|
|
78
|
-
// .then(() => {
|
|
79
|
-
// let content = '';
|
|
80
|
-
// content += '<h3>Environment status</h3>';
|
|
81
|
-
// content += '<table><thead><tr>';
|
|
82
|
-
// content += '<th>ENV</th>';
|
|
83
|
-
// content += '<th>VERSION</th>';
|
|
84
|
-
// content += '<th>Release date</th>';
|
|
85
|
-
// content += '</tr></thead>';
|
|
86
|
-
// content += '<tbody>';
|
|
87
|
-
|
|
88
|
-
// Object.entries(metadata).forEach((env) => {
|
|
89
|
-
// content += '<tr>';
|
|
90
|
-
// content += `<td>${env[0]}</td>`
|
|
91
|
-
// content += `<td>${env[1].version}</td>`
|
|
92
|
-
// content += `<td>${env[1].releaseDate}</td>`
|
|
93
|
-
// content += '</tr>';
|
|
94
|
-
|
|
95
|
-
// console.log(`ENVS status : ${env[0]} - ${env[1].version} --> ${env[1].releaseDate}`);
|
|
96
|
-
// });
|
|
97
|
-
|
|
98
|
-
// content += '</tbody>';
|
|
99
|
-
// content += '</table>';
|
|
100
|
-
|
|
101
|
-
// tools.logSuccess();
|
|
102
|
-
|
|
103
|
-
// // return sanitizeHtml(content);
|
|
104
|
-
// return content;
|
|
105
|
-
// })
|
|
106
|
-
|
|
107
|
-
// .catch((e) => {
|
|
108
|
-
// throw e;
|
|
109
|
-
// })
|
|
110
|
-
// }
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
76
|
module.exports = {
|
|
115
77
|
getMetadata,
|
|
116
78
|
storeMetadata,
|
|
117
|
-
// envsMetadataToTable,
|
|
118
79
|
}
|