@wdio/local-runner
Advanced tools
Comparing version 5.0.0-beta.5 to 5.0.0-beta.6
@@ -8,21 +8,23 @@ "use strict"; | ||
var _path = _interopRequireDefault(require("path")); | ||
require("source-map-support/register"); | ||
var _child_process = _interopRequireDefault(require("child_process")); | ||
var _logger = _interopRequireDefault(require("@wdio/logger")); | ||
var _events = _interopRequireDefault(require("events")); | ||
var _worker = _interopRequireDefault(require("./worker")); | ||
var _logger = _interopRequireDefault(require("@wdio/logger")); | ||
var _constants = require("./constants"); | ||
var _transformStream = _interopRequireDefault(require("./transformStream")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } | ||
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } | ||
const log = (0, _logger.default)('wdio-local-runner'); | ||
class LocalRunner extends _events.default { | ||
class LocalRunner { | ||
constructor(configFile, config) { | ||
super(); | ||
this.configFile = configFile; | ||
this.config = config; | ||
this.workerPool = {}; | ||
} | ||
@@ -36,54 +38,61 @@ /** | ||
run({ | ||
cid, | ||
command, | ||
configFile, | ||
argv, | ||
caps, | ||
processNumber, | ||
specs, | ||
server, | ||
isMultiremote | ||
}) { | ||
const runnerEnv = Object.assign(process.env, this.config.runnerEnv, { | ||
WDIO_LOG_LEVEL: this.config.logLevel | ||
}); | ||
getWorkerCount() { | ||
return Object.keys(this.workerPool).length; | ||
} | ||
if (this.config.logDir) { | ||
runnerEnv.WDIO_LOG_PATH = _path.default.join(this.config.logDir, `wdio-${cid}.log`); | ||
run(_ref) { | ||
let { | ||
command, | ||
argv | ||
} = _ref, | ||
options = _objectWithoutProperties(_ref, ["command", "argv"]); | ||
/** | ||
* adjust max listeners on stdout/stderr when creating listeners | ||
*/ | ||
const workerCnt = this.getWorkerCount(); | ||
if (workerCnt >= process.stdout.getMaxListeners() - 2) { | ||
process.stdout.setMaxListeners(workerCnt + 2); | ||
process.stderr.setMaxListeners(workerCnt + 2); | ||
} | ||
log.info(`Start worker ${cid} with arg: ${process.argv.slice(2)}`); | ||
const worker = new _worker.default(this.config, options); | ||
this.workerPool[options.cid] = worker; | ||
worker.postMessage(command, argv); | ||
return worker; | ||
} | ||
/** | ||
* shutdown all worker processes | ||
* | ||
* @return {Promise} resolves when all worker have been shutdown or | ||
* a timeout was reached | ||
*/ | ||
const childProcess = _child_process.default.fork(_path.default.join(__dirname, 'run.js'), process.argv.slice(2), { | ||
cwd: process.cwd(), | ||
env: runnerEnv, | ||
execArgv: this.config.execArgv, | ||
silent: true | ||
}); | ||
childProcess.on('message', payload => this.emit('message', Object.assign(payload, { | ||
cid | ||
}))); | ||
childProcess.on('exit', code => { | ||
log.debug(`Runner ${cid} finished with exit code ${code}`); | ||
this.emit('end', { | ||
cid, | ||
exitCode: code | ||
}); | ||
shutdown() { | ||
log.info('Shutting down spawned worker'); | ||
for (const [cid, worker] of Object.entries(this.workerPool)) { | ||
if (!worker.isBusy) { | ||
delete this.workerPool[cid]; | ||
continue; | ||
} | ||
worker.postMessage('endSession', {}); | ||
} | ||
return new Promise(resolve => { | ||
const interval = setInterval(() => { | ||
const busyWorker = Object.entries(this.workerPool).filter(([, worker]) => worker.isBusy).length; | ||
log.info(`Waiting for ${busyWorker} to shut down gracefully`); | ||
if (busyWorker === 0) { | ||
clearInterval(interval); | ||
log.info('shutting down'); | ||
return resolve(); | ||
} | ||
}, 250); | ||
setTimeout(resolve, _constants.SHUTDOWN_TIMEOUT); | ||
}); | ||
childProcess.send({ | ||
cid, | ||
command, | ||
configFile, | ||
argv, | ||
caps, | ||
processNumber, | ||
specs, | ||
server, | ||
isMultiremote | ||
}); | ||
childProcess.stdout.pipe(new _transformStream.default(cid)).pipe(process.stdout); | ||
childProcess.stderr.pipe(new _transformStream.default(cid)).pipe(process.stderr); | ||
return childProcess; | ||
} | ||
@@ -93,2 +102,3 @@ | ||
exports.default = LocalRunner; | ||
exports.default = LocalRunner; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJMb2NhbFJ1bm5lciIsImNvbnN0cnVjdG9yIiwiY29uZmlnRmlsZSIsImNvbmZpZyIsIndvcmtlclBvb2wiLCJpbml0aWFsaXNlIiwiZ2V0V29ya2VyQ291bnQiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwicnVuIiwiY29tbWFuZCIsImFyZ3YiLCJvcHRpb25zIiwid29ya2VyQ250IiwicHJvY2VzcyIsInN0ZG91dCIsImdldE1heExpc3RlbmVycyIsInNldE1heExpc3RlbmVycyIsInN0ZGVyciIsIndvcmtlciIsIldvcmtlckluc3RhbmNlIiwiY2lkIiwicG9zdE1lc3NhZ2UiLCJzaHV0ZG93biIsImluZm8iLCJlbnRyaWVzIiwiaXNCdXN5IiwiUHJvbWlzZSIsInJlc29sdmUiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwiYnVzeVdvcmtlciIsImZpbHRlciIsImNsZWFySW50ZXJ2YWwiLCJzZXRUaW1lb3V0IiwiU0hVVERPV05fVElNRU9VVCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7Ozs7Ozs7O0FBRUEsTUFBTUEsR0FBRyxHQUFHLHFCQUFPLG1CQUFQLENBQVo7O0FBRWUsTUFBTUMsV0FBTixDQUFrQjtBQUM3QkMsRUFBQUEsV0FBVyxDQUFFQyxVQUFGLEVBQWNDLE1BQWQsRUFBc0I7QUFDN0IsU0FBS0QsVUFBTCxHQUFrQkEsVUFBbEI7QUFDQSxTQUFLQyxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxTQUFLQyxVQUFMLEdBQWtCLEVBQWxCO0FBQ0g7QUFFRDs7Ozs7QUFHQUMsRUFBQUEsVUFBVSxHQUFJLENBQUU7O0FBRWhCQyxFQUFBQSxjQUFjLEdBQUk7QUFDZCxXQUFPQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxLQUFLSixVQUFqQixFQUE2QkssTUFBcEM7QUFDSDs7QUFFREMsRUFBQUEsR0FBRyxPQUFpQztBQUFBLFFBQS9CO0FBQUVDLE1BQUFBLE9BQUY7QUFBV0MsTUFBQUE7QUFBWCxLQUErQjtBQUFBLFFBQVhDLE9BQVc7O0FBQ2hDOzs7QUFHQSxVQUFNQyxTQUFTLEdBQUcsS0FBS1IsY0FBTCxFQUFsQjs7QUFDQSxRQUFJUSxTQUFTLElBQUlDLE9BQU8sQ0FBQ0MsTUFBUixDQUFlQyxlQUFmLEtBQW1DLENBQXBELEVBQXVEO0FBQ25ERixNQUFBQSxPQUFPLENBQUNDLE1BQVIsQ0FBZUUsZUFBZixDQUErQkosU0FBUyxHQUFHLENBQTNDO0FBQ0FDLE1BQUFBLE9BQU8sQ0FBQ0ksTUFBUixDQUFlRCxlQUFmLENBQStCSixTQUFTLEdBQUcsQ0FBM0M7QUFDSDs7QUFFRCxVQUFNTSxNQUFNLEdBQUcsSUFBSUMsZUFBSixDQUFtQixLQUFLbEIsTUFBeEIsRUFBZ0NVLE9BQWhDLENBQWY7QUFDQSxTQUFLVCxVQUFMLENBQWdCUyxPQUFPLENBQUNTLEdBQXhCLElBQStCRixNQUEvQjtBQUNBQSxJQUFBQSxNQUFNLENBQUNHLFdBQVAsQ0FBbUJaLE9BQW5CLEVBQTRCQyxJQUE1QjtBQUVBLFdBQU9RLE1BQVA7QUFDSDtBQUVEOzs7Ozs7OztBQU1BSSxFQUFBQSxRQUFRLEdBQUk7QUFDUnpCLElBQUFBLEdBQUcsQ0FBQzBCLElBQUosQ0FBUyw4QkFBVDs7QUFFQSxTQUFLLE1BQU0sQ0FBQ0gsR0FBRCxFQUFNRixNQUFOLENBQVgsSUFBNEJiLE1BQU0sQ0FBQ21CLE9BQVAsQ0FBZSxLQUFLdEIsVUFBcEIsQ0FBNUIsRUFBNkQ7QUFDekQsVUFBSSxDQUFDZ0IsTUFBTSxDQUFDTyxNQUFaLEVBQW9CO0FBQ2hCLGVBQU8sS0FBS3ZCLFVBQUwsQ0FBZ0JrQixHQUFoQixDQUFQO0FBQ0E7QUFDSDs7QUFFREYsTUFBQUEsTUFBTSxDQUFDRyxXQUFQLENBQW1CLFlBQW5CLEVBQWlDLEVBQWpDO0FBQ0g7O0FBRUQsV0FBTyxJQUFJSyxPQUFKLENBQWFDLE9BQUQsSUFBYTtBQUM1QixZQUFNQyxRQUFRLEdBQUdDLFdBQVcsQ0FBQyxNQUFNO0FBQy9CLGNBQU1DLFVBQVUsR0FBR3pCLE1BQU0sQ0FBQ21CLE9BQVAsQ0FBZSxLQUFLdEIsVUFBcEIsRUFDZDZCLE1BRGMsQ0FDUCxDQUFDLEdBQUdiLE1BQUgsQ0FBRCxLQUFnQkEsTUFBTSxDQUFDTyxNQURoQixFQUN3QmxCLE1BRDNDO0FBR0FWLFFBQUFBLEdBQUcsQ0FBQzBCLElBQUosQ0FBVSxlQUFjTyxVQUFXLDBCQUFuQzs7QUFDQSxZQUFJQSxVQUFVLEtBQUssQ0FBbkIsRUFBc0I7QUFDbEJFLFVBQUFBLGFBQWEsQ0FBQ0osUUFBRCxDQUFiO0FBQ0EvQixVQUFBQSxHQUFHLENBQUMwQixJQUFKLENBQVMsZUFBVDtBQUNBLGlCQUFPSSxPQUFPLEVBQWQ7QUFDSDtBQUNKLE9BVjJCLEVBVXpCLEdBVnlCLENBQTVCO0FBWUFNLE1BQUFBLFVBQVUsQ0FBQ04sT0FBRCxFQUFVTywyQkFBVixDQUFWO0FBQ0gsS0FkTSxDQUFQO0FBZUg7O0FBbEU0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2dnZXIgZnJvbSAnQHdkaW8vbG9nZ2VyJ1xuXG5pbXBvcnQgV29ya2VySW5zdGFuY2UgZnJvbSAnLi93b3JrZXInXG5pbXBvcnQgeyBTSFVURE9XTl9USU1FT1VUIH0gZnJvbSAnLi9jb25zdGFudHMnXG5cbmNvbnN0IGxvZyA9IGxvZ2dlcignd2Rpby1sb2NhbC1ydW5uZXInKVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2NhbFJ1bm5lciB7XG4gICAgY29uc3RydWN0b3IgKGNvbmZpZ0ZpbGUsIGNvbmZpZykge1xuICAgICAgICB0aGlzLmNvbmZpZ0ZpbGUgPSBjb25maWdGaWxlXG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnXG4gICAgICAgIHRoaXMud29ya2VyUG9vbCA9IHt9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbm90aGluZyB0byBpbml0aWFsaXNlIHdoZW4gcnVubmluZyBsb2NhbGx5XG4gICAgICovXG4gICAgaW5pdGlhbGlzZSAoKSB7fVxuXG4gICAgZ2V0V29ya2VyQ291bnQgKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy53b3JrZXJQb29sKS5sZW5ndGhcbiAgICB9XG5cbiAgICBydW4gKHsgY29tbWFuZCwgYXJndiwgLi4ub3B0aW9ucyB9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhZGp1c3QgbWF4IGxpc3RlbmVycyBvbiBzdGRvdXQvc3RkZXJyIHdoZW4gY3JlYXRpbmcgbGlzdGVuZXJzXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB3b3JrZXJDbnQgPSB0aGlzLmdldFdvcmtlckNvdW50KClcbiAgICAgICAgaWYgKHdvcmtlckNudCA+PSBwcm9jZXNzLnN0ZG91dC5nZXRNYXhMaXN0ZW5lcnMoKSAtIDIpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3Rkb3V0LnNldE1heExpc3RlbmVycyh3b3JrZXJDbnQgKyAyKVxuICAgICAgICAgICAgcHJvY2Vzcy5zdGRlcnIuc2V0TWF4TGlzdGVuZXJzKHdvcmtlckNudCArIDIpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VySW5zdGFuY2UodGhpcy5jb25maWcsIG9wdGlvbnMpXG4gICAgICAgIHRoaXMud29ya2VyUG9vbFtvcHRpb25zLmNpZF0gPSB3b3JrZXJcbiAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKGNvbW1hbmQsIGFyZ3YpXG5cbiAgICAgICAgcmV0dXJuIHdvcmtlclxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNodXRkb3duIGFsbCB3b3JrZXIgcHJvY2Vzc2VzXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgcmVzb2x2ZXMgd2hlbiBhbGwgd29ya2VyIGhhdmUgYmVlbiBzaHV0ZG93biBvclxuICAgICAqICAgICAgICAgICAgICAgICAgICBhIHRpbWVvdXQgd2FzIHJlYWNoZWRcbiAgICAgKi9cbiAgICBzaHV0ZG93biAoKSB7XG4gICAgICAgIGxvZy5pbmZvKCdTaHV0dGluZyBkb3duIHNwYXduZWQgd29ya2VyJylcblxuICAgICAgICBmb3IgKGNvbnN0IFtjaWQsIHdvcmtlcl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy53b3JrZXJQb29sKSkge1xuICAgICAgICAgICAgaWYgKCF3b3JrZXIuaXNCdXN5KSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMud29ya2VyUG9vbFtjaWRdXG4gICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCdlbmRTZXNzaW9uJywge30pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1c3lXb3JrZXIgPSBPYmplY3QuZW50cmllcyh0aGlzLndvcmtlclBvb2wpXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKFssIHdvcmtlcl0pID0+IHdvcmtlci5pc0J1c3kpLmxlbmd0aFxuXG4gICAgICAgICAgICAgICAgbG9nLmluZm8oYFdhaXRpbmcgZm9yICR7YnVzeVdvcmtlcn0gdG8gc2h1dCBkb3duIGdyYWNlZnVsbHlgKVxuICAgICAgICAgICAgICAgIGlmIChidXN5V29ya2VyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpXG4gICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKCdzaHV0dGluZyBkb3duJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDI1MClcblxuICAgICAgICAgICAgc2V0VGltZW91dChyZXNvbHZlLCBTSFVURE9XTl9USU1FT1VUKVxuICAgICAgICB9KVxuICAgIH1cbn1cbiJdfQ== |
"use strict"; | ||
require("source-map-support/register"); | ||
var _asyncExitHook = _interopRequireDefault(require("async-exit-hook")); | ||
var _runner = _interopRequireDefault(require("@wdio/runner")); | ||
@@ -7,6 +11,7 @@ | ||
var _constants = require("./constants"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
const log = (0, _logger.default)('wdio-local-runner'); | ||
let forceKillingProcess = false; | ||
const runner = new _runner.default(); | ||
@@ -16,3 +21,11 @@ process.on('message', m => { | ||
runner[m.command](m).catch(e => { | ||
log.info(`Run worker command: ${m.command}`); | ||
runner[m.command](m).then(result => process.send({ | ||
origin: 'worker', | ||
name: 'finisedCommand', | ||
content: { | ||
command: m.command, | ||
result | ||
} | ||
}), e => { | ||
log.error(`Failed launching test session:`, e); | ||
@@ -22,26 +35,24 @@ process.exit(1); | ||
runner.on('exit', (_context = process).exit.bind(_context)); | ||
runner.on('error', ({ | ||
name, | ||
message, | ||
stack | ||
}) => process.send({ | ||
origin: 'worker', | ||
name: 'error', | ||
content: { | ||
name, | ||
message, | ||
stack | ||
} | ||
})); | ||
}); | ||
/** | ||
* catches ctrl+c event | ||
* catch sigint messages as they are handled by main process | ||
*/ | ||
process.on('SIGINT', () => { | ||
/** | ||
* force killing process when 2nd SIGINT comes in | ||
*/ | ||
if (forceKillingProcess) { | ||
return process.exit(1); | ||
} | ||
forceKillingProcess = true; | ||
runner.sigintWasCalled = true; | ||
/** | ||
* if session is currently in booting process don't do anythign | ||
*/ | ||
if (!global.browser) { | ||
return; | ||
} | ||
return runner.kill(); | ||
}); | ||
(0, _asyncExitHook.default)(callback => { | ||
log.info(`Received SIGINT, giving process ${_constants.SHUTDOWN_TIMEOUT}ms to shutdown gracefully`); | ||
setTimeout(callback, _constants.SHUTDOWN_TIMEOUT); | ||
}); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW4uanMiXSwibmFtZXMiOlsibG9nIiwicnVubmVyIiwiUnVubmVyIiwicHJvY2VzcyIsIm9uIiwibSIsImluZm8iLCJjb21tYW5kIiwidGhlbiIsInJlc3VsdCIsInNlbmQiLCJvcmlnaW4iLCJuYW1lIiwiY29udGVudCIsImUiLCJlcnJvciIsImV4aXQiLCJtZXNzYWdlIiwic3RhY2siLCJjYWxsYmFjayIsIlNIVVRET1dOX1RJTUVPVVQiLCJzZXRUaW1lb3V0Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBRUE7Ozs7QUFFQSxNQUFNQSxHQUFHLEdBQUcscUJBQU8sbUJBQVAsQ0FBWjtBQUVBLE1BQU1DLE1BQU0sR0FBRyxJQUFJQyxlQUFKLEVBQWY7QUFDQUMsT0FBTyxDQUFDQyxFQUFSLENBQVcsU0FBWCxFQUF1QkMsQ0FBRCxJQUFPO0FBQUE7O0FBQ3pCTCxFQUFBQSxHQUFHLENBQUNNLElBQUosQ0FBVSx1QkFBc0JELENBQUMsQ0FBQ0UsT0FBUSxFQUExQztBQUNBTixFQUFBQSxNQUFNLENBQUNJLENBQUMsQ0FBQ0UsT0FBSCxDQUFOLENBQWtCRixDQUFsQixFQUFxQkcsSUFBckIsQ0FDS0MsTUFBRCxJQUFZTixPQUFPLENBQUNPLElBQVIsQ0FBYTtBQUNyQkMsSUFBQUEsTUFBTSxFQUFFLFFBRGE7QUFFckJDLElBQUFBLElBQUksRUFBRSxnQkFGZTtBQUdyQkMsSUFBQUEsT0FBTyxFQUFFO0FBQ0xOLE1BQUFBLE9BQU8sRUFBRUYsQ0FBQyxDQUFDRSxPQUROO0FBRUxFLE1BQUFBO0FBRks7QUFIWSxHQUFiLENBRGhCLEVBU0tLLENBQUQsSUFBTztBQUNIZCxJQUFBQSxHQUFHLENBQUNlLEtBQUosQ0FBVyxnQ0FBWCxFQUE0Q0QsQ0FBNUM7QUFDQVgsSUFBQUEsT0FBTyxDQUFDYSxJQUFSLENBQWEsQ0FBYjtBQUNILEdBWkw7QUFlQWYsRUFBQUEsTUFBTSxDQUFDRyxFQUFQLENBQVUsTUFBVixFQUFvQixZQUFBRCxPQUFPLEVBQUNhLElBQTVCO0FBQ0FmLEVBQUFBLE1BQU0sQ0FBQ0csRUFBUCxDQUFVLE9BQVYsRUFBbUIsQ0FBQztBQUFFUSxJQUFBQSxJQUFGO0FBQVFLLElBQUFBLE9BQVI7QUFBaUJDLElBQUFBO0FBQWpCLEdBQUQsS0FBOEJmLE9BQU8sQ0FBQ08sSUFBUixDQUFhO0FBQzFEQyxJQUFBQSxNQUFNLEVBQUUsUUFEa0Q7QUFFMURDLElBQUFBLElBQUksRUFBRSxPQUZvRDtBQUcxREMsSUFBQUEsT0FBTyxFQUFFO0FBQUVELE1BQUFBLElBQUY7QUFBUUssTUFBQUEsT0FBUjtBQUFpQkMsTUFBQUE7QUFBakI7QUFIaUQsR0FBYixDQUFqRDtBQUtILENBdkJEO0FBeUJBOzs7O0FBR0EsNEJBQVVDLFFBQUQsSUFBYztBQUNuQm5CLEVBQUFBLEdBQUcsQ0FBQ00sSUFBSixDQUFVLG1DQUFrQ2MsMkJBQWlCLDJCQUE3RDtBQUNBQyxFQUFBQSxVQUFVLENBQUNGLFFBQUQsRUFBV0MsMkJBQVgsQ0FBVjtBQUNILENBSEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXhpdEhvb2sgZnJvbSAnYXN5bmMtZXhpdC1ob29rJ1xuXG5pbXBvcnQgUnVubmVyIGZyb20gJ0B3ZGlvL3J1bm5lcidcbmltcG9ydCBsb2dnZXIgZnJvbSAnQHdkaW8vbG9nZ2VyJ1xuXG5pbXBvcnQgeyBTSFVURE9XTl9USU1FT1VUIH0gZnJvbSAnLi9jb25zdGFudHMnXG5cbmNvbnN0IGxvZyA9IGxvZ2dlcignd2Rpby1sb2NhbC1ydW5uZXInKVxuXG5jb25zdCBydW5uZXIgPSBuZXcgUnVubmVyKClcbnByb2Nlc3Mub24oJ21lc3NhZ2UnLCAobSkgPT4ge1xuICAgIGxvZy5pbmZvKGBSdW4gd29ya2VyIGNvbW1hbmQ6ICR7bS5jb21tYW5kfWApXG4gICAgcnVubmVyW20uY29tbWFuZF0obSkudGhlbihcbiAgICAgICAgKHJlc3VsdCkgPT4gcHJvY2Vzcy5zZW5kKHtcbiAgICAgICAgICAgIG9yaWdpbjogJ3dvcmtlcicsXG4gICAgICAgICAgICBuYW1lOiAnZmluaXNlZENvbW1hbmQnLFxuICAgICAgICAgICAgY29udGVudDoge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6IG0uY29tbWFuZCxcbiAgICAgICAgICAgICAgICByZXN1bHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoYEZhaWxlZCBsYXVuY2hpbmcgdGVzdCBzZXNzaW9uOmAsIGUpXG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgICAgfVxuICAgIClcblxuICAgIHJ1bm5lci5vbignZXhpdCcsIDo6cHJvY2Vzcy5leGl0KVxuICAgIHJ1bm5lci5vbignZXJyb3InLCAoeyBuYW1lLCBtZXNzYWdlLCBzdGFjayB9KSA9PiBwcm9jZXNzLnNlbmQoe1xuICAgICAgICBvcmlnaW46ICd3b3JrZXInLFxuICAgICAgICBuYW1lOiAnZXJyb3InLFxuICAgICAgICBjb250ZW50OiB7IG5hbWUsIG1lc3NhZ2UsIHN0YWNrIH1cbiAgICB9KSlcbn0pXG5cbi8qKlxuICogY2F0Y2ggc2lnaW50IG1lc3NhZ2VzIGFzIHRoZXkgYXJlIGhhbmRsZWQgYnkgbWFpbiBwcm9jZXNzXG4gKi9cbmV4aXRIb29rKChjYWxsYmFjaykgPT4ge1xuICAgIGxvZy5pbmZvKGBSZWNlaXZlZCBTSUdJTlQsIGdpdmluZyBwcm9jZXNzICR7U0hVVERPV05fVElNRU9VVH1tcyB0byBzaHV0ZG93biBncmFjZWZ1bGx5YClcbiAgICBzZXRUaW1lb3V0KGNhbGxiYWNrLCBTSFVURE9XTl9USU1FT1VUKVxufSlcbiJdfQ== |
@@ -8,2 +8,4 @@ "use strict"; | ||
require("source-map-support/register"); | ||
var _stream = require("stream"); | ||
@@ -24,2 +26,3 @@ | ||
exports.default = RunnerTransformStream; | ||
exports.default = RunnerTransformStream; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmFuc2Zvcm1TdHJlYW0uanMiXSwibmFtZXMiOlsiUnVubmVyVHJhbnNmb3JtU3RyZWFtIiwiVHJhbnNmb3JtIiwiY29uc3RydWN0b3IiLCJjaWQiLCJfdHJhbnNmb3JtIiwiY2h1bmsiLCJlbmNvZGluZyIsImNhbGxiYWNrIiwicHVzaCIsInRvU3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFZSxNQUFNQSxxQkFBTixTQUFvQ0MsaUJBQXBDLENBQThDO0FBQ3pEQyxFQUFBQSxXQUFXLENBQUVDLEdBQUYsRUFBTztBQUNkO0FBQ0EsU0FBS0EsR0FBTCxHQUFXQSxHQUFYO0FBQ0g7O0FBRURDLEVBQUFBLFVBQVUsQ0FBQ0MsS0FBRCxFQUFRQyxRQUFSLEVBQWtCQyxRQUFsQixFQUE0QjtBQUNsQyxTQUFLQyxJQUFMLENBQVcsSUFBRyxLQUFLTCxHQUFJLEtBQUlFLEtBQUssQ0FBQ0ksUUFBTixFQUFpQixFQUE1QztBQUNBRixJQUFBQSxRQUFRO0FBQ1g7O0FBVHdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNmb3JtIH0gZnJvbSAnc3RyZWFtJ1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSdW5uZXJUcmFuc2Zvcm1TdHJlYW0gZXh0ZW5kcyBUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yIChjaWQpIHtcbiAgICAgICAgc3VwZXIoKVxuICAgICAgICB0aGlzLmNpZCA9IGNpZFxuICAgIH1cblxuICAgIF90cmFuc2Zvcm0oY2h1bmssIGVuY29kaW5nLCBjYWxsYmFjaykge1xuICAgICAgICB0aGlzLnB1c2goYFske3RoaXMuY2lkfV0gJHtjaHVuay50b1N0cmluZygpfWApXG4gICAgICAgIGNhbGxiYWNrKClcbiAgICB9XG59XG4iXX0= |
{ | ||
"name": "@wdio/local-runner", | ||
"version": "5.0.0-beta.5", | ||
"version": "5.0.0-beta.6", | ||
"description": "A WebdriverIO runner to run tests locally", | ||
@@ -34,4 +34,5 @@ "author": "Christian Bromann <christian@saucelabs.com>", | ||
"dependencies": { | ||
"@wdio/logger": "^5.0.0-beta.5", | ||
"@wdio/runner": "^5.0.0-beta.5" | ||
"@wdio/logger": "^5.0.0-beta.6", | ||
"@wdio/runner": "^5.0.0-beta.6", | ||
"async-exit-hook": "^2.0.1" | ||
}, | ||
@@ -41,3 +42,3 @@ "publishConfig": { | ||
}, | ||
"gitHead": "9770f6ed0ce15c87b62f0dd01cac2e49af5f54b1" | ||
"gitHead": "77a5528bdd0f864cba471cc808206f81309da3b4" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
36703
8
293
9
19
5
3
3
+ Addedasync-exit-hook@^2.0.1
+ Addedasync-exit-hook@2.0.1(transitive)
Updated@wdio/logger@^5.0.0-beta.6
Updated@wdio/runner@^5.0.0-beta.6