@eui/tools 5.1.11 → 5.2.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.
- package/.version.properties +1 -1
- package/CHANGELOG.md +27 -0
- package/bin/eui-scripts.js +2 -0
- package/bin/scripts/i18n-translate.js +12 -0
- package/package.json +1 -1
- package/sandbox.js +24 -15
- package/scripts/csdr/metadata/package.js +6 -0
- package/scripts/csdr/version/package-default.js +49 -52
- package/scripts/utils/translate/translate-utils.js +124 -0
package/.version.properties
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.
|
|
1
|
+
5.2.0
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
## 5.2.0 (2022-04-29)
|
|
2
|
+
|
|
3
|
+
##### New Features
|
|
4
|
+
|
|
5
|
+
* **other:**
|
|
6
|
+
* added script for translating i18n files EUI-5847 [EUI-5847](https://webgate.ec.europa.eu/CITnet/jira/browse/EUI-5847) ([3e0740f4](https://webgate.ec.europa.eu/CITnet/stash/scm/csdr/eui-tools.git/commits/3e0740f40386d87f2baa4045ae14fe93adf40655))
|
|
7
|
+
|
|
8
|
+
* * *
|
|
9
|
+
* * *
|
|
10
|
+
## 5.1.13 (2022-04-28)
|
|
11
|
+
|
|
12
|
+
##### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **other:**
|
|
15
|
+
* broken version generated for remote snapshot - EUI-5632 [EUI-5632](https://webgate.ec.europa.eu/CITnet/jira/browse/EUI-5632) ([21a5afd7](https://webgate.ec.europa.eu/CITnet/stash/scm/csdr/eui-tools.git/commits/21a5afd7c07bcea1c4bed4e0ed7c417667e87673))
|
|
16
|
+
|
|
17
|
+
* * *
|
|
18
|
+
* * *
|
|
19
|
+
## 5.1.12 (2022-04-28)
|
|
20
|
+
|
|
21
|
+
##### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* **other:**
|
|
24
|
+
* wrong non-snapshots dependencies resolutions - EUI-5632 [EUI-5632](https://webgate.ec.europa.eu/CITnet/jira/browse/EUI-5632) ([b151196a](https://webgate.ec.europa.eu/CITnet/stash/scm/csdr/eui-tools.git/commits/b151196a9cb6de530b035cf0d88d03ed80744eaa))
|
|
25
|
+
|
|
26
|
+
* * *
|
|
27
|
+
* * *
|
|
1
28
|
## 5.1.11 (2022-04-28)
|
|
2
29
|
|
|
3
30
|
##### Bug Fixes
|
package/bin/eui-scripts.js
CHANGED
|
@@ -35,6 +35,7 @@ const scriptIndex = args.findIndex(
|
|
|
35
35
|
x === 'csdr-stats' ||
|
|
36
36
|
x === 'generate-app-metadata' ||
|
|
37
37
|
x === 'help' ||
|
|
38
|
+
x === 'i18n-translate' ||
|
|
38
39
|
x === 'inject-config-app' ||
|
|
39
40
|
x === 'version'
|
|
40
41
|
);
|
|
@@ -70,6 +71,7 @@ switch (script) {
|
|
|
70
71
|
case 'csdr-stats':
|
|
71
72
|
case 'generate-app-metadata':
|
|
72
73
|
case 'help':
|
|
74
|
+
case 'i18n-translate':
|
|
73
75
|
case 'inject-config-app':
|
|
74
76
|
case 'version': {
|
|
75
77
|
const result = spawn.sync(
|
package/package.json
CHANGED
package/sandbox.js
CHANGED
|
@@ -823,20 +823,29 @@ const versionUtils = require('./scripts/csdr/version/version-utils');
|
|
|
823
823
|
// console.log(metadata);
|
|
824
824
|
// })
|
|
825
825
|
|
|
826
|
-
Promise.resolve()
|
|
827
|
-
// getting root composite - dependencies-composite.json content
|
|
828
|
-
.then(() => {
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
})
|
|
838
|
-
.then((deps) => {
|
|
839
|
-
|
|
840
|
-
})
|
|
826
|
+
// Promise.resolve()
|
|
827
|
+
// // getting root composite - dependencies-composite.json content
|
|
828
|
+
// .then(() => {
|
|
829
|
+
// const compositeJsonFile = path.join(process.cwd(), 'apps/eui-showcase-dev-guide', 'dependencies-composite.json');
|
|
830
|
+
// var compositeDeps = tools.getJsonFileContent(compositeJsonFile) || {};
|
|
831
|
+
|
|
832
|
+
// if (compositeDeps.dependencies) {
|
|
833
|
+
// return compositeDeps.dependencies;
|
|
834
|
+
// } else {
|
|
835
|
+
// return compositeDeps;
|
|
836
|
+
// }
|
|
837
|
+
// })
|
|
838
|
+
// .then((deps) => {
|
|
839
|
+
// console.log(deps);
|
|
840
|
+
// })
|
|
841
|
+
|
|
841
842
|
|
|
843
|
+
const pkg = configUtils.packages.getPackage('opsys-epc-esub-bo-ui', true);
|
|
842
844
|
|
|
845
|
+
Promise.resolve()
|
|
846
|
+
.then(() => {
|
|
847
|
+
return metadataUtils.package.getPackageVersionsByMajor(pkg, '10', false)
|
|
848
|
+
})
|
|
849
|
+
.then((versions) => {
|
|
850
|
+
console.log(versions);
|
|
851
|
+
})
|
|
@@ -430,6 +430,12 @@ module.exports.getPackageVersionsByMajor = (pkg, major, isMaster) => {
|
|
|
430
430
|
} else {
|
|
431
431
|
versions = versions.filter(v => v.version.indexOf('snapshot') !== -1);
|
|
432
432
|
tools.logInfo(`----> ${versions.length} metadata versions found including snapshots`);
|
|
433
|
+
|
|
434
|
+
if (versions.length === 0) {
|
|
435
|
+
versions = pkgVersions.filter(v => v.version.split('.')[0] === major);
|
|
436
|
+
versions = versions.filter(v => v.version.indexOf('snapshot') === -1);
|
|
437
|
+
tools.logInfo(`----> ${versions.length} metadata versions non-master release for major`);
|
|
438
|
+
}
|
|
433
439
|
}
|
|
434
440
|
|
|
435
441
|
return versions;
|
|
@@ -7,6 +7,7 @@ const path = require('path');
|
|
|
7
7
|
// local
|
|
8
8
|
const tools = require('../../utils/tools');
|
|
9
9
|
|
|
10
|
+
const RELEASE_TYPES = ['major', 'minor', 'patch'];
|
|
10
11
|
|
|
11
12
|
const getCurrentVersion = (pkg) => {
|
|
12
13
|
return Promise.resolve()
|
|
@@ -51,36 +52,6 @@ const getCurrentVersion = (pkg) => {
|
|
|
51
52
|
})
|
|
52
53
|
}
|
|
53
54
|
|
|
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
55
|
// PUBLIC METHODS
|
|
85
56
|
|
|
86
57
|
module.exports.getNewVersion = (
|
|
@@ -101,7 +72,31 @@ module.exports.getNewVersion = (
|
|
|
101
72
|
let newVersion = '1.0.0';
|
|
102
73
|
|
|
103
74
|
if (commits) {
|
|
104
|
-
|
|
75
|
+
|
|
76
|
+
tools.logInfo('Commits found for processing version, extracting...');
|
|
77
|
+
|
|
78
|
+
let level = 2;
|
|
79
|
+
let breakings = 0;
|
|
80
|
+
let features = 0;
|
|
81
|
+
|
|
82
|
+
commits.forEach((commit) => {
|
|
83
|
+
if (commit.breakingChange) {
|
|
84
|
+
breakings += commit.body;
|
|
85
|
+
level = 1; // no major bump on "breaking changes"
|
|
86
|
+
} else if (commit.type === 'feat') {
|
|
87
|
+
features += 1;
|
|
88
|
+
if (level === 2) {
|
|
89
|
+
level = 1;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
const release = {
|
|
95
|
+
level: level,
|
|
96
|
+
reason: 'There are ' + breakings + ' BREAKING CHANGES and ' + features + ' features',
|
|
97
|
+
releaseType: RELEASE_TYPES[level]
|
|
98
|
+
};
|
|
99
|
+
|
|
105
100
|
tools.logInfo('release info found : ' + JSON.stringify(release));
|
|
106
101
|
|
|
107
102
|
if (isNextBranch) {
|
|
@@ -110,37 +105,39 @@ module.exports.getNewVersion = (
|
|
|
110
105
|
newVersion = semver.valid(release.releaseType) || semver.inc(currentVersion, release.releaseType)
|
|
111
106
|
}
|
|
112
107
|
|
|
113
|
-
tools.logInfo('probable new version : ' + newVersion);
|
|
114
108
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (pkg.build && pkg.build.nodejs) {
|
|
118
|
-
newVersion += '-snapshot-' + Date.now();
|
|
119
|
-
} else {
|
|
120
|
-
newVersion += '-SNAPSHOT';
|
|
121
|
-
}
|
|
122
|
-
} else {
|
|
123
|
-
newVersion += '-snapshot-' + Date.now();
|
|
124
|
-
}
|
|
109
|
+
} else {
|
|
110
|
+
tools.logInfo('No commits found for version processing...applying minor version upgrade');
|
|
125
111
|
|
|
126
|
-
|
|
127
|
-
if (pkg.backend) {
|
|
112
|
+
if (isNextBranch) {
|
|
128
113
|
newVersion = semver.inc(currentVersion, 'prerelease');
|
|
114
|
+
} else {
|
|
115
|
+
newVersion = semver.inc(currentVersion, 'minor');
|
|
129
116
|
}
|
|
130
|
-
|
|
131
|
-
newVersion = semver.inc(currentVersion, 'prerelease');
|
|
132
|
-
}
|
|
117
|
+
}
|
|
133
118
|
|
|
134
|
-
|
|
135
|
-
tools.logInfo('No commits found for version processing...applying minor version upgrade');
|
|
119
|
+
tools.logInfo('probable new version : ' + newVersion);
|
|
136
120
|
|
|
137
|
-
|
|
138
|
-
|
|
121
|
+
if (isSnapshot) {
|
|
122
|
+
if (pkg.backend) {
|
|
123
|
+
if (pkg.build && pkg.build.nodejs) {
|
|
124
|
+
newVersion += '-snapshot-' + Date.now();
|
|
125
|
+
} else {
|
|
126
|
+
newVersion += '-SNAPSHOT';
|
|
127
|
+
}
|
|
139
128
|
} else {
|
|
140
|
-
newVersion
|
|
129
|
+
newVersion += '-snapshot-' + Date.now();
|
|
141
130
|
}
|
|
142
131
|
}
|
|
143
132
|
|
|
133
|
+
if (isSupportBranch && pkg.backend) {
|
|
134
|
+
newVersion = semver.inc(currentVersion, 'prerelease');
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (isHotfixBranch) {
|
|
138
|
+
newVersion = semver.inc(currentVersion, 'prerelease');
|
|
139
|
+
}
|
|
140
|
+
|
|
144
141
|
tools.logSuccess('new version generated : ' + newVersion);
|
|
145
142
|
|
|
146
143
|
return newVersion;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const tools = require('../../utils/tools');
|
|
4
|
+
const https = require('https');
|
|
5
|
+
var fs = require('fs');
|
|
6
|
+
const { filePath, sourceLang, targetLang } = require('../tools').getArgs();
|
|
7
|
+
const TEXT = '<text>';
|
|
8
|
+
const TEXT_END = '</text>';
|
|
9
|
+
const CONTENT = '<content>';
|
|
10
|
+
const CONTENT_END = '</content>';
|
|
11
|
+
|
|
12
|
+
// example: node translate-utils.js --filePath c:\i18n\en.json --sourceLang en --targetLang bg
|
|
13
|
+
|
|
14
|
+
const readFile = (filePath) => {
|
|
15
|
+
return JSON.parse(fs.readFileSync(filePath));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const translate = (text, sourceLang, targetLang) => {
|
|
19
|
+
tools.logTitle(`Translating file : ${filePath} from ${sourceLang} to ${targetLang}.`);
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
const data = JSON.stringify({
|
|
22
|
+
textToTranslate: text,
|
|
23
|
+
sourceLanguage: sourceLang,
|
|
24
|
+
targetLanguage: targetLang
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
const options = {
|
|
28
|
+
hostname: 'europa.eu',
|
|
29
|
+
path: '/webtools/rest/etrans/translate',
|
|
30
|
+
method: 'POST',
|
|
31
|
+
headers: {
|
|
32
|
+
'Content-Type': 'application/json',
|
|
33
|
+
'Content-Length': data.length
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const req = https.request(options, res => {
|
|
38
|
+
let chunks_of_data = [];
|
|
39
|
+
|
|
40
|
+
res.on('data', d => {
|
|
41
|
+
chunks_of_data.push(d);
|
|
42
|
+
});
|
|
43
|
+
res.on('end', () => {
|
|
44
|
+
tools.logInfo('Received response from eTrans service.');
|
|
45
|
+
let response_body = Buffer.concat(chunks_of_data);
|
|
46
|
+
var response = JSON.parse(response_body);
|
|
47
|
+
resolve(Buffer.from(response.translation, 'base64').toString());
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
req.on('error', error => {
|
|
52
|
+
reject(error);
|
|
53
|
+
return;
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
tools.logInfo('Sending request to eTrans service.');
|
|
57
|
+
req.write(data);
|
|
58
|
+
req.end();
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const prepareStringToTranslate = (arrLines, result) => {
|
|
63
|
+
var keys = Object.keys(arrLines);
|
|
64
|
+
keys.forEach((key) => {
|
|
65
|
+
if (arrLines[key] instanceof Object && !(arrLines[key] instanceof Array)) {
|
|
66
|
+
result += prepareStringToTranslate(arrLines[key], '');
|
|
67
|
+
} else {
|
|
68
|
+
result += `${TEXT}${arrLines[key]}${TEXT_END}`;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const createResultJsonFile = (arrLines, res) => {
|
|
75
|
+
const resString = res.split(`${CONTENT}${TEXT}`).pop().split(`${TEXT_END}${CONTENT_END}`)[0];
|
|
76
|
+
const resArr = resString.split(`${TEXT_END}${TEXT}`);
|
|
77
|
+
var resultJson = Object.assign({}, arrLines);
|
|
78
|
+
var finalRes = iterateResultToJson(resultJson, resArr);
|
|
79
|
+
return finalRes;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const iterateResultToJson = (resultJson, resArr) => {
|
|
83
|
+
var keys = Object.keys(resultJson);
|
|
84
|
+
keys.forEach((key, index) => {
|
|
85
|
+
if (resultJson[key] instanceof Object && !(resultJson[key] instanceof Array)) { // If there is nested JSON
|
|
86
|
+
resultJson[key] = iterateResultToJson(resultJson[key], resArr.slice(index));
|
|
87
|
+
var subKeys = Object.keys(resultJson[key]);
|
|
88
|
+
resArr.splice(index, subKeys.length - 1); // remove elements for nested JSON from results array
|
|
89
|
+
} else {
|
|
90
|
+
if (resultJson[key] instanceof Array) {
|
|
91
|
+
resultJson[key] = resArr[index].split(',').map(el => el.trim());
|
|
92
|
+
} else {
|
|
93
|
+
resultJson[key] = resArr[index];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
return resultJson;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const translateI18nFile = () => {
|
|
101
|
+
return Promise.resolve()
|
|
102
|
+
.then(() => {
|
|
103
|
+
const arrLines = readFile(filePath);
|
|
104
|
+
const destFolder = filePath.substring(0, filePath.lastIndexOf("\\") + 1);
|
|
105
|
+
var stringToTranslate = prepareStringToTranslate(arrLines, '');
|
|
106
|
+
translate(`${CONTENT}${stringToTranslate}${CONTENT_END}`, sourceLang, targetLang)
|
|
107
|
+
.then((res) => {
|
|
108
|
+
const resultJson = createResultJsonFile(arrLines, res);
|
|
109
|
+
fs.writeFile(`${destFolder}${targetLang}.json`, JSON.stringify(resultJson, null, 2), function (err) {
|
|
110
|
+
if (err) { tools.logError(err); }
|
|
111
|
+
tools.logInfo(`File ${targetLang}.json created.`);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
}, (err) => {
|
|
115
|
+
tools.logInfo(`Error: ${err}`);
|
|
116
|
+
});
|
|
117
|
+
}).catch((error) => {
|
|
118
|
+
tools.logError(error);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
translateI18nFile();
|
|
123
|
+
|
|
124
|
+
module.exports.translateI18nFile = translateI18nFile;
|