@eui/tools 5.3.90 → 6.1.1

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 (55) hide show
  1. package/.version.properties +1 -1
  2. package/CHANGELOG.md +40 -0
  3. package/bin/eui-scripts.js +2 -0
  4. package/bin/scripts/audit-package.js +10 -0
  5. package/bin/scripts/csdr-upgrade-deps.js +1 -4
  6. package/package.json +1 -1
  7. package/sandbox.js +176 -108
  8. package/scripts/csdr/audit/audit-utils.js +3 -98
  9. package/scripts/csdr/audit/deps.js +89 -0
  10. package/scripts/csdr/audit/styles.js +457 -0
  11. package/scripts/csdr/audit/yarn.js +105 -0
  12. package/scripts/csdr/config/angular.js +26 -23
  13. package/scripts/csdr/config/global.js +18 -18
  14. package/scripts/csdr/config/packages.js +86 -14
  15. package/scripts/csdr/config/projects.js +54 -6
  16. package/scripts/csdr/config/sync.js +15 -1
  17. package/scripts/csdr/init/global.js +122 -0
  18. package/scripts/csdr/init/init-utils.js +8 -296
  19. package/scripts/csdr/init/init.js +44 -14
  20. package/scripts/csdr/init/meta.js +3 -2
  21. package/scripts/csdr/init/packages.js +142 -0
  22. package/scripts/csdr/init/projects.js +112 -0
  23. package/scripts/csdr/init/remotes.js +21 -0
  24. package/scripts/csdr/init/repos.js +5 -31
  25. package/scripts/csdr/install/common.js +43 -385
  26. package/scripts/csdr/install/local-dev.js +55 -46
  27. package/scripts/csdr/install/packages.js +183 -3
  28. package/scripts/csdr/install/projects.js +202 -2
  29. package/scripts/csdr/release/package/release-package.js +26 -56
  30. package/scripts/csdr/release/package/ui.js +6 -85
  31. package/scripts/csdr/sync/sync-utils.js +8 -8
  32. package/scripts/csdr/version/app-default.js +0 -3
  33. package/scripts/csdr/version/package-common.js +2 -4
  34. package/scripts/csdr/version/package-remote.js +0 -4
  35. package/scripts/index.js +0 -2
  36. package/scripts/utils/build/package/build-package-utils.js +5 -13
  37. package/scripts/utils/build/package/maven.js +6 -12
  38. package/scripts/utils/build/package/nodeJs.js +0 -1
  39. package/scripts/utils/build/package/postcss.config.js +0 -2
  40. package/scripts/utils/build/package/styles.js +1 -0
  41. package/scripts/utils/changelog-utils.js +4 -2
  42. package/scripts/utils/git-utils.js +46 -0
  43. package/scripts/utils/pre-build/elements.js +1 -1
  44. package/scripts/utils/pre-build/injection/config.js +21 -134
  45. package/scripts/utils/pre-build/injection/externals.js +135 -90
  46. package/scripts/utils/pre-build/injection/routes-replacement.js +67 -15
  47. package/scripts/utils/pre-build/injection/skeletons.js +3 -2
  48. package/scripts/utils/pre-build/projects.js +1 -3
  49. package/scripts/utils/publish/npm.js +1 -2
  50. package/scripts/utils/serve/element.js +17 -2
  51. package/scripts/utils/svg-utils.js +2 -3
  52. package/scripts/utils/test/test-utils.js +5 -49
  53. package/scripts/utils/tools.js +4 -1
  54. package/scripts/utils/build/package/nestJs.js +0 -45
  55. package/scripts/utils/build/package/stencil.js +0 -13
@@ -1,299 +1,11 @@
1
1
  'use strict';
2
2
 
3
- // GLOBAL
4
- const path = require('path');
5
-
6
- // LOCAL
7
- const tools = require('../../utils/tools');
8
- const injectionUtils = require('../../utils/pre-build/injection/injection-utils');
9
- const configUtils = require('../config/config-utils');
10
-
11
- // INNER MODULES
12
- const innerPrompt = require('./prompt');
13
- const innerMeta = require('./meta');
14
- const innerRepos = require('./repos');
15
-
16
3
  // INNER MODULES - RE-EXPORTS
17
- module.exports.prompt = innerPrompt;
18
- module.exports.meta = innerMeta;
19
- module.exports.repos = innerRepos;
20
-
21
-
22
- const importPackage = (pkg, args) => {
23
- tools.logTitle(`importing package ${pkg.name}`);
24
-
25
- if (pkg.parent) {
26
- tools.logInfo('Parent package ... skipping import');
27
- return Promise.resolve();
28
-
29
- } else {
30
- if (pkg.tsPackage !== false) {
31
- return Promise.resolve()
32
- .then(() => {
33
- if (!pkg.element) {
34
- return configUtils.angular.registerAngularPackage(pkg, args.reset);
35
- } else {
36
- return configUtils.angular.registerAngularProjectDef(pkg, args.reset);
37
- }
38
- })
39
- .then(() => {
40
- if (pkg.pathInclude !== false && !pkg.element) {
41
- return configUtils.angular.registerModulePaths(pkg, args.reset);
42
- }
43
- })
44
-
45
- .then(() => {
46
- tools.logSuccess('OK => package imported');
47
- })
48
-
49
- .catch((e) => {
50
- throw e;
51
- })
52
-
53
- } else {
54
- tools.logInfo('Non TS package... skipping registration');
55
- return Promise.resolve();
56
- }
57
- }
58
- }
59
-
60
-
61
-
62
-
63
-
64
- module.exports.importPackages = (args = {}) => {
65
-
66
- tools.logTitle('Importing configuration of packages');
67
-
68
- const packages = configUtils.packages.getPackages();
69
-
70
- return Promise.resolve()
71
- .then(() => {
72
- configUtils.angular.checkConfigFiles(args.reset);
73
- })
74
- .then(() => Promise.resolve().then(() => {
75
- return packages.reduce((promise, pkg) => {
76
- return promise.then(() => (
77
- importPackage(pkg, args)
78
- ));
79
- }, Promise.resolve());
80
- }))
81
-
82
- .then(() => {
83
- tools.logSuccess('OK => all packages successfully imported');
84
- })
85
-
86
- .catch((e) => {
87
- throw e;
88
- })
89
- }
90
-
91
-
92
- module.exports.importScripts = () => {
93
- return Promise.resolve()
94
- .then(() => {
95
- tools.logTitle("Init scripts for local projects");
96
- const projects = configUtils.projects.getProjects();
97
-
98
- const rootPackageJsonFile = path.join(process.cwd(), 'package.json')
99
- const rootPackageJson = require(rootPackageJsonFile);
100
-
101
- projects.forEach((p) => {
102
- tools.logInfo(`Project : ${p.name}`);
103
-
104
- const scriptsFile = path.join(process.cwd(), p.folder, 'scripts.json');
105
- if (!tools.isFileExists(scriptsFile)) {
106
- tools.logInfo('no scripts.json file found - skipping');
107
- } else {
108
- tools.logInfo('Processing scripts.json file');
109
- const scriptsJson = require(scriptsFile);
110
- rootPackageJson.scripts = { ...rootPackageJson.scripts, ...scriptsJson };
111
- }
112
- });
113
-
114
- tools.logInfo('Updating root package.json');
115
- tools.writeJsonFileSync(rootPackageJsonFile, rootPackageJson);
116
- })
117
- .catch((e) => {
118
- throw e;
119
- })
120
- }
121
-
122
-
123
- module.exports.importExternalFeatures = () => {
124
- return Promise.resolve()
125
- .then(() => {
126
- tools.logTitle("Import external features for local projects");
127
-
128
- return configUtils.projects.getProjects().reduce((promise, prj) => {
129
- return promise.then(() => (
130
- injectionUtils.externals.injectExternalFeatures(prj)
131
- ));
132
- }, Promise.resolve());
133
- })
134
- .catch((e) => {
135
- throw e;
136
- })
137
- }
138
-
139
-
140
- module.exports.importExternalSources = () => {
141
- return Promise.resolve()
142
- .then(() => {
143
- tools.logTitle("Import external sources for local projects");
144
-
145
- return configUtils.projects.getProjects().reduce((promise, prj) => {
146
- return promise.then(() => (
147
- injectionUtils.externals.injectExternalAppSources(prj)
148
- ));
149
- }, Promise.resolve());
150
- })
151
- .catch((e) => {
152
- throw e;
153
- })
154
- }
155
-
156
-
157
-
158
- module.exports.importExternalMock = () => {
159
- return Promise.resolve()
160
- .then(() => {
161
- tools.logTitle("Import external mock for local projects");
162
-
163
- return configUtils.projects.getProjects().reduce((promise, prj) => {
164
- return promise.then(() => (
165
- injectionUtils.externals.injectExternalMock(prj)
166
- ));
167
- }, Promise.resolve());
168
-
169
- })
170
- .catch((e) => {
171
- throw e;
172
- })
173
- }
174
-
175
-
176
-
177
- module.exports.importExtraTsConfig = () => {
178
- tools.logTitle("Init extra ts config for local projects");
179
-
180
- return Promise.resolve()
181
- .then(() => {
182
-
183
- configUtils.projects.getProjects().forEach((p) => {
184
- tools.logInfo(`Check extra tsconfig for project : ${p.name}`);
185
- configUtils.angular.registerProjectExtraPaths(p);
186
- })
187
- })
188
- .catch((e) => {
189
- throw e;
190
- })
191
- }
192
-
193
-
194
- module.exports.processLocalEuiVersions = () => {
195
- tools.logTitle('Processing injections for local installed eUI versions if needed');
196
-
197
- return Promise.resolve()
198
- .then(() => {
199
- let euiVersionsLocal = [
200
- ...configUtils.packages.getLocalPackagesEuiVersion(),
201
- ...configUtils.projects.getLocalProjectsEuiVersion(),
202
- ];
203
- euiVersionsLocal = tools.removeArrayDuplicates(euiVersionsLocal);
204
-
205
- if (euiVersionsLocal.length > 1) {
206
- tools.logError('Multiple versions of eUI found in local CSDR...aborting');
207
- console.log(euiVersionsLocal);
208
- throw new Error('MULTIPLE_LOCAL_EUI_VERSIONS_FOUND');
209
- }
210
-
211
- const euiVersion = euiVersionsLocal[0];
212
-
213
- if (!euiVersion || euiVersion === 'DEFAULT') {
214
- tools.logInfo('Default eUI version found or empty...skipping');
215
-
216
- } else {
217
- tools.logInfo(`Processing resolutions replacement for eUI version found : ${euiVersion}`);
218
-
219
- const rootPackageJsonFile = path.join(process.cwd(), 'package.json');
220
- const rootPackageJson = require(rootPackageJsonFile);
221
-
222
- const resolutionsJsonFile = path.join(__dirname, 'resources', euiVersion, 'resolutions.json');
223
-
224
- if (tools.isFileExists(resolutionsJsonFile)) {
225
- const resolutionsJson = require(resolutionsJsonFile);
226
-
227
- tools.logInfo('Injecting resolutions content');
228
- console.log(resolutionsJson);
229
- rootPackageJson.resolutions = resolutionsJson;
230
-
231
- tools.logInfo('Updating root package.json');
232
- tools.writeJsonFileSync(rootPackageJsonFile, rootPackageJson);
233
- } else {
234
- tools.logWarning('Not found...skipping');
235
- }
236
-
237
- tools.logInfo(`Processing .browserlistrc replacement for eUI version found : ${euiVersion}`);
238
-
239
- const blResourcesFile = path.join(__dirname, 'resources', euiVersion, 'browserslistrc');
240
- const blDestFile = path.join(process.cwd(), '.browserslistrc');
241
-
242
- if (tools.isFileExists(blResourcesFile)) {
243
- tools.copy(blResourcesFile, blDestFile);
244
- } else {
245
- tools.logWarning('Not found...skipping');
246
- }
247
-
248
- tools.logInfo(`Processing yarn.lock replacement for eUI version found : ${euiVersion}`);
249
-
250
- const yResourcesFile = path.join(__dirname, 'resources', euiVersion, 'yarn.lock');
251
- const yDestFile = path.join(process.cwd(), 'yarn.lock');
252
-
253
- if (tools.isFileExists(yResourcesFile)) {
254
- tools.copy(yResourcesFile, yDestFile);
255
- } else {
256
- tools.logWarning('Not found...skipping');
257
- }
258
- }
259
- })
260
- .catch((e) => {
261
- throw e;
262
- })
263
- }
264
-
265
-
266
- module.exports.processResolutionsForNodeVersion = () => {
267
- return Promise.resolve()
268
- .then(() => {
269
- tools.logTitle('Processing injections for detected nodeJS version');
270
-
271
- let nodeVersion = process.versions.node;
272
- nodeVersion = `${nodeVersion.split('.')[0]}.x`;
273
-
274
- const rootPackageJsonFile = path.join(process.cwd(), 'package.json');
275
- const rootPackageJson = require(rootPackageJsonFile);
276
-
277
- const nodeVersionResource = `nodejs-${nodeVersion}`;
278
-
279
- const resolutionsJsonFile = path.join(__dirname, 'resources', nodeVersionResource, 'resolutions.json');
280
-
281
- tools.logInfo(`Checking nodejsResolution resource for path: ${resolutionsJsonFile}`);
282
-
283
- if (tools.isFileExists(resolutionsJsonFile)) {
284
- const resolutionsJson = require(resolutionsJsonFile);
285
-
286
- tools.logInfo('Injecting resolutions content');
287
- console.log(resolutionsJson);
288
- rootPackageJson.resolutions = resolutionsJson;
289
-
290
- tools.logInfo('Updating root package.json');
291
- tools.writeJsonFileSync(rootPackageJsonFile, rootPackageJson);
292
- } else {
293
- tools.logWarning('Not found...skipping');
294
- }
295
- })
296
- .catch((e) => {
297
- throw e;
298
- })
299
- }
4
+ module.exports.global = require('./global');
5
+ module.exports.init = require('./init');
6
+ module.exports.meta = require('./meta');
7
+ module.exports.packages = require('./packages');
8
+ module.exports.projects = require('./projects');
9
+ module.exports.prompt = require('./prompt');
10
+ module.exports.remotes = require('./remotes');
11
+ module.exports.repos = require('./repos');
@@ -7,7 +7,7 @@ const configUtils = require('../config/config-utils');
7
7
 
8
8
  // Getting arguments if they are provided for the CI/CD pipeline
9
9
  const {
10
- project, team, pkg, branch, configOnly, skipClone, reset, pkgOnly, prjOnly,
10
+ project, team, pkg, branch, configOnly, skipClone, skipInstall, reset, pkgOnly, prjOnly,
11
11
  build, containerOnly, skipAppContainers
12
12
  } = tools.getArgs();
13
13
 
@@ -29,7 +29,7 @@ module.exports.init = () => {
29
29
  skipAppContainers: skipAppContainers || false
30
30
  }
31
31
 
32
- // checking branch and envTarget types
32
+ // checking branch
33
33
  if (initialResponse.branch && typeof (initialResponse.branch) === 'boolean') {
34
34
  initialResponse.branch = 'develop';
35
35
  }
@@ -51,15 +51,27 @@ module.exports.init = () => {
51
51
  }
52
52
  })
53
53
 
54
- // Initializing .euirc.json local file - the core of CSDR operations
54
+ // merge with response found from prompts
55
55
  .then((response) => {
56
- // merge with response found from prompts
57
56
  finalResponse = { ...initialResponse, ...response };
57
+ })
58
58
 
59
+ // Initializing .euirc.json local file - the core of CSDR operations
60
+ .then(() => {
59
61
  // Initialize config
60
62
  return configUtils.init.run(finalResponse);
61
63
  })
62
64
 
65
+ // clone or install linked host package to project if any
66
+ .then(() => {
67
+ if (finalResponse.project && !build) {
68
+ return initUtils.packages.cloneHostPackage(finalResponse.project);
69
+
70
+ } else if (finalResponse.project && build) {
71
+ return initUtils.packages.installHostPackage(finalResponse.project);
72
+ }
73
+ })
74
+
63
75
  // Initializing .meta based on .euirc.json for local respoisitories cloning
64
76
  .then(() => {
65
77
  return initUtils.meta.init();
@@ -74,26 +86,44 @@ module.exports.init = () => {
74
86
 
75
87
  // Importing packages and generating definitions
76
88
  .then(() => {
77
- return initUtils.importPackages(finalResponse);
89
+ return initUtils.packages.importPackages(finalResponse);
90
+ })
91
+
92
+ // Importing external sources
93
+ .then(() => {
94
+ if (finalResponse.project) {
95
+ return initUtils.projects.importExternalSources();
96
+ }
97
+ })
98
+
99
+ // Generating virtual remote - experimental
100
+ .then(() => {
101
+ if (finalResponse.pkg && finalResponse.pkgOnly) {
102
+ return initUtils.remotes.generateVirtualRemote(pkg);
103
+ }
78
104
  })
79
105
 
80
106
  // adapt and inject particular root data/config for eUI version detected on project
81
107
  // if multiple versions of eUI are detected on the same project, an exception is thrown
82
108
  .then(() => {
83
- return initUtils.processLocalEuiVersions();
109
+ return initUtils.global.processLocalEuiVersions();
84
110
  })
85
111
 
86
112
  // specific resolution injection based on NodeJS (recent failure of nodejs10.x for MWP v7)
87
113
  .then(() => {
88
- return initUtils.processResolutionsForNodeVersion();
114
+ return initUtils.global.processResolutionsForNodeVersion();
89
115
  })
90
116
 
91
117
  // Install deps based on current config generated => take last know snapshots
92
118
  .then(() => {
93
119
  // this is only executed for local dev installation,
94
120
  // in case of release the initialisation is managed by the application / package themselves
95
- if (!build) {
96
- return installUtils.localDev.install();
121
+ if (!build && !skipInstall) {
122
+ if (finalResponse.pkgOnly) {
123
+ return installUtils.localDev.installPackage(pkg);
124
+ } else {
125
+ return installUtils.localDev.install();
126
+ }
97
127
  }
98
128
  })
99
129
 
@@ -101,7 +131,7 @@ module.exports.init = () => {
101
131
  // Attaching app scripts to root package.json
102
132
  .then(() => {
103
133
  if (finalResponse.project) {
104
- return initUtils.importScripts();
134
+ return initUtils.projects.importScripts();
105
135
  }
106
136
  })
107
137
 
@@ -109,7 +139,7 @@ module.exports.init = () => {
109
139
  // Attaching extra tsconfig from project
110
140
  .then(() => {
111
141
  if (finalResponse.project) {
112
- return initUtils.importExtraTsConfig();
142
+ return initUtils.projects.importExtraTsConfig();
113
143
  }
114
144
  })
115
145
 
@@ -117,15 +147,15 @@ module.exports.init = () => {
117
147
  // Attaching external features from project
118
148
  .then(() => {
119
149
  if (finalResponse.project && !build) {
120
- return initUtils.importExternalFeatures();
150
+ return initUtils.projects.importExternalFeatures();
121
151
  }
122
152
  })
123
153
 
124
154
 
125
155
  // Attaching external mock repo for project
126
156
  .then(() => {
127
- if (finalResponse.project && !build) {
128
- return initUtils.importExternalMock();
157
+ if (finalResponse.project && !build && !prjOnly) {
158
+ return initUtils.projects.importExternalMock();
129
159
  }
130
160
  })
131
161
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  // GLOBAL
4
4
  const path = require('path');
5
- const fs = require('fs');
6
5
 
7
6
  // LOCAL
8
7
  const tools = require('../../utils/tools');
@@ -57,8 +56,10 @@ module.exports.init = () => {
57
56
 
58
57
 
59
58
  module.exports.getMetaProjects = () => {
60
- const meta = fs.readFileSync(path.join(process.cwd(), '.meta'), 'utf8');
59
+ const meta = tools.getFileContent(path.join(process.cwd(), '.meta'));
60
+
61
61
  const { projects } = JSON.parse(meta);
62
+
62
63
  return projects;
63
64
  }
64
65
 
@@ -0,0 +1,142 @@
1
+ 'use strict';
2
+
3
+ // GLOBAL
4
+ const path = require('path');
5
+
6
+ // LOCAL
7
+ const tools = require('../../utils/tools');
8
+ const configUtils = require('../config/config-utils');
9
+ const gitUtils = require('../../utils/git-utils');
10
+ const installUtils = require('../install/install-utils');
11
+
12
+
13
+
14
+
15
+ const importPackage = (pkg, args) => {
16
+ tools.logTitle(`importing package ${pkg.name}`);
17
+
18
+ if (pkg.parent) {
19
+ tools.logInfo('Parent package ... skipping import');
20
+ return Promise.resolve();
21
+
22
+ } else {
23
+ if (pkg.tsPackage !== false) {
24
+ return Promise.resolve()
25
+ .then(() => {
26
+ if (!pkg.element) {
27
+ return configUtils.angular.registerAngularPackage(pkg, args.reset);
28
+ } else if (pkg.element) {
29
+ return configUtils.angular.registerAngularProjectDef(pkg, args.reset, true);
30
+ } else {
31
+ return configUtils.angular.registerAngularProjectDef(pkg, args.reset);
32
+ }
33
+ })
34
+ .then(() => {
35
+ if (pkg.pathInclude !== false && !pkg.element) {
36
+ return configUtils.angular.registerModulePaths(pkg, args.reset);
37
+ }
38
+ })
39
+
40
+ .then(() => {
41
+ tools.logSuccess('OK => package imported');
42
+ })
43
+
44
+ .catch((e) => {
45
+ throw e;
46
+ })
47
+
48
+ } else {
49
+ tools.logInfo('Non TS package... skipping registration');
50
+ return Promise.resolve();
51
+ }
52
+ }
53
+ }
54
+
55
+
56
+
57
+
58
+
59
+ module.exports.importPackages = (args = {}) => {
60
+
61
+ tools.logTitle('Importing configuration of packages');
62
+
63
+ const packages = configUtils.packages.getPackages();
64
+
65
+ return Promise.resolve()
66
+ .then(() => {
67
+ configUtils.angular.checkConfigFiles(args.reset);
68
+ })
69
+ .then(() => Promise.resolve().then(() => {
70
+ return packages.reduce((promise, pkg) => {
71
+ return promise.then(() => (
72
+ importPackage(pkg, args)
73
+ ));
74
+ }, Promise.resolve());
75
+ }))
76
+
77
+ .then(() => {
78
+ tools.logSuccess('OK => all packages successfully imported');
79
+ })
80
+
81
+ .catch((e) => {
82
+ throw e;
83
+ })
84
+ }
85
+
86
+
87
+ module.exports.cloneHostPackage = (projectName) => {
88
+
89
+ const project = configUtils.projects.getProject(projectName);
90
+
91
+ if (!project.hostPackage) {
92
+ return;
93
+ }
94
+
95
+ tools.logTitle('Installing host package');
96
+
97
+ let pkg;
98
+
99
+ return Promise.resolve()
100
+ .then(() => {
101
+ pkg = configUtils.packages.getPackageByNpmPkg(project.hostPackage, true);
102
+ if (!pkg) {
103
+ throw new Error('Invalid host package provided / unknown to CSDR config');
104
+ }
105
+ return gitUtils.cloneAndCheckout(pkg.repository, path.join(process.cwd(), 'packages', pkg.name), 'develop');
106
+ })
107
+
108
+ .then(() => {
109
+ const newPackages = [];
110
+ newPackages.push(pkg.name);
111
+ return configUtils.global.updateConfig(null, newPackages);
112
+ })
113
+
114
+ .catch((e) => {
115
+ throw e;
116
+ })
117
+ }
118
+
119
+
120
+ module.exports.installHostPackage = (projectName) => {
121
+ tools.logTitle('Installing host package');
122
+
123
+ return Promise.resolve()
124
+ .then(() => {
125
+ const project = configUtils.projects.getProject(projectName);
126
+
127
+ if (!project.hostPackage) {
128
+ tools.logInfo('project hostPackage not defined...skipping');
129
+
130
+ } else {
131
+ const pkg = configUtils.packages.getPackageByNpmPkg(project.hostPackage, true);
132
+ if (!pkg) {
133
+ throw new Error('Invalid host package provided / unknown to CSDR config');
134
+ }
135
+ return installUtils.projects.installHostPackage(project, pkg.npmPkg);
136
+ }
137
+ })
138
+
139
+ .catch((e) => {
140
+ throw e;
141
+ })
142
+ }