@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/Gulpfile.js CHANGED
@@ -20,7 +20,6 @@ require('./gulp/bundle');
20
20
  require('./gulp/dev-bundle');
21
21
  require('./gulp/rollup/tasks');
22
22
  require('./gulp/plugin');
23
- require('./gulp/karma-testingbot');
24
23
 
25
24
  gulp.task('resources', resources);
26
25
  gulp.task('dependencies', ['resources'], dependencies);
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
+
@@ -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('optimist').argv;
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
- if (pkg.routes) {
18
+ if (pkg.routes) {
20
19
  _.each(pkg.routes, routeItem => {
21
20
  let route, routeDir;
22
- if (is.array(routeItem)) {
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('optimist').argv;
12
+ var argv = require('yargs').argv;
13
13
 
14
14
  var knownOptions = {
15
15
  string: 'env',
@@ -38,7 +38,7 @@ _.each(common.bundleKinds, function(kind) {
38
38
  .pipe(debug())
39
39
  .pipe(babel({
40
40
  highlightCode: true,
41
- presets: ['es2015']
41
+ presets: ['@babel/preset-env']
42
42
  }))
43
43
  .pipe(sourcemaps.write('.', {includeContent: true}))
44
44
  .pipe(gulp.dest(destDir))
@@ -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
- return gulp.src(common.dist[kind] + '/' + common.bundles[kind] + '.map')
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 (is.string(modulePath)) {
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'))
@@ -1,46 +1,82 @@
1
- var betterRollup = require('gulp-better-rollup');
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; //allows importing own module for tests
11
+ globals[common.module.main] = common.module.main;
11
12
  }
12
- return betterRollup({
13
- rollup,
13
+
14
+ var inputOptions = {
14
15
  plugins: [babel({
15
- 'plugins': [
16
- [require("babel-plugin-transform-es2015-template-literals"), {loose: true}],
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
- // any option supported by rollup can be set here, including sourceMap
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
- "babel": "^6.3.26",
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": "^16.1.0",
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": "^6.1.1",
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-chrome-launcher": "^0.2.2",
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.2.0",
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#^0.1.2-pre.1",
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": "^1.2.0",
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.21",
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": "^3.0.5",
103
- "minimist": "^1.2.6",
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.7.0",
81
+ "qs": "^6.14.0",
109
82
  "readable-stream": "^2.0.5",
110
- "rollup": "0.68.2",
111
- "rollup-plugin-babel": "^2.7.1",
83
+ "rollup": "^2.80.0",
84
+ "rollup-plugin-babel": "^4.4.0",
112
85
  "sanitize-filename": "^1.6.1",
113
- "sass": "^1.26.3",
114
- "semantic-release-monorepo": "^7.0.2",
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": "^6.1.3",
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.13.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.3.1"
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.6.5",
130
+ "version": "11.7.1",
152
131
  "engines": {
153
- "node": ">= 8.16.0"
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('optimist').argv;
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 launchersBase = 'TestingBot';
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 = Object.keys(customLaunchers);
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('optimist').argv;
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: 10,
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: 500,
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: [ 'intercept', ['image-comparison',
148
- // The options
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-register')({
263
- presets: ['es2015']
249
+ require('@babel/register')({
250
+ presets: ['@babel/preset-env']
264
251
  });
@@ -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
- });