Socket
Socket
Sign inDemoInstall

appium-support

Package Overview
Dependencies
Maintainers
7
Versions
145
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

appium-support - npm Package Compare versions

Comparing version 2.50.1 to 2.51.0

62

build/lib/net.js

@@ -55,3 +55,2 @@ "use strict";

const {
protocol,
href

@@ -62,3 +61,5 @@ } = parsedUri;

method,
timeout
timeout,
maxContentLength: Infinity,
maxBodyLength: Infinity
};

@@ -71,27 +72,40 @@ const axiosAuth = toAxiosAuth(auth);

const form = new _formData.default();
form.append(fileFieldName, localFileStream);
if (fileFieldName) {
const form = new _formData.default();
form.append(fileFieldName, localFileStream);
if (formFields) {
let pairs = [];
if (formFields) {
let pairs = [];
if (_lodash.default.isArray(formFields)) {
pairs = formFields;
} else if (_lodash.default.isPlainObject(formFields)) {
pairs = _lodash.default.toPairs(formFields);
}
if (_lodash.default.isArray(formFields)) {
pairs = formFields;
} else if (_lodash.default.isPlainObject(formFields)) {
pairs = _lodash.default.toPairs(formFields);
}
for (const [key, value] of pairs) {
if (_lodash.default.toLower(key) !== _lodash.default.toLower(fileFieldName)) {
form.append(key, value);
for (const [key, value] of pairs) {
if (_lodash.default.toLower(key) !== _lodash.default.toLower(fileFieldName)) {
form.append(key, value);
}
}
}
requestOpts.headers = Object.assign({}, _lodash.default.isPlainObject(headers) ? headers : {}, form.getHeaders());
requestOpts.data = form;
} else {
if (_lodash.default.isPlainObject(headers)) {
requestOpts.headers = headers;
}
requestOpts.data = localFileStream;
}
requestOpts.headers = Object.assign({}, _lodash.default.isPlainObject(headers) ? headers : {}, form.getHeaders());
_logger.default.debug(`Performing ${method} to ${href} with options (excluding data): ` + JSON.stringify(_lodash.default.omit(requestOpts, ['data'])));
_logger.default.debug(`${protocol} upload options (ex. form data): ${JSON.stringify(requestOpts)}`);
const {
status,
statusText
} = await (0, _axios.default)(requestOpts);
requestOpts.data = form;
await (0, _axios.default)(requestOpts);
_logger.default.info(`Server response: ${status} ${statusText}`);
}

@@ -150,3 +164,3 @@

if (isMetered) {
_logger.default.info(`Uploading '${localPath}' of ${(0, _util.toReadableSizeString)(size)} size to '${remoteUri}'...`);
_logger.default.info(`Uploading '${localPath}' of ${(0, _util.toReadableSizeString)(size)} size to '${remoteUri}'`);
}

@@ -157,2 +171,8 @@

if (['http:', 'https:'].includes(parsedUri.protocol)) {
if (!uploadOptions.fileFieldName) {
uploadOptions.headers = Object.assign({}, _lodash.default.isPlainObject(uploadOptions.headers) ? uploadOptions.headers : {}, {
'Content-Length': size
});
}
await uploadFileToHttp(_fs.default.createReadStream(localPath), parsedUri, uploadOptions);

@@ -166,3 +186,3 @@ } else if (parsedUri.protocol === 'ftp:') {

if (isMetered) {
_logger.default.info(`Uploaded '${localPath}' of ${(0, _util.toReadableSizeString)(size)} size in ${timer.getDuration().asSeconds.toFixed(3)}s`);
_logger.default.info(`Uploaded '${localPath}' of ${(0, _util.toReadableSizeString)(size)} size in ` + `${timer.getDuration().asSeconds.toFixed(3)}s`);
}

@@ -240,2 +260,2 @@ }

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9uZXQuanMiXSwibmFtZXMiOlsidG9BeGlvc0F1dGgiLCJhdXRoIiwiXyIsImlzUGxhaW5PYmplY3QiLCJheGlvc0F1dGgiLCJ1c2VybmFtZSIsInVzZXIiLCJwYXNzd29yZCIsInBhc3MiLCJ1cGxvYWRGaWxlVG9IdHRwIiwibG9jYWxGaWxlU3RyZWFtIiwicGFyc2VkVXJpIiwidXBsb2FkT3B0aW9ucyIsIm1ldGhvZCIsInRpbWVvdXQiLCJoZWFkZXJzIiwiZmlsZUZpZWxkTmFtZSIsImZvcm1GaWVsZHMiLCJwcm90b2NvbCIsImhyZWYiLCJyZXF1ZXN0T3B0cyIsInVybCIsImZvcm0iLCJGb3JtRGF0YSIsImFwcGVuZCIsInBhaXJzIiwiaXNBcnJheSIsInRvUGFpcnMiLCJrZXkiLCJ2YWx1ZSIsInRvTG93ZXIiLCJPYmplY3QiLCJhc3NpZ24iLCJnZXRIZWFkZXJzIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwiZGF0YSIsInVwbG9hZEZpbGVUb0Z0cCIsImhvc3RuYW1lIiwicG9ydCIsInBhdGhuYW1lIiwiZnRwT3B0cyIsImhvc3QiLCJCIiwicmVzb2x2ZSIsInJlamVjdCIsIkZ0cCIsInB1dCIsImVyciIsInVwbG9hZEZpbGUiLCJsb2NhbFBhdGgiLCJyZW1vdGVVcmkiLCJmcyIsImV4aXN0cyIsIkVycm9yIiwiaXNNZXRlcmVkIiwicGFyc2UiLCJzaXplIiwic3RhdCIsImluZm8iLCJ0aW1lciIsIlRpbWVyIiwic3RhcnQiLCJpbmNsdWRlcyIsImNyZWF0ZVJlYWRTdHJlYW0iLCJnZXREdXJhdGlvbiIsImFzU2Vjb25kcyIsInRvRml4ZWQiLCJkb3dubG9hZEZpbGUiLCJyZW1vdGVVcmwiLCJkc3RQYXRoIiwiZG93bmxvYWRPcHRpb25zIiwicmVzcG9uc2VUeXBlIiwicmVzcG9uc2VMZW5ndGgiLCJ3cml0ZXIiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlc3BvbnNlU3RyZWFtIiwicmVzcG9uc2VIZWFkZXJzIiwicGFyc2VJbnQiLCJwaXBlIiwib25jZSIsImUiLCJ1bnBpcGUiLCJtZXNzYWdlIiwicmltcmFmIiwic2Vjb25kc0VsYXBzZWQiLCJieXRlc1BlclNlYyIsIk1hdGgiLCJmbG9vciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsU0FBU0EsV0FBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDMUIsTUFBSSxDQUFDQyxnQkFBRUMsYUFBRixDQUFnQkYsSUFBaEIsQ0FBTCxFQUE0QjtBQUMxQixXQUFPLElBQVA7QUFDRDs7QUFFRCxRQUFNRyxTQUFTLEdBQUc7QUFDaEJDLElBQUFBLFFBQVEsRUFBRUosSUFBSSxDQUFDSSxRQUFMLElBQWlCSixJQUFJLENBQUNLLElBRGhCO0FBRWhCQyxJQUFBQSxRQUFRLEVBQUVOLElBQUksQ0FBQ00sUUFBTCxJQUFpQk4sSUFBSSxDQUFDTztBQUZoQixHQUFsQjtBQUlBLFNBQVFKLFNBQVMsQ0FBQ0MsUUFBVixJQUFzQkQsU0FBUyxDQUFDRyxRQUFqQyxHQUE2Q0gsU0FBN0MsR0FBeUQsSUFBaEU7QUFDRDs7QUFFRCxlQUFlSyxnQkFBZixDQUFpQ0MsZUFBakMsRUFBa0RDLFNBQWxELEVBQTZEQyxhQUFhLEdBQUcsRUFBN0UsRUFBaUY7QUFDL0UsUUFBTTtBQUNKQyxJQUFBQSxNQUFNLEdBQUcsTUFETDtBQUVKQyxJQUFBQSxPQUFPLEdBQUcsSUFGTjtBQUdKQyxJQUFBQSxPQUhJO0FBSUpkLElBQUFBLElBSkk7QUFLSmUsSUFBQUEsYUFBYSxHQUFHLE1BTFo7QUFNSkMsSUFBQUE7QUFOSSxNQU9GTCxhQVBKO0FBUUEsUUFBTTtBQUNKTSxJQUFBQSxRQURJO0FBRUpDLElBQUFBO0FBRkksTUFHRlIsU0FISjtBQUtBLFFBQU1TLFdBQVcsR0FBRztBQUNsQkMsSUFBQUEsR0FBRyxFQUFFRixJQURhO0FBRWxCTixJQUFBQSxNQUZrQjtBQUdsQkMsSUFBQUE7QUFIa0IsR0FB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QUloQixJQUFJLEtBQUtnQixjQUEvQixFQUErQztBQUM3QyxVQUFNckIsWUFBR2dDLE1BQUgsQ0FBVWQsT0FBVixDQUFOO0FBQ0EsVUFBTSxJQUFJaEIsS0FBSixDQUFXLHdDQUF1Q2UsU0FBVSxLQUFJWixJQUFLLFVBQTNELEdBQ2IsMkRBQTBEZ0IsY0FBZSxTQUR0RSxDQUFOO0FBRUQ7O0FBQ0QsTUFBSWxCLFNBQUosRUFBZTtBQUNiLFVBQU04QixjQUFjLEdBQUd6QixLQUFLLENBQUNLLFdBQU4sR0FBb0JDLFNBQTNDOztBQUNBbEMsb0JBQUlDLEtBQUosQ0FBVyxHQUFFb0MsU0FBVSxLQUFJLGdDQUFxQlosSUFBckIsQ0FBMkIsSUFBNUMsR0FDUCwyQkFBMEJhLE9BQVEsUUFBT2UsY0FBYyxDQUFDbEIsT0FBZixDQUF1QixDQUF2QixDQUEwQixHQUR0RTs7QUFFQSxRQUFJa0IsY0FBYyxJQUFJLENBQXRCLEVBQXlCO0FBQ3ZCLFlBQU1DLFdBQVcsR0FBR0MsSUFBSSxDQUFDQyxLQUFMLENBQVcvQixJQUFJLEdBQUc0QixjQUFsQixDQUFwQjs7QUFDQXJELHNCQUFJQyxLQUFKLENBQVcsK0JBQThCLGdDQUFxQnFELFdBQXJCLENBQWtDLElBQTNFO0FBQ0Q7QUFDRjtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCB1cmwgZnJvbSAndXJsJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IHRvUmVhZGFibGVTaXplU3RyaW5nIH0gZnJvbSAnLi91dGlsJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IEZ0cCBmcm9tICdqc2Z0cCc7XG5pbXBvcnQgVGltZXIgZnJvbSAnLi90aW1pbmcnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCBGb3JtRGF0YSBmcm9tICdmb3JtLWRhdGEnO1xuXG5cbmZ1bmN0aW9uIHRvQXhpb3NBdXRoIChhdXRoKSB7XG4gIGlmICghXy5pc1BsYWluT2JqZWN0KGF1dGgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBheGlvc0F1dGggPSB7XG4gICAgdXNlcm5hbWU6IGF1dGgudXNlcm5hbWUgfHwgYXV0aC51c2VyLFxuICAgIHBhc3N3b3JkOiBhdXRoLnBhc3N3b3JkIHx8IGF1dGgucGFzcyxcbiAgfTtcbiAgcmV0dXJuIChheGlvc0F1dGgudXNlcm5hbWUgJiYgYXhpb3NBdXRoLnBhc3N3b3JkKSA/IGF4aW9zQXV0aCA6IG51bGw7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZEZpbGVUb0h0dHAgKGxvY2FsRmlsZVN0cmVhbSwgcGFyc2VkVXJpLCB1cGxvYWRPcHRpb25zID0ge30pIHtcbiAgY29uc3Qge1xuICAgIG1ldGhvZCA9ICdQT1NUJyxcbiAgICB0aW1lb3V0ID0gNTAwMCxcbiAgICBoZWFkZXJzLFxuICAgIGF1dGgsXG4gICAgZmlsZUZpZWxkTmFtZSA9ICdmaWxlJyxcbiAgICBmb3JtRmllbGRzLFxuICB9ID0gdXBsb2FkT3B0aW9ucztcbiAgY29uc3Qge1xuICAgIHByb3RvY29sLFxuICAgIGhyZWYsXG4gIH0gPSBwYXJzZWRVcmk7XG5cbiAgY29uc3QgcmVxdWVzdE9wdHMgPSB7XG4gICAgdXJsOiBocmVmLFxuICAgIG1ldGhvZCxcbiAgICB0aW1lb3V0LFxuICB9O1xuICBjb25zdCBheGlvc0F1dGggPSB0b0F4aW9zQXV0aChhdXRoKTtcbiAgaWYgKGF4aW9zQXV0aCkge1xuICAgIHJlcXVlc3RPcHRzLmF1dGggPSBheGlvc0F1dGg7XG4gIH1cbiAgY29uc3QgZm9ybSA9IG5ldyBGb3JtRGF0YSgpO1xuICBmb3JtLmFwcGVuZChmaWxlRmllbGROYW1lLCBsb2NhbEZpbGVTdHJlYW0pO1xuICBpZiAoZm9ybUZpZWxkcykge1xuICAgIGxldCBwYWlycyA9IFtdO1xuICAgIGlmIChfLmlzQXJyYXkoZm9ybUZpZWxkcykpIHtcbiAgICAgIHBhaXJzID0gZm9ybUZpZWxkcztcbiAgICB9IGVsc2UgaWYgKF8uaXNQbGFpbk9iamVjdChmb3JtRmllbGRzKSkge1xuICAgICAgcGFpcnMgPSBfLnRvUGFpcnMoZm9ybUZpZWxkcyk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHBhaXJzKSB7XG4gICAgICBpZiAoXy50b0xvd2VyKGtleSkgIT09IF8udG9Mb3dlcihmaWxlRmllbGROYW1lKSkge1xuICAgICAgICBmb3JtLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmVxdWVzdE9wdHMuaGVhZGVycyA9IE9iamVjdC5hc3NpZ24oe30sIF8uaXNQbGFpbk9iamVjdChoZWFkZXJzKSA/IGhlYWRlcnMgOiB7fSwgZm9ybS5nZXRIZWFkZXJzKCkpO1xuXG4gIC8vIGV4Y2x1ZGUgZm9ybSBkYXRhIGZyb20gdGhlIGxvZyBzaW5jZSBpdCdsbCBjb250YWluIHRoZSBlbnRpcmUgcmVjb3JkZWQgdmlkZW9cbiAgbG9nLmRlYnVnKGAke3Byb3RvY29sfSB1cGxvYWQgb3B0aW9ucyAoZXguIGZvcm0gZGF0YSk6ICR7SlNPTi5zdHJpbmdpZnkocmVxdWVzdE9wdHMpfWApO1xuICByZXF1ZXN0T3B0cy5kYXRhID0gZm9ybTtcblxuICBhd2FpdCBheGlvcyhyZXF1ZXN0T3B0cyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZEZpbGVUb0Z0cCAobG9jYWxGaWxlU3RyZWFtLCBwYXJzZWRVcmksIHVwbG9hZE9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgYXV0aCxcbiAgICB1c2VyLFxuICAgIHBhc3MsXG4gIH0gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCB7XG4gICAgaG9zdG5hbWUsXG4gICAgcG9ydCxcbiAgICBwcm90b2NvbCxcbiAgICBwYXRobmFtZSxcbiAgfSA9IHBhcnNlZFVyaTtcblxuICBjb25zdCBmdHBPcHRzID0ge1xuICAgIGhvc3Q6IGhvc3RuYW1lLFxuICAgIHBvcnQ6IHBvcnQgfHwgMjEsXG4gIH07XG4gIGlmICgoYXV0aD8udXNlciAmJiBhdXRoPy5wYXNzKSB8fCAodXNlciAmJiBwYXNzKSkge1xuICAgIGZ0cE9wdHMudXNlciA9IGF1dGg/LnVzZXIgfHwgdXNlcjtcbiAgICBmdHBPcHRzLnBhc3MgPSBhdXRoPy5wYXNzIHx8IHBhc3M7XG4gIH1cbiAgbG9nLmRlYnVnKGAke3Byb3RvY29sfSB1cGxvYWQgb3B0aW9uczogJHtKU09OLnN0cmluZ2lmeShmdHBPcHRzKX1gKTtcbiAgcmV0dXJuIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBuZXcgRnRwKGZ0cE9wdHMpLnB1dChsb2NhbEZpbGVTdHJlYW0sIHBhdGhuYW1lLCAoZXJyKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBBdXRoQ3JlZGVudGlhbHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB1c2VyIC0gTm9uLWVtcHR5IHVzZXIgbmFtZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBhc3MgLSBOb24tZW1wdHkgcGFzc3dvcmRcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEZ0cFVwbG9hZE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNNZXRlcmVkIFt0cnVlXSAtIFdoZXRoZXIgdG8gbG9nIHRoZSBhY3R1YWwgdXBsb2FkIHBlcmZvcm1hbmNlXG4gKiAoZS5nLiB0aW1pbmdzIGFuZCBzcGVlZClcbiAqIEBwcm9wZXJ0eSB7QXV0aENyZWRlbnRpYWxzfSBhdXRoXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBIdHRwVXBsb2FkT3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBpc01ldGVyZWQgW3RydWVdIC0gV2hldGhlciB0byBsb2cgdGhlIGFjdHVhbCB1cGxvYWQgcGVyZm9ybWFuY2VcbiAqIChlLmcuIHRpbWluZ3MgYW5kIHNwZWVkKVxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1ldGhvZCBbUE9TVF0gLSBUaGUgSFRUUCBtZXRob2QgdXNlZCBmb3IgZmlsZSB1cGxvYWRcbiAqIEBwcm9wZXJ0eSB7QXV0aENyZWRlbnRpYWxzfSBhdXRoXG4gKiBAcHJvcGVydHkge251bWJlcn0gdGltZW91dCBbNTAwMF0gLSBUaGUgYWN0dWFsIHJlcXVlc3QgdGltZW91dCBpbiBtaWxsaXNlY29uZHNcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBoZWFkZXJzIC0gQWRkaXRpb25hbCByZXF1ZXN0IGhlYWRlcnMgbWFwcGluZ1xuICogQHByb3BlcnR5IHtzdHJpbmd9IGZpbGVGaWVsZE5hbWUgW2ZpbGVdIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0gZmllbGQgY29udGFpbmluZyB0aGUgZmlsZVxuICogY29udGVudCB0byBiZSB1cGxvYWRlZFxuICogQHByb3BlcnR5IHtBcnJheTxQYWlyPnxPYmplY3R9IGZvcm1GaWVsZHMgLSBUaGUgYWRkaXRpb25hbCBmb3JtIGZpZWxkc1xuICogdG8gYmUgaW5jbHVkZWQgaW50byB0aGUgdXBsb2FkIHJlcXVlc3QuIFRoaXMgcHJvcGVydHkgaXMgb25seSBjb25zaWRlcmVkIGlmXG4gKiBgZmlsZUZpZWxkTmFtZWAgaXMgc2V0XG4gKi9cblxuLyoqXG4gKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIGEgcmVtb3RlIGxvY2F0aW9uLiBIVFRQKFMpIGFuZCBGVFBcbiAqIHByb3RvY29scyBhcmUgc3VwcG9ydGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbFBhdGggLSBUaGUgcGF0aCB0byBhIGZpbGUgb24gdGhlIGxvY2FsIHN0b3JhZ2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtb3RlVXJpIC0gVGhlIHJlbW90ZSBVUkkgdG8gdXBsb2FkIHRoZSBmaWxlIHRvLlxuICogQHBhcmFtIHs/RnRwVXBsb2FkT3B0aW9uc3xIdHRwVXBsb2FkT3B0aW9uc30gdXBsb2FkT3B0aW9uc1xuICovXG5hc3luYyBmdW5jdGlvbiB1cGxvYWRGaWxlIChsb2NhbFBhdGgsIHJlbW90ZVVyaSwgdXBsb2FkT3B0aW9ucyA9IHt9KSB7XG4gIGlmICghYXdhaXQgZnMuZXhpc3RzKGxvY2FsUGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IgKGAnJHtsb2NhbFBhdGh9JyBkb2VzIG5vdCBleGlzdHMgb3IgaXMgbm90IGFjY2Vzc2libGVgKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBpc01ldGVyZWQgPSB0cnVlLFxuICB9ID0gdXBsb2FkT3B0aW9ucztcblxuICBjb25zdCBwYXJzZWRVcmkgPSB1cmwucGFyc2UocmVtb3RlVXJpKTtcbiAgY29uc3Qge3NpemV9ID0gYXdhaXQgZnMuc3RhdChsb2NhbFBhdGgpO1xuICBpZiAoaXNNZXRlcmVkKSB7XG4gICAgbG9nLmluZm8oYFVwbG9hZGluZyAnJHtsb2NhbFBhdGh9JyBvZiAke3RvUmVhZGFibGVTaXplU3RyaW5nKHNpemUpfSBzaXplIHRvICcke3JlbW90ZVVyaX0nLi4uYCk7XG4gIH1cbiAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKS5zdGFydCgpO1xuICBpZiAoWydodHRwOicsICdodHRwczonXS5pbmNsdWRlcyhwYXJzZWRVcmkucHJvdG9jb2wpKSB7XG4gICAgYXdhaXQgdXBsb2FkRmlsZVRvSHR0cChmcy5jcmVhdGVSZWFkU3RyZWFtKGxvY2FsUGF0aCksIHBhcnNlZFVyaSwgdXBsb2FkT3B0aW9ucyk7XG4gIH0gZWxzZSBpZiAocGFyc2VkVXJpLnByb3RvY29sID09PSAnZnRwOicpIHtcbiAgICBhd2FpdCB1cGxvYWRGaWxlVG9GdHAoZnMuY3JlYXRlUmVhZFN0cmVhbShsb2NhbFBhdGgpLCBwYXJzZWRVcmksIHVwbG9hZE9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHVwbG9hZCB0aGUgZmlsZSBhdCAnJHtsb2NhbFBhdGh9JyB0byAnJHtyZW1vdGVVcml9Jy4gYCArXG4gICAgICBgVW5zdXBwb3J0ZWQgcmVtb3RlIHByb3RvY29sICcke3BhcnNlZFVyaS5wcm90b2NvbH0nLiBgICtcbiAgICAgIGBPbmx5IGh0dHAvaHR0cHMgYW5kIGZ0cC9mdHBzIHByb3RvY29scyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIGlmIChpc01ldGVyZWQpIHtcbiAgICBsb2cuaW5mbyhgVXBsb2FkZWQgJyR7bG9jYWxQYXRofScgb2YgJHt0b1JlYWRhYmxlU2l6ZVN0cmluZyhzaXplKX0gc2l6ZSBpbiAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNTZWNvbmRzLnRvRml4ZWQoMyl9c2ApO1xuICB9XG59XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRG93bmxvYWRPcHRpb25zXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzTWV0ZXJlZCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIGxvZyB0aGUgYWN0dWFsIGRvd25sb2FkIHBlcmZvcm1hbmNlXG4gKiAoZS5nLiB0aW1pbmdzIGFuZCBzcGVlZClcbiAqIEBwcm9wZXJ0eSB7QXV0aENyZWRlbnRpYWxzfSBhdXRoXG4gKiBAcHJvcGVydHkge251bWJlcn0gdGltZW91dCBbNTAwMF0gLSBUaGUgYWN0dWFsIHJlcXVlc3QgdGltZW91dCBpbiBtaWxsaXNlY29uZHNcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBoZWFkZXJzIC0gUmVxdWVzdCBoZWFkZXJzIG1hcHBpbmdcbiAqL1xuXG4vKipcbiAqIERvd25sb2FkcyB0aGUgZ2l2ZW4gZmlsZSB2aWEgSFRUUChTKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByZW1vdGVVcmwgLSBUaGUgcmVtb3RlIHVybFxuICogQHBhcmFtIHtzdHJpbmd9IGRzdFBhdGggLSBUaGUgbG9jYWwgcGF0aCB0byBkb3dubG9hZCB0aGUgZmlsZSB0b1xuICogQHBhcmFtIHs/RG93bmxvYWRPcHRpb25zfSBkb3dubG9hZE9wdGlvbnNcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBkb3dubG9hZCBvcGVyYXRpb24gZmFpbHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZG93bmxvYWRGaWxlIChyZW1vdGVVcmwsIGRzdFBhdGgsIGRvd25sb2FkT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBpc01ldGVyZWQgPSB0cnVlLFxuICAgIGF1dGgsXG4gICAgdGltZW91dCA9IDUwMDAsXG4gICAgaGVhZGVycyxcbiAgfSA9IGRvd25sb2FkT3B0aW9ucztcblxuICBjb25zdCByZXF1ZXN0T3B0cyA9IHtcbiAgICB1cmw6IHJlbW90ZVVybCxcbiAgICByZXNwb25zZVR5cGU6ICdzdHJlYW0nLFxuICAgIHRpbWVvdXQsXG4gIH07XG4gIGNvbnN0IGF4aW9zQXV0aCA9IHRvQXhpb3NBdXRoKGF1dGgpO1xuICBpZiAoYXhpb3NBdXRoKSB7XG4gICAgcmVxdWVzdE9wdHMuYXV0aCA9IGF4aW9zQXV0aDtcbiAgfVxuICBpZiAoXy5pc1BsYWluT2JqZWN0KGhlYWRlcnMpKSB7XG4gICAgcmVxdWVzdE9wdHMuaGVhZGVycyA9IGhlYWRlcnM7XG4gIH1cblxuICBjb25zdCB0aW1lciA9IG5ldyBUaW1lcigpLnN0YXJ0KCk7XG4gIGxldCByZXNwb25zZUxlbmd0aDtcbiAgdHJ5IHtcbiAgICBjb25zdCB3cml0ZXIgPSBmcy5jcmVhdGVXcml0ZVN0cmVhbShkc3RQYXRoKTtcbiAgICBjb25zdCB7XG4gICAgICBkYXRhOiByZXNwb25zZVN0cmVhbSxcbiAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICB9ID0gYXdhaXQgYXhpb3MocmVxdWVzdE9wdHMpO1xuICAgIHJlc3BvbnNlTGVuZ3RoID0gcGFyc2VJbnQocmVzcG9uc2VIZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCAxMCk7XG4gICAgcmVzcG9uc2VTdHJlYW0ucGlwZSh3cml0ZXIpO1xuXG4gICAgYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgcmVzcG9uc2VTdHJlYW0ub25jZSgnZXJyb3InLCByZWplY3QpO1xuICAgICAgd3JpdGVyLm9uY2UoJ2ZpbmlzaCcsIHJlc29sdmUpO1xuICAgICAgd3JpdGVyLm9uY2UoJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgICAgcmVzcG9uc2VTdHJlYW0udW5waXBlKHdyaXRlcik7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBkb3dubG9hZCB0aGUgZmlsZSBmcm9tICR7cmVtb3RlVXJsfTogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxuXG4gIGNvbnN0IHtzaXplfSA9IGF3YWl0IGZzLnN0YXQoZHN0UGF0aCk7XG4gIGlmIChyZXNwb25zZUxlbmd0aCAmJiBzaXplICE9PSByZXNwb25zZUxlbmd0aCkge1xuICAgIGF3YWl0IGZzLnJpbXJhZihkc3RQYXRoKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBzaXplIG9mIHRoZSBmaWxlIGRvd25sb2FkZWQgZnJvbSAke3JlbW90ZVVybH0gKCR7c2l6ZX0gYnl0ZXMpIGAgK1xuICAgICAgYGRpZmZlcnMgZnJvbSB0aGUgb25lIGluIENvbnRlbnQtTGVuZ3RoIHJlc3BvbnNlIGhlYWRlciAoJHtyZXNwb25zZUxlbmd0aH0gYnl0ZXMpYCk7XG4gIH1cbiAgaWYgKGlzTWV0ZXJlZCkge1xuICAgIGNvbnN0IHNlY29uZHNFbGFwc2VkID0gdGltZXIuZ2V0RHVyYXRpb24oKS5hc1NlY29uZHM7XG4gICAgbG9nLmRlYnVnKGAke3JlbW90ZVVybH0gKCR7dG9SZWFkYWJsZVNpemVTdHJpbmcoc2l6ZSl9KSBgICtcbiAgICAgIGBoYXMgYmVlbiBkb3dubG9hZGVkIHRvICcke2RzdFBhdGh9JyBpbiAke3NlY29uZHNFbGFwc2VkLnRvRml4ZWQoMyl9c2ApO1xuICAgIGlmIChzZWNvbmRzRWxhcHNlZCA+PSAyKSB7XG4gICAgICBjb25zdCBieXRlc1BlclNlYyA9IE1hdGguZmxvb3Ioc2l6ZSAvIHNlY29uZHNFbGFwc2VkKTtcbiAgICAgIGxvZy5kZWJ1ZyhgQXBwcm94aW1hdGUgZG93bmxvYWQgc3BlZWQ6ICR7dG9SZWFkYWJsZVNpemVTdHJpbmcoYnl0ZXNQZXJTZWMpfS9zYCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7IHVwbG9hZEZpbGUsIGRvd25sb2FkRmlsZSB9O1xuIl0sImZpbGUiOiJsaWIvbmV0LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9uZXQuanMiXSwibmFtZXMiOlsidG9BeGlvc0F1dGgiLCJhdXRoIiwiXyIsImlzUGxhaW5PYmplY3QiLCJheGlvc0F1dGgiLCJ1c2VybmFtZSIsInVzZXIiLCJwYXNzd29yZCIsInBhc3MiLCJ1cGxvYWRGaWxlVG9IdHRwIiwibG9jYWxGaWxlU3RyZWFtIiwicGFyc2VkVXJpIiwidXBsb2FkT3B0aW9ucyIsIm1ldGhvZCIsInRpbWVvdXQiLCJoZWFkZXJzIiwiZmlsZUZpZWxkTmFtZSIsImZvcm1GaWVsZHMiLCJocmVmIiwicmVxdWVzdE9wdHMiLCJ1cmwiLCJtYXhDb250ZW50TGVuZ3RoIiwiSW5maW5pdHkiLCJtYXhCb2R5TGVuZ3RoIiwiZm9ybSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwicGFpcnMiLCJpc0FycmF5IiwidG9QYWlycyIsImtleSIsInZhbHVlIiwidG9Mb3dlciIsIk9iamVjdCIsImFzc2lnbiIsImdldEhlYWRlcnMiLCJkYXRhIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5Iiwib21pdCIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJpbmZvIiwidXBsb2FkRmlsZVRvRnRwIiwiaG9zdG5hbWUiLCJwb3J0IiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImZ0cE9wdHMiLCJob3N0IiwiQiIsInJlc29sdmUiLCJyZWplY3QiLCJGdHAiLCJwdXQiLCJlcnIiLCJ1cGxvYWRGaWxlIiwibG9jYWxQYXRoIiwicmVtb3RlVXJpIiwiZnMiLCJleGlzdHMiLCJFcnJvciIsImlzTWV0ZXJlZCIsInBhcnNlIiwic2l6ZSIsInN0YXQiLCJ0aW1lciIsIlRpbWVyIiwic3RhcnQiLCJpbmNsdWRlcyIsImNyZWF0ZVJlYWRTdHJlYW0iLCJnZXREdXJhdGlvbiIsImFzU2Vjb25kcyIsInRvRml4ZWQiLCJkb3dubG9hZEZpbGUiLCJyZW1vdGVVcmwiLCJkc3RQYXRoIiwiZG93bmxvYWRPcHRpb25zIiwicmVzcG9uc2VUeXBlIiwicmVzcG9uc2VMZW5ndGgiLCJ3cml0ZXIiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlc3BvbnNlU3RyZWFtIiwicmVzcG9uc2VIZWFkZXJzIiwicGFyc2VJbnQiLCJwaXBlIiwib25jZSIsImUiLCJ1bnBpcGUiLCJtZXNzYWdlIiwicmltcmFmIiwic2Vjb25kc0VsYXBzZWQiLCJieXRlc1BlclNlYyIsIk1hdGgiLCJmbG9vciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsU0FBU0EsV0FBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDMUIsTUFBSSxDQUFDQyxnQkFBRUMsYUFBRixDQUFnQkYsSUFBaEIsQ0FBTCxFQUE0QjtBQUMxQixXQUFPLElBQVA7QUFDRDs7QUFFRCxRQUFNRyxTQUFTLEdBQUc7QUFDaEJDLElBQUFBLFFBQVEsRUFBRUosSUFBSSxDQUFDSSxRQUFMLElBQWlCSixJQUFJLENBQUNLLElBRGhCO0FBRWhCQyxJQUFBQSxRQUFRLEVBQUVOLElBQUksQ0FBQ00sUUFBTCxJQUFpQk4sSUFBSSxDQUFDTztBQUZoQixHQUFsQjtBQUlBLFNBQVFKLFNBQVMsQ0FBQ0MsUUFBVixJQUFzQkQsU0FBUyxDQUFDRyxRQUFqQyxHQUE2Q0gsU0FBN0MsR0FBeUQsSUFBaEU7QUFDRDs7QUFFRCxlQUFlSyxnQkFBZixDQUFpQ0MsZUFBakMsRUFBa0RDLFNBQWxELEVBQTZEQyxhQUFhLEdBQUcsRUFBN0UsRUFBaUY7QUFDL0UsUUFBTTtBQUNKQyxJQUFBQSxNQUFNLEdBQUcsTUFETDtBQUVKQyxJQUFBQSxPQUFPLEdBQUcsSUFGTjtBQUdKQyxJQUFBQSxPQUhJO0FBSUpkLElBQUFBLElBSkk7QUFLSmUsSUFBQUEsYUFBYSxHQUFHLE1BTFo7QUFNSkMsSUFBQUE7QUFOSSxNQU9GTCxhQVBKO0FBUUEsUUFBTTtBQUFFTSxJQUFBQTtBQUFGLE1BQVdQLFNBQWpCO0FBRUEsUUFBTVEsV0FBVyxHQUFHO0FBQ2xCQyxJQUFB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LEtBQUssQ0FBQ0ssV0FBTixHQUFvQkMsU0FBM0M7O0FBQ0FyQyxvQkFBSUMsS0FBSixDQUFXLEdBQUV1QyxTQUFVLEtBQUksZ0NBQXFCWCxJQUFyQixDQUEyQixJQUE1QyxHQUNQLDJCQUEwQlksT0FBUSxRQUFPZSxjQUFjLENBQUNsQixPQUFmLENBQXVCLENBQXZCLENBQTBCLEdBRHRFOztBQUVBLFFBQUlrQixjQUFjLElBQUksQ0FBdEIsRUFBeUI7QUFDdkIsWUFBTUMsV0FBVyxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBVzlCLElBQUksR0FBRzJCLGNBQWxCLENBQXBCOztBQUNBeEQsc0JBQUlDLEtBQUosQ0FBVywrQkFBOEIsZ0NBQXFCd0QsV0FBckIsQ0FBa0MsSUFBM0U7QUFDRDtBQUNGO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGZzIGZyb20gJy4vZnMnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgdG9SZWFkYWJsZVNpemVTdHJpbmcgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgRnRwIGZyb20gJ2pzZnRwJztcbmltcG9ydCBUaW1lciBmcm9tICcuL3RpbWluZyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSc7XG5cblxuZnVuY3Rpb24gdG9BeGlvc0F1dGggKGF1dGgpIHtcbiAgaWYgKCFfLmlzUGxhaW5PYmplY3QoYXV0aCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGF4aW9zQXV0aCA9IHtcbiAgICB1c2VybmFtZTogYXV0aC51c2VybmFtZSB8fCBhdXRoLnVzZXIsXG4gICAgcGFzc3dvcmQ6IGF1dGgucGFzc3dvcmQgfHwgYXV0aC5wYXNzLFxuICB9O1xuICByZXR1cm4gKGF4aW9zQXV0aC51c2VybmFtZSAmJiBheGlvc0F1dGgucGFzc3dvcmQpID8gYXhpb3NBdXRoIDogbnVsbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBsb2FkRmlsZVRvSHR0cCAobG9jYWxGaWxlU3RyZWFtLCBwYXJzZWRVcmksIHVwbG9hZE9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgbWV0aG9kID0gJ1BPU1QnLFxuICAgIHRpbWVvdXQgPSA1MDAwLFxuICAgIGhlYWRlcnMsXG4gICAgYXV0aCxcbiAgICBmaWxlRmllbGROYW1lID0gJ2ZpbGUnLFxuICAgIGZvcm1GaWVsZHMsXG4gIH0gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCB7IGhyZWYgfSA9IHBhcnNlZFVyaTtcblxuICBjb25zdCByZXF1ZXN0T3B0cyA9IHtcbiAgICB1cmw6IGhyZWYsXG4gICAgbWV0aG9kLFxuICAgIHRpbWVvdXQsXG4gICAgbWF4Q29udGVudExlbmd0aDogSW5maW5pdHksXG4gICAgbWF4Qm9keUxlbmd0aDogSW5maW5pdHksXG4gIH07XG4gIGNvbnN0IGF4aW9zQXV0aCA9IHRvQXhpb3NBdXRoKGF1dGgpO1xuICBpZiAoYXhpb3NBdXRoKSB7XG4gICAgcmVxdWVzdE9wdHMuYXV0aCA9IGF4aW9zQXV0aDtcbiAgfVxuICBpZiAoZmlsZUZpZWxkTmFtZSkge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtLmFwcGVuZChmaWxlRmllbGROYW1lLCBsb2NhbEZpbGVTdHJlYW0pO1xuICAgIGlmIChmb3JtRmllbGRzKSB7XG4gICAgICBsZXQgcGFpcnMgPSBbXTtcbiAgICAgIGlmIChfLmlzQXJyYXkoZm9ybUZpZWxkcykpIHtcbiAgICAgICAgcGFpcnMgPSBmb3JtRmllbGRzO1xuICAgICAgfSBlbHNlIGlmIChfLmlzUGxhaW5PYmplY3QoZm9ybUZpZWxkcykpIHtcbiAgICAgICAgcGFpcnMgPSBfLnRvUGFpcnMoZm9ybUZpZWxkcyk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBwYWlycykge1xuICAgICAgICBpZiAoXy50b0xvd2VyKGtleSkgIT09IF8udG9Mb3dlcihmaWxlRmllbGROYW1lKSkge1xuICAgICAgICAgIGZvcm0uYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJlcXVlc3RPcHRzLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCBfLmlzUGxhaW5PYmplY3QoaGVhZGVycykgPyBoZWFkZXJzIDoge30sXG4gICAgICBmb3JtLmdldEhlYWRlcnMoKSk7XG4gICAgcmVxdWVzdE9wdHMuZGF0YSA9IGZvcm07XG4gIH0gZWxzZSB7XG4gICAgaWYgKF8uaXNQbGFpbk9iamVjdChoZWFkZXJzKSkge1xuICAgICAgcmVxdWVzdE9wdHMuaGVhZGVycyA9IGhlYWRlcnM7XG4gICAgfVxuICAgIHJlcXVlc3RPcHRzLmRhdGEgPSBsb2NhbEZpbGVTdHJlYW07XG4gIH1cbiAgbG9nLmRlYnVnKGBQZXJmb3JtaW5nICR7bWV0aG9kfSB0byAke2hyZWZ9IHdpdGggb3B0aW9ucyAoZXhjbHVkaW5nIGRhdGEpOiBgICtcbiAgICBKU09OLnN0cmluZ2lmeShfLm9taXQocmVxdWVzdE9wdHMsIFsnZGF0YSddKSkpO1xuXG4gIGNvbnN0IHtzdGF0dXMsIHN0YXR1c1RleHR9ID0gYXdhaXQgYXhpb3MocmVxdWVzdE9wdHMpO1xuICBsb2cuaW5mbyhgU2VydmVyIHJlc3BvbnNlOiAke3N0YXR1c30gJHtzdGF0dXNUZXh0fWApO1xufVxuXG5hc3luYyBmdW5jdGlvbiB1cGxvYWRGaWxlVG9GdHAgKGxvY2FsRmlsZVN0cmVhbSwgcGFyc2VkVXJpLCB1cGxvYWRPcHRpb25zID0ge30pIHtcbiAgY29uc3Qge1xuICAgIGF1dGgsXG4gICAgdXNlcixcbiAgICBwYXNzLFxuICB9ID0gdXBsb2FkT3B0aW9ucztcbiAgY29uc3Qge1xuICAgIGhvc3RuYW1lLFxuICAgIHBvcnQsXG4gICAgcHJvdG9jb2wsXG4gICAgcGF0aG5hbWUsXG4gIH0gPSBwYXJzZWRVcmk7XG5cbiAgY29uc3QgZnRwT3B0cyA9IHtcbiAgICBob3N0OiBob3N0bmFtZSxcbiAgICBwb3J0OiBwb3J0IHx8IDIxLFxuICB9O1xuICBpZiAoKGF1dGg/LnVzZXIgJiYgYXV0aD8ucGFzcykgfHwgKHVzZXIgJiYgcGFzcykpIHtcbiAgICBmdHBPcHRzLnVzZXIgPSBhdXRoPy51c2VyIHx8IHVzZXI7XG4gICAgZnRwT3B0cy5wYXNzID0gYXV0aD8ucGFzcyB8fCBwYXNzO1xuICB9XG4gIGxvZy5kZWJ1ZyhgJHtwcm90b2NvbH0gdXBsb2FkIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkoZnRwT3B0cyl9YCk7XG4gIHJldHVybiBhd2FpdCBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgbmV3IEZ0cChmdHBPcHRzKS5wdXQobG9jYWxGaWxlU3RyZWFtLCBwYXRobmFtZSwgKGVycikgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gQXV0aENyZWRlbnRpYWxzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdXNlciAtIE5vbi1lbXB0eSB1c2VyIG5hbWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXNzIC0gTm9uLWVtcHR5IHBhc3N3b3JkXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBGdHBVcGxvYWRPcHRpb25zXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzTWV0ZXJlZCBbdHJ1ZV0gLSBXaGV0aGVyIHRvIGxvZyB0aGUgYWN0dWFsIHVwbG9hZCBwZXJmb3JtYW5jZVxuICogKGUuZy4gdGltaW5ncyBhbmQgc3BlZWQpXG4gKiBAcHJvcGVydHkge0F1dGhDcmVkZW50aWFsc30gYXV0aFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gSHR0cFVwbG9hZE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNNZXRlcmVkIFt0cnVlXSAtIFdoZXRoZXIgdG8gbG9nIHRoZSBhY3R1YWwgdXBsb2FkIHBlcmZvcm1hbmNlXG4gKiAoZS5nLiB0aW1pbmdzIGFuZCBzcGVlZClcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBtZXRob2QgW1BPU1RdIC0gVGhlIEhUVFAgbWV0aG9kIHVzZWQgZm9yIGZpbGUgdXBsb2FkXG4gKiBAcHJvcGVydHkge0F1dGhDcmVkZW50aWFsc30gYXV0aFxuICogQHByb3BlcnR5IHtudW1iZXJ9IHRpbWVvdXQgWzUwMDBdIC0gVGhlIGFjdHVhbCByZXF1ZXN0IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gKiBAcHJvcGVydHkge09iamVjdH0gaGVhZGVycyAtIEFkZGl0aW9uYWwgcmVxdWVzdCBoZWFkZXJzIG1hcHBpbmdcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZmlsZUZpZWxkTmFtZSBbZmlsZV0gLSBUaGUgbmFtZSBvZiB0aGUgZm9ybSBmaWVsZCBjb250YWluaW5nIHRoZSBmaWxlXG4gKiBjb250ZW50IHRvIGJlIHVwbG9hZGVkLiBBbnkgZmFsc3kgdmFsdWUgbWFrZSB0aGUgcmVxdWVzdCB0byB1c2Ugbm9uLW11bHRpcGFydCB1cGxvYWRcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8UGFpcj58T2JqZWN0fSBmb3JtRmllbGRzIC0gVGhlIGFkZGl0aW9uYWwgZm9ybSBmaWVsZHNcbiAqIHRvIGJlIGluY2x1ZGVkIGludG8gdGhlIHVwbG9hZCByZXF1ZXN0LiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgY29uc2lkZXJlZCBpZlxuICogYGZpbGVGaWVsZE5hbWVgIGlzIHNldFxuICovXG5cbi8qKlxuICogVXBsb2FkcyB0aGUgZ2l2ZW4gZmlsZSB0byBhIHJlbW90ZSBsb2NhdGlvbi4gSFRUUChTKSBhbmQgRlRQXG4gKiBwcm90b2NvbHMgYXJlIHN1cHBvcnRlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYWxQYXRoIC0gVGhlIHBhdGggdG8gYSBmaWxlIG9uIHRoZSBsb2NhbCBzdG9yYWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IHJlbW90ZVVyaSAtIFRoZSByZW1vdGUgVVJJIHRvIHVwbG9hZCB0aGUgZmlsZSB0by5cbiAqIEBwYXJhbSB7P0Z0cFVwbG9hZE9wdGlvbnN8SHR0cFVwbG9hZE9wdGlvbnN9IHVwbG9hZE9wdGlvbnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gdXBsb2FkRmlsZSAobG9jYWxQYXRoLCByZW1vdGVVcmksIHVwbG9hZE9wdGlvbnMgPSB7fSkge1xuICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhsb2NhbFBhdGgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yIChgJyR7bG9jYWxQYXRofScgZG9lcyBub3QgZXhpc3RzIG9yIGlzIG5vdCBhY2Nlc3NpYmxlYCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgaXNNZXRlcmVkID0gdHJ1ZSxcbiAgfSA9IHVwbG9hZE9wdGlvbnM7XG5cbiAgY29uc3QgcGFyc2VkVXJpID0gdXJsLnBhcnNlKHJlbW90ZVVyaSk7XG4gIGNvbnN0IHtzaXplfSA9IGF3YWl0IGZzLnN0YXQobG9jYWxQYXRoKTtcbiAgaWYgKGlzTWV0ZXJlZCkge1xuICAgIGxvZy5pbmZvKGBVcGxvYWRpbmcgJyR7bG9jYWxQYXRofScgb2YgJHt0b1JlYWRhYmxlU2l6ZVN0cmluZyhzaXplKX0gc2l6ZSB0byAnJHtyZW1vdGVVcml9J2ApO1xuICB9XG4gIGNvbnN0IHRpbWVyID0gbmV3IFRpbWVyKCkuc3RhcnQoKTtcbiAgaWYgKFsnaHR0cDonLCAnaHR0cHM6J10uaW5jbHVkZXMocGFyc2VkVXJpLnByb3RvY29sKSkge1xuICAgIGlmICghdXBsb2FkT3B0aW9ucy5maWxlRmllbGROYW1lKSB7XG4gICAgICB1cGxvYWRPcHRpb25zLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHt9LFxuICAgICAgICBfLmlzUGxhaW5PYmplY3QodXBsb2FkT3B0aW9ucy5oZWFkZXJzKSA/IHVwbG9hZE9wdGlvbnMuaGVhZGVycyA6IHt9LFxuICAgICAgICB7J0NvbnRlbnQtTGVuZ3RoJzogc2l6ZX1cbiAgICAgICk7XG4gICAgfVxuICAgIGF3YWl0IHVwbG9hZEZpbGVUb0h0dHAoZnMuY3JlYXRlUmVhZFN0cmVhbShsb2NhbFBhdGgpLCBwYXJzZWRVcmksIHVwbG9hZE9wdGlvbnMpO1xuICB9IGVsc2UgaWYgKHBhcnNlZFVyaS5wcm90b2NvbCA9PT0gJ2Z0cDonKSB7XG4gICAgYXdhaXQgdXBsb2FkRmlsZVRvRnRwKGZzLmNyZWF0ZVJlYWRTdHJlYW0obG9jYWxQYXRoKSwgcGFyc2VkVXJpLCB1cGxvYWRPcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCB1cGxvYWQgdGhlIGZpbGUgYXQgJyR7bG9jYWxQYXRofScgdG8gJyR7cmVtb3RlVXJpfScuIGAgK1xuICAgICAgYFVuc3VwcG9ydGVkIHJlbW90ZSBwcm90b2NvbCAnJHtwYXJzZWRVcmkucHJvdG9jb2x9Jy4gYCArXG4gICAgICBgT25seSBodHRwL2h0dHBzIGFuZCBmdHAvZnRwcyBwcm90b2NvbHMgYXJlIHN1cHBvcnRlZC5gKTtcbiAgfVxuICBpZiAoaXNNZXRlcmVkKSB7XG4gICAgbG9nLmluZm8oYFVwbG9hZGVkICcke2xvY2FsUGF0aH0nIG9mICR7dG9SZWFkYWJsZVNpemVTdHJpbmcoc2l6ZSl9IHNpemUgaW4gYCArXG4gICAgICBgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzU2Vjb25kcy50b0ZpeGVkKDMpfXNgKTtcbiAgfVxufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERvd25sb2FkT3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBpc01ldGVyZWQgW3RydWVdIC0gV2hldGhlciB0byBsb2cgdGhlIGFjdHVhbCBkb3dubG9hZCBwZXJmb3JtYW5jZVxuICogKGUuZy4gdGltaW5ncyBhbmQgc3BlZWQpXG4gKiBAcHJvcGVydHkge0F1dGhDcmVkZW50aWFsc30gYXV0aFxuICogQHByb3BlcnR5IHtudW1iZXJ9IHRpbWVvdXQgWzUwMDBdIC0gVGhlIGFjdHVhbCByZXF1ZXN0IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gKiBAcHJvcGVydHkge09iamVjdH0gaGVhZGVycyAtIFJlcXVlc3QgaGVhZGVycyBtYXBwaW5nXG4gKi9cblxuLyoqXG4gKiBEb3dubG9hZHMgdGhlIGdpdmVuIGZpbGUgdmlhIEhUVFAoUylcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtb3RlVXJsIC0gVGhlIHJlbW90ZSB1cmxcbiAqIEBwYXJhbSB7c3RyaW5nfSBkc3RQYXRoIC0gVGhlIGxvY2FsIHBhdGggdG8gZG93bmxvYWQgdGhlIGZpbGUgdG9cbiAqIEBwYXJhbSB7P0Rvd25sb2FkT3B0aW9uc30gZG93bmxvYWRPcHRpb25zXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgZG93bmxvYWQgb3BlcmF0aW9uIGZhaWxzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkRmlsZSAocmVtb3RlVXJsLCBkc3RQYXRoLCBkb3dubG9hZE9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgaXNNZXRlcmVkID0gdHJ1ZSxcbiAgICBhdXRoLFxuICAgIHRpbWVvdXQgPSA1MDAwLFxuICAgIGhlYWRlcnMsXG4gIH0gPSBkb3dubG9hZE9wdGlvbnM7XG5cbiAgY29uc3QgcmVxdWVzdE9wdHMgPSB7XG4gICAgdXJsOiByZW1vdGVVcmwsXG4gICAgcmVzcG9uc2VUeXBlOiAnc3RyZWFtJyxcbiAgICB0aW1lb3V0LFxuICB9O1xuICBjb25zdCBheGlvc0F1dGggPSB0b0F4aW9zQXV0aChhdXRoKTtcbiAgaWYgKGF4aW9zQXV0aCkge1xuICAgIHJlcXVlc3RPcHRzLmF1dGggPSBheGlvc0F1dGg7XG4gIH1cbiAgaWYgKF8uaXNQbGFpbk9iamVjdChoZWFkZXJzKSkge1xuICAgIHJlcXVlc3RPcHRzLmhlYWRlcnMgPSBoZWFkZXJzO1xuICB9XG5cbiAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKS5zdGFydCgpO1xuICBsZXQgcmVzcG9uc2VMZW5ndGg7XG4gIHRyeSB7XG4gICAgY29uc3Qgd3JpdGVyID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oZHN0UGF0aCk7XG4gICAgY29uc3Qge1xuICAgICAgZGF0YTogcmVzcG9uc2VTdHJlYW0sXG4gICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgfSA9IGF3YWl0IGF4aW9zKHJlcXVlc3RPcHRzKTtcbiAgICByZXNwb25zZUxlbmd0aCA9IHBhcnNlSW50KHJlc3BvbnNlSGVhZGVyc1snY29udGVudC1sZW5ndGgnXSwgMTApO1xuICAgIHJlc3BvbnNlU3RyZWFtLnBpcGUod3JpdGVyKTtcblxuICAgIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHJlc3BvbnNlU3RyZWFtLm9uY2UoJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIHdyaXRlci5vbmNlKCdmaW5pc2gnLCByZXNvbHZlKTtcbiAgICAgIHdyaXRlci5vbmNlKCdlcnJvcicsIChlKSA9PiB7XG4gICAgICAgIHJlc3BvbnNlU3RyZWFtLnVucGlwZSh3cml0ZXIpO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZG93bmxvYWQgdGhlIGZpbGUgZnJvbSAke3JlbW90ZVVybH06ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICBjb25zdCB7c2l6ZX0gPSBhd2FpdCBmcy5zdGF0KGRzdFBhdGgpO1xuICBpZiAocmVzcG9uc2VMZW5ndGggJiYgc2l6ZSAhPT0gcmVzcG9uc2VMZW5ndGgpIHtcbiAgICBhd2FpdCBmcy5yaW1yYWYoZHN0UGF0aCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgc2l6ZSBvZiB0aGUgZmlsZSBkb3dubG9hZGVkIGZyb20gJHtyZW1vdGVVcmx9ICgke3NpemV9IGJ5dGVzKSBgICtcbiAgICAgIGBkaWZmZXJzIGZyb20gdGhlIG9uZSBpbiBDb250ZW50LUxlbmd0aCByZXNwb25zZSBoZWFkZXIgKCR7cmVzcG9uc2VMZW5ndGh9IGJ5dGVzKWApO1xuICB9XG4gIGlmIChpc01ldGVyZWQpIHtcbiAgICBjb25zdCBzZWNvbmRzRWxhcHNlZCA9IHRpbWVyLmdldER1cmF0aW9uKCkuYXNTZWNvbmRzO1xuICAgIGxvZy5kZWJ1ZyhgJHtyZW1vdGVVcmx9ICgke3RvUmVhZGFibGVTaXplU3RyaW5nKHNpemUpfSkgYCArXG4gICAgICBgaGFzIGJlZW4gZG93bmxvYWRlZCB0byAnJHtkc3RQYXRofScgaW4gJHtzZWNvbmRzRWxhcHNlZC50b0ZpeGVkKDMpfXNgKTtcbiAgICBpZiAoc2Vjb25kc0VsYXBzZWQgPj0gMikge1xuICAgICAgY29uc3QgYnl0ZXNQZXJTZWMgPSBNYXRoLmZsb29yKHNpemUgLyBzZWNvbmRzRWxhcHNlZCk7XG4gICAgICBsb2cuZGVidWcoYEFwcHJveGltYXRlIGRvd25sb2FkIHNwZWVkOiAke3RvUmVhZGFibGVTaXplU3RyaW5nKGJ5dGVzUGVyU2VjKX0vc2ApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgeyB1cGxvYWRGaWxlLCBkb3dubG9hZEZpbGUgfTtcbiJdLCJmaWxlIjoibGliL25ldC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9

@@ -34,6 +34,3 @@ import _ from 'lodash';

} = uploadOptions;
const {
protocol,
href,
} = parsedUri;
const { href } = parsedUri;

@@ -44,2 +41,4 @@ const requestOpts = {

timeout,
maxContentLength: Infinity,
maxBodyLength: Infinity,
};

@@ -50,24 +49,32 @@ const axiosAuth = toAxiosAuth(auth);

}
const form = new FormData();
form.append(fileFieldName, localFileStream);
if (formFields) {
let pairs = [];
if (_.isArray(formFields)) {
pairs = formFields;
} else if (_.isPlainObject(formFields)) {
pairs = _.toPairs(formFields);
}
for (const [key, value] of pairs) {
if (_.toLower(key) !== _.toLower(fileFieldName)) {
form.append(key, value);
if (fileFieldName) {
const form = new FormData();
form.append(fileFieldName, localFileStream);
if (formFields) {
let pairs = [];
if (_.isArray(formFields)) {
pairs = formFields;
} else if (_.isPlainObject(formFields)) {
pairs = _.toPairs(formFields);
}
for (const [key, value] of pairs) {
if (_.toLower(key) !== _.toLower(fileFieldName)) {
form.append(key, value);
}
}
}
requestOpts.headers = Object.assign({}, _.isPlainObject(headers) ? headers : {},
form.getHeaders());
requestOpts.data = form;
} else {
if (_.isPlainObject(headers)) {
requestOpts.headers = headers;
}
requestOpts.data = localFileStream;
}
requestOpts.headers = Object.assign({}, _.isPlainObject(headers) ? headers : {}, form.getHeaders());
log.debug(`Performing ${method} to ${href} with options (excluding data): ` +
JSON.stringify(_.omit(requestOpts, ['data'])));
// exclude form data from the log since it'll contain the entire recorded video
log.debug(`${protocol} upload options (ex. form data): ${JSON.stringify(requestOpts)}`);
requestOpts.data = form;
await axios(requestOpts);
const {status, statusText} = await axios(requestOpts);
log.info(`Server response: ${status} ${statusText}`);
}

@@ -129,4 +136,4 @@

* @property {Object} headers - Additional request headers mapping
* @property {string} fileFieldName [file] - The name of the form field containing the file
* content to be uploaded
* @property {?string} fileFieldName [file] - The name of the form field containing the file
* content to be uploaded. Any falsy value make the request to use non-multipart upload
* @property {Array<Pair>|Object} formFields - The additional form fields

@@ -157,6 +164,12 @@ * to be included into the upload request. This property is only considered if

if (isMetered) {
log.info(`Uploading '${localPath}' of ${toReadableSizeString(size)} size to '${remoteUri}'...`);
log.info(`Uploading '${localPath}' of ${toReadableSizeString(size)} size to '${remoteUri}'`);
}
const timer = new Timer().start();
if (['http:', 'https:'].includes(parsedUri.protocol)) {
if (!uploadOptions.fileFieldName) {
uploadOptions.headers = Object.assign({},
_.isPlainObject(uploadOptions.headers) ? uploadOptions.headers : {},
{'Content-Length': size}
);
}
await uploadFileToHttp(fs.createReadStream(localPath), parsedUri, uploadOptions);

@@ -171,3 +184,4 @@ } else if (parsedUri.protocol === 'ftp:') {

if (isMetered) {
log.info(`Uploaded '${localPath}' of ${toReadableSizeString(size)} size in ${timer.getDuration().asSeconds.toFixed(3)}s`);
log.info(`Uploaded '${localPath}' of ${toReadableSizeString(size)} size in ` +
`${timer.getDuration().asSeconds.toFixed(3)}s`);
}

@@ -174,0 +188,0 @@ }

@@ -7,3 +7,3 @@ {

],
"version": "2.50.1",
"version": "2.51.0",
"author": "appium",

@@ -39,4 +39,4 @@ "license": "Apache-2.0",

"bplist-creator": "^0",
"bplist-parser": "^0.2",
"form-data": "^3.0.0",
"bplist-parser": "^0.x",
"form-data": "^4.0.0",
"get-stream": "^6.0.0",

@@ -57,3 +57,3 @@ "glob": "^7.1.2",

"pluralize": "^8.0.0",
"pngjs": "^5.0.0",
"pngjs": "^6.0.0",
"rimraf": "^3.0.0",

@@ -60,0 +60,0 @@ "sanitize-filename": "^1.6.1",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc