@egis/build-tools 11.6.5 → 11.7.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.
- package/.circleci/deps-cache-key.txt +6282 -7954
- package/Gulpfile.js +0 -1
- package/README.md +16 -1
- package/gulp/browsersync.js +4 -5
- package/gulp/common.js +1 -1
- package/gulp/dev-bundle.js +1 -1
- package/gulp/rollup/fix-sourcemaps.js +16 -1
- package/gulp/rollup/generate-es6-index-tasks.js +10 -12
- package/gulp/rollup/rollup.js +67 -31
- package/package.json +32 -53
- package/utils.js +3 -53
- package/wdio.conf.js +14 -27
- package/gulp/karma-testingbot.js +0 -13
package/Gulpfile.js
CHANGED
package/README.md
CHANGED
|
@@ -233,6 +233,21 @@ BRANCH=my-branch yarn simple-semantic-release-pre
|
|
|
233
233
|
|
|
234
234
|
# Revert the `repository.url` change:
|
|
235
235
|
git checkout -- package.json
|
|
236
|
-
```
|
|
236
|
+
```
|
|
237
237
|
This applies both to build-tools and to any semantic-release enabled project of EgisUI family (EgisUI, Portal,
|
|
238
238
|
eSign, etc).
|
|
239
|
+
|
|
240
|
+
## Security & Patches
|
|
241
|
+
|
|
242
|
+
* **Elliptic Vulnerability (CVE-2025-14505)**: The ECDSA implementation in all open-source versions of the `elliptic` package (up to and including `6.6.1`) is vulnerable to a risky signature implementation (which could theoretically lead to secret key exposure under high-security scenarios).
|
|
243
|
+
* **Why It is a Tolerable Risk**:
|
|
244
|
+
* `elliptic` is exclusively a **build-time transitive dependency** of Browserify/Watchify used within Gulp tasks to bundle modules locally.
|
|
245
|
+
* It is **never** bundled into or executed by the runtime production client code.
|
|
246
|
+
* There is currently **no open-source patched version** available in the community.
|
|
247
|
+
* **How to Dismiss GitHub Dependabot Alerts**:
|
|
248
|
+
1. Go to the repository on GitHub.
|
|
249
|
+
2. Click the **Security** tab.
|
|
250
|
+
3. Under *Vulnerability alerts*, click **Dependabot**.
|
|
251
|
+
4. Select the `elliptic` vulnerability alert (CVE-2025-14505 / GHSA-848j-6mx2-7j84).
|
|
252
|
+
5. Click **Dismiss alert** -> select **"Tolerable risk"** or **"Vulnerable code is not actually used"** (since it is purely a local build-time dependency).
|
|
253
|
+
|
package/gulp/browsersync.js
CHANGED
|
@@ -11,15 +11,14 @@ var _ = require('lodash');
|
|
|
11
11
|
var glob = require('glob');
|
|
12
12
|
var utils = require('../utils');
|
|
13
13
|
var fs = require('fs');
|
|
14
|
-
var argv = require('
|
|
15
|
-
var is = require('is_js');
|
|
14
|
+
var argv = require('yargs').argv;
|
|
16
15
|
const path = require('path');
|
|
17
16
|
|
|
18
17
|
function loadAppConfig(pkg, pkgRootDir, serveStaticMap, watchedFiles, pkgPath) {
|
|
19
|
-
|
|
18
|
+
if (pkg.routes) {
|
|
20
19
|
_.each(pkg.routes, routeItem => {
|
|
21
20
|
let route, routeDir;
|
|
22
|
-
if (
|
|
21
|
+
if (Array.isArray(routeItem)) {
|
|
23
22
|
[route, routeDir] = routeItem;
|
|
24
23
|
} else {
|
|
25
24
|
route = routeItem;
|
|
@@ -82,7 +81,7 @@ function loadApps(rootDir, config) {
|
|
|
82
81
|
let serveStatic = [];
|
|
83
82
|
|
|
84
83
|
_.forEach(serveStaticMap, (value, key) => {
|
|
85
|
-
serveStatic.push({route: key, dir: value});
|
|
84
|
+
serveStatic.push({ route: key, dir: value });
|
|
86
85
|
});
|
|
87
86
|
|
|
88
87
|
config.files = watchedFiles;
|
package/gulp/common.js
CHANGED
|
@@ -9,7 +9,7 @@ var replace = require('gulp-replace');
|
|
|
9
9
|
var utils = require('../utils');
|
|
10
10
|
var deploy = process.env.WORK_DIR;
|
|
11
11
|
var _ = require('lodash');
|
|
12
|
-
var argv = require('
|
|
12
|
+
var argv = require('yargs').argv;
|
|
13
13
|
|
|
14
14
|
var knownOptions = {
|
|
15
15
|
string: 'env',
|
package/gulp/dev-bundle.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
var gulp = require('gulp');
|
|
2
2
|
var replace = require('gulp-replace');
|
|
3
3
|
var common = require('../common');
|
|
4
|
+
var fs = require('fs');
|
|
5
|
+
var through = require('through2');
|
|
4
6
|
|
|
5
7
|
module.exports = (function () {
|
|
6
8
|
function fix(mapFile, srcDir, destDir) {
|
|
9
|
+
if (!fs.existsSync(mapFile)) {
|
|
10
|
+
console.log('Skipping missing sourcemap:', mapFile);
|
|
11
|
+
var stream = through.obj();
|
|
12
|
+
stream.end();
|
|
13
|
+
return stream;
|
|
14
|
+
}
|
|
7
15
|
return gulp.src(mapFile)
|
|
8
16
|
.pipe(replace('../../' + srcDir, '.'))
|
|
9
17
|
.pipe(gulp.dest(destDir));
|
|
@@ -16,7 +24,14 @@ module.exports = (function () {
|
|
|
16
24
|
},
|
|
17
25
|
|
|
18
26
|
distBundleRollupIndex: function (kind) {
|
|
19
|
-
|
|
27
|
+
var mapFile = common.dist[kind] + '/' + common.bundles[kind] + '.map';
|
|
28
|
+
if (!fs.existsSync(mapFile)) {
|
|
29
|
+
console.log('Skipping missing sourcemap index:', mapFile);
|
|
30
|
+
var stream = through.obj();
|
|
31
|
+
stream.end();
|
|
32
|
+
return stream;
|
|
33
|
+
}
|
|
34
|
+
return gulp.src(mapFile)
|
|
20
35
|
.pipe(replace(".rollup-index.js", "../" + common.dist[kind] + "/.rollup-index.js"))
|
|
21
36
|
.pipe(gulp.dest(common.dist[kind]));
|
|
22
37
|
},
|
|
@@ -11,7 +11,7 @@ var debug = require('gulp-debug');
|
|
|
11
11
|
var common = require('../common');
|
|
12
12
|
var utils = require('../../utils');
|
|
13
13
|
|
|
14
|
-
module.exports = function(kind) {
|
|
14
|
+
module.exports = function (kind) {
|
|
15
15
|
var srcDir = common.srcDirs[kind];
|
|
16
16
|
var destDir = common.dist[kind];
|
|
17
17
|
var up = '../../'; //let's improve when needed
|
|
@@ -24,7 +24,7 @@ module.exports = function(kind) {
|
|
|
24
24
|
return gulp.src([srcDir + '/.lib-exports.js'])
|
|
25
25
|
.pipe(sourcemaps.init())
|
|
26
26
|
.pipe(replace('./', up + srcDir + '/'))
|
|
27
|
-
.pipe(sourcemaps.write('.', {includeContent: false, sourceRoot: up + srcDir}))
|
|
27
|
+
.pipe(sourcemaps.write('.', { includeContent: false, sourceRoot: up + srcDir }))
|
|
28
28
|
.pipe(gulp.dest(destDir + '/'));
|
|
29
29
|
});
|
|
30
30
|
|
|
@@ -37,15 +37,14 @@ module.exports = function(kind) {
|
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
return gulp.src(sources, { base: 'src' })
|
|
40
|
-
.pipe(sourcemaps.init({loadMaps: true}))
|
|
40
|
+
.pipe(sourcemaps.init({ loadMaps: true }))
|
|
41
41
|
.pipe(concat('.rollup-index.js'))
|
|
42
|
-
.pipe(sourcemaps.write('.', {includeContent: false, sourceRoot: up + srcDir}))
|
|
42
|
+
.pipe(sourcemaps.write('.', { includeContent: false, sourceRoot: up + srcDir }))
|
|
43
43
|
.pipe(gulp.dest(destDir + '/'));
|
|
44
44
|
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
-
gulp.task('gen-stage1-file-list-' + kind, function ()
|
|
48
|
-
{
|
|
47
|
+
gulp.task('gen-stage1-file-list-' + kind, function () {
|
|
49
48
|
return gulp.src([srcDir + '/**/*.js', '!' + srcDir + '/.lib-exports.js', '!' + srcDir + '/**/*_scsslint_*'])
|
|
50
49
|
.pipe(plumber())
|
|
51
50
|
.pipe(debug())
|
|
@@ -61,13 +60,13 @@ module.exports = function(kind) {
|
|
|
61
60
|
return;
|
|
62
61
|
}
|
|
63
62
|
return gulp.src(sources)
|
|
64
|
-
.pipe(jsonTransform(function(data) {
|
|
63
|
+
.pipe(jsonTransform(function (data) {
|
|
65
64
|
var blacklist = [];
|
|
66
65
|
var lines = [];
|
|
67
66
|
var fillLines;
|
|
68
|
-
fillLines = function(modulesPathes) {
|
|
69
|
-
_.forIn(modulesPathes, function(modulePath) {
|
|
70
|
-
if (
|
|
67
|
+
fillLines = function (modulesPathes) {
|
|
68
|
+
_.forIn(modulesPathes, function (modulePath) {
|
|
69
|
+
if (typeof modulePath === 'string') {
|
|
71
70
|
if (blacklist.indexOf(modulePath) === -1) {
|
|
72
71
|
lines.push("export * from './" + modulePath.replace(/\.js$/, '') + "';");
|
|
73
72
|
}
|
|
@@ -83,8 +82,7 @@ module.exports = function(kind) {
|
|
|
83
82
|
.pipe(gulp.dest(workDir))
|
|
84
83
|
});
|
|
85
84
|
|
|
86
|
-
gulp.task('gen-stage3-finalize-exports-' + kind, ['gen-stage2-wildcard-exports-' + kind], function ()
|
|
87
|
-
{
|
|
85
|
+
gulp.task('gen-stage3-finalize-exports-' + kind, ['gen-stage2-wildcard-exports-' + kind], function () {
|
|
88
86
|
return gulp.src([workDir + '/.rollup-wildcard-exports.js'])
|
|
89
87
|
.pipe(replace('./', up + srcDir + '/'))
|
|
90
88
|
.pipe(concat('.rollup-wildcard-exports.js'))
|
package/gulp/rollup/rollup.js
CHANGED
|
@@ -1,46 +1,82 @@
|
|
|
1
|
-
var
|
|
1
|
+
var through = require('through2');
|
|
2
2
|
var babel = require('rollup-plugin-babel');
|
|
3
3
|
var common = require('../common');
|
|
4
4
|
var rollup = require('rollup');
|
|
5
|
+
var path = require('path');
|
|
5
6
|
|
|
6
7
|
module.exports = function (moduleName) {
|
|
7
8
|
var globals = {};
|
|
8
9
|
globals[common.egisUiModuleName] = common.egisUiModuleName;
|
|
9
10
|
if (common.module.main) {
|
|
10
|
-
globals[common.module.main] = common.module.main;
|
|
11
|
+
globals[common.module.main] = common.module.main;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
|
|
14
|
+
var inputOptions = {
|
|
14
15
|
plugins: [babel({
|
|
15
|
-
'
|
|
16
|
-
[
|
|
17
|
-
[require("babel-plugin-transform-es2015-literals"), {loose: true}],
|
|
18
|
-
[require("babel-plugin-transform-es2015-function-name"), {loose: true}],
|
|
19
|
-
[require("babel-plugin-transform-es2015-arrow-functions"), {loose: true}],
|
|
20
|
-
[require("babel-plugin-transform-es2015-block-scoped-functions"), {loose: true}],
|
|
21
|
-
[require("babel-plugin-transform-es2015-classes"), {loose: true}],
|
|
22
|
-
[require("babel-plugin-transform-es2015-object-super"), {loose: true}],
|
|
23
|
-
[require("babel-plugin-transform-es2015-shorthand-properties"), {loose: true}],
|
|
24
|
-
[require("babel-plugin-transform-es2015-computed-properties"), {loose: true}],
|
|
25
|
-
[require("babel-plugin-transform-es2015-for-of"), {loose: true}],
|
|
26
|
-
[require("babel-plugin-transform-es2015-sticky-regex"), {loose: true}],
|
|
27
|
-
[require("babel-plugin-transform-es2015-unicode-regex"), {loose: true}],
|
|
28
|
-
[require("babel-plugin-check-es2015-constants"), {loose: true}],
|
|
29
|
-
[require("babel-plugin-transform-es2015-spread"), {loose: true}],
|
|
30
|
-
[require("babel-plugin-transform-es2015-parameters"), {loose: true}],
|
|
31
|
-
[require("babel-plugin-transform-es2015-destructuring"), {loose: true}],
|
|
32
|
-
[require("babel-plugin-transform-es2015-block-scoping"), {loose: true}],
|
|
33
|
-
[require("babel-plugin-transform-es2015-typeof-symbol"), {loose: true}],
|
|
34
|
-
[require("babel-plugin-external-helpers-2"), {loose: true}],
|
|
35
|
-
[require("babel-plugin-transform-regenerator"), {async: false, asyncGenerators: false}]
|
|
16
|
+
'presets': [
|
|
17
|
+
['@babel/preset-env', { modules: false }]
|
|
36
18
|
],
|
|
37
19
|
'highlightCode': true
|
|
38
|
-
})]
|
|
39
|
-
|
|
40
|
-
|
|
20
|
+
})],
|
|
21
|
+
onwarn: function(warning, warn) {
|
|
22
|
+
if (warning.code === 'CIRCULAR_DEPENDENCY') return;
|
|
23
|
+
if (warning.code === 'NON_EXISTENT_EXPORT') return;
|
|
24
|
+
warn(warning);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
var outputOptions = {
|
|
41
29
|
format: common.pkg.bundleFormat || 'iife',
|
|
42
|
-
// useStrict: false,
|
|
43
30
|
name: moduleName,
|
|
44
|
-
globals: globals
|
|
45
|
-
|
|
31
|
+
globals: globals,
|
|
32
|
+
sourcemap: true
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
return through.obj(function (file, encoding, callback) {
|
|
36
|
+
if (file.isNull()) {
|
|
37
|
+
return callback(null, file);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (file.isStream()) {
|
|
41
|
+
return callback(new Error('Streams are not supported'));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
var currentInputOptions = Object.assign({}, inputOptions, {
|
|
45
|
+
input: file.path
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
var self = this;
|
|
49
|
+
rollup.rollup(currentInputOptions)
|
|
50
|
+
.then(function (bundle) {
|
|
51
|
+
return bundle.generate(outputOptions);
|
|
52
|
+
})
|
|
53
|
+
.then(function (result) {
|
|
54
|
+
var output = result.output;
|
|
55
|
+
if (!output || output.length === 0) {
|
|
56
|
+
throw new Error('Rollup generated no output');
|
|
57
|
+
}
|
|
58
|
+
var mainOutput = output[0];
|
|
59
|
+
file.contents = Buffer.from(mainOutput.code);
|
|
60
|
+
|
|
61
|
+
if (mainOutput.map) {
|
|
62
|
+
var map = JSON.parse(JSON.stringify(mainOutput.map));
|
|
63
|
+
map.file = file.relative;
|
|
64
|
+
if (map.sources) {
|
|
65
|
+
map.sources = map.sources.map(function(source) {
|
|
66
|
+
if (path.isAbsolute(source)) {
|
|
67
|
+
return path.relative(path.dirname(file.path), source);
|
|
68
|
+
}
|
|
69
|
+
return source;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
file.sourceMap = map;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
self.push(file);
|
|
76
|
+
callback();
|
|
77
|
+
})
|
|
78
|
+
.catch(function (err) {
|
|
79
|
+
callback(err);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
46
82
|
};
|
package/package.json
CHANGED
|
@@ -6,46 +6,21 @@
|
|
|
6
6
|
"port": 3001,
|
|
7
7
|
"description": "",
|
|
8
8
|
"dependencies": {
|
|
9
|
+
"@babel/core": "^7.26.0",
|
|
10
|
+
"@babel/preset-env": "^7.26.0",
|
|
11
|
+
"@babel/register": "^7.25.9",
|
|
9
12
|
"@egis/ci-tools": "^1.0.0",
|
|
10
|
-
"
|
|
11
|
-
"babel-core": "^6.11.4",
|
|
12
|
-
"babel-plugin-check-es2015-constants": "^6.3.13",
|
|
13
|
-
"babel-plugin-external-helpers-2": "^6.3.13",
|
|
14
|
-
"babel-plugin-istanbul": "^6.1.1",
|
|
15
|
-
"babel-plugin-transform-es2015-arrow-functions": "^6.4.0",
|
|
16
|
-
"babel-plugin-transform-es2015-block-scoped-functions": "^6.3.13",
|
|
17
|
-
"babel-plugin-transform-es2015-block-scoping": "^6.4.0",
|
|
18
|
-
"babel-plugin-transform-es2015-classes": "^6.4.0",
|
|
19
|
-
"babel-plugin-transform-es2015-computed-properties": "^6.4.0",
|
|
20
|
-
"babel-plugin-transform-es2015-destructuring": "^6.4.0",
|
|
21
|
-
"babel-plugin-transform-es2015-for-of": "^6.3.13",
|
|
22
|
-
"babel-plugin-transform-es2015-function-name": "^6.4.0",
|
|
23
|
-
"babel-plugin-transform-es2015-literals": "^6.3.13",
|
|
24
|
-
"babel-plugin-transform-es2015-object-super": "^6.4.0",
|
|
25
|
-
"babel-plugin-transform-es2015-parameters": "^6.4.2",
|
|
26
|
-
"babel-plugin-transform-es2015-shorthand-properties": "^6.3.13",
|
|
27
|
-
"babel-plugin-transform-es2015-spread": "^6.4.0",
|
|
28
|
-
"babel-plugin-transform-es2015-sticky-regex": "^6.3.13",
|
|
29
|
-
"babel-plugin-transform-es2015-template-literals": "^6.3.13",
|
|
30
|
-
"babel-plugin-transform-es2015-typeof-symbol": "^6.4.0",
|
|
31
|
-
"babel-plugin-transform-es2015-unicode-regex": "^6.3.13",
|
|
32
|
-
"babel-plugin-transform-regenerator": "^6.3.26",
|
|
33
|
-
"babel-polyfill": "^6.20.0",
|
|
34
|
-
"babel-preset-es2015": "^6.3.13",
|
|
35
|
-
"babel-preset-es2015-rollup": "^3.0.0",
|
|
36
|
-
"babel-register": "^6.11.4",
|
|
37
|
-
"babelify": "^7.2.0",
|
|
13
|
+
"babelify": "^10.0.0",
|
|
38
14
|
"bl": "^1.0.0",
|
|
39
|
-
"browserify": "^
|
|
15
|
+
"browserify": "^13.3.0",
|
|
40
16
|
"chai": "^3.5.0",
|
|
41
17
|
"chalk": "^2.1.0",
|
|
42
|
-
"codacy-coverage": "^2.0.1",
|
|
43
18
|
"del": "^2.2.0",
|
|
44
19
|
"glob": "^6.0.3",
|
|
45
20
|
"graceful-fs": "^4.1.2",
|
|
46
21
|
"gulp": "egis/gulp#v5.0.0-pre.3",
|
|
47
22
|
"gulp-add-src": "^1.0.0",
|
|
48
|
-
"gulp-babel": "^
|
|
23
|
+
"gulp-babel": "^8.0.0",
|
|
49
24
|
"gulp-better-rollup": "^3.4.0",
|
|
50
25
|
"gulp-changed": "^4.0.2",
|
|
51
26
|
"gulp-concat": "^2.6.0",
|
|
@@ -77,56 +52,60 @@
|
|
|
77
52
|
"gulp-zip": "^5.0.1",
|
|
78
53
|
"handlebars": "^4.7.9",
|
|
79
54
|
"is": "^3.1.0",
|
|
80
|
-
"is_js": "^0.9.0",
|
|
81
55
|
"jasmine-ajax": "^3.2.0",
|
|
82
56
|
"jasmine-core": "^2.99.1",
|
|
83
|
-
"karma
|
|
57
|
+
"karma": "^6.4.4",
|
|
58
|
+
"karma-chrome-launcher": "^3.2.0",
|
|
84
59
|
"karma-coffee-preprocessor": "^0.3.0",
|
|
85
|
-
"karma-firefox-launcher": "^1.
|
|
60
|
+
"karma-firefox-launcher": "^2.1.3",
|
|
86
61
|
"karma-fixture": "^0.2.6",
|
|
87
62
|
"karma-htmlfile-reporter": "^0.3.8",
|
|
88
63
|
"karma-jasmine": "^0.3.6",
|
|
89
|
-
"karma-jasmine-jquery": "egis/karma-jasmine-jquery
|
|
64
|
+
"karma-jasmine-jquery": "egis/karma-jasmine-jquery#v0.1.2-pre.1",
|
|
90
65
|
"karma-json-fixtures-preprocessor": "^0.0.6",
|
|
91
|
-
"karma-junit-reporter": "^
|
|
66
|
+
"karma-junit-reporter": "^2.0.1",
|
|
92
67
|
"karma-sourcemap-loader": "^0.3.6",
|
|
93
68
|
"karma-systemjs": "0.15.0",
|
|
94
|
-
"karma-testingbot-launcher": "egis/karma-testingbot-launcher#^1.0.5-pre.1",
|
|
95
69
|
"karma-verbose-reporter": "^0.0.3",
|
|
96
70
|
"lazypipe": "^1.0.1",
|
|
97
|
-
"lodash": "^4.17.
|
|
71
|
+
"lodash": "^4.17.11",
|
|
98
72
|
"loglevel": "^1.5.1",
|
|
99
73
|
"main-bower-files": "^2.13.1",
|
|
100
74
|
"md5": "^2.3.0",
|
|
101
75
|
"merge-stream": "^1.0.1",
|
|
102
|
-
"minimatch": "^
|
|
103
|
-
"minimist": "^1.2.
|
|
76
|
+
"minimatch": "^10.2.4",
|
|
77
|
+
"minimist": "^1.2.0",
|
|
104
78
|
"mkdirp": "^0.5.1",
|
|
105
|
-
"optimist": "^0.6.1",
|
|
106
79
|
"path-type": "^1.1.0",
|
|
107
80
|
"plugin-error": "^1.0.1",
|
|
108
|
-
"qs": "^6.
|
|
81
|
+
"qs": "^6.14.0",
|
|
109
82
|
"readable-stream": "^2.0.5",
|
|
110
|
-
"rollup": "
|
|
111
|
-
"rollup-plugin-babel": "^
|
|
83
|
+
"rollup": "^2.80.0",
|
|
84
|
+
"rollup-plugin-babel": "^4.4.0",
|
|
112
85
|
"sanitize-filename": "^1.6.1",
|
|
113
|
-
"sass": "
|
|
114
|
-
"semantic-release
|
|
86
|
+
"sass": "1.26.3",
|
|
87
|
+
"semantic-release": "^22.0.7",
|
|
88
|
+
"semantic-release-monorepo": "^8.0.2",
|
|
115
89
|
"semver": "^5.1.0",
|
|
116
90
|
"shelljs": "^0.8.5",
|
|
117
|
-
"simple-semantic-config": "
|
|
91
|
+
"simple-semantic-config": "egis/simple-semantic-config",
|
|
118
92
|
"source-map": "^0.5.3",
|
|
119
93
|
"systemjs": "^0.19.13",
|
|
120
94
|
"through2": "^3.0.0",
|
|
121
|
-
"underscore": "^1.
|
|
122
|
-
"unzip": "^0.1.11",
|
|
95
|
+
"underscore": "^1.8.3",
|
|
123
96
|
"vinyl-buffer": "^1.0.0",
|
|
124
97
|
"vinyl-fs": "^3.0.3",
|
|
125
98
|
"vinyl-source-stream": "^1.1.0",
|
|
126
|
-
"watchify": "^3.11.1"
|
|
99
|
+
"watchify": "^3.11.1",
|
|
100
|
+
"yargs": "^17.7.2"
|
|
127
101
|
},
|
|
128
102
|
"devDependencies": {
|
|
129
|
-
"@chiragrupani/karma-chromium-edge-launcher": "2.
|
|
103
|
+
"@chiragrupani/karma-chromium-edge-launcher": "^2.4.1",
|
|
104
|
+
"browser-sync": "^3.0.4"
|
|
105
|
+
},
|
|
106
|
+
"resolutions": {
|
|
107
|
+
"dompurify": "^3.4.2",
|
|
108
|
+
"follow-redirects": "^1.16.0"
|
|
130
109
|
},
|
|
131
110
|
"homepage": "https://github.com/egis/papertrail-ui/tree/master/packages/build-tools",
|
|
132
111
|
"license": "Commercial",
|
|
@@ -148,8 +127,8 @@
|
|
|
148
127
|
"simple-semantic-config"
|
|
149
128
|
]
|
|
150
129
|
},
|
|
151
|
-
"version": "11.
|
|
130
|
+
"version": "11.7.1",
|
|
152
131
|
"engines": {
|
|
153
|
-
"node": ">=
|
|
132
|
+
"node": ">= 18.20.4"
|
|
154
133
|
}
|
|
155
134
|
}
|
package/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var os = require('os');
|
|
2
2
|
var fs = require('fs');
|
|
3
|
-
var argv = require('
|
|
3
|
+
var argv = require('yargs').argv;
|
|
4
4
|
var mkdirp = require('mkdirp');
|
|
5
5
|
var child_process = require('child_process');
|
|
6
6
|
var _ = require('lodash');
|
|
@@ -74,65 +74,15 @@ module.exports = {
|
|
|
74
74
|
|
|
75
75
|
var hostname = argv.host || process.env['IP'] || this.ip() || 'localhost';
|
|
76
76
|
|
|
77
|
-
var
|
|
78
|
-
var customLaunchers = {
|
|
79
|
-
'REMOTE-MSEdge': {
|
|
80
|
-
base: launchersBase,
|
|
81
|
-
browserName: 'microsoftedge',
|
|
82
|
-
browserVersion: process.env.TB_MSEDGE || 'latest',
|
|
83
|
-
platform: 'WIN10',
|
|
84
|
-
},
|
|
85
|
-
'REMOTE-FF': {
|
|
86
|
-
base: launchersBase,
|
|
87
|
-
browserName: 'firefox',
|
|
88
|
-
version: process.env.TB_FF || 'latest',
|
|
89
|
-
platform: 'WIN10'
|
|
90
|
-
},
|
|
91
|
-
'REMOTE-Safari': {
|
|
92
|
-
base: launchersBase,
|
|
93
|
-
browserName: 'safari',
|
|
94
|
-
version: process.env.TB_SAFARI || 'latest',
|
|
95
|
-
platform: 'VENTURA'
|
|
96
|
-
},
|
|
97
|
-
'REMOTE-Chrome': {
|
|
98
|
-
base: launchersBase,
|
|
99
|
-
browserName: 'chrome',
|
|
100
|
-
version: process.env.TB_CHROME || 'latest',
|
|
101
|
-
platform: 'WIN10'
|
|
102
|
-
}
|
|
103
|
-
};
|
|
77
|
+
var customLaunchers = {};
|
|
104
78
|
|
|
105
|
-
var browsers =
|
|
106
|
-
browsers.push('Edge');
|
|
79
|
+
var browsers = [];
|
|
107
80
|
var plugins= ['karma-*', require('@chiragrupani/karma-chromium-edge-launcher')];
|
|
108
81
|
var projectName = argv.projectName;
|
|
109
|
-
var testingBotBuildName = process.env.CIRCLE_BUILD_NUM;
|
|
110
|
-
if (testingBotBuildName) {
|
|
111
|
-
testingBotBuildName = '' + projectName + '/' + testingBotBuildName;
|
|
112
|
-
projectName = testingBotBuildName;
|
|
113
|
-
}
|
|
114
82
|
|
|
115
83
|
var group_filename = function(base_fn, ext) {
|
|
116
84
|
return _.compact([base_fn, argv.group]).join('-') + '.' + ext;
|
|
117
85
|
};
|
|
118
|
-
|
|
119
|
-
if ((argv.reporters || []).indexOf('testingbot') >= 0) {
|
|
120
|
-
var tbConfig = {
|
|
121
|
-
testName: (projectName || '') + ' Karma',
|
|
122
|
-
recordVideo: true,
|
|
123
|
-
recordScreenshots: true,
|
|
124
|
-
connectOptions: {
|
|
125
|
-
verbose: false,
|
|
126
|
-
'se-port': 4445,
|
|
127
|
-
logfile: 'test-output/' + group_filename('testingbot_tunnel', 'log')
|
|
128
|
-
},
|
|
129
|
-
build: testingBotBuildName
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
config.set({
|
|
133
|
-
testingbot: tbConfig
|
|
134
|
-
})
|
|
135
|
-
}
|
|
136
86
|
config.set({
|
|
137
87
|
junitReporter: {
|
|
138
88
|
outputDir: outputDir + '/junit/' // results will be saved as $outputDir/$browserName.xml
|
package/wdio.conf.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var argv = require('
|
|
2
|
+
var argv = require('yargs').argv;
|
|
3
3
|
const { join } = require('path');
|
|
4
4
|
|
|
5
5
|
const debug = process.env.DEBUG;
|
|
@@ -22,9 +22,10 @@ var maxInstances = debug ? 1 : (argv.maxBrowserInstances || process.env.E2E_BROW
|
|
|
22
22
|
var capabilities = [];
|
|
23
23
|
var browserName = argv.browserName || 'chrome';
|
|
24
24
|
var capability = {
|
|
25
|
-
maxInstances: maxInstances,
|
|
25
|
+
'wdio:maxInstances': maxInstances,
|
|
26
26
|
//
|
|
27
|
-
browserName
|
|
27
|
+
browserName,
|
|
28
|
+
'wdio:enforceWebDriverClassic': true
|
|
28
29
|
};
|
|
29
30
|
|
|
30
31
|
if (browserName === 'chrome') {
|
|
@@ -80,7 +81,7 @@ module.exports = {
|
|
|
80
81
|
// and 30 processes will get spawned. The property handles how many capabilities
|
|
81
82
|
// from the same test should run tests.
|
|
82
83
|
//
|
|
83
|
-
maxInstances:
|
|
84
|
+
maxInstances: 1,
|
|
84
85
|
//
|
|
85
86
|
// If you have trouble getting all important capabilities together, check out the
|
|
86
87
|
// Sauce Labs platform configurator - a great tool to configure your capabilities:
|
|
@@ -119,7 +120,7 @@ module.exports = {
|
|
|
119
120
|
//
|
|
120
121
|
// Default request retries count
|
|
121
122
|
connectionRetryCount: 3,
|
|
122
|
-
waitforInterval:
|
|
123
|
+
waitforInterval: 100,
|
|
123
124
|
//
|
|
124
125
|
// Initialize the browser instance with a WebdriverIO plugin. The object should have the
|
|
125
126
|
// plugin name as key and the desired plugin options as properties. Make sure you have
|
|
@@ -144,23 +145,8 @@ module.exports = {
|
|
|
144
145
|
// Services take over a specific job you don't want to take care of. They enhance
|
|
145
146
|
// your test setup with almost no effort. Unlike plugins, they don't add new
|
|
146
147
|
// commands. Instead, they hook themselves up into the test process.
|
|
147
|
-
services: [
|
|
148
|
-
|
|
149
|
-
{
|
|
150
|
-
// Some options, see the docs for more
|
|
151
|
-
baselineFolder: join(process.cwd(), 'baseline'), formatImageName: '{tag}',
|
|
152
|
-
screenshotPath: join(process.cwd(), 'test-output', 'image-comparison'),
|
|
153
|
-
savePerInstance: true,
|
|
154
|
-
autoSaveBaseline: true,
|
|
155
|
-
blockOutStatusBar: true,
|
|
156
|
-
blockOutToolBar: true,
|
|
157
|
-
scaleImagesToSameSize: true,
|
|
158
|
-
ignoreAntialiasing: true,
|
|
159
|
-
ignoreAlpha: true
|
|
160
|
-
// ... more options
|
|
161
|
-
}]
|
|
162
|
-
],
|
|
163
|
-
//
|
|
148
|
+
services: [['intercept']],
|
|
149
|
+
//
|
|
164
150
|
// Framework you want to run your specs with.
|
|
165
151
|
// The following are supported: Mocha, Jasmine, and Cucumber
|
|
166
152
|
// see also: http://webdriver.io/guide/testrunner/frameworks.html
|
|
@@ -180,7 +166,8 @@ module.exports = {
|
|
|
180
166
|
mochaOpts: {
|
|
181
167
|
ui: 'bdd',
|
|
182
168
|
timeout: mochaOpts.timeout || (debug ? 50 * 60 * 1000 : 5 * 60 * 1000),
|
|
183
|
-
retries: debug ? 0 : (mochaOpts.retries || 0)
|
|
169
|
+
retries: debug ? 0 : (mochaOpts.retries || 0),
|
|
170
|
+
color: true
|
|
184
171
|
},
|
|
185
172
|
//
|
|
186
173
|
// =====
|
|
@@ -200,7 +187,7 @@ module.exports = {
|
|
|
200
187
|
// before: function (capabilities, specs) {
|
|
201
188
|
// },
|
|
202
189
|
before: function (capabilities, specs) {
|
|
203
|
-
browser.testInfo = {specs: specs};
|
|
190
|
+
browser.testInfo = { specs: specs };
|
|
204
191
|
console.info('before', browser.testInfo);
|
|
205
192
|
},
|
|
206
193
|
//
|
|
@@ -250,7 +237,7 @@ module.exports = {
|
|
|
250
237
|
// possible to defer the end of the process using a promise.
|
|
251
238
|
// onComplete: function(exitCode) {
|
|
252
239
|
// }
|
|
253
|
-
onError: function(err) {
|
|
240
|
+
onError: function (err) {
|
|
254
241
|
console.warn('onError', err, browser.testInfo);
|
|
255
242
|
browser.err = err; // to be able to query its err.shotTaken later in afterEach hook
|
|
256
243
|
}
|
|
@@ -259,6 +246,6 @@ module.exports = {
|
|
|
259
246
|
// Cause all of our Selenium scripts to get transpiled by Babel in real-time into full ES6,
|
|
260
247
|
// running on Node.js. Allow generator calls to directly go through, since Node.js has efficient
|
|
261
248
|
// support for those.
|
|
262
|
-
require('babel
|
|
263
|
-
presets: ['
|
|
249
|
+
require('@babel/register')({
|
|
250
|
+
presets: ['@babel/preset-env']
|
|
264
251
|
});
|
package/gulp/karma-testingbot.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var gulp = require('gulp');
|
|
4
|
-
var child_process = require('child_process');
|
|
5
|
-
|
|
6
|
-
gulp.task('update-karma-testingbot', () => {
|
|
7
|
-
let cmd = [
|
|
8
|
-
'wget https://testingbot.com/downloads/testingbot-tunnel.zip -O testingbot-tunnel.zip',
|
|
9
|
-
'unzip -o testingbot-tunnel.zip',
|
|
10
|
-
'cp -f ./testingbot-tunnel/testingbot-tunnel.jar ./node_modules/testingbot-tunnel-launcher/'
|
|
11
|
-
];
|
|
12
|
-
return child_process.execSync(cmd.join("&&")).toString('utf8').trim();
|
|
13
|
-
});
|