@axway/amplify-cli-utils
Advanced tools
Comparing version 5.0.0-beta1 to 5.0.0-beta3
@@ -1,2 +0,2 @@ | ||
# v5.0.0-beta1 (Aug 30, 2021) | ||
# v5.0.0 | ||
@@ -8,2 +8,5 @@ * BREAKING CHANGE: Require Node.js 12.13.0 LTS or newer. | ||
([APIGOV-19209](https://jira.axway.com/browse/APIGOV-19209)) | ||
* feat: Added environment titles. | ||
* feat: Added helper function to resolve the environment specific auth config key. | ||
* feat: Added environment argument to platform account initialization. | ||
* chore: Updated dependencies. | ||
@@ -10,0 +13,0 @@ |
@@ -22,3 +22,4 @@ "use strict"; | ||
url: 'http://localhost:8082' | ||
} | ||
}, | ||
title: 'Development' | ||
}, | ||
@@ -32,3 +33,4 @@ preprod: { | ||
url: 'https://registry.axwaytest.net' | ||
} | ||
}, | ||
title: 'Pre-Production' | ||
}, | ||
@@ -42,3 +44,4 @@ prod: { | ||
url: 'https://registry.platform.axway.com' | ||
} | ||
}, | ||
title: 'Production' | ||
} | ||
@@ -77,2 +80,2 @@ }; | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVudmlyb25tZW50cy5qcyJdLCJuYW1lcyI6WyJlbnZpcm9ubWVudHMiLCJkZXYiLCJhdXRoIiwiY2xpZW50SWQiLCJyZWFsbSIsInJlZ2lzdHJ5IiwidXJsIiwicHJlcHJvZCIsInByb2QiLCJtYXBwaW5nIiwiZGV2ZWxvcG1lbnQiLCJwcmVwcm9kdWN0aW9uIiwicHJvZHVjdGlvbiIsInN0YWdpbmciLCJ0ZXN0IiwicmVzb2x2ZSIsImVudiIsImVudmlyb25tZW50IiwiVHlwZUVycm9yIiwidG9Mb3dlckNhc2UiLCJFcnJvciIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1BLFlBQVksR0FBRztBQUMzQkMsRUFBQUEsR0FBRyxFQUFFO0FBQ0pDLElBQUFBLElBQUksRUFBRTtBQUNMQyxNQUFBQSxRQUFRLEVBQUUsaUJBREw7QUFFTEMsTUFBQUEsS0FBSyxFQUFFO0FBRkYsS0FERjtBQUtKQyxJQUFBQSxRQUFRLEVBQUU7QUFDVEMsTUFBQUEsR0FBRyxFQUFFO0FBREk7QUFMTixHQURzQjtBQVUzQkMsRUFBQUEsT0FBTyxFQUFFO0FBQ1JMLElBQUFBLElBQUksRUFBRTtBQUNMQyxNQUFBQSxRQUFRLEVBQUUsYUFETDtBQUVMQyxNQUFBQSxLQUFLLEVBQUU7QUFGRixLQURFO0FBS1JDLElBQUFBLFFBQVEsRUFBRTtBQUNUQyxNQUFBQSxHQUFHLEVBQUU7QUFESTtBQUxGLEdBVmtCO0FBbUIzQkUsRUFBQUEsSUFBSSxFQUFFO0FBQ0xOLElBQUFBLElBQUksRUFBRTtBQUNMQyxNQUFBQSxRQUFRLEVBQUUsYUFETDtBQUVMQyxNQUFBQSxLQUFLLEVBQUU7QUFGRixLQUREO0FBS0xDLElBQUFBLFFBQVEsRUFBRTtBQUNUQyxNQUFBQSxHQUFHLEVBQUU7QUFESTtBQUxMO0FBbkJxQixDQUFyQjs7QUE4QlAsTUFBTUcsT0FBTyxHQUFHO0FBQ2ZDLEVBQUFBLFdBQVcsRUFBRSxLQURFO0FBRWZDLEVBQUFBLGFBQWEsRUFBRSxTQUZBO0FBR2Ysb0JBQWtCLFNBSEg7QUFJZkMsRUFBQUEsVUFBVSxFQUFFLE1BSkc7QUFLZkMsRUFBQUEsT0FBTyxFQUFFLFNBTE07QUFNZkMsRUFBQUEsSUFBSSxFQUFFO0FBTlMsQ0FBaEI7O0FBU08sU0FBU0MsT0FBVCxDQUFpQkMsR0FBakIsRUFBc0I7QUFDNUIsTUFBSUMsV0FBVyxHQUFHLE1BQWxCOztBQUNBLE1BQUlELEdBQUosRUFBUztBQUNSLFFBQUksT0FBT0EsR0FBUCxLQUFlLFFBQW5CLEVBQTZCO0FBQzVCLFlBQU0sSUFBSUUsU0FBSixDQUFjLHFDQUFkLENBQU47QUFDQTs7QUFDREQsSUFBQUEsV0FBVyxHQUFHRCxHQUFHLENBQUNHLFdBQUosRUFBZDtBQUNBRixJQUFBQSxXQUFXLEdBQUdSLE9BQU8sQ0FBQ1EsV0FBRCxDQUFQLElBQXdCQSxXQUF0Qzs7QUFDQSxRQUFJLENBQUNqQixZQUFZLENBQUNpQixXQUFELENBQWpCLEVBQWdDO0FBQy9CLFlBQU0sSUFBSUcsS0FBSixDQUFXLHdCQUF1QkosR0FBSSxHQUF0QyxDQUFOO0FBQ0E7QUFDRDs7QUFFRCxTQUFPO0FBQ05LLElBQUFBLElBQUksRUFBRUosV0FEQTtBQUVOLE9BQUdqQixZQUFZLENBQUNpQixXQUFEO0FBRlQsR0FBUDtBQUlBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbnZpcm9ubWVudCBzcGVjaWZpYyBzZXR0aW5ncy5cbiAqXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnRzID0ge1xuXHRkZXY6IHtcblx0XHRhdXRoOiB7XG5cdFx0XHRjbGllbnRJZDogJ2NsaS10ZXN0LXB1YmxpYycsXG5cdFx0XHRyZWFsbTogJ0Jyb2tlcidcblx0XHR9LFxuXHRcdHJlZ2lzdHJ5OiB7XG5cdFx0XHR1cmw6ICdodHRwOi8vbG9jYWxob3N0OjgwODInXG5cdFx0fVxuXHR9LFxuXHRwcmVwcm9kOiB7XG5cdFx0YXV0aDoge1xuXHRcdFx0Y2xpZW50SWQ6ICdhbXBsaWZ5LWNsaScsXG5cdFx0XHRyZWFsbTogJ0Jyb2tlcidcblx0XHR9LFxuXHRcdHJlZ2lzdHJ5OiB7XG5cdFx0XHR1cmw6ICdodHRwczovL3JlZ2lzdHJ5LmF4d2F5dGVzdC5uZXQnXG5cdFx0fVxuXHR9LFxuXHRwcm9kOiB7XG5cdFx0YXV0aDoge1xuXHRcdFx0Y2xpZW50SWQ6ICdhbXBsaWZ5LWNsaScsXG5cdFx0XHRyZWFsbTogJ0Jyb2tlcidcblx0XHR9LFxuXHRcdHJlZ2lzdHJ5OiB7XG5cdFx0XHR1cmw6ICdodHRwczovL3JlZ2lzdHJ5LnBsYXRmb3JtLmF4d2F5LmNvbSdcblx0XHR9XG5cdH1cbn07XG5cbmNvbnN0IG1hcHBpbmcgPSB7XG5cdGRldmVsb3BtZW50OiAnZGV2Jyxcblx0cHJlcHJvZHVjdGlvbjogJ3ByZXByb2QnLFxuXHQncHJlLXByb2R1Y3Rpb24nOiAncHJlcHJvZCcsXG5cdHByb2R1Y3Rpb246ICdwcm9kJyxcblx0c3RhZ2luZzogJ3ByZXByb2QnLFxuXHR0ZXN0OiAncHJlcHJvZCdcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGVudikge1xuXHRsZXQgZW52aXJvbm1lbnQgPSAncHJvZCc7XG5cdGlmIChlbnYpIHtcblx0XHRpZiAodHlwZW9mIGVudiAhPT0gJ3N0cmluZycpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGVudmlyb25tZW50IHRvIGJlIGEgc3RyaW5nJyk7XG5cdFx0fVxuXHRcdGVudmlyb25tZW50ID0gZW52LnRvTG93ZXJDYXNlKCk7XG5cdFx0ZW52aXJvbm1lbnQgPSBtYXBwaW5nW2Vudmlyb25tZW50XSB8fCBlbnZpcm9ubWVudDtcblx0XHRpZiAoIWVudmlyb25tZW50c1tlbnZpcm9ubWVudF0pIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBlbnZpcm9ubWVudCBcIiR7ZW52fVwiYCk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRuYW1lOiBlbnZpcm9ubWVudCxcblx0XHQuLi5lbnZpcm9ubWVudHNbZW52aXJvbm1lbnRdXG5cdH07XG59XG4iXSwiZmlsZSI6ImVudmlyb25tZW50cy5qcyJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVudmlyb25tZW50cy5qcyJdLCJuYW1lcyI6WyJlbnZpcm9ubWVudHMiLCJkZXYiLCJhdXRoIiwiY2xpZW50SWQiLCJyZWFsbSIsInJlZ2lzdHJ5IiwidXJsIiwidGl0bGUiLCJwcmVwcm9kIiwicHJvZCIsIm1hcHBpbmciLCJkZXZlbG9wbWVudCIsInByZXByb2R1Y3Rpb24iLCJwcm9kdWN0aW9uIiwic3RhZ2luZyIsInRlc3QiLCJyZXNvbHZlIiwiZW52IiwiZW52aXJvbm1lbnQiLCJUeXBlRXJyb3IiLCJ0b0xvd2VyQ2FzZSIsIkVycm9yIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUEsWUFBWSxHQUFHO0FBQzNCQyxFQUFBQSxHQUFHLEVBQUU7QUFDSkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0xDLE1BQUFBLFFBQVEsRUFBRSxpQkFETDtBQUVMQyxNQUFBQSxLQUFLLEVBQUU7QUFGRixLQURGO0FBS0pDLElBQUFBLFFBQVEsRUFBRTtBQUNUQyxNQUFBQSxHQUFHLEVBQUU7QUFESSxLQUxOO0FBUUpDLElBQUFBLEtBQUssRUFBRTtBQVJILEdBRHNCO0FBVzNCQyxFQUFBQSxPQUFPLEVBQUU7QUFDUk4sSUFBQUEsSUFBSSxFQUFFO0FBQ0xDLE1BQUFBLFFBQVEsRUFBRSxhQURMO0FBRUxDLE1BQUFBLEtBQUssRUFBRTtBQUZGLEtBREU7QUFLUkMsSUFBQUEsUUFBUSxFQUFFO0FBQ1RDLE1BQUFBLEdBQUcsRUFBRTtBQURJLEtBTEY7QUFRUkMsSUFBQUEsS0FBSyxFQUFFO0FBUkMsR0FYa0I7QUFxQjNCRSxFQUFBQSxJQUFJLEVBQUU7QUFDTFAsSUFBQUEsSUFBSSxFQUFFO0FBQ0xDLE1BQUFBLFFBQVEsRUFBRSxhQURMO0FBRUxDLE1BQUFBLEtBQUssRUFBRTtBQUZGLEtBREQ7QUFLTEMsSUFBQUEsUUFBUSxFQUFFO0FBQ1RDLE1BQUFBLEdBQUcsRUFBRTtBQURJLEtBTEw7QUFRTEMsSUFBQUEsS0FBSyxFQUFFO0FBUkY7QUFyQnFCLENBQXJCOztBQWlDUCxNQUFNRyxPQUFPLEdBQUc7QUFDZkMsRUFBQUEsV0FBVyxFQUFFLEtBREU7QUFFZkMsRUFBQUEsYUFBYSxFQUFFLFNBRkE7QUFHZixvQkFBa0IsU0FISDtBQUlmQyxFQUFBQSxVQUFVLEVBQUUsTUFKRztBQUtmQyxFQUFBQSxPQUFPLEVBQUUsU0FMTTtBQU1mQyxFQUFBQSxJQUFJLEVBQUU7QUFOUyxDQUFoQjs7QUFTTyxTQUFTQyxPQUFULENBQWlCQyxHQUFqQixFQUFzQjtBQUM1QixNQUFJQyxXQUFXLEdBQUcsTUFBbEI7O0FBQ0EsTUFBSUQsR0FBSixFQUFTO0FBQ1IsUUFBSSxPQUFPQSxHQUFQLEtBQWUsUUFBbkIsRUFBNkI7QUFDNUIsWUFBTSxJQUFJRSxTQUFKLENBQWMscUNBQWQsQ0FBTjtBQUNBOztBQUNERCxJQUFBQSxXQUFXLEdBQUdELEdBQUcsQ0FBQ0csV0FBSixFQUFkO0FBQ0FGLElBQUFBLFdBQVcsR0FBR1IsT0FBTyxDQUFDUSxXQUFELENBQVAsSUFBd0JBLFdBQXRDOztBQUNBLFFBQUksQ0FBQ2xCLFlBQVksQ0FBQ2tCLFdBQUQsQ0FBakIsRUFBZ0M7QUFDL0IsWUFBTSxJQUFJRyxLQUFKLENBQVcsd0JBQXVCSixHQUFJLEdBQXRDLENBQU47QUFDQTtBQUNEOztBQUVELFNBQU87QUFDTkssSUFBQUEsSUFBSSxFQUFFSixXQURBO0FBRU4sT0FBR2xCLFlBQVksQ0FBQ2tCLFdBQUQ7QUFGVCxHQUFQO0FBSUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVudmlyb25tZW50IHNwZWNpZmljIHNldHRpbmdzLlxuICpcbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudHMgPSB7XG5cdGRldjoge1xuXHRcdGF1dGg6IHtcblx0XHRcdGNsaWVudElkOiAnY2xpLXRlc3QtcHVibGljJyxcblx0XHRcdHJlYWxtOiAnQnJva2VyJ1xuXHRcdH0sXG5cdFx0cmVnaXN0cnk6IHtcblx0XHRcdHVybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA4Midcblx0XHR9LFxuXHRcdHRpdGxlOiAnRGV2ZWxvcG1lbnQnXG5cdH0sXG5cdHByZXByb2Q6IHtcblx0XHRhdXRoOiB7XG5cdFx0XHRjbGllbnRJZDogJ2FtcGxpZnktY2xpJyxcblx0XHRcdHJlYWxtOiAnQnJva2VyJ1xuXHRcdH0sXG5cdFx0cmVnaXN0cnk6IHtcblx0XHRcdHVybDogJ2h0dHBzOi8vcmVnaXN0cnkuYXh3YXl0ZXN0Lm5ldCdcblx0XHR9LFxuXHRcdHRpdGxlOiAnUHJlLVByb2R1Y3Rpb24nXG5cdH0sXG5cdHByb2Q6IHtcblx0XHRhdXRoOiB7XG5cdFx0XHRjbGllbnRJZDogJ2FtcGxpZnktY2xpJyxcblx0XHRcdHJlYWxtOiAnQnJva2VyJ1xuXHRcdH0sXG5cdFx0cmVnaXN0cnk6IHtcblx0XHRcdHVybDogJ2h0dHBzOi8vcmVnaXN0cnkucGxhdGZvcm0uYXh3YXkuY29tJ1xuXHRcdH0sXG5cdFx0dGl0bGU6ICdQcm9kdWN0aW9uJ1xuXHR9XG59O1xuXG5jb25zdCBtYXBwaW5nID0ge1xuXHRkZXZlbG9wbWVudDogJ2RldicsXG5cdHByZXByb2R1Y3Rpb246ICdwcmVwcm9kJyxcblx0J3ByZS1wcm9kdWN0aW9uJzogJ3ByZXByb2QnLFxuXHRwcm9kdWN0aW9uOiAncHJvZCcsXG5cdHN0YWdpbmc6ICdwcmVwcm9kJyxcblx0dGVzdDogJ3ByZXByb2QnXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShlbnYpIHtcblx0bGV0IGVudmlyb25tZW50ID0gJ3Byb2QnO1xuXHRpZiAoZW52KSB7XG5cdFx0aWYgKHR5cGVvZiBlbnYgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBlbnZpcm9ubWVudCB0byBiZSBhIHN0cmluZycpO1xuXHRcdH1cblx0XHRlbnZpcm9ubWVudCA9IGVudi50b0xvd2VyQ2FzZSgpO1xuXHRcdGVudmlyb25tZW50ID0gbWFwcGluZ1tlbnZpcm9ubWVudF0gfHwgZW52aXJvbm1lbnQ7XG5cdFx0aWYgKCFlbnZpcm9ubWVudHNbZW52aXJvbm1lbnRdKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW52aXJvbm1lbnQgXCIke2Vudn1cImApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7XG5cdFx0bmFtZTogZW52aXJvbm1lbnQsXG5cdFx0Li4uZW52aXJvbm1lbnRzW2Vudmlyb25tZW50XVxuXHR9O1xufVxuIl0sImZpbGUiOiJlbnZpcm9ubWVudHMuanMifQ== |
@@ -9,2 +9,3 @@ "use strict"; | ||
exports.createTable = createTable; | ||
exports.getAuthConfigEnvSpecifier = getAuthConfigEnvSpecifier; | ||
exports.hlVer = hlVer; | ||
@@ -267,2 +268,17 @@ exports.initPlatformAccount = initPlatformAccount; | ||
/** | ||
* Resovles the "auth.*" config key based on your environment. This is used to get or set the | ||
* default account and org. | ||
* | ||
* @param {String} env - The resolved environment name. | ||
* @returns {String} | ||
* | ||
* @example | ||
* config.get(`${getAuthConfigEnvSpecifier(sdk.env.name)}.defaultAccount`); | ||
*/ | ||
function getAuthConfigEnvSpecifier(env) { | ||
return !env || env === 'prod' ? 'auth' : `auth.environment.${env}`; | ||
} | ||
/** | ||
* Highlights the difference between two versions. | ||
@@ -322,2 +338,3 @@ * | ||
* @param {String} [org] - The name, id, or guid of the default organization. | ||
* @param {String} [env] - The environment name. | ||
* @returns {Promise<Object>} | ||
@@ -327,8 +344,11 @@ */ | ||
async function initPlatformAccount(accountName, org) { | ||
async function initPlatformAccount(accountName, org, env) { | ||
const { | ||
config, | ||
sdk | ||
} = initSDK(); | ||
const account = await sdk.auth.find(accountName || config.get('auth.defaultAccount')); | ||
} = initSDK({ | ||
env | ||
}); | ||
const authConfigEnvSpecifier = getAuthConfigEnvSpecifier(sdk.env.name); | ||
const account = await sdk.auth.find(accountName || config.get(`${authConfigEnvSpecifier}.defaultAccount`)); | ||
@@ -350,3 +370,3 @@ if (accountName) { | ||
// check the config for a default org for this account | ||
org = await sdk.org.find(account, config.get(`auth.defaultOrg.${account.hash}`)); | ||
org = await sdk.org.find(account, config.get(`${authConfigEnvSpecifier}.defaultOrg.${account.hash}`)); | ||
} catch (err) { | ||
@@ -406,2 +426,2 @@ // default org was stale, auto detect the default from the account orgs | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIkVycm9yIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJyZXF1aXJlIiwid2FybiIsImN5YW4iLCJncmF5IiwiZ3JlZW4iLCJzbm9vcGxvZ2ciLCJjaGFsayIsImJ1aWxkQXV0aFBhcmFtcyIsIm9wdHMiLCJjb25maWciLCJlbnYiLCJlbnZpcm9ubWVudHMiLCJyZXNvbHZlIiwiZ2V0IiwiY2xpZW50SWQiLCJyZWFsbSIsImF1dGgiLCJwYXJhbXMiLCJwcm9wcyIsImJhc2VVcmwiLCJ1bmRlZmluZWQiLCJjbGllbnRTZWNyZXQiLCJuYW1lIiwiaW50ZXJhY3RpdmVMb2dpblRpbWVvdXQiLCJob21lRGlyIiwibG9jYXRpb25zIiwiYXh3YXlIb21lIiwicGFzc3dvcmQiLCJwbGF0Zm9ybVVybCIsInNlY3JldEZpbGUiLCJzZXJ2ZXJIb3N0Iiwic2VydmVyUG9ydCIsInNlcnZpY2VBY2NvdW50IiwidG9rZW5SZWZyZXNoVGhyZXNob2xkIiwidG9rZW5TdG9yZSIsInRva2VuU3RvcmVEaXIiLCJ0b2tlblN0b3JlVHlwZSIsInVzZXJuYW1lIiwicHJvcCIsIk9iamVjdCIsImtleXMiLCJpc0hlYWRsZXNzIiwic2V0Iiwic2F2ZSIsImVyciIsInJlcXVlc3RPcHRpb25zIiwiY2hlY2tGb3JVcGRhdGUiLCJjdXJyZW50IiwibGF0ZXN0IiwidXBkYXRlQXZhaWxhYmxlIiwibXNnIiwiYWxpZ24iLCJib3JkZXJDb2xvciIsImJvcmRlclN0eWxlIiwibWFyZ2luIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwidG9wIiwicGFkZGluZyIsImNyZWF0ZVRhYmxlIiwiaGVhZCIsImluZGVudCIsIlRhYmxlIiwiY2hhcnMiLCJyZXBlYXQiLCJtaWQiLCJtaWRkbGUiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJhbnNpIiwidG9VcHBlckNhc2UiLCJzdHlsZSIsImJvcmRlciIsImhsVmVyIiwidG9WZXIiLCJmcm9tVmVyIiwic3R5bGVzIiwidmVyc2lvbiIsImZyb20iLCJmcm9tVGFnIiwic3BsaXQiLCJyZXBsYWNlIiwieCIsInBhcnNlSW50IiwidG8iLCJ0b1RhZyIsInRvTWF0Y2giLCJtYXRjaCIsInRhZyIsInRvTnVtIiwiZnJvbU51bSIsImxlbmd0aCIsImNvbmNhdCIsImpvaW4iLCJwdXNoIiwic2hpZnQiLCJpbml0UGxhdGZvcm1BY2NvdW50IiwiYWNjb3VudE5hbWUiLCJvcmciLCJzZGsiLCJpbml0U0RLIiwiYWNjb3VudCIsImZpbmQiLCJpc1BsYXRmb3JtIiwiaGFzaCIsIkFtcGxpZnlTREsiLCJwcm9jZXNzIiwicGxhdGZvcm0iLCJTU0hfVFRZIiwiRElTUExBWSIsInRlc3QiLCJmcyIsInJlYWRGaWxlU3luYyIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7QUFoQkE7QUFDQSxJQUFJLENBQUNBLEtBQUssQ0FBQ0MsaUJBQVgsRUFBOEI7QUFDN0JDLEVBQUFBLE9BQU8sQ0FBQyw2QkFBRCxDQUFQO0FBQ0E7O0FBNkJELE1BQU07QUFBRUMsRUFBQUE7QUFBRixJQUFXLHdCQUFVLG1CQUFWLENBQWpCO0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFGO0FBQVFDLEVBQUFBLElBQVI7QUFBY0MsRUFBQUE7QUFBZCxJQUF3QkMsbUJBQVVDLEtBQXhDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ08sU0FBU0MsZUFBVCxDQUF5QkMsSUFBSSxHQUFHLEVBQWhDLEVBQW9DQyxNQUFwQyxFQUE0QztBQUNsRCxNQUFJLENBQUNELElBQUQsSUFBUyxPQUFPQSxJQUFQLEtBQWdCLFFBQTdCLEVBQXVDO0FBQ3RDLFVBQU0sSUFBSVYsS0FBSixDQUFVLGtDQUFWLENBQU47QUFDQTs7QUFF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QUNsRyxHQUFSLENBQVlvRyxPQUFaLElBQXVCLENBQUNGLE9BQU8sQ0FBQ2xHLEdBQVIsQ0FBWXFHLE9BQXBDLElBQStDLGFBQWFDLElBQWIsQ0FBa0JDLFlBQUdDLFlBQUgsQ0FBZ0IsZ0JBQWhCLEVBQWtDLE1BQWxDLENBQWxCLENBQWhGLENBQUosRUFBbUo7QUFDbEosYUFBTyxJQUFQO0FBQ0E7O0FBQ0QsUUFBSU4sT0FBTyxDQUFDQyxRQUFSLEtBQXFCLFFBQXJCLElBQWlDRCxPQUFPLENBQUNsRyxHQUFSLENBQVlvRyxPQUFqRCxFQUEwRDtBQUN6RCxhQUFPLElBQVA7QUFDQTtBQUNELEdBUEQsQ0FPRSxPQUFPSyxDQUFQLEVBQVUsQ0FDWDtBQUNBOztBQUVELFNBQU8sS0FBUDtBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAoIUVycm9yLnByZXBhcmVTdGFja1RyYWNlKSB7XG5cdHJlcXVpcmUoJ3NvdXJjZS1tYXAtc3VwcG9ydC9yZWdpc3RlcicpO1xufVxuXG5pbXBvcnQgQW1wbGlmeVNESywgeyBUZWxlbWV0cnkgfSBmcm9tICdAYXh3YXkvYW1wbGlmeS1zZGsnO1xuaW1wb3J0IGJveGVuIGZyb20gJ2JveGVuJztcbmltcG9ydCBjaGVjayBmcm9tICdjaGVjay1raXQnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBsb2FkQ29uZmlnLCB7IENvbmZpZyB9IGZyb20gJ0BheHdheS9hbXBsaWZ5LWNvbmZpZyc7XG5pbXBvcnQgc25vb3Bsb2dnIGZyb20gJ3Nub29wbG9nZyc7XG5pbXBvcnQgeyBhbnNpIH0gZnJvbSAnY2xpLWtpdCc7XG5pbXBvcnQgeyBjcmVhdGVOUE1SZXF1ZXN0QXJncywgY3JlYXRlUmVxdWVzdENsaWVudCwgY3JlYXRlUmVxdWVzdE9wdGlvbnMgfSBmcm9tICcuL3JlcXVlc3QnO1xuaW1wb3J0ICogYXMgZW52aXJvbm1lbnRzIGZyb20gJy4vZW52aXJvbm1lbnRzJztcbmltcG9ydCAqIGFzIGxvY2F0aW9ucyBmcm9tICcuL2xvY2F0aW9ucyc7XG5pbXBvcnQgKiBhcyByZXF1ZXN0IGZyb20gJ0BheHdheS9hbXBsaWZ5LXJlcXVlc3QnO1xuaW1wb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gJy4vdGVsZW1ldHJ5JztcblxuZXhwb3J0IHtcblx0QW1wbGlmeVNESyxcblx0Q29uZmlnLFxuXHRjcmVhdGVOUE1SZXF1ZXN0QXJncyxcblx0Y3JlYXRlUmVxdWVzdENsaWVudCxcblx0Y3JlYXRlUmVxdWVzdE9wdGlvbnMsXG5cdGVudmlyb25tZW50cyxcblx0bG9hZENvbmZpZyxcblx0bG9jYXRpb25zLFxuXHRyZXF1ZXN0LFxuXHRUZWxlbWV0cnksXG5cdHRlbGVtZXRyeVxufTtcblxuY29uc3QgeyB3YXJuIH0gPSBzbm9vcGxvZ2coJ2FtcGxpZnktY2xpLXV0aWxzJyk7XG5jb25zdCB7IGN5YW4sIGdyYXksIGdyZWVuIH0gPSBzbm9vcGxvZ2cuY2hhbGs7XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIHBhcmFtZXRlcnMgb2JqZWN0IHRvIHBhc3MgaW50byBhbiBBdXRoIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBVc2VyIG9wdGlvbiBvdmVycmlkZXMuXG4gKiBAcGFyYW0ge0NvbmZpZ30gW2NvbmZpZ10gLSBUaGUgQW1wbGlmeSBjb25maWcgb2JqZWN0LlxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQXV0aFBhcmFtcyhvcHRzID0ge30sIGNvbmZpZykge1xuXHRpZiAoIW9wdHMgfHwgdHlwZW9mIG9wdHMgIT09ICdvYmplY3QnKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBvcHRpb25zIHRvIGJlIGFuIG9iamVjdCcpO1xuXHR9XG5cblx0aWYgKCFjb25maWcpIHtcblx0XHRjb25maWcgPSBsb2FkQ29uZmlnKCk7XG5cdH1cblxuXHRjb25zdCBlbnYgPSBlbnZpcm9ubWVudHMucmVzb2x2ZShvcHRzLmVudiB8fCBjb25maWcuZ2V0KCdlbnYnKSk7XG5cblx0Y29uc3QgeyBjbGllbnRJZCwgcmVhbG0gfSA9IGVudi5hdXRoO1xuXHRjb25zdCBwYXJhbXMgPSB7fTtcblx0Y29uc3QgcHJvcHMgPSB7XG5cdFx0YmFzZVVybDogICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcblx0XHRjbGllbnRJZCxcblx0XHRjbGllbnRTZWNyZXQ6ICAgICAgICAgICAgdW5kZWZpbmVkLFxuXHRcdGVudjogICAgICAgICAgICAgICAgICAgICBlbnYubmFtZSxcblx0XHRpbnRlcmFjdGl2ZUxvZ2luVGltZW91dDogdW5kZWZpbmVkLFxuXHRcdGhvbWVEaXI6ICAgICAgICAgICAgICAgICBsb2NhdGlvbnMuYXh3YXlIb21lLFxuXHRcdHBhc3N3b3JkOiAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG5cdFx0cGxhdGZvcm1Vcmw6ICAgICAgICAgICAgIHVuZGVmaW5lZCxcblx0XHRyZWFsbSxcblx0XHRzZWNyZXRGaWxlOiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuXHRcdHNlcnZlckhvc3Q6ICAgICAgICAgICAgICB1bmRlZmluZWQsXG5cdFx0c2VydmVyUG9ydDogICAgICAgICAgICAgIHVuZGVmaW5lZCxcblx0XHRzZXJ2aWNlQWNjb3VudDogICAgICAgICAgdW5kZWZpbmVkLFxuXHRcdHRva2VuUmVmcmVzaFRocmVzaG9sZDogICB1bmRlZmluZWQsXG5cdFx0dG9rZW5TdG9yZTogICAgICAgICAgICAgIHVuZGVmaW5lZCxcblx0XHR0b2tlblN0b3JlRGlyOiAgICAgICAgICAgbG9jYXRpb25zLmF4d2F5SG9tZSxcblx0XHR0b2tlblN0b3JlVHlwZTogICAgICAgICAgdW5kZWZpbmVkLFxuXHRcdHVzZXJuYW1lOiAgICAgICAgICAgICAgICB1bmRlZmluZWRcblx0fTtcblxuXHRmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXMocHJvcHMpKSB7XG5cdFx0cGFyYW1zW3Byb3BdID0gb3B0c1twcm9wXSB8fCBjb25maWcuZ2V0KGBhdXRoLiR7cHJvcH1gLCBwcm9wc1twcm9wXSk7XG5cdH1cblxuXHQvLyBkZXRlY3QgaWYgd2UncmUgaGVhZGxlc3MgYW5kIGRlZmF1bHQgdG9rZW4gc3RvcmUgdHlwZSB0byBgZmlsZWBcblx0aWYgKHBhcmFtcy50b2tlblN0b3JlVHlwZSA9PT0gdW5kZWZpbmVkICYmIGlzSGVhZGxlc3MoKSkge1xuXHRcdHBhcmFtcy50b2tlblN0b3JlVHlwZSA9ICdmaWxlJztcblx0XHRjb25maWcuc2V0KCdhdXRoLnRva2VuU3RvcmVUeXBlJywgJ2ZpbGUnKTtcblx0XHR0cnkge1xuXHRcdFx0Y29uZmlnLnNhdmUoKTtcblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdHdhcm4oZXJyKTtcblx0XHR9XG5cdH1cblxuXHRwYXJhbXMucmVxdWVzdE9wdGlvbnMgPSBjcmVhdGVSZXF1ZXN0T3B0aW9ucyhvcHRzLCBjb25maWcpO1xuXG5cdHJldHVybiBwYXJhbXM7XG59XG5cbi8vIGBidWlsZFBhcmFtcygpYCBpcyB0b28gYW1iaWd1b3VzLCBzbyBpdCB3YXMgcmVuYW1lZCB0byBgYnVpbGRBdXRoUGFyYW1zKClgLCBidXQgd2Ugc3RpbGwgbmVlZCB0b1xuLy8gbWFpbnRhaW4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbmV4cG9ydCB7IGJ1aWxkQXV0aFBhcmFtcyBhcyBidWlsZFBhcmFtcyB9O1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIG5ldyB2ZXJzaW9uIG9mIGFuIG5wbSBwYWNrYWdlIGlzIGF2YWlsYWJsZSBhbmQgcmV0dXJucyBhIHN0cmluZyB3aXRoIHRoZSBmb3JtYXR0ZWRcbiAqIHVwZGF0ZSBtZXNzYWdlLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBDaGVjayB1cGRhdGUgYW5kIHJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRzLmNoZWNrSW50ZXJ2YWw9MzYwMDAwMF0gLSBUaGUgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZVxuICogY2hlY2tpbmcgZm9yIGFuIHVwZGF0ZS4gRGVmYXVsdHMgdG8gMSBob3VyLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmN3ZF0gLSBUaGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB1c2VkIHRvIGxvY2F0ZSB0aGUgYHBhY2thZ2UuanNvbmAgaWZcbiAqIGBwa2dgIGlzIG5vdCBzcGVjaWZpZWQuXG4gKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuZGlzdFRhZz0nbGF0ZXN0J10gLSBUaGUgdGFnIHRvIGNoZWNrIGZvciB0aGUgbGF0ZXN0IHZlcnNpb24uXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRzLmZvcmNlPWZhbHNlXSAtIEZvcmNlcyBhbiB1cGRhdGUgY2hlY2suXG4gKiBAcGFyYW0ge1N0cmluZ30gW29wdHMubWV0YURpcl0gLSBUaGUgZGlyZWN0b3J5IHRvIHN0b3JlIHBhY2thZ2UgdXBkYXRlIGluZm9ybWF0aW9uLlxuICogQHBhcmFtIHtPYmplY3R8U3RyaW5nfSBbb3B0cy5wa2ddIC0gVGhlIHBhcnNlZCBgcGFja2FnZS5qc29uYCwgcGF0aCB0byB0aGUgcGFja2FnZS5qc29uIGZpbGUsIG9yXG4gKiBmYWxzZXkgYW5kIGl0IHdpbGwgc2NhbiBwYXJlbnQgZGlyZWN0b3JpZXMgbG9va2luZyBmb3IgYSBwYWNrYWdlLmpzb24uXG4gKiBAcGFyYW0ge1N0cmluZ30gW29wdHMucmVnaXN0cnlVcmxdIC0gVGhlIG5wbSByZWdpc3RyeSBVUkwuIEJ5IGRlZmF1bHQsIGl0IHdpbGwgYXV0b2RldGVjdCB0aGVcbiAqIFVSTCBiYXNlZCBvbiB0aGUgcGFja2FnZSBuYW1lL3Njb3BlLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRzLnRpbWVvdXQ9MTAwMF0gLSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0IHRvIHF1ZXJ5IG5wbSBiZWZvcmVcbiAqIHRpbWluZyBvdXQuXG4gKiBAcGFyYW0ge0NvbmZpZ30gW2NvbmZpZ10gLSBBbiBBbXBsaWZ5IENvbmZpZyBpbnN0YW5jZS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGNvbmZpZyBpcyBsb2FkZWRcbiAqIGZyb20gZGlzay5cbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja0ZvclVwZGF0ZShvcHRzLCBjb25maWcpIHtcblx0b3B0cyA9IGNyZWF0ZVJlcXVlc3RPcHRpb25zKG9wdHMsIGNvbmZpZyB8fCBsb2FkQ29uZmlnKCkpO1xuXG5cdGNvbnN0IHtcblx0XHRjdXJyZW50LFxuXHRcdGxhdGVzdCxcblx0XHRuYW1lLFxuXHRcdHVwZGF0ZUF2YWlsYWJsZVxuXHR9ID0gYXdhaXQgY2hlY2sob3B0cyk7XG5cblx0aWYgKHVwZGF0ZUF2YWlsYWJsZSkge1xuXHRcdGNvbnN0IG1zZyA9IGBVcGRhdGUgYXZhaWxhYmxlICR7Z3JheShjdXJyZW50KX0g4oaSICR7Z3JlZW4obGF0ZXN0KX1cXG5SdW4gJHtjeWFuKGBucG0gaSAtZyAke25hbWV9YCl9IHRvIHVwZGF0ZWA7XG5cdFx0cmV0dXJuIGJveGVuKG1zZywge1xuXHRcdFx0YWxpZ246ICdjZW50ZXInLFxuXHRcdFx0Ym9yZGVyQ29sb3I6ICd5ZWxsb3cnLFxuXHRcdFx0Ym9yZGVyU3R5bGU6ICdyb3VuZCcsXG5cdFx0XHRtYXJnaW46IHsgYm90dG9tOiAxLCBsZWZ0OiA0LCByaWdodDogNCwgdG9wOiAxIH0sXG5cdFx0XHRwYWRkaW5nOiB7IGJvdHRvbTogMSwgbGVmdDogNCwgcmlnaHQ6IDQsIHRvcDogMSB9XG5cdFx0fSk7XG5cdH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgdGFibGUgd2l0aCBkZWZhdWx0IHN0eWxlcyBhbmQgcGFkZGluZy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBoZWFkIC0gT25lIG9yIG1vcmUgaGVhZGluZ3MuXG4gKiBAcGFyYW0ge051bWJlcn0gW2luZGVudF0gLSBUaGUgbnVtYmVyIG9mIHNwYWNlcyB0byBpbmRlbnQgdGhlIHRhYmxlLlxuICogQHJldHVybnMge1RhYmxlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGFibGUoaGVhZCwgaW5kZW50ID0gMCkge1xuXHRjb25zdCBUYWJsZSA9IHJlcXVpcmUoJ2NsaS10YWJsZTMnKTtcblx0cmV0dXJuIG5ldyBUYWJsZSh7XG5cdFx0Y2hhcnM6IHtcblx0XHRcdGJvdHRvbTogJycsICdib3R0b20tbGVmdCc6ICcnLCAnYm90dG9tLW1pZCc6ICcnLCAnYm90dG9tLXJpZ2h0JzogJycsXG5cdFx0XHRsZWZ0OiAnICcucmVwZWF0KGluZGVudCksICdsZWZ0LW1pZCc6ICcnLFxuXHRcdFx0bWlkOiAnJywgJ21pZC1taWQnOiAnJywgbWlkZGxlOiAnICAnLFxuXHRcdFx0cmlnaHQ6ICcnLCAncmlnaHQtbWlkJzogJycsXG5cdFx0XHR0b3A6ICcnLCAndG9wLWxlZnQnOiAnJywgJ3RvcC1taWQnOiAnJywgJ3RvcC1yaWdodCc6ICcnXG5cdFx0fSxcblx0XHRoZWFkOiBBcnJheS5pc0FycmF5KGhlYWQpID8gaGVhZC5tYXAoYW5zaS50b1VwcGVyQ2FzZSkgOiBoZWFkLFxuXHRcdHN0eWxlOiB7XG5cdFx0XHRib3JkZXI6IFtdLFxuXHRcdFx0aGVhZDogW10sXG5cdFx0XHQncGFkZGluZy1sZWZ0JzogMCxcblx0XHRcdCdwYWRkaW5nLXJpZ2h0JzogMFxuXHRcdH1cblx0fSk7XG59XG5cbi8qKlxuICogSGlnaGxpZ2h0cyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byB2ZXJzaW9ucy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdG9WZXIgLSBUaGUgbGF0ZXN0IHZlcnNpb24uXG4gKiBAcGFyYW0ge1N0cmluZ30gZnJvbVZlciAtIFRoZSBjdXJyZW50IHZlcnNpb24uXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGxWZXIodG9WZXIsIGZyb21WZXIpIHtcblx0Y29uc3QgeyBncmVlbiB9ID0gc25vb3Bsb2dnLnN0eWxlcztcblx0Y29uc3QgdmVyc2lvbiA9IFtdO1xuXG5cdGxldCBbIGZyb20sIGZyb21UYWcgXSA9IGZyb21WZXIuc3BsaXQoLy0oLispLyk7XG5cdGZyb20gPSBmcm9tLnJlcGxhY2UoL1teLlxcZF0vZywgJycpLnNwbGl0KCcuJykubWFwKHggPT4gcGFyc2VJbnQoeCkpO1xuXG5cdGxldCBbIHRvLCB0b1RhZyBdID0gdG9WZXIuc3BsaXQoLy0oLispLyk7XG5cdGNvbnN0IHRvTWF0Y2ggPSB0by5tYXRjaCgvXihbXlxcZF0rKT8oLispJC8pO1xuXHR0byA9ICh0b01hdGNoID8gdG9NYXRjaFsyXSA6IHRvKS5zcGxpdCgnLicpLm1hcCh4ID0+IHBhcnNlSW50KHgpKTtcblxuXHRjb25zdCB0YWcgPSAoKSA9PiB7XG5cdFx0aWYgKHRvVGFnKSB7XG5cdFx0XHRjb25zdCB0b051bSA9IHRvVGFnLm1hdGNoKC9cXGQrJC8pO1xuXHRcdFx0Y29uc3QgZnJvbU51bSA9IGZyb21UYWcgJiYgZnJvbVRhZy5tYXRjaCgvXFxkKyQvKTtcblx0XHRcdGlmIChmcm9tTnVtICYmIHBhcnNlSW50KGZyb21OdW1bMF0pID49IHBhcnNlSW50KHRvTnVtKSkge1xuXHRcdFx0XHRyZXR1cm4gYC0ke3RvVGFnfWA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gZ3JlZW4oYC0ke3RvVGFnfWApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gJyc7XG5cdH07XG5cblx0d2hpbGUgKHRvLmxlbmd0aCkge1xuXHRcdGlmICh0b1swXSA+IGZyb21bMF0pIHtcblx0XHRcdGlmICh2ZXJzaW9uLmxlbmd0aCkge1xuXHRcdFx0XHRyZXR1cm4gKHRvTWF0Y2ggJiYgdG9NYXRjaFsxXSB8fCAnJykgKyB2ZXJzaW9uLmNvbmNhdChncmVlbih0by5qb2luKCcuJykgKyB0YWcoKSkpLmpvaW4oJy4nKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBncmVlbigodG9NYXRjaCAmJiB0b01hdGNoWzFdIHx8ICcnKSArIHRvLmpvaW4oJy4nKSArIHRhZygpKTtcblx0XHR9XG5cdFx0dmVyc2lvbi5wdXNoKHRvLnNoaWZ0KCkpO1xuXHRcdGZyb20uc2hpZnQoKTtcblx0fVxuXG5cdHJldHVybiAodG9NYXRjaCAmJiB0b01hdGNoWzFdIHx8ICcnKSArIHZlcnNpb24uam9pbignLicpICsgdGFnKCk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIEFtcGxpZnkgU0RLLCBsb2FkcyBhbiBhY2NvdW50LCBhbmQgZmluZHMgdGhlIGRlZmF1bHQgb3JnIGlkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBbYWNjb3VudE5hbWVdIC0gVGhlIG5hbWUgb2YgdGhlIHBsYXRmb3JtIGFjY291bnQgdG8gdXNlLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcmddIC0gVGhlIG5hbWUsIGlkLCBvciBndWlkIG9mIHRoZSBkZWZhdWx0IG9yZ2FuaXphdGlvbi5cbiAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbml0UGxhdGZvcm1BY2NvdW50KGFjY291bnROYW1lLCBvcmcpIHtcblx0Y29uc3QgeyBjb25maWcsIHNkayB9ID0gaW5pdFNESygpO1xuXHRjb25zdCBhY2NvdW50ID0gYXdhaXQgc2RrLmF1dGguZmluZChhY2NvdW50TmFtZSB8fCBjb25maWcuZ2V0KCdhdXRoLmRlZmF1bHRBY2NvdW50JykpO1xuXG5cdGlmIChhY2NvdW50TmFtZSkge1xuXHRcdGlmICghYWNjb3VudCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBBY2NvdW50IFwiJHthY2NvdW50TmFtZX1cIiBub3QgZm91bmRgKTtcblx0XHR9IGVsc2UgaWYgKCFhY2NvdW50LmlzUGxhdGZvcm0pIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgQWNjb3VudCBcIiR7YWNjb3VudE5hbWV9XCIgaXMgbm90IGEgcGxhdGZvcm0gYWNjb3VudFxcblxcblRvIGxvZ2luLCBydW46IGF4d2F5IGF1dGggbG9naW5gKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoIWFjY291bnQgfHwgIWFjY291bnQuaXNQbGF0Zm9ybSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignWW91IG11c3QgYmUgbG9nZ2VkIGludG8gYSBwbGF0Zm9ybSBhY2NvdW50XFxuXFxuVG8gbG9naW4sIHJ1bjogYXh3YXkgYXV0aCBsb2dpbicpO1xuXHR9XG5cblx0aWYgKG9yZykge1xuXHRcdG9yZyA9IGF3YWl0IHNkay5vcmcuZmluZChhY2NvdW50LCBvcmcpO1xuXHR9IGVsc2Uge1xuXHRcdHRyeSB7XG5cdFx0XHQvLyBjaGVjayB0aGUgY29uZmlnIGZvciBhIGRlZmF1bHQgb3JnIGZvciB0aGlzIGFjY291bnRcblx0XHRcdG9yZyA9IGF3YWl0IHNkay5vcmcuZmluZChhY2NvdW50LCBjb25maWcuZ2V0KGBhdXRoLmRlZmF1bHRPcmcuJHthY2NvdW50Lmhhc2h9YCkpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0Ly8gZGVmYXVsdCBvcmcgd2FzIHN0YWxlLCBhdXRvIGRldGVjdCB0aGUgZGVmYXVsdCBmcm9tIHRoZSBhY2NvdW50IG9yZ3Ncblx0XHRcdG9yZyA9IGF3YWl0IHNkay5vcmcuZmluZChhY2NvdW50KTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdGFjY291bnQsXG5cdFx0Y29uZmlnLFxuXHRcdG9yZyxcblx0XHRzZGtcblx0fTtcbn1cblxuLyoqXG4gKiBMb2FkcyB0aGUgY29uZmlnIGFuZCBjcmVhdGVzIGFuIEFtcGxpZnkgU0RLIG9iamVjdCwgdGhlbiByZXR1cm5zIGJvdGggb2YgdGhlbS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gU0RLIG9wdGlvbnMgaW5jbHVkaW5nIGBlbnZgIGFuZCBhdXRoIG9wdGlvbnMuXG4gKiBAcGFyYW0ge09iamVjdH0gW2NvbmZpZ10gLSBUaGUgQW1wbGlmeSBjb25maWcuIElmIG5vdCBwYXNzZWQgaW4sIHRoZSBjb25maWcgZmlsZSBpcyBsb2FkZWQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBBeHdheSBDTEkgY29uZmlnIGFuZCBhbiBpbml0aWFsaXplZFxuICogQW1wbGlmeSBTREsgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0U0RLKG9wdHMgPSB7fSwgY29uZmlnKSB7XG5cdGlmICghY29uZmlnKSB7XG5cdFx0Y29uZmlnID0gbG9hZENvbmZpZygpO1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRjb25maWcsXG5cdFx0c2RrOiBuZXcgQW1wbGlmeVNESyhidWlsZEF1dGhQYXJhbXMob3B0cywgY29uZmlnKSlcblx0fTtcbn1cblxuLyoqXG4gKiBEZXRlY3RzIGlmIHRoZSBjdXJyZW50IHRlcm1pbmFsIGlzIGhlYWRsZXNzIChlLmcuIGEgRG9ja2VyIGNvbnRhaW5lciBvciBTU0ggc2Vzc2lvbikuXG4gKlxuICogQHJldHVybnMge0Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0hlYWRsZXNzKCkge1xuXHR0cnkge1xuXHRcdGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnbGludXgnICYmIChwcm9jZXNzLmVudi5TU0hfVFRZIHx8ICFwcm9jZXNzLmVudi5ESVNQTEFZIHx8IC9kb2NrZXJ8bHhjLy50ZXN0KGZzLnJlYWRGaWxlU3luYygnL3Byb2MvMS9jZ3JvdXAnLCAndXRmOCcpKSkpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ2RhcndpbicgJiYgcHJvY2Vzcy5lbnYuU1NIX1RUWSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9IGNhdGNoIChlKSB7XG5cdFx0Ly8gZG8gbm90aGluZ1xuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufVxuIl0sImZpbGUiOiJpbmRleC5qcyJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIkVycm9yIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJyZXF1aXJlIiwid2FybiIsImN5YW4iLCJncmF5IiwiZ3JlZW4iLCJzbm9vcGxvZ2ciLCJjaGFsayIsImJ1aWxkQXV0aFBhcmFtcyIsIm9wdHMiLCJjb25maWciLCJlbnYiLCJlbnZpcm9ubWVudHMiLCJyZXNvbHZlIiwiZ2V0IiwiY2xpZW50SWQiLCJyZWFsbSIsImF1dGgiLCJwYXJhbXMiLCJwcm9wcyIsImJhc2VVcmwiLCJ1bmRlZmluZWQiLCJjbGllbnRTZWNyZXQiLCJuYW1lIiwiaW50ZXJhY3RpdmVMb2dpblRpbWVvdXQiLCJob21lRGlyIiwibG9jYXRpb25zIiwiYXh3YXlIb21lIiwicGFzc3dvcmQiLCJwbGF0Zm9ybVVybCIsInNlY3JldEZpbGUiLCJzZXJ2ZXJIb3N0Iiwic2VydmVyUG9ydCIsInNlcnZpY2VBY2NvdW50IiwidG9rZW5SZWZyZXNoVGhyZXNob2xkIiwidG9rZW5TdG9yZSIsInRva2VuU3RvcmVEaXIiLCJ0b2tlblN0b3JlVHlwZSIsInVzZXJuYW1lIiwicHJvcCIsIk9iamVjdCIsImtleXMiLCJpc0hlYWRsZXNzIiwic2V0Iiwic2F2ZSIsImVyciIsInJlcXVlc3RPcHRpb25zIiwiY2hlY2tGb3JVcGRhdGUiLCJjdXJyZW50IiwibGF0ZXN0IiwidXBkYXRlQXZhaWxhYmxlIiwibXNnIiwiYWxpZ24iLCJib3JkZXJDb2xvciIsImJvcmRlclN0eWxlIiwibWFyZ2luIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwidG9wIiwicGFkZGluZyIsImNyZWF0ZVRhYmxlIiwiaGVhZCIsImluZGVudCIsIlRhYmxlIiwiY2hhcnMiLCJyZXBlYXQiLCJtaWQiLCJtaWRkbGUiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJhbnNpIiwidG9VcHBlckNhc2UiLCJzdHlsZSIsImJvcmRlciIsImdldEF1dGhDb25maWdFbnZTcGVjaWZpZXIiLCJobFZlciIsInRvVmVyIiwiZnJvbVZlciIsInN0eWxlcyIsInZlcnNpb24iLCJmcm9tIiwiZnJvbVRhZyIsInNwbGl0IiwicmVwbGFjZSIsIngiLCJwYXJzZUludCIsInRvIiwidG9UYWciLCJ0b01hdGNoIiwibWF0Y2giLCJ0YWciLCJ0b051bSIsImZyb21OdW0iLCJsZW5ndGgiLCJjb25jYXQiLCJqb2luIiwicHVzaCIsInNoaWZ0IiwiaW5pdFBsYXRmb3JtQWNjb3VudCIsImFjY291bnROYW1lIiwib3JnIiwic2RrIiwiaW5pdFNESyIsImF1dGhDb25maWdFbnZTcGVjaWZpZXIiLCJhY2NvdW50IiwiZmluZCIsImlzUGxhdGZvcm0iLCJoYXNoIiwiQW1wbGlmeVNESyIsInByb2Nlc3MiLCJwbGF0Zm9ybSIsIlNTSF9UVFkiLCJESVNQTEFZIiwidGVzdCIsImZzIiwicmVhZEZpbGVTeW5jIiwiZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7QUFoQkE7QUFDQSxJQUFJLENBQUNBLEtBQUssQ0FBQ0MsaUJBQVgsRUFBOEI7QUFDN0JDLEVBQUFBLE9BQU8sQ0FBQyw2QkFBRCxDQUFQO0FBQ0E7O0FBNkJELE1BQU07QUFBRUMsRUFBQUE7QUFBRixJQUFXLHdCQUFVLG1CQUFWLENBQWpCO0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFGO0FBQVFDLEVBQUFBLElBQVI7QUFBY0MsRUFBQUE7QUFBZCxJQUF3QkMsbUJBQVVDLEtBQXhDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ08sU0FBU0MsZUFBVCxDQUF5QkMsSUFBSSxHQUFHLEVBQWhDLEVBQW9DQyxNQUFwQyxFQUE0QztBQUNsRCxNQUFJLENBQUNELElBQUQsSUFBUyxPQUFPQSxJQUFQLEtBQWdCLFFBQTdC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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxTQUFTQyxPQUFULENBQWlCL0YsSUFBSSxHQUFHLEVBQXhCLEVBQTRCQyxNQUE1QixFQUFvQztBQUMxQyxNQUFJLENBQUNBLE1BQUwsRUFBYTtBQUNaQSxJQUFBQSxNQUFNLEdBQUcsNkJBQVQ7QUFDQTs7QUFFRCxTQUFPO0FBQ05BLElBQUFBLE1BRE07QUFFTjZGLElBQUFBLEdBQUcsRUFBRSxJQUFJTyxtQkFBSixDQUFldEcsZUFBZSxDQUFDQyxJQUFELEVBQU9DLE1BQVAsQ0FBOUI7QUFGQyxHQUFQO0FBSUE7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxTQUFTZ0MsVUFBVCxHQUFzQjtBQUM1QixNQUFJO0FBQ0gsUUFBSXFFLE9BQU8sQ0FBQ0MsUUFBUixLQUFxQixPQUFyQixLQUFpQ0QsT0FBTyxDQUFDcEcsR0FBUixDQUFZc0csT0FBWixJQUF1QixDQUFDRixPQUFPLENBQUNwRyxHQUFSLENBQVl1RyxPQUFwQyxJQUErQyxhQUFhQyxJQUFiLENBQWtCQyxZQUFHQyxZQUFILENBQWdCLGdCQUFoQixFQUFrQyxNQUFsQyxDQUFsQixDQUFoRixDQUFKLEVBQW1KO0FBQ2xKLGFBQU8sSUFBUDtBQUNBOztBQUNELFFBQUlOLE9BQU8sQ0FBQ0MsUUFBUixLQUFxQixRQUFyQixJQUFpQ0QsT0FBTyxDQUFDcEcsR0FBUixDQUFZc0csT0FBakQsRUFBMEQ7QUFDekQsYUFBTyxJQUFQO0FBQ0E7QUFDRCxHQVBELENBT0UsT0FBT0ssQ0FBUCxFQUFVLENBQ1g7QUFDQTs7QUFFRCxTQUFPLEtBQVA7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuaWYgKCFFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSkge1xuXHRyZXF1aXJlKCdzb3VyY2UtbWFwLXN1cHBvcnQvcmVnaXN0ZXInKTtcbn1cblxuaW1wb3J0IEFtcGxpZnlTREssIHsgVGVsZW1ldHJ5IH0gZnJvbSAnQGF4d2F5L2FtcGxpZnktc2RrJztcbmltcG9ydCBib3hlbiBmcm9tICdib3hlbic7XG5pbXBvcnQgY2hlY2sgZnJvbSAnY2hlY2sta2l0JztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgbG9hZENvbmZpZywgeyBDb25maWcgfSBmcm9tICdAYXh3YXkvYW1wbGlmeS1jb25maWcnO1xuaW1wb3J0IHNub29wbG9nZyBmcm9tICdzbm9vcGxvZ2cnO1xuaW1wb3J0IHsgYW5zaSB9IGZyb20gJ2NsaS1raXQnO1xuaW1wb3J0IHsgY3JlYXRlTlBNUmVxdWVzdEFyZ3MsIGNyZWF0ZVJlcXVlc3RDbGllbnQsIGNyZWF0ZVJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi9yZXF1ZXN0JztcbmltcG9ydCAqIGFzIGVudmlyb25tZW50cyBmcm9tICcuL2Vudmlyb25tZW50cyc7XG5pbXBvcnQgKiBhcyBsb2NhdGlvbnMgZnJvbSAnLi9sb2NhdGlvbnMnO1xuaW1wb3J0ICogYXMgcmVxdWVzdCBmcm9tICdAYXh3YXkvYW1wbGlmeS1yZXF1ZXN0JztcbmltcG9ydCAqIGFzIHRlbGVtZXRyeSBmcm9tICcuL3RlbGVtZXRyeSc7XG5cbmV4cG9ydCB7XG5cdEFtcGxpZnlTREssXG5cdENvbmZpZyxcblx0Y3JlYXRlTlBNUmVxdWVzdEFyZ3MsXG5cdGNyZWF0ZVJlcXVlc3RDbGllbnQsXG5cdGNyZWF0ZVJlcXVlc3RPcHRpb25zLFxuXHRlbnZpcm9ubWVudHMsXG5cdGxvYWRDb25maWcsXG5cdGxvY2F0aW9ucyxcblx0cmVxdWVzdCxcblx0VGVsZW1ldHJ5LFxuXHR0ZWxlbWV0cnlcbn07XG5cbmNvbnN0IHsgd2FybiB9ID0gc25vb3Bsb2dnKCdhbXBsaWZ5LWNsaS11dGlscycpO1xuY29uc3QgeyBjeWFuLCBncmF5LCBncmVlbiB9ID0gc25vb3Bsb2dnLmNoYWxrO1xuXG4vKipcbiAqIENvbnN0cnVjdHMgYSBwYXJhbWV0ZXJzIG9iamVjdCB0byBwYXNzIGludG8gYW4gQXV0aCBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gVXNlciBvcHRpb24gb3ZlcnJpZGVzLlxuICogQHBhcmFtIHtDb25maWd9IFtjb25maWddIC0gVGhlIEFtcGxpZnkgY29uZmlnIG9iamVjdC5cbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEF1dGhQYXJhbXMob3B0cyA9IHt9LCBjb25maWcpIHtcblx0aWYgKCFvcHRzIHx8IHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykge1xuXHRcdHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgb3B0aW9ucyB0byBiZSBhbiBvYmplY3QnKTtcblx0fVxuXG5cdGlmICghY29uZmlnKSB7XG5cdFx0Y29uZmlnID0gbG9hZENvbmZpZygpO1xuXHR9XG5cblx0Y29uc3QgZW52ID0gZW52aXJvbm1lbnRzLnJlc29sdmUob3B0cy5lbnYgfHwgY29uZmlnLmdldCgnZW52JykpO1xuXG5cdGNvbnN0IHsgY2xpZW50SWQsIHJlYWxtIH0gPSBlbnYuYXV0aDtcblx0Y29uc3QgcGFyYW1zID0ge307XG5cdGNvbnN0IHByb3BzID0ge1xuXHRcdGJhc2VVcmw6ICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG5cdFx0Y2xpZW50SWQsXG5cdFx0Y2xpZW50U2VjcmV0OiAgICAgICAgICAgIHVuZGVmaW5lZCxcblx0XHRlbnY6ICAgICAgICAgICAgICAgICAgICAgZW52Lm5hbWUsXG5cdFx0aW50ZXJhY3RpdmVMb2dpblRpbWVvdXQ6IHVuZGVmaW5lZCxcblx0XHRob21lRGlyOiAgICAgICAgICAgICAgICAgbG9jYXRpb25zLmF4d2F5SG9tZSxcblx0XHRwYXNzd29yZDogICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuXHRcdHBsYXRmb3JtVXJsOiAgICAgICAgICAgICB1bmRlZmluZWQsXG5cdFx0cmVhbG0sXG5cdFx0c2VjcmV0RmlsZTogICAgICAgICAgICAgIHVuZGVmaW5lZCxcblx0XHRzZXJ2ZXJIb3N0OiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuXHRcdHNlcnZlclBvcnQ6ICAgICAgICAgICAgICB1bmRlZmluZWQsXG5cdFx0c2VydmljZUFjY291bnQ6ICAgICAgICAgIHVuZGVmaW5lZCxcblx0XHR0b2tlblJlZnJlc2hUaHJlc2hvbGQ6ICAgdW5kZWZpbmVkLFxuXHRcdHRva2VuU3RvcmU6ICAgICAgICAgICAgICB1bmRlZmluZWQsXG5cdFx0dG9rZW5TdG9yZURpcjogICAgICAgICAgIGxvY2F0aW9ucy5heHdheUhvbWUsXG5cdFx0dG9rZW5TdG9yZVR5cGU6ICAgICAgICAgIHVuZGVmaW5lZCxcblx0XHR1c2VybmFtZTogICAgICAgICAgICAgICAgdW5kZWZpbmVkXG5cdH07XG5cblx0Zm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuXHRcdHBhcmFtc1twcm9wXSA9IG9wdHNbcHJvcF0gfHwgY29uZmlnLmdldChgYXV0aC4ke3Byb3B9YCwgcHJvcHNbcHJvcF0pO1xuXHR9XG5cblx0Ly8gZGV0ZWN0IGlmIHdlJ3JlIGhlYWRsZXNzIGFuZCBkZWZhdWx0IHRva2VuIHN0b3JlIHR5cGUgdG8gYGZpbGVgXG5cdGlmIChwYXJhbXMudG9rZW5TdG9yZVR5cGUgPT09IHVuZGVmaW5lZCAmJiBpc0hlYWRsZXNzKCkpIHtcblx0XHRwYXJhbXMudG9rZW5TdG9yZVR5cGUgPSAnZmlsZSc7XG5cdFx0Y29uZmlnLnNldCgnYXV0aC50b2tlblN0b3JlVHlwZScsICdmaWxlJyk7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbmZpZy5zYXZlKCk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHR3YXJuKGVycik7XG5cdFx0fVxuXHR9XG5cblx0cGFyYW1zLnJlcXVlc3RPcHRpb25zID0gY3JlYXRlUmVxdWVzdE9wdGlvbnMob3B0cywgY29uZmlnKTtcblxuXHRyZXR1cm4gcGFyYW1zO1xufVxuXG4vLyBgYnVpbGRQYXJhbXMoKWAgaXMgdG9vIGFtYmlndW91cywgc28gaXQgd2FzIHJlbmFtZWQgdG8gYGJ1aWxkQXV0aFBhcmFtcygpYCwgYnV0IHdlIHN0aWxsIG5lZWQgdG9cbi8vIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5leHBvcnQgeyBidWlsZEF1dGhQYXJhbXMgYXMgYnVpbGRQYXJhbXMgfTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBuZXcgdmVyc2lvbiBvZiBhbiBucG0gcGFja2FnZSBpcyBhdmFpbGFibGUgYW5kIHJldHVybnMgYSBzdHJpbmcgd2l0aCB0aGUgZm9ybWF0dGVkXG4gKiB1cGRhdGUgbWVzc2FnZS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gQ2hlY2sgdXBkYXRlIGFuZCByZXF1ZXN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAqIEBwYXJhbSB7TnVtYmVyfSBbb3B0cy5jaGVja0ludGVydmFsPTM2MDAwMDBdIC0gVGhlIGFtb3VudCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kcyBiZWZvcmVcbiAqIGNoZWNraW5nIGZvciBhbiB1cGRhdGUuIERlZmF1bHRzIHRvIDEgaG91ci5cbiAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5jd2RdIC0gVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgdXNlZCB0byBsb2NhdGUgdGhlIGBwYWNrYWdlLmpzb25gIGlmXG4gKiBgcGtnYCBpcyBub3Qgc3BlY2lmaWVkLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmRpc3RUYWc9J2xhdGVzdCddIC0gVGhlIHRhZyB0byBjaGVjayBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0cy5mb3JjZT1mYWxzZV0gLSBGb3JjZXMgYW4gdXBkYXRlIGNoZWNrLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLm1ldGFEaXJdIC0gVGhlIGRpcmVjdG9yeSB0byBzdG9yZSBwYWNrYWdlIHVwZGF0ZSBpbmZvcm1hdGlvbi5cbiAqIEBwYXJhbSB7T2JqZWN0fFN0cmluZ30gW29wdHMucGtnXSAtIFRoZSBwYXJzZWQgYHBhY2thZ2UuanNvbmAsIHBhdGggdG8gdGhlIHBhY2thZ2UuanNvbiBmaWxlLCBvclxuICogZmFsc2V5IGFuZCBpdCB3aWxsIHNjYW4gcGFyZW50IGRpcmVjdG9yaWVzIGxvb2tpbmcgZm9yIGEgcGFja2FnZS5qc29uLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnJlZ2lzdHJ5VXJsXSAtIFRoZSBucG0gcmVnaXN0cnkgVVJMLiBCeSBkZWZhdWx0LCBpdCB3aWxsIGF1dG9kZXRlY3QgdGhlXG4gKiBVUkwgYmFzZWQgb24gdGhlIHBhY2thZ2UgbmFtZS9zY29wZS5cbiAqIEBwYXJhbSB7TnVtYmVyfSBbb3B0cy50aW1lb3V0PTEwMDBdIC0gVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCB0byBxdWVyeSBucG0gYmVmb3JlXG4gKiB0aW1pbmcgb3V0LlxuICogQHBhcmFtIHtDb25maWd9IFtjb25maWddIC0gQW4gQW1wbGlmeSBDb25maWcgaW5zdGFuY2UuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBjb25maWcgaXMgbG9hZGVkXG4gKiBmcm9tIGRpc2suXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tGb3JVcGRhdGUob3B0cywgY29uZmlnKSB7XG5cdG9wdHMgPSBjcmVhdGVSZXF1ZXN0T3B0aW9ucyhvcHRzLCBjb25maWcgfHwgbG9hZENvbmZpZygpKTtcblxuXHRjb25zdCB7XG5cdFx0Y3VycmVudCxcblx0XHRsYXRlc3QsXG5cdFx0bmFtZSxcblx0XHR1cGRhdGVBdmFpbGFibGVcblx0fSA9IGF3YWl0IGNoZWNrKG9wdHMpO1xuXG5cdGlmICh1cGRhdGVBdmFpbGFibGUpIHtcblx0XHRjb25zdCBtc2cgPSBgVXBkYXRlIGF2YWlsYWJsZSAke2dyYXkoY3VycmVudCl9IOKGkiAke2dyZWVuKGxhdGVzdCl9XFxuUnVuICR7Y3lhbihgbnBtIGkgLWcgJHtuYW1lfWApfSB0byB1cGRhdGVgO1xuXHRcdHJldHVybiBib3hlbihtc2csIHtcblx0XHRcdGFsaWduOiAnY2VudGVyJyxcblx0XHRcdGJvcmRlckNvbG9yOiAneWVsbG93Jyxcblx0XHRcdGJvcmRlclN0eWxlOiAncm91bmQnLFxuXHRcdFx0bWFyZ2luOiB7IGJvdHRvbTogMSwgbGVmdDogNCwgcmlnaHQ6IDQsIHRvcDogMSB9LFxuXHRcdFx0cGFkZGluZzogeyBib3R0b206IDEsIGxlZnQ6IDQsIHJpZ2h0OiA0LCB0b3A6IDEgfVxuXHRcdH0pO1xuXHR9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHRhYmxlIHdpdGggZGVmYXVsdCBzdHlsZXMgYW5kIHBhZGRpbmcuXG4gKlxuICogQHBhcmFtIHtBcnJheS48U3RyaW5nPn0gaGVhZCAtIE9uZSBvciBtb3JlIGhlYWRpbmdzLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtpbmRlbnRdIC0gVGhlIG51bWJlciBvZiBzcGFjZXMgdG8gaW5kZW50IHRoZSB0YWJsZS5cbiAqIEByZXR1cm5zIHtUYWJsZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRhYmxlKGhlYWQsIGluZGVudCA9IDApIHtcblx0Y29uc3QgVGFibGUgPSByZXF1aXJlKCdjbGktdGFibGUzJyk7XG5cdHJldHVybiBuZXcgVGFibGUoe1xuXHRcdGNoYXJzOiB7XG5cdFx0XHRib3R0b206ICcnLCAnYm90dG9tLWxlZnQnOiAnJywgJ2JvdHRvbS1taWQnOiAnJywgJ2JvdHRvbS1yaWdodCc6ICcnLFxuXHRcdFx0bGVmdDogJyAnLnJlcGVhdChpbmRlbnQpLCAnbGVmdC1taWQnOiAnJyxcblx0XHRcdG1pZDogJycsICdtaWQtbWlkJzogJycsIG1pZGRsZTogJyAgJyxcblx0XHRcdHJpZ2h0OiAnJywgJ3JpZ2h0LW1pZCc6ICcnLFxuXHRcdFx0dG9wOiAnJywgJ3RvcC1sZWZ0JzogJycsICd0b3AtbWlkJzogJycsICd0b3AtcmlnaHQnOiAnJ1xuXHRcdH0sXG5cdFx0aGVhZDogQXJyYXkuaXNBcnJheShoZWFkKSA/IGhlYWQubWFwKGFuc2kudG9VcHBlckNhc2UpIDogaGVhZCxcblx0XHRzdHlsZToge1xuXHRcdFx0Ym9yZGVyOiBbXSxcblx0XHRcdGhlYWQ6IFtdLFxuXHRcdFx0J3BhZGRpbmctbGVmdCc6IDAsXG5cdFx0XHQncGFkZGluZy1yaWdodCc6IDBcblx0XHR9XG5cdH0pO1xufVxuXG4vKipcbiAqIFJlc292bGVzIHRoZSBcImF1dGguKlwiIGNvbmZpZyBrZXkgYmFzZWQgb24geW91ciBlbnZpcm9ubWVudC4gVGhpcyBpcyB1c2VkIHRvIGdldCBvciBzZXQgdGhlXG4gKiBkZWZhdWx0IGFjY291bnQgYW5kIG9yZy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZW52IC0gVGhlIHJlc29sdmVkIGVudmlyb25tZW50IG5hbWUuXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGNvbmZpZy5nZXQoYCR7Z2V0QXV0aENvbmZpZ0VudlNwZWNpZmllcihzZGsuZW52Lm5hbWUpfS5kZWZhdWx0QWNjb3VudGApO1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aENvbmZpZ0VudlNwZWNpZmllcihlbnYpIHtcblx0cmV0dXJuICFlbnYgfHwgZW52ID09PSAncHJvZCcgPyAnYXV0aCcgOiBgYXV0aC5lbnZpcm9ubWVudC4ke2Vudn1gO1xufVxuXG4vKipcbiAqIEhpZ2hsaWdodHMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gdmVyc2lvbnMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHRvVmVyIC0gVGhlIGxhdGVzdCB2ZXJzaW9uLlxuICogQHBhcmFtIHtTdHJpbmd9IGZyb21WZXIgLSBUaGUgY3VycmVudCB2ZXJzaW9uLlxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhsVmVyKHRvVmVyLCBmcm9tVmVyKSB7XG5cdGNvbnN0IHsgZ3JlZW4gfSA9IHNub29wbG9nZy5zdHlsZXM7XG5cdGNvbnN0IHZlcnNpb24gPSBbXTtcblxuXHRsZXQgWyBmcm9tLCBmcm9tVGFnIF0gPSBmcm9tVmVyLnNwbGl0KC8tKC4rKS8pO1xuXHRmcm9tID0gZnJvbS5yZXBsYWNlKC9bXi5cXGRdL2csICcnKS5zcGxpdCgnLicpLm1hcCh4ID0+IHBhcnNlSW50KHgpKTtcblxuXHRsZXQgWyB0bywgdG9UYWcgXSA9IHRvVmVyLnNwbGl0KC8tKC4rKS8pO1xuXHRjb25zdCB0b01hdGNoID0gdG8ubWF0Y2goL14oW15cXGRdKyk/KC4rKSQvKTtcblx0dG8gPSAodG9NYXRjaCA/IHRvTWF0Y2hbMl0gOiB0bykuc3BsaXQoJy4nKS5tYXAoeCA9PiBwYXJzZUludCh4KSk7XG5cblx0Y29uc3QgdGFnID0gKCkgPT4ge1xuXHRcdGlmICh0b1RhZykge1xuXHRcdFx0Y29uc3QgdG9OdW0gPSB0b1RhZy5tYXRjaCgvXFxkKyQvKTtcblx0XHRcdGNvbnN0IGZyb21OdW0gPSBmcm9tVGFnICYmIGZyb21UYWcubWF0Y2goL1xcZCskLyk7XG5cdFx0XHRpZiAoZnJvbU51bSAmJiBwYXJzZUludChmcm9tTnVtWzBdKSA+PSBwYXJzZUludCh0b051bSkpIHtcblx0XHRcdFx0cmV0dXJuIGAtJHt0b1RhZ31gO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIGdyZWVuKGAtJHt0b1RhZ31gKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuICcnO1xuXHR9O1xuXG5cdHdoaWxlICh0by5sZW5ndGgpIHtcblx0XHRpZiAodG9bMF0gPiBmcm9tWzBdKSB7XG5cdFx0XHRpZiAodmVyc2lvbi5sZW5ndGgpIHtcblx0XHRcdFx0cmV0dXJuICh0b01hdGNoICYmIHRvTWF0Y2hbMV0gfHwgJycpICsgdmVyc2lvbi5jb25jYXQoZ3JlZW4odG8uam9pbignLicpICsgdGFnKCkpKS5qb2luKCcuJyk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZ3JlZW4oKHRvTWF0Y2ggJiYgdG9NYXRjaFsxXSB8fCAnJykgKyB0by5qb2luKCcuJykgKyB0YWcoKSk7XG5cdFx0fVxuXHRcdHZlcnNpb24ucHVzaCh0by5zaGlmdCgpKTtcblx0XHRmcm9tLnNoaWZ0KCk7XG5cdH1cblxuXHRyZXR1cm4gKHRvTWF0Y2ggJiYgdG9NYXRjaFsxXSB8fCAnJykgKyB2ZXJzaW9uLmpvaW4oJy4nKSArIHRhZygpO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBBbXBsaWZ5IFNESywgbG9hZHMgYW4gYWNjb3VudCwgYW5kIGZpbmRzIHRoZSBkZWZhdWx0IG9yZyBpZC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gW2FjY291bnROYW1lXSAtIFRoZSBuYW1lIG9mIHRoZSBwbGF0Zm9ybSBhY2NvdW50IHRvIHVzZS5cbiAqIEBwYXJhbSB7U3RyaW5nfSBbb3JnXSAtIFRoZSBuYW1lLCBpZCwgb3IgZ3VpZCBvZiB0aGUgZGVmYXVsdCBvcmdhbml6YXRpb24uXG4gKiBAcGFyYW0ge1N0cmluZ30gW2Vudl0gLSBUaGUgZW52aXJvbm1lbnQgbmFtZS5cbiAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbml0UGxhdGZvcm1BY2NvdW50KGFjY291bnROYW1lLCBvcmcsIGVudikge1xuXHRjb25zdCB7IGNvbmZpZywgc2RrIH0gPSBpbml0U0RLKHsgZW52IH0pO1xuXHRjb25zdCBhdXRoQ29uZmlnRW52U3BlY2lmaWVyID0gZ2V0QXV0aENvbmZpZ0VudlNwZWNpZmllcihzZGsuZW52Lm5hbWUpO1xuXHRjb25zdCBhY2NvdW50ID0gYXdhaXQgc2RrLmF1dGguZmluZChhY2NvdW50TmFtZSB8fCBjb25maWcuZ2V0KGAke2F1dGhDb25maWdFbnZTcGVjaWZpZXJ9LmRlZmF1bHRBY2NvdW50YCkpO1xuXG5cdGlmIChhY2NvdW50TmFtZSkge1xuXHRcdGlmICghYWNjb3VudCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBBY2NvdW50IFwiJHthY2NvdW50TmFtZX1cIiBub3QgZm91bmRgKTtcblx0XHR9IGVsc2UgaWYgKCFhY2NvdW50LmlzUGxhdGZvcm0pIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgQWNjb3VudCBcIiR7YWNjb3VudE5hbWV9XCIgaXMgbm90IGEgcGxhdGZvcm0gYWNjb3VudFxcblxcblRvIGxvZ2luLCBydW46IGF4d2F5IGF1dGggbG9naW5gKTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoIWFjY291bnQgfHwgIWFjY291bnQuaXNQbGF0Zm9ybSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignWW91IG11c3QgYmUgbG9nZ2VkIGludG8gYSBwbGF0Zm9ybSBhY2NvdW50XFxuXFxuVG8gbG9naW4sIHJ1bjogYXh3YXkgYXV0aCBsb2dpbicpO1xuXHR9XG5cblx0aWYgKG9yZykge1xuXHRcdG9yZyA9IGF3YWl0IHNkay5vcmcuZmluZChhY2NvdW50LCBvcmcpO1xuXHR9IGVsc2Uge1xuXHRcdHRyeSB7XG5cdFx0XHQvLyBjaGVjayB0aGUgY29uZmlnIGZvciBhIGRlZmF1bHQgb3JnIGZvciB0aGlzIGFjY291bnRcblx0XHRcdG9yZyA9IGF3YWl0IHNkay5vcmcuZmluZChhY2NvdW50LCBjb25maWcuZ2V0KGAke2F1dGhDb25maWdFbnZTcGVjaWZpZXJ9LmRlZmF1bHRPcmcuJHthY2NvdW50Lmhhc2h9YCkpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0Ly8gZGVmYXVsdCBvcmcgd2FzIHN0YWxlLCBhdXRvIGRldGVjdCB0aGUgZGVmYXVsdCBmcm9tIHRoZSBhY2NvdW50IG9yZ3Ncblx0XHRcdG9yZyA9IGF3YWl0IHNkay5vcmcuZmluZChhY2NvdW50KTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdGFjY291bnQsXG5cdFx0Y29uZmlnLFxuXHRcdG9yZyxcblx0XHRzZGtcblx0fTtcbn1cblxuLyoqXG4gKiBMb2FkcyB0aGUgY29uZmlnIGFuZCBjcmVhdGVzIGFuIEFtcGxpZnkgU0RLIG9iamVjdCwgdGhlbiByZXR1cm5zIGJvdGggb2YgdGhlbS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gU0RLIG9wdGlvbnMgaW5jbHVkaW5nIGBlbnZgIGFuZCBhdXRoIG9wdGlvbnMuXG4gKiBAcGFyYW0ge09iamVjdH0gW2NvbmZpZ10gLSBUaGUgQW1wbGlmeSBjb25maWcuIElmIG5vdCBwYXNzZWQgaW4sIHRoZSBjb25maWcgZmlsZSBpcyBsb2FkZWQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBBeHdheSBDTEkgY29uZmlnIGFuZCBhbiBpbml0aWFsaXplZFxuICogQW1wbGlmeSBTREsgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0U0RLKG9wdHMgPSB7fSwgY29uZmlnKSB7XG5cdGlmICghY29uZmlnKSB7XG5cdFx0Y29uZmlnID0gbG9hZENvbmZpZygpO1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRjb25maWcsXG5cdFx0c2RrOiBuZXcgQW1wbGlmeVNESyhidWlsZEF1dGhQYXJhbXMob3B0cywgY29uZmlnKSlcblx0fTtcbn1cblxuLyoqXG4gKiBEZXRlY3RzIGlmIHRoZSBjdXJyZW50IHRlcm1pbmFsIGlzIGhlYWRsZXNzIChlLmcuIGEgRG9ja2VyIGNvbnRhaW5lciBvciBTU0ggc2Vzc2lvbikuXG4gKlxuICogQHJldHVybnMge0Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0hlYWRsZXNzKCkge1xuXHR0cnkge1xuXHRcdGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnbGludXgnICYmIChwcm9jZXNzLmVudi5TU0hfVFRZIHx8ICFwcm9jZXNzLmVudi5ESVNQTEFZIHx8IC9kb2NrZXJ8bHhjLy50ZXN0KGZzLnJlYWRGaWxlU3luYygnL3Byb2MvMS9jZ3JvdXAnLCAndXRmOCcpKSkpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ2RhcndpbicgJiYgcHJvY2Vzcy5lbnYuU1NIX1RUWSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9IGNhdGNoIChlKSB7XG5cdFx0Ly8gZG8gbm90aGluZ1xuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufVxuIl0sImZpbGUiOiJpbmRleC5qcyJ9 |
{ | ||
"name": "@axway/amplify-cli-utils", | ||
"version": "5.0.0-beta1", | ||
"publishConfig": { | ||
"tag": "next" | ||
}, | ||
"version": "5.0.0-beta3", | ||
"description": "Common utils for Axway CLI packages", | ||
@@ -27,5 +24,5 @@ "author": "Axway, Inc. <npmjs@appcelerator.com>", | ||
"dependencies": { | ||
"@axway/amplify-config": "^4.0.0-beta1", | ||
"@axway/amplify-request": "^3.0.0-beta1", | ||
"@axway/amplify-sdk": "^3.0.0-beta1", | ||
"@axway/amplify-config": "^4.0.0-beta3", | ||
"@axway/amplify-request": "^3.0.0-beta3", | ||
"@axway/amplify-sdk": "^3.0.0-beta3", | ||
"appcd-fs": "^2.1.2", | ||
@@ -49,3 +46,3 @@ "boxen": "^5.0.1", | ||
}, | ||
"gitHead": "8910778219328d801e8cff87da28eba73a996b25" | ||
"gitHead": "408c8bef043cfb4b5b575d8f8123395f44bd59bc" | ||
} |
82441
858