@wdio/config
Advanced tools
Comparing version 5.0.0-beta.15 to 5.0.0-beta.16
@@ -231,3 +231,3 @@ "use strict"; | ||
if (filesToFilter.size === 0) { | ||
throw new Error(`spec file(s) ${cliArgFileList.join(`, `)} not found`); | ||
throw new Error(`spec file(s) ${cliArgFileList.join(', ')} not found`); | ||
} | ||
@@ -295,2 +295,2 @@ | ||
exports.default = ConfigParser; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQ29uZmlnUGFyc2VyLmpzIl0sIm5hbWVzIjpbImxvZyIsIk1FUkdFX09QVElPTlMiLCJjbG9uZSIsIkNvbmZpZ1BhcnNlciIsImNvbnN0cnVjdG9yIiwiX2NvbmZpZyIsIkRFRkFVTFRfQ09ORklHUyIsIl9jYXBhYmlsaXRpZXMiLCJhZGRDb25maWdGaWxlIiwiZmlsZW5hbWUiLCJFcnJvciIsImZpbGVQYXRoIiwicGF0aCIsInJlc29sdmUiLCJwcm9jZXNzIiwiY3dkIiwiZmlsZUNvbmZpZyIsInJlcXVpcmUiLCJjb25maWciLCJkZWZhdWx0VG8iLCJBcnJheSIsImlzQXJyYXkiLCJjYXBhYmlsaXRpZXMiLCJhZGRTZXJ2aWNlIiwiaG9va05hbWUiLCJTVVBQT1JURURfSE9PS1MiLCJlIiwiZXJyb3IiLCJtZXJnZSIsIm9iamVjdCIsInNwZWMiLCJleGNsdWRlIiwic3BlY3MiLCJsZW5ndGgiLCJzZXRGaWxlUGF0aFRvRmlsdGVyT3B0aW9ucyIsImRlZmF1bHRCYWNrZW5kIiwiaG9zdG5hbWUiLCJwb3J0Iiwic2VydmljZSIsInB1c2giLCJiaW5kIiwiaG9vayIsImdldFNwZWNzIiwiY2FwU3BlY3MiLCJjYXBFeGNsdWRlIiwiZ2V0RmlsZVBhdGhzIiwic3VpdGVzIiwic3VpdGUiLCJzdWl0ZVNwZWNzIiwic3VpdGVOYW1lIiwiY29uY2F0Iiwiam9pbiIsInRtcF9zcGVjcyIsIlNldCIsImZpbHRlciIsImluZGV4T2YiLCJjbGlBcmdGaWxlTGlzdCIsImZpbGVzVG9GaWx0ZXIiLCJmaWxlTGlzdCIsImZvckVhY2giLCJmaWx0ZXJlZF9maWxlIiwiZnMiLCJleGlzdHNTeW5jIiwibHN0YXRTeW5jIiwiaXNGaWxlIiwiYWRkIiwiZmlsZSIsIm1hdGNoIiwic2l6ZSIsImdldENvbmZpZyIsImdldENhcGFiaWxpdGllcyIsImkiLCJwYXR0ZXJucyIsIm9taXRXYXJuaW5ncyIsImZpbGVzIiwicGF0dGVybiIsImZpbGVuYW1lcyIsImds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LE1BQXVCLEtBRHZCLElBRUF0RSxRQUFRLENBQUNzRSxLQUFULENBQWUsQ0FBQyxDQUFoQixNQUF1QixVQUZ2QixJQUdBdEUsUUFBUSxDQUFDc0UsS0FBVCxDQUFlLENBQUMsQ0FBaEIsTUFBdUIsU0FKZixDQUFaO0FBTUFILE1BQUFBLFNBQVMsR0FBR0EsU0FBUyxDQUFDSSxHQUFWLENBQWN2RSxRQUFRLElBQzlCRyxjQUFLcUUsVUFBTCxDQUFnQnhFLFFBQWhCLElBQTRCRyxjQUFLc0UsU0FBTCxDQUFlekUsUUFBZixDQUE1QixHQUF1REcsY0FBS0MsT0FBTCxDQUFhQyxPQUFPLENBQUNDLEdBQVIsRUFBYixFQUE0Qk4sUUFBNUIsQ0FEL0MsQ0FBWjs7QUFHQSxVQUFJbUUsU0FBUyxDQUFDM0MsTUFBVixLQUFxQixDQUFyQixJQUEwQixDQUFDd0MsWUFBL0IsRUFBNkM7QUFDekN6RSxRQUFBQSxHQUFHLENBQUNtRixJQUFKLENBQVMsU0FBVCxFQUFvQlIsT0FBcEIsRUFBNkIsd0JBQTdCO0FBQ0g7O0FBRURELE1BQUFBLEtBQUssR0FBRyx3QkFBTUEsS0FBTixFQUFhRSxTQUFiLEVBQXdCM0UsYUFBeEIsQ0FBUjtBQUNIOztBQUVELFdBQU95RSxLQUFQO0FBQ0g7O0FBMVA2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZ2xvYiBmcm9tICdnbG9iJ1xuaW1wb3J0IG1lcmdlIGZyb20gJ2RlZXBtZXJnZSdcblxuaW1wb3J0IGxvZ2dlciBmcm9tICdAd2Rpby9sb2dnZXInXG5cbmltcG9ydCB7IGRldGVjdEJhY2tlbmQgfSBmcm9tICcuLi91dGlscydcblxuaW1wb3J0IHsgREVGQVVMVF9DT05GSUdTLCBTVVBQT1JURURfSE9PS1MgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IGxvZyA9IGxvZ2dlcignd2Rpby1jb25maWc6Q29uZmlnUGFyc2VyJylcbmNvbnN0IE1FUkdFX09QVElPTlMgPSB7IGNsb25lOiBmYWxzZSB9XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ1BhcnNlciB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLl9jb25maWcgPSBERUZBVUxUX0NPTkZJR1NcbiAgICAgICAgdGhpcy5fY2FwYWJpbGl0aWVzID0gW11cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBtZXJnZXMgY29uZmlnIGZpbGUgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlbmFtZSBwYXRoIG9mIGZpbGUgcmVsYXRpdmUgdG8gY3VycmVudCBkaXJlY3RvcnlcbiAgICAgKi9cbiAgICBhZGRDb25maWdGaWxlIChmaWxlbmFtZSkge1xuICAgICAgICBpZiAodHlwZW9mIGZpbGVuYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhZGRDb25maWdGaWxlIHJlcXVpcmVzIGZpbGVwYXRoJylcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlbmFtZSlcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBjbG9uZSB0aGUgb3JpZ2luYWwgY29uZmlnXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHZhciBmaWxlQ29uZmlnID0gbWVyZ2UocmVxdWlyZShmaWxlUGF0aCkuY29uZmlnLCB7fSwgTUVSR0VfT1BUSU9OUylcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBtZXJnZSBjYXBhYmlsaXRpZXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFRvID0gQXJyYXkuaXNBcnJheSh0aGlzLl9jYXBhYmlsaXRpZXMpID8gW10gOiB7fVxuICAgICAgICAgICAgdGhpcy5fY2FwYWJpbGl0aWVzID0gbWVyZ2UodGhpcy5fY2FwYWJpbGl0aWVzLCBmaWxlQ29uZmlnLmNhcGFiaWxpdGllcyB8fCBkZWZhdWx0VG8sIE1FUkdFX09QVElPTlMpXG4gICAgICAgICAgICBkZWxldGUgZmlsZUNvbmZpZy5jYXBhYmlsaXRpZXNcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBhZGQgc2VydmljZSBob29rcyBhbmQgcmVtb3ZlIHRoZW0gZnJvbSBjb25maWdcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5hZGRTZXJ2aWNlKGZpbGVDb25maWcpXG4gICAgICAgICAgICBmb3IgKGxldCBob29rTmFtZSBvZiBTVVBQT1JURURfSE9PS1MpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgZmlsZUNvbmZpZ1tob29rTmFtZV1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fY29uZmlnID0gbWVyZ2UodGhpcy5fY29uZmlnLCBmaWxlQ29uZmlnLCBNRVJHRV9PUFRJT05TKVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGRldGVjdCBTZWxlbml1bSBiYWNrZW5kXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZyA9IG1lcmdlKGRldGVjdEJhY2tlbmQodGhpcy5fY29uZmlnKSwgdGhpcy5fY29uZmlnLCBNRVJHRV9PUFRJT05TKVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoYEZhaWxlZCBsb2FkaW5nIGNvbmZpZ3VyYXRpb24gZmlsZTogJHtmaWxlUGF0aH1gKVxuICAgICAgICAgICAgdGhyb3cgZVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbWVyZ2UgZXh0ZXJuYWwgb2JqZWN0IHdpdGggY29uZmlnIG9iamVjdFxuICAgICAqIEBwYXJhbSAge09iamVjdH0gb2JqZWN0ICBkZXNpcmVkIG9iamVjdCB0byBtZXJnZSBpbnRvIHRoZSBjb25maWcgb2JqZWN0XG4gICAgICovXG4gICAgbWVyZ2UgKG9iamVjdCA9IHt9KSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IG1lcmdlKHRoaXMuX2NvbmZpZywgb2JqZWN0LCBNRVJHRV9PUFRJT05TKVxuICAgICAgICBsZXQgc3BlYyA9IEFycmF5LmlzQXJyYXkob2JqZWN0LnNwZWMpID8gb2JqZWN0LnNwZWMgOiBbXVxuICAgICAgICBsZXQgZXhjbHVkZSA9IEFycmF5LmlzQXJyYXkob2JqZWN0LmV4Y2x1ZGUpID8gb2JqZWN0LmV4Y2x1ZGUgOiBbXVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBvdmVyd3JpdGUgY29uZmlnIHNwZWNzIHRoYXQgZ290IHBpcGVkIGludG8gdGhlIHdkaW8gY29tbWFuZFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG9iamVjdC5zcGVjcyAmJiBvYmplY3Quc3BlY3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlnLnNwZWNzID0gb2JqZWN0LnNwZWNzXG4gICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LmV4Y2x1ZGUgJiYgb2JqZWN0LmV4Y2x1ZGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlnLmV4Y2x1ZGUgPSBvYmplY3QuZXhjbHVkZVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIG1lcmdlIGNhcGFiaWxpdGllc1xuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgZGVmYXVsdFRvID0gQXJyYXkuaXNBcnJheSh0aGlzLl9jYXBhYmlsaXRpZXMpID8gW10gOiB7fVxuICAgICAgICB0aGlzLl9jYXBhYmlsaXRpZXMgPSBtZXJnZSh0aGlzLl9jYXBhYmlsaXRpZXMsIHRoaXMuX2NvbmZpZy5jYXBhYmlsaXRpZXMgfHwgZGVmYXVsdFRvLCBNRVJHRV9PUFRJT05TKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBydW4gc2luZ2xlIHNwZWMgZmlsZSBvbmx5LCByZWdhcmRsZXNzIG9mIG11bHRpcGxlLXNwZWMgc3BlY2lmaWNhdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHNwZWMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlnLnNwZWNzID0gWy4uLnRoaXMuc2V0RmlsZVBhdGhUb0ZpbHRlck9wdGlvbnMoc3BlYywgdGhpcy5fY29uZmlnLnNwZWNzKV1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZXhjbHVkZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9jb25maWcuZXhjbHVkZSA9IFsuLi50aGlzLnNldEZpbGVQYXRoVG9GaWx0ZXJPcHRpb25zKGV4Y2x1ZGUsIHRoaXMuX2NvbmZpZy5leGNsdWRlKV1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiB1c2VyIGFuZCBrZXkgY291bGQgZ2V0IGFkZGVkIHZpYSBjbGkgYXJndW1lbnRzIHNvIHdlIG5lZWQgdG8gZGV0ZWN0IGFnYWluXG4gICAgICAgICAqIE5vdGU6IGNsaSBhcmd1bWVudHMgYXJlIG9uIHRoZSByaWdodCBhbmQgb3ZlcndyaXRlIGNvbmZpZ1xuICAgICAgICAgKiBpZiBob3N0IGFuZCBwb3J0IGFyZSBkZWZhdWx0LCByZW1vdmUgdGhlbSB0byBnZXQgbmV3IHZhbHVlc1xuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGRlZmF1bHRCYWNrZW5kID0gZGV0ZWN0QmFja2VuZCh7fSlcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5ob3N0bmFtZSA9PT0gZGVmYXVsdEJhY2tlbmQuaG9zdG5hbWUgJiYgdGhpcy5fY29uZmlnLnBvcnQgPT09IGRlZmF1bHRCYWNrZW5kLnBvcnQpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb25maWcuaG9zdG5hbWVcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb25maWcucG9ydFxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY29uZmlnID0gbWVyZ2UoZGV0ZWN0QmFja2VuZCh0aGlzLl9jb25maWcpLCB0aGlzLl9jb25maWcsIE1FUkdFX09QVElPTlMpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYWRkIGhvb2tzIGZyb20gc2VydmljZXMgdG8gcnVubmVyIGNvbmZpZ1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzZXJ2aWNlICBhIHNlcnZpY2UgaXMgYmFzaWNhbGx5IGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGhvb2sgbWV0aG9kc1xuICAgICAqL1xuICAgIGFkZFNlcnZpY2UgKHNlcnZpY2UpIHtcbiAgICAgICAgZm9yIChsZXQgaG9va05hbWUgb2YgU1VQUE9SVEVEX0hPT0tTKSB7XG4gICAgICAgICAgICBpZiAoIXNlcnZpY2VbaG9va05hbWVdKSB7XG4gICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzZXJ2aWNlW2hvb2tOYW1lXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZ1tob29rTmFtZV0ucHVzaChzZXJ2aWNlW2hvb2tOYW1lXS5iaW5kKHNlcnZpY2UpKVxuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNlcnZpY2VbaG9va05hbWVdKSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGhvb2sgb2Ygc2VydmljZVtob29rTmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBob29rID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWdbaG9va05hbWVdLnB1c2goaG9vay5iaW5kKHNlcnZpY2UpKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IGV4Y2x1ZGVkIGZpbGVzIGZyb20gY29uZmlnIHBhdHRlcm5cbiAgICAgKi9cbiAgICBnZXRTcGVjcyAoY2FwU3BlY3MsIGNhcEV4Y2x1ZGUpIHtcbiAgICAgICAgbGV0IHNwZWNzID0gQ29uZmlnUGFyc2VyLmdldEZpbGVQYXRocyh0aGlzLl9jb25maWcuc3BlY3MpXG4gICAgICAgIGxldCBzcGVjICA9IEFycmF5LmlzQXJyYXkodGhpcy5fY29uZmlnLnNwZWMpID8gdGhpcy5fY29uZmlnLnNwZWMgOiBbXVxuICAgICAgICBsZXQgZXhjbHVkZSA9IENvbmZpZ1BhcnNlci5nZXRGaWxlUGF0aHModGhpcy5fY29uZmlnLmV4Y2x1ZGUpXG4gICAgICAgIGxldCBzdWl0ZXMgPSBBcnJheS5pc0FycmF5KHRoaXMuX2NvbmZpZy5zdWl0ZSkgPyB0aGlzLl9jb25maWcuc3VpdGUgOiBbXVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjaGVjayBpZiB1c2VyIGhhcyBzcGVjaWZpZWQgYSBzcGVjaWZpYyBzdWl0ZXMgdG8gcnVuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoc3VpdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBzdWl0ZVNwZWNzID0gW11cbiAgICAgICAgICAgIGZvciAobGV0IHN1aXRlTmFtZSBvZiBzdWl0ZXMpIHtcbiAgICAgICAgICAgICAgICAvLyBUb0RvOiBsb2cgd2FybmluZyBpZiBzdWl0ZSB3YXMgbm90IGZvdW5kXG4gICAgICAgICAgICAgICAgbGV0IHN1aXRlID0gdGhpcy5fY29uZmlnLnN1aXRlc1tzdWl0ZU5hbWVdXG4gICAgICAgICAgICAgICAgaWYgKHN1aXRlICYmIEFycmF5LmlzQXJyYXkoc3VpdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1aXRlU3BlY3MgPSBzdWl0ZVNwZWNzLmNvbmNhdChDb25maWdQYXJzZXIuZ2V0RmlsZVBhdGhzKHN1aXRlKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzdWl0ZVNwZWNzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHN1aXRlKHMpIFwiJHtzdWl0ZXMuam9pbignXCIsIFwiJyl9XCIgeW91IHNwZWNpZmllZCBkb24ndCBleGlzdCBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luIHlvdXIgY29uZmlnIGZpbGUgb3IgZG9lc25cXCd0IGNvbnRhaW4gYW55IGZpbGVzIScpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFsbG93IC0tc3VpdGUgYW5kIC0tc3BlYyB0byBib3RoIGJlIGRlZmluZWQgb24gdGhlIGNvbW1hbmQgbGluZVxuICAgICAgICAgICAgLy8gUmVtb3ZpbmcgYW55IGR1cGxpY2F0ZSB0ZXN0cyB0aGF0IGNvdWxkIGJlIGluY2x1ZGVkXG4gICAgICAgICAgICBjb25zdCB0bXBfc3BlY3MgPSBzcGVjLmxlbmd0aCA+IDAgPyBbLi4uc3BlY3MsIC4uLnN1aXRlU3BlY3NdIDogc3VpdGVTcGVjc1xuXG4gICAgICAgICAgICByZXR1cm4gWy4uLm5ldyBTZXQodG1wX3NwZWNzKV1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNhcFNwZWNzKSkge1xuICAgICAgICAgICAgc3BlY3MgPSBzcGVjcy5jb25jYXQoQ29uZmlnUGFyc2VyLmdldEZpbGVQYXRocyhjYXBTcGVjcykpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjYXBFeGNsdWRlKSkge1xuICAgICAgICAgICAgZXhjbHVkZSA9IGV4Y2x1ZGUuY29uY2F0KENvbmZpZ1BhcnNlci5nZXRGaWxlUGF0aHMoY2FwRXhjbHVkZSkpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3BlY3MuZmlsdGVyKHNwZWMgPT4gZXhjbHVkZS5pbmRleE9mKHNwZWMpIDwgMClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIGNvbmZpZyBhdHRyaWJ1dGUgd2l0aCBmaWxlIHBhdGhzIGZyb20gZmlsdGVyaW5nXG4gICAgICogb3B0aW9ucyBmcm9tIGNsaSBhcmd1bWVudFxuICAgICAqXG4gICAgICogQHBhcmFtICB7U3RyaW5nfSBjbGlBcmdGaWxlTGlzdCAgbGlzdCBvZiBmaWxlcyBpbiBhIHN0cmluZyBmcm9tXG4gICAgICogQHBhcmFtICB7T2JqZWN0fSBjb25maWcgIGNvbmZpZyBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIHNwZWMgYW5kIGV4bGN1ZGUgYXR0cmlidXRlc1xuICAgICAqIGNsaSBhcmd1bWVudFxuICAgICAqIEByZXR1cm4ge1N0cmluZ1tdfSBMaXN0IG9mIGZpbGVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIG9yIGV4Y2x1ZGVkXG4gICAgICovXG4gICAgc2V0RmlsZVBhdGhUb0ZpbHRlck9wdGlvbnMgKGNsaUFyZ0ZpbGVMaXN0LCBjb25maWcpIHtcbiAgICAgICAgY29uc3QgZmlsZXNUb0ZpbHRlciA9IG5ldyBTZXQoKVxuICAgICAgICBjb25zdCBmaWxlTGlzdCA9IENvbmZpZ1BhcnNlci5nZXRGaWxlUGF0aHMoY29uZmlnKVxuICAgICAgICBjbGlBcmdGaWxlTGlzdC5mb3JFYWNoKGZpbHRlcmVkX2ZpbGUgPT4ge1xuICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoZmlsdGVyZWRfZmlsZSkgJiYgZnMubHN0YXRTeW5jKGZpbHRlcmVkX2ZpbGUpLmlzRmlsZSgpKSB7XG4gICAgICAgICAgICAgICAgZmlsZXNUb0ZpbHRlci5hZGQocGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGZpbHRlcmVkX2ZpbGUpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZmlsZUxpc3QuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGUubWF0Y2goZmlsdGVyZWRfZmlsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzVG9GaWx0ZXIuYWRkKGZpbGUpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBpZiAoZmlsZXNUb0ZpbHRlci5zaXplID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNwZWMgZmlsZShzKSAke2NsaUFyZ0ZpbGVMaXN0LmpvaW4oYCwgYCl9IG5vdCBmb3VuZGApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbGVzVG9GaWx0ZXJcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm4gY29uZmlnc1xuICAgICAqL1xuICAgIGdldENvbmZpZyAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWdcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm4gY2FwYWJpbGl0aWVzXG4gICAgICovXG4gICAgZ2V0Q2FwYWJpbGl0aWVzIChpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaSA9PT0gJ251bWJlcicgJiYgdGhpcy5fY2FwYWJpbGl0aWVzW2ldKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY2FwYWJpbGl0aWVzW2ldXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fY2FwYWJpbGl0aWVzXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhIGZsYXR0ZW4gbGlzdCBvZiBnbG9iZWQgZmlsZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSAge1N0cmluZ1tdfSBmaWxlbmFtZXMgIGxpc3Qgb2YgZmlsZXMgdG8gZ2xvYlxuICAgICAqIEByZXR1cm4ge1N0cmluZ1tdfSBsaXN0IG9mIGZpbGVzXG4gICAgICovXG4gICAgc3RhdGljIGdldEZpbGVQYXRocyAocGF0dGVybnMsIG9taXRXYXJuaW5ncykge1xuICAgICAgICBsZXQgZmlsZXMgPSBbXVxuXG4gICAgICAgIGlmICh0eXBlb2YgcGF0dGVybnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBwYXR0ZXJucyA9IFtwYXR0ZXJuc11cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShwYXR0ZXJucykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc3BlY3Mgb3IgZXhjbHVkZSBwcm9wZXJ0eSBzaG91bGQgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncycpXG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBwYXR0ZXJuIG9mIHBhdHRlcm5zKSB7XG4gICAgICAgICAgICBsZXQgZmlsZW5hbWVzID0gZ2xvYi5zeW5jKHBhdHRlcm4pXG5cbiAgICAgICAgICAgIGZpbGVuYW1lcyA9IGZpbGVuYW1lcy5maWx0ZXIoZmlsZW5hbWUgPT5cbiAgICAgICAgICAgICAgICBmaWxlbmFtZS5zbGljZSgtMykgPT09ICcuanMnIHx8XG4gICAgICAgICAgICAgICAgZmlsZW5hbWUuc2xpY2UoLTMpID09PSAnLnRzJyB8fFxuICAgICAgICAgICAgICAgIGZpbGVuYW1lLnNsaWNlKC04KSA9PT0gJy5mZWF0dXJlJyB8fFxuICAgICAgICAgICAgICAgIGZpbGVuYW1lLnNsaWNlKC03KSA9PT0gJy5jb2ZmZWUnKVxuXG4gICAgICAgICAgICBmaWxlbmFtZXMgPSBmaWxlbmFtZXMubWFwKGZpbGVuYW1lID0+XG4gICAgICAgICAgICAgICAgcGF0aC5pc0Fic29sdXRlKGZpbGVuYW1lKSA/IHBhdGgubm9ybWFsaXplKGZpbGVuYW1lKSA6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlbmFtZSkpXG5cbiAgICAgICAgICAgIGlmIChmaWxlbmFtZXMubGVuZ3RoID09PSAwICYmICFvbWl0V2FybmluZ3MpIHtcbiAgICAgICAgICAgICAgICBsb2cud2FybigncGF0dGVybicsIHBhdHRlcm4sICdkaWQgbm90IG1hdGNoIGFueSBmaWxlJylcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmlsZXMgPSBtZXJnZShmaWxlcywgZmlsZW5hbWVzLCBNRVJHRV9PUFRJT05TKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbGVzXG4gICAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQ29uZmlnUGFyc2VyLmpzIl0sIm5hbWVzIjpbImxvZyIsIk1FUkdFX09QVElPTlMiLCJjbG9uZSIsIkNvbmZpZ1BhcnNlciIsImNvbnN0cnVjdG9yIiwiX2NvbmZpZyIsIkRFRkFVTFRfQ09ORklHUyIsIl9jYXBhYmlsaXRpZXMiLCJhZGRDb25maWdGaWxlIiwiZmlsZW5hbWUiLCJFcnJvciIsImZpbGVQYXRoIiwicGF0aCIsInJlc29sdmUiLCJwcm9jZXNzIiwiY3dkIiwiZmlsZUNvbmZpZyIsInJlcXVpcmUiLCJjb25maWciLCJkZWZhdWx0VG8iLCJBcnJheSIsImlzQXJyYXkiLCJjYXBhYmlsaXRpZXMiLCJhZGRTZXJ2aWNlIiwiaG9va05hbWUiLCJTVVBQT1JURURfSE9PS1MiLCJlIiwiZXJyb3IiLCJtZXJnZSIsIm9iamVjdCIsInNwZWMiLCJleGNsdWRlIiwic3BlY3MiLCJsZW5ndGgiLCJzZXRGaWxlUGF0aFRvRmlsdGVyT3B0aW9ucyIsImRlZmF1bHRCYWNrZW5kIiwiaG9zdG5hbWUiLCJwb3J0Iiwic2VydmljZSIsInB1c2giLCJiaW5kIiwiaG9vayIsImdldFNwZWNzIiwiY2FwU3BlY3MiLCJjYXBFeGNsdWRlIiwiZ2V0RmlsZVBhdGhzIiwic3VpdGVzIiwic3VpdGUiLCJzdWl0ZVNwZWNzIiwic3VpdGVOYW1lIiwiY29uY2F0Iiwiam9pbiIsInRtcF9zcGVjcyIsIlNldCIsImZpbHRlciIsImluZGV4T2YiLCJjbGlBcmdGaWxlTGlzdCIsImZpbGVzVG9GaWx0ZXIiLCJmaWxlTGlzdCIsImZvckVhY2giLCJmaWx0ZXJlZF9maWxlIiwiZnMiLCJleGlzdHNTeW5jIiwibHN0YXRTeW5jIiwiaXNGaWxlIiwiYWRkIiwiZmlsZSIsIm1hdGNoIiwic2l6ZSIsImdldENvbmZpZyIsImdldENhcGFiaWxpdGllcyIsImkiLCJwYXR0ZXJucyIsIm9taXRXYXJuaW5ncyIsImZpbGVzIiwicGF0dGVybiIsImZpbGVuYW1lcyIsImds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LE1BQXVCLEtBRHZCLElBRUF0RSxRQUFRLENBQUNzRSxLQUFULENBQWUsQ0FBQyxDQUFoQixNQUF1QixVQUZ2QixJQUdBdEUsUUFBUSxDQUFDc0UsS0FBVCxDQUFlLENBQUMsQ0FBaEIsTUFBdUIsU0FKZixDQUFaO0FBTUFILE1BQUFBLFNBQVMsR0FBR0EsU0FBUyxDQUFDSSxHQUFWLENBQWN2RSxRQUFRLElBQzlCRyxjQUFLcUUsVUFBTCxDQUFnQnhFLFFBQWhCLElBQTRCRyxjQUFLc0UsU0FBTCxDQUFlekUsUUFBZixDQUE1QixHQUF1REcsY0FBS0MsT0FBTCxDQUFhQyxPQUFPLENBQUNDLEdBQVIsRUFBYixFQUE0Qk4sUUFBNUIsQ0FEL0MsQ0FBWjs7QUFHQSxVQUFJbUUsU0FBUyxDQUFDM0MsTUFBVixLQUFxQixDQUFyQixJQUEwQixDQUFDd0MsWUFBL0IsRUFBNkM7QUFDekN6RSxRQUFBQSxHQUFHLENBQUNtRixJQUFKLENBQVMsU0FBVCxFQUFvQlIsT0FBcEIsRUFBNkIsd0JBQTdCO0FBQ0g7O0FBRURELE1BQUFBLEtBQUssR0FBRyx3QkFBTUEsS0FBTixFQUFhRSxTQUFiLEVBQXdCM0UsYUFBeEIsQ0FBUjtBQUNIOztBQUVELFdBQU95RSxLQUFQO0FBQ0g7O0FBMVA2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZ2xvYiBmcm9tICdnbG9iJ1xuaW1wb3J0IG1lcmdlIGZyb20gJ2RlZXBtZXJnZSdcblxuaW1wb3J0IGxvZ2dlciBmcm9tICdAd2Rpby9sb2dnZXInXG5cbmltcG9ydCB7IGRldGVjdEJhY2tlbmQgfSBmcm9tICcuLi91dGlscydcblxuaW1wb3J0IHsgREVGQVVMVF9DT05GSUdTLCBTVVBQT1JURURfSE9PS1MgfSBmcm9tICcuLi9jb25zdGFudHMnXG5cbmNvbnN0IGxvZyA9IGxvZ2dlcignd2Rpby1jb25maWc6Q29uZmlnUGFyc2VyJylcbmNvbnN0IE1FUkdFX09QVElPTlMgPSB7IGNsb25lOiBmYWxzZSB9XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ1BhcnNlciB7XG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICB0aGlzLl9jb25maWcgPSBERUZBVUxUX0NPTkZJR1NcbiAgICAgICAgdGhpcy5fY2FwYWJpbGl0aWVzID0gW11cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBtZXJnZXMgY29uZmlnIGZpbGUgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlbmFtZSBwYXRoIG9mIGZpbGUgcmVsYXRpdmUgdG8gY3VycmVudCBkaXJlY3RvcnlcbiAgICAgKi9cbiAgICBhZGRDb25maWdGaWxlIChmaWxlbmFtZSkge1xuICAgICAgICBpZiAodHlwZW9mIGZpbGVuYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhZGRDb25maWdGaWxlIHJlcXVpcmVzIGZpbGVwYXRoJylcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlbmFtZSlcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBjbG9uZSB0aGUgb3JpZ2luYWwgY29uZmlnXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHZhciBmaWxlQ29uZmlnID0gbWVyZ2UocmVxdWlyZShmaWxlUGF0aCkuY29uZmlnLCB7fSwgTUVSR0VfT1BUSU9OUylcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBtZXJnZSBjYXBhYmlsaXRpZXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFRvID0gQXJyYXkuaXNBcnJheSh0aGlzLl9jYXBhYmlsaXRpZXMpID8gW10gOiB7fVxuICAgICAgICAgICAgdGhpcy5fY2FwYWJpbGl0aWVzID0gbWVyZ2UodGhpcy5fY2FwYWJpbGl0aWVzLCBmaWxlQ29uZmlnLmNhcGFiaWxpdGllcyB8fCBkZWZhdWx0VG8sIE1FUkdFX09QVElPTlMpXG4gICAgICAgICAgICBkZWxldGUgZmlsZUNvbmZpZy5jYXBhYmlsaXRpZXNcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBhZGQgc2VydmljZSBob29rcyBhbmQgcmVtb3ZlIHRoZW0gZnJvbSBjb25maWdcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5hZGRTZXJ2aWNlKGZpbGVDb25maWcpXG4gICAgICAgICAgICBmb3IgKGxldCBob29rTmFtZSBvZiBTVVBQT1JURURfSE9PS1MpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgZmlsZUNvbmZpZ1tob29rTmFtZV1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fY29uZmlnID0gbWVyZ2UodGhpcy5fY29uZmlnLCBmaWxlQ29uZmlnLCBNRVJHRV9PUFRJT05TKVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGRldGVjdCBTZWxlbml1bSBiYWNrZW5kXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZyA9IG1lcmdlKGRldGVjdEJhY2tlbmQodGhpcy5fY29uZmlnKSwgdGhpcy5fY29uZmlnLCBNRVJHRV9PUFRJT05TKVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoYEZhaWxlZCBsb2FkaW5nIGNvbmZpZ3VyYXRpb24gZmlsZTogJHtmaWxlUGF0aH1gKVxuICAgICAgICAgICAgdGhyb3cgZVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbWVyZ2UgZXh0ZXJuYWwgb2JqZWN0IHdpdGggY29uZmlnIG9iamVjdFxuICAgICAqIEBwYXJhbSAge09iamVjdH0gb2JqZWN0ICBkZXNpcmVkIG9iamVjdCB0byBtZXJnZSBpbnRvIHRoZSBjb25maWcgb2JqZWN0XG4gICAgICovXG4gICAgbWVyZ2UgKG9iamVjdCA9IHt9KSB7XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IG1lcmdlKHRoaXMuX2NvbmZpZywgb2JqZWN0LCBNRVJHRV9PUFRJT05TKVxuICAgICAgICBsZXQgc3BlYyA9IEFycmF5LmlzQXJyYXkob2JqZWN0LnNwZWMpID8gb2JqZWN0LnNwZWMgOiBbXVxuICAgICAgICBsZXQgZXhjbHVkZSA9IEFycmF5LmlzQXJyYXkob2JqZWN0LmV4Y2x1ZGUpID8gb2JqZWN0LmV4Y2x1ZGUgOiBbXVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBvdmVyd3JpdGUgY29uZmlnIHNwZWNzIHRoYXQgZ290IHBpcGVkIGludG8gdGhlIHdkaW8gY29tbWFuZFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG9iamVjdC5zcGVjcyAmJiBvYmplY3Quc3BlY3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlnLnNwZWNzID0gb2JqZWN0LnNwZWNzXG4gICAgICAgIH0gZWxzZSBpZiAob2JqZWN0LmV4Y2x1ZGUgJiYgb2JqZWN0LmV4Y2x1ZGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlnLmV4Y2x1ZGUgPSBvYmplY3QuZXhjbHVkZVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIG1lcmdlIGNhcGFiaWxpdGllc1xuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgZGVmYXVsdFRvID0gQXJyYXkuaXNBcnJheSh0aGlzLl9jYXBhYmlsaXRpZXMpID8gW10gOiB7fVxuICAgICAgICB0aGlzLl9jYXBhYmlsaXRpZXMgPSBtZXJnZSh0aGlzLl9jYXBhYmlsaXRpZXMsIHRoaXMuX2NvbmZpZy5jYXBhYmlsaXRpZXMgfHwgZGVmYXVsdFRvLCBNRVJHRV9PUFRJT05TKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBydW4gc2luZ2xlIHNwZWMgZmlsZSBvbmx5LCByZWdhcmRsZXNzIG9mIG11bHRpcGxlLXNwZWMgc3BlY2lmaWNhdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHNwZWMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlnLnNwZWNzID0gWy4uLnRoaXMuc2V0RmlsZVBhdGhUb0ZpbHRlck9wdGlvbnMoc3BlYywgdGhpcy5fY29uZmlnLnNwZWNzKV1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZXhjbHVkZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9jb25maWcuZXhjbHVkZSA9IFsuLi50aGlzLnNldEZpbGVQYXRoVG9GaWx0ZXJPcHRpb25zKGV4Y2x1ZGUsIHRoaXMuX2NvbmZpZy5leGNsdWRlKV1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiB1c2VyIGFuZCBrZXkgY291bGQgZ2V0IGFkZGVkIHZpYSBjbGkgYXJndW1lbnRzIHNvIHdlIG5lZWQgdG8gZGV0ZWN0IGFnYWluXG4gICAgICAgICAqIE5vdGU6IGNsaSBhcmd1bWVudHMgYXJlIG9uIHRoZSByaWdodCBhbmQgb3ZlcndyaXRlIGNvbmZpZ1xuICAgICAgICAgKiBpZiBob3N0IGFuZCBwb3J0IGFyZSBkZWZhdWx0LCByZW1vdmUgdGhlbSB0byBnZXQgbmV3IHZhbHVlc1xuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGRlZmF1bHRCYWNrZW5kID0gZGV0ZWN0QmFja2VuZCh7fSlcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5ob3N0bmFtZSA9PT0gZGVmYXVsdEJhY2tlbmQuaG9zdG5hbWUgJiYgdGhpcy5fY29uZmlnLnBvcnQgPT09IGRlZmF1bHRCYWNrZW5kLnBvcnQpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb25maWcuaG9zdG5hbWVcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb25maWcucG9ydFxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY29uZmlnID0gbWVyZ2UoZGV0ZWN0QmFja2VuZCh0aGlzLl9jb25maWcpLCB0aGlzLl9jb25maWcsIE1FUkdFX09QVElPTlMpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYWRkIGhvb2tzIGZyb20gc2VydmljZXMgdG8gcnVubmVyIGNvbmZpZ1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBzZXJ2aWNlICBhIHNlcnZpY2UgaXMgYmFzaWNhbGx5IGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGhvb2sgbWV0aG9kc1xuICAgICAqL1xuICAgIGFkZFNlcnZpY2UgKHNlcnZpY2UpIHtcbiAgICAgICAgZm9yIChsZXQgaG9va05hbWUgb2YgU1VQUE9SVEVEX0hPT0tTKSB7XG4gICAgICAgICAgICBpZiAoIXNlcnZpY2VbaG9va05hbWVdKSB7XG4gICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzZXJ2aWNlW2hvb2tOYW1lXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZ1tob29rTmFtZV0ucHVzaChzZXJ2aWNlW2hvb2tOYW1lXS5iaW5kKHNlcnZpY2UpKVxuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNlcnZpY2VbaG9va05hbWVdKSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGhvb2sgb2Ygc2VydmljZVtob29rTmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBob29rID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25maWdbaG9va05hbWVdLnB1c2goaG9vay5iaW5kKHNlcnZpY2UpKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IGV4Y2x1ZGVkIGZpbGVzIGZyb20gY29uZmlnIHBhdHRlcm5cbiAgICAgKi9cbiAgICBnZXRTcGVjcyAoY2FwU3BlY3MsIGNhcEV4Y2x1ZGUpIHtcbiAgICAgICAgbGV0IHNwZWNzID0gQ29uZmlnUGFyc2VyLmdldEZpbGVQYXRocyh0aGlzLl9jb25maWcuc3BlY3MpXG4gICAgICAgIGxldCBzcGVjICA9IEFycmF5LmlzQXJyYXkodGhpcy5fY29uZmlnLnNwZWMpID8gdGhpcy5fY29uZmlnLnNwZWMgOiBbXVxuICAgICAgICBsZXQgZXhjbHVkZSA9IENvbmZpZ1BhcnNlci5nZXRGaWxlUGF0aHModGhpcy5fY29uZmlnLmV4Y2x1ZGUpXG4gICAgICAgIGxldCBzdWl0ZXMgPSBBcnJheS5pc0FycmF5KHRoaXMuX2NvbmZpZy5zdWl0ZSkgPyB0aGlzLl9jb25maWcuc3VpdGUgOiBbXVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjaGVjayBpZiB1c2VyIGhhcyBzcGVjaWZpZWQgYSBzcGVjaWZpYyBzdWl0ZXMgdG8gcnVuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoc3VpdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBzdWl0ZVNwZWNzID0gW11cbiAgICAgICAgICAgIGZvciAobGV0IHN1aXRlTmFtZSBvZiBzdWl0ZXMpIHtcbiAgICAgICAgICAgICAgICAvLyBUb0RvOiBsb2cgd2FybmluZyBpZiBzdWl0ZSB3YXMgbm90IGZvdW5kXG4gICAgICAgICAgICAgICAgbGV0IHN1aXRlID0gdGhpcy5fY29uZmlnLnN1aXRlc1tzdWl0ZU5hbWVdXG4gICAgICAgICAgICAgICAgaWYgKHN1aXRlICYmIEFycmF5LmlzQXJyYXkoc3VpdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1aXRlU3BlY3MgPSBzdWl0ZVNwZWNzLmNvbmNhdChDb25maWdQYXJzZXIuZ2V0RmlsZVBhdGhzKHN1aXRlKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzdWl0ZVNwZWNzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHN1aXRlKHMpIFwiJHtzdWl0ZXMuam9pbignXCIsIFwiJyl9XCIgeW91IHNwZWNpZmllZCBkb24ndCBleGlzdCBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luIHlvdXIgY29uZmlnIGZpbGUgb3IgZG9lc25cXCd0IGNvbnRhaW4gYW55IGZpbGVzIScpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFsbG93IC0tc3VpdGUgYW5kIC0tc3BlYyB0byBib3RoIGJlIGRlZmluZWQgb24gdGhlIGNvbW1hbmQgbGluZVxuICAgICAgICAgICAgLy8gUmVtb3ZpbmcgYW55IGR1cGxpY2F0ZSB0ZXN0cyB0aGF0IGNvdWxkIGJlIGluY2x1ZGVkXG4gICAgICAgICAgICBjb25zdCB0bXBfc3BlY3MgPSBzcGVjLmxlbmd0aCA+IDAgPyBbLi4uc3BlY3MsIC4uLnN1aXRlU3BlY3NdIDogc3VpdGVTcGVjc1xuXG4gICAgICAgICAgICByZXR1cm4gWy4uLm5ldyBTZXQodG1wX3NwZWNzKV1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNhcFNwZWNzKSkge1xuICAgICAgICAgICAgc3BlY3MgPSBzcGVjcy5jb25jYXQoQ29uZmlnUGFyc2VyLmdldEZpbGVQYXRocyhjYXBTcGVjcykpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjYXBFeGNsdWRlKSkge1xuICAgICAgICAgICAgZXhjbHVkZSA9IGV4Y2x1ZGUuY29uY2F0KENvbmZpZ1BhcnNlci5nZXRGaWxlUGF0aHMoY2FwRXhjbHVkZSkpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3BlY3MuZmlsdGVyKHNwZWMgPT4gZXhjbHVkZS5pbmRleE9mKHNwZWMpIDwgMClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIGNvbmZpZyBhdHRyaWJ1dGUgd2l0aCBmaWxlIHBhdGhzIGZyb20gZmlsdGVyaW5nXG4gICAgICogb3B0aW9ucyBmcm9tIGNsaSBhcmd1bWVudFxuICAgICAqXG4gICAgICogQHBhcmFtICB7U3RyaW5nfSBjbGlBcmdGaWxlTGlzdCAgbGlzdCBvZiBmaWxlcyBpbiBhIHN0cmluZyBmcm9tXG4gICAgICogQHBhcmFtICB7T2JqZWN0fSBjb25maWcgIGNvbmZpZyBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIHNwZWMgYW5kIGV4bGN1ZGUgYXR0cmlidXRlc1xuICAgICAqIGNsaSBhcmd1bWVudFxuICAgICAqIEByZXR1cm4ge1N0cmluZ1tdfSBMaXN0IG9mIGZpbGVzIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIG9yIGV4Y2x1ZGVkXG4gICAgICovXG4gICAgc2V0RmlsZVBhdGhUb0ZpbHRlck9wdGlvbnMgKGNsaUFyZ0ZpbGVMaXN0LCBjb25maWcpIHtcbiAgICAgICAgY29uc3QgZmlsZXNUb0ZpbHRlciA9IG5ldyBTZXQoKVxuICAgICAgICBjb25zdCBmaWxlTGlzdCA9IENvbmZpZ1BhcnNlci5nZXRGaWxlUGF0aHMoY29uZmlnKVxuICAgICAgICBjbGlBcmdGaWxlTGlzdC5mb3JFYWNoKGZpbHRlcmVkX2ZpbGUgPT4ge1xuICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoZmlsdGVyZWRfZmlsZSkgJiYgZnMubHN0YXRTeW5jKGZpbHRlcmVkX2ZpbGUpLmlzRmlsZSgpKSB7XG4gICAgICAgICAgICAgICAgZmlsZXNUb0ZpbHRlci5hZGQocGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGZpbHRlcmVkX2ZpbGUpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZmlsZUxpc3QuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGUubWF0Y2goZmlsdGVyZWRfZmlsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzVG9GaWx0ZXIuYWRkKGZpbGUpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBpZiAoZmlsZXNUb0ZpbHRlci5zaXplID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNwZWMgZmlsZShzKSAke2NsaUFyZ0ZpbGVMaXN0LmpvaW4oJywgJyl9IG5vdCBmb3VuZGApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbGVzVG9GaWx0ZXJcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm4gY29uZmlnc1xuICAgICAqL1xuICAgIGdldENvbmZpZyAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWdcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm4gY2FwYWJpbGl0aWVzXG4gICAgICovXG4gICAgZ2V0Q2FwYWJpbGl0aWVzIChpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaSA9PT0gJ251bWJlcicgJiYgdGhpcy5fY2FwYWJpbGl0aWVzW2ldKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY2FwYWJpbGl0aWVzW2ldXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fY2FwYWJpbGl0aWVzXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmV0dXJucyBhIGZsYXR0ZW4gbGlzdCBvZiBnbG9iZWQgZmlsZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSAge1N0cmluZ1tdfSBmaWxlbmFtZXMgIGxpc3Qgb2YgZmlsZXMgdG8gZ2xvYlxuICAgICAqIEByZXR1cm4ge1N0cmluZ1tdfSBsaXN0IG9mIGZpbGVzXG4gICAgICovXG4gICAgc3RhdGljIGdldEZpbGVQYXRocyAocGF0dGVybnMsIG9taXRXYXJuaW5ncykge1xuICAgICAgICBsZXQgZmlsZXMgPSBbXVxuXG4gICAgICAgIGlmICh0eXBlb2YgcGF0dGVybnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBwYXR0ZXJucyA9IFtwYXR0ZXJuc11cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShwYXR0ZXJucykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc3BlY3Mgb3IgZXhjbHVkZSBwcm9wZXJ0eSBzaG91bGQgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncycpXG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBwYXR0ZXJuIG9mIHBhdHRlcm5zKSB7XG4gICAgICAgICAgICBsZXQgZmlsZW5hbWVzID0gZ2xvYi5zeW5jKHBhdHRlcm4pXG5cbiAgICAgICAgICAgIGZpbGVuYW1lcyA9IGZpbGVuYW1lcy5maWx0ZXIoZmlsZW5hbWUgPT5cbiAgICAgICAgICAgICAgICBmaWxlbmFtZS5zbGljZSgtMykgPT09ICcuanMnIHx8XG4gICAgICAgICAgICAgICAgZmlsZW5hbWUuc2xpY2UoLTMpID09PSAnLnRzJyB8fFxuICAgICAgICAgICAgICAgIGZpbGVuYW1lLnNsaWNlKC04KSA9PT0gJy5mZWF0dXJlJyB8fFxuICAgICAgICAgICAgICAgIGZpbGVuYW1lLnNsaWNlKC03KSA9PT0gJy5jb2ZmZWUnKVxuXG4gICAgICAgICAgICBmaWxlbmFtZXMgPSBmaWxlbmFtZXMubWFwKGZpbGVuYW1lID0+XG4gICAgICAgICAgICAgICAgcGF0aC5pc0Fic29sdXRlKGZpbGVuYW1lKSA/IHBhdGgubm9ybWFsaXplKGZpbGVuYW1lKSA6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlbmFtZSkpXG5cbiAgICAgICAgICAgIGlmIChmaWxlbmFtZXMubGVuZ3RoID09PSAwICYmICFvbWl0V2FybmluZ3MpIHtcbiAgICAgICAgICAgICAgICBsb2cud2FybigncGF0dGVybicsIHBhdHRlcm4sICdkaWQgbm90IG1hdGNoIGFueSBmaWxlJylcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmlsZXMgPSBtZXJnZShmaWxlcywgZmlsZW5hbWVzLCBNRVJHRV9PUFRJT05TKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbGVzXG4gICAgfVxufVxuIl19 |
{ | ||
"name": "@wdio/config", | ||
"version": "5.0.0-beta.15", | ||
"version": "5.0.0-beta.16", | ||
"description": "A helper utility to parse and validate WebdriverIO options", | ||
@@ -33,3 +33,3 @@ "author": "Christian Bromann <christian@saucelabs.com>", | ||
"dependencies": { | ||
"@wdio/logger": "^5.0.0-beta.15", | ||
"@wdio/logger": "^5.0.0-beta.16", | ||
"deepmerge": "^2.0.1", | ||
@@ -41,3 +41,3 @@ "glob": "^7.1.2" | ||
}, | ||
"gitHead": "e399691ea545908a208c62d6730b0a53cee27df8" | ||
"gitHead": "5da0bdc9efbc6630983f329624199c771ee79eef" | ||
} |
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
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
Updated@wdio/logger@^5.0.0-beta.16