appium-espresso-driver 2.2.6 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/README.md +2 -1
  2. package/build/index.js +1 -1
  3. package/build/lib/commands/execute.js +1 -1
  4. package/build/lib/commands/general.js +1 -1
  5. package/build/lib/commands/idling-resources.js +1 -1
  6. package/build/lib/commands/services.js +1 -1
  7. package/build/lib/driver.js +1 -1
  8. package/build/lib/espresso-runner.js +1 -1
  9. package/build/lib/logger.js +1 -1
  10. package/build/lib/server-builder.js +2 -2
  11. package/build/lib/server.js +1 -1
  12. package/build/lib/utils.js +1 -1
  13. package/espresso-server/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk +0 -0
  14. package/espresso-server/app/build.gradle.kts +12 -2
  15. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetEnabled.kt +8 -6
  16. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetLocation.kt +9 -4
  17. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetLocationInView.kt +3 -6
  18. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetName.kt +9 -4
  19. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetSelected.kt +6 -3
  20. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetSize.kt +9 -4
  21. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Text.kt +0 -1
  22. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/AttributesEnum.kt +1 -1
  23. package/lib/server-builder.js +2 -1
  24. package/npm-shrinkwrap.json +24173 -2745
  25. package/package.json +1 -1
@@ -29,7 +29,7 @@ const GRADLE_URL_TEMPLATE = 'https\\://services.gradle.org/distributions/gradle-
29
29
  exports.GRADLE_URL_TEMPLATE = GRADLE_URL_TEMPLATE;
30
30
  const GRADLE_MAX_ERROR_LOG_LINES = 15;
31
31
  const DEPENDENCY_PROP_NAMES = ['additionalAppDependencies', 'additionalAndroidTestDependencies'];
32
- const VERSION_KEYS = [GRADLE_VERSION_KEY, 'androidGradlePlugin', 'compileSdk', 'buildTools', 'minSdk', 'targetSdk', 'kotlin', 'sourceCompatibility', 'targetCompatibility', 'jvmTarget', 'composeVersion'];
32
+ const VERSION_KEYS = [GRADLE_VERSION_KEY, 'androidGradlePlugin', 'compileSdk', 'buildTools', 'minSdk', 'targetSdk', 'kotlin', 'sourceCompatibility', 'targetCompatibility', 'jvmTarget', 'composeVersion', 'annotationVersion'];
33
33
  exports.VERSION_KEYS = VERSION_KEYS;
34
34
 
35
35
  function buildServerSigningConfig(args) {
@@ -203,4 +203,4 @@ var _default = ServerBuilder;
203
203
  exports.default = _default;require('source-map-support').install();
204
204
 
205
205
 
206
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3NlcnZlci1idWlsZGVyLmpzIiwibmFtZXMiOlsiR1JBRExFX1ZFUlNJT05fS0VZIiwiR1JBRExFX1VSTF9QUkVGSVgiLCJHUkFETEVfVVJMX1RFTVBMQVRFIiwiR1JBRExFX01BWF9FUlJPUl9MT0dfTElORVMiLCJERVBFTkRFTkNZX1BST1BfTkFNRVMiLCJWRVJTSU9OX0tFWVMiLCJidWlsZFNlcnZlclNpZ25pbmdDb25maWciLCJhcmdzIiwiemlwQWxpZ24iLCJrZXlzdG9yZUZpbGUiLCJrZXlzdG9yZVBhc3N3b3JkIiwia2V5QWxpYXMiLCJrZXlQYXNzd29yZCIsIlNlcnZlckJ1aWxkZXIiLCJjb25zdHJ1Y3RvciIsImxvZyIsInNlcnZlclBhdGgiLCJzaG93R3JhZGxlTG9nIiwiYnVpbGRDb25maWd1cmF0aW9uIiwidmVyc2lvbkNvbmZpZ3VyYXRpb24iLCJ0b29sc1ZlcnNpb25zIiwic2VydmVyVmVyc2lvbnMiLCJfIiwicmVkdWNlIiwiYWNjIiwidmFsdWUiLCJrZXkiLCJpbmNsdWRlcyIsIndhcm4iLCJ0ZXN0QXBwUGFja2FnZSIsInNpZ25pbmdDb25maWciLCJwcm9wTmFtZSIsImJ1aWxkIiwic2V0R3JhZGxlV3JhcHBlclZlcnNpb24iLCJpbnNlcnRBZGRpdGlvbmFsRGVwZW5kZW5jaWVzIiwicnVuQnVpbGRQcm9jZXNzIiwiZ2V0Q29tbWFuZCIsImNtZCIsInN5c3RlbSIsImlzV2luZG93cyIsInBhdGgiLCJyZXNvbHZlIiwiYnVpbGRQcm9wZXJ0eSIsImZpbHRlciIsIm1hcCIsInNlcnZlclZlcnNpb24iLCJncmFkbGVQcm9wZXJ0eSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJCb29sZWFuIiwicHVzaCIsImtleXMiLCJ1cHBlckZpcnN0IiwiayIsInYiLCJ2ZXJzaW9uIiwicHJvcGVydGllc1BhdGgiLCJvcmlnaW5hbFByb3BlcnRpZXMiLCJmcyIsInJlYWRGaWxlIiwibmV3UHJvcGVydGllcyIsInVwZGF0ZUdyYWRsZURpc3RVcmwiLCJ3cml0ZUZpbGUiLCJwcm9wZXJ0aWVzQ29udGVudCIsInJlcGxhY2UiLCJSZWdFeHAiLCJlc2NhcGVSZWdFeHAiLCJoYXNBZGRpdGlvbmFsRGVwcyIsImlzQXJyYXkiLCJFcnJvciIsImlzRW1wdHkiLCJsaW5lIiwidHJpbSIsImRlcCIsInRlc3QiLCJidWlsZFBhdGgiLCJjb25maWd1cmF0aW9uIiwicHJlZml4IiwiZGVwcyIsImluZm8iLCJkZWJ1ZyIsImpvaW4iLCJncmFkbGVidWlsZCIsIlN1YlByb2Nlc3MiLCJjd2QiLCJzdGRpbyIsIndpbmRvd3NWZXJiYXRpbUFyZ3VtZW50cyIsImJ1aWxkTGFzdExpbmVzIiwibG9nTXNnIiwib24iLCJzdGFydHNXaXRoIiwiRU9MIiwibGVuZ3RoIiwic3RhcnQiLCJlcnIiLCJtc2ciLCJtZXNzYWdlIiwiZXJyb3JBbmRUaHJvdyJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9zZXJ2ZXItYnVpbGRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IGZzLCBzeXN0ZW0gfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRU9MIH0gZnJvbSAnb3MnO1xuaW1wb3J0IHsgdXBkYXRlRGVwZW5kZW5jeUxpbmVzIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IEdSQURMRV9WRVJTSU9OX0tFWSA9ICdncmFkbGUnO1xuY29uc3QgR1JBRExFX1VSTF9QUkVGSVggPSAnZGlzdHJpYnV0aW9uVXJsPSc7XG5jb25zdCBHUkFETEVfVVJMX1RFTVBMQVRFID0gJ2h0dHBzXFxcXDovL3NlcnZpY2VzLmdyYWRsZS5vcmcvZGlzdHJpYnV0aW9ucy9ncmFkbGUtVkVSU0lPTi1hbGwuemlwJztcbmNvbnN0IEdSQURMRV9NQVhfRVJST1JfTE9HX0xJTkVTID0gMTU7XG5jb25zdCBERVBFTkRFTkNZX1BST1BfTkFNRVMgPSBbJ2FkZGl0aW9uYWxBcHBEZXBlbmRlbmNpZXMnLCAnYWRkaXRpb25hbEFuZHJvaWRUZXN0RGVwZW5kZW5jaWVzJ107XG5cbmNvbnN0IFZFUlNJT05fS0VZUyA9IFtcbiAgR1JBRExFX1ZFUlNJT05fS0VZLFxuICAnYW5kcm9pZEdyYWRsZVBsdWdpbicsXG4gICdjb21waWxlU2RrJyxcbiAgJ2J1aWxkVG9vbHMnLFxuICAnbWluU2RrJyxcbiAgJ3RhcmdldFNkaycsXG4gICdrb3RsaW4nLFxuICAnc291cmNlQ29tcGF0aWJpbGl0eScsXG4gICd0YXJnZXRDb21wYXRpYmlsaXR5JyxcbiAgJ2p2bVRhcmdldCcsXG4gICdjb21wb3NlVmVyc2lvbidcbl07XG5cbmZ1bmN0aW9uIGJ1aWxkU2VydmVyU2lnbmluZ0NvbmZpZyAoYXJncykge1xuICByZXR1cm4ge1xuICAgIHppcEFsaWduOiB0cnVlLFxuICAgIGtleXN0b3JlRmlsZTogYXJncy5rZXlzdG9yZUZpbGUsXG4gICAga2V5c3RvcmVQYXNzd29yZDogYXJncy5rZXlzdG9yZVBhc3N3b3JkLFxuICAgIGtleUFsaWFzOiBhcmdzLmtleUFsaWFzLFxuICAgIGtleVBhc3N3b3JkOiBhcmdzLmtleVBhc3N3b3JkXG4gIH07XG59XG5cbmNsYXNzIFNlcnZlckJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvciAobG9nLCBhcmdzID0ge30pIHtcbiAgICB0aGlzLmxvZyA9IGxvZztcbiAgICB0aGlzLnNlcnZlclBhdGggPSBhcmdzLnNlcnZlclBhdGg7XG4gICAgdGhpcy5zaG93R3JhZGxlTG9nID0gYXJncy5zaG93R3JhZGxlTG9nO1xuXG4gICAgY29uc3QgYnVpbGRDb25maWd1cmF0aW9uID0gYXJncy5idWlsZENvbmZpZ3VyYXRpb24gfHwge307XG5cbiAgICBjb25zdCB2ZXJzaW9uQ29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbi50b29sc1ZlcnNpb25zIHx8IHt9O1xuICAgIHRoaXMuc2VydmVyVmVyc2lvbnMgPSBfLnJlZHVjZSh2ZXJzaW9uQ29uZmlndXJhdGlvbiwgKGFjYywgdmFsdWUsIGtleSkgPT4ge1xuICAgICAgaWYgKFZFUlNJT05fS0VZUy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cud2FybihgR290IHVuZXhwZWN0ZWQgJyR7a2V5fScgaW4gdG9vbHNWZXJzaW9uIGJsb2NrIG9mIHRoZSBidWlsZCBjb25maWd1cmF0aW9uYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcblxuICAgIHRoaXMudGVzdEFwcFBhY2thZ2UgPSBhcmdzLnRlc3RBcHBQYWNrYWdlO1xuICAgIHRoaXMuc2lnbmluZ0NvbmZpZyA9IGFyZ3Muc2lnbmluZ0NvbmZpZztcblxuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgb2YgREVQRU5ERU5DWV9QUk9QX05BTUVTKSB7XG4gICAgICB0aGlzW3Byb3BOYW1lXSA9IGJ1aWxkQ29uZmlndXJhdGlvbltwcm9wTmFtZV0gfHwgW107XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYnVpbGQgKCkge1xuICAgIGlmICh0aGlzLnNlcnZlclZlcnNpb25zW0dSQURMRV9WRVJTSU9OX0tFWV0pIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0R3JhZGxlV3JhcHBlclZlcnNpb24odGhpcy5zZXJ2ZXJWZXJzaW9uc1tHUkFETEVfVkVSU0lPTl9LRVldKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmluc2VydEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMoKTtcblxuICAgIGF3YWl0IHRoaXMucnVuQnVpbGRQcm9jZXNzKCk7XG4gIH1cblxuICBnZXRDb21tYW5kICgpIHtcbiAgICBjb25zdCBjbWQgPSBzeXN0ZW0uaXNXaW5kb3dzKCkgPyAnZ3JhZGxldy5iYXQnIDogcGF0aC5yZXNvbHZlKHRoaXMuc2VydmVyUGF0aCwgJ2dyYWRsZXcnKTtcbiAgICBjb25zdCBidWlsZFByb3BlcnR5ID0gKGtleSwgdmFsdWUpID0+IHZhbHVlID8gYC1QJHtrZXl9PSR7dmFsdWV9YCA6IG51bGw7XG4gICAgbGV0IGFyZ3MgPSBWRVJTSU9OX0tFWVNcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5ICE9PSBHUkFETEVfVkVSU0lPTl9LRVkpXG4gICAgICAubWFwKChrZXkpID0+IHtcbiAgICAgICAgY29uc3Qgc2VydmVyVmVyc2lvbiA9IHRoaXMuc2VydmVyVmVyc2lvbnNba2V5XTtcbiAgICAgICAgY29uc3QgZ3JhZGxlUHJvcGVydHkgPSBgYXBwaXVtJHtrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtrZXkuc2xpY2UoMSl9YDtcbiAgICAgICAgcmV0dXJuIGJ1aWxkUHJvcGVydHkoZ3JhZGxlUHJvcGVydHksIHNlcnZlclZlcnNpb24pO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAodGhpcy5zaWduaW5nQ29uZmlnKSB7XG4gICAgICBhcmdzLnB1c2goLi4uKFxuICAgICAgICBfLmtleXModGhpcy5zaWduaW5nQ29uZmlnKVxuICAgICAgICAubWFwKChrZXkpID0+IFtgYXBwaXVtJHtfLnVwcGVyRmlyc3Qoa2V5KX1gLCB0aGlzLnNpZ25pbmdDb25maWdba2V5XV0pXG4gICAgICAgIC5tYXAoKFtrLCB2XSkgPT4gYnVpbGRQcm9wZXJ0eShrLCB2KSlcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGVzdEFwcFBhY2thZ2UpIHtcbiAgICAgIGFyZ3MucHVzaChidWlsZFByb3BlcnR5KCdhcHBpdW1UYXJnZXRQYWNrYWdlJywgdGhpcy50ZXN0QXBwUGFja2FnZSkpO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJ2FwcDphc3NlbWJsZUFuZHJvaWRUZXN0Jyk7XG5cbiAgICByZXR1cm4ge2NtZCwgYXJnc307XG4gIH1cblxuICBhc3luYyBzZXRHcmFkbGVXcmFwcGVyVmVyc2lvbiAodmVyc2lvbikge1xuICAgIGNvbnN0IHByb3BlcnRpZXNQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMuc2VydmVyUGF0aCwgJ2dyYWRsZScsICd3cmFwcGVyJywgJ2dyYWRsZS13cmFwcGVyLnByb3BlcnRpZXMnKTtcbiAgICBjb25zdCBvcmlnaW5hbFByb3BlcnRpZXMgPSBhd2FpdCBmcy5yZWFkRmlsZShwcm9wZXJ0aWVzUGF0aCwgJ3V0ZjgnKTtcbiAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0gdGhpcy51cGRhdGVHcmFkbGVEaXN0VXJsKG9yaWdpbmFsUHJvcGVydGllcywgdmVyc2lvbik7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHByb3BlcnRpZXNQYXRoLCBuZXdQcm9wZXJ0aWVzLCAndXRmOCcpO1xuICB9XG5cbiAgdXBkYXRlR3JhZGxlRGlzdFVybCAocHJvcGVydGllc0NvbnRlbnQsIHZlcnNpb24pIHtcbiAgICByZXR1cm4gcHJvcGVydGllc0NvbnRlbnQucmVwbGFjZShcbiAgICAgIG5ldyBSZWdFeHAoYF4oJHtfLmVzY2FwZVJlZ0V4cChHUkFETEVfVVJMX1BSRUZJWCl9KS4rJGAsICdnbScpLFxuICAgICAgYCQxJHtHUkFETEVfVVJMX1RFTVBMQVRFLnJlcGxhY2UoJ1ZFUlNJT04nLCB2ZXJzaW9uKX1gXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMgKCkge1xuICAgIGxldCBoYXNBZGRpdGlvbmFsRGVwcyA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgb2YgREVQRU5ERU5DWV9QUk9QX05BTUVTKSB7XG4gICAgICBpZiAoIV8uaXNBcnJheSh0aGlzW3Byb3BOYW1lXSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtwcm9wTmFtZX0nIG11c3QgYmUgYW4gYXJyYXlgKTtcbiAgICAgIH1cbiAgICAgIGlmIChfLmlzRW1wdHkodGhpc1twcm9wTmFtZV0uZmlsdGVyKChsaW5lKSA9PiBfLnRyaW0obGluZSkpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBkZXAgb2YgdGhpc1twcm9wTmFtZV0pIHtcbiAgICAgICAgaWYgKC9bXFxzJ1xcXFwkXS8udGVzdChkZXApKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaW5nbGUgcXVvdGVzLCBkb2xsYXIgY2hhcmFjdGVycyBhbmQgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzJyArXG4gICAgICAgICAgICBgIGFyZSBkaXNhbGxvd2VkIGluIGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzOiAke2RlcH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaGFzQWRkaXRpb25hbERlcHMgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWhhc0FkZGl0aW9uYWxEZXBzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYnVpbGRQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMuc2VydmVyUGF0aCwgJ2FwcCcsICdidWlsZC5ncmFkbGUua3RzJyk7XG4gICAgbGV0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBmcy5yZWFkRmlsZShidWlsZFBhdGgsICd1dGY4Jyk7XG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBERVBFTkRFTkNZX1BST1BfTkFNRVMpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IHByb3BOYW1lID09PSBERVBFTkRFTkNZX1BST1BfTkFNRVNbMF1cbiAgICAgICAgPyAnaW1wbGVtZW50YXRpb24nXG4gICAgICAgIDogJ2FuZHJvaWRUZXN0SW1wbGVtZW50YXRpb24nO1xuICAgICAgY29uc3QgZGVwcyA9IHRoaXNbcHJvcE5hbWVdXG4gICAgICAgIC5maWx0ZXIoKGxpbmUpID0+IF8udHJpbShsaW5lKSlcbiAgICAgICAgLm1hcCgobGluZSkgPT4gYCR7cHJlZml4fShcIiR7bGluZX1cIilgKTtcbiAgICAgIGlmIChfLmlzRW1wdHkoZGVwcykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9nLmluZm8oYEFkZGluZyB0aGUgZm9sbG93aW5nICR7cHJvcE5hbWV9IHRvIGJ1aWxkLmdyYWRsZS5rdHM6ICR7ZGVwc31gKTtcbiAgICAgIGNvbmZpZ3VyYXRpb24gPSB1cGRhdGVEZXBlbmRlbmN5TGluZXMoY29uZmlndXJhdGlvbiwgcHJvcE5hbWUsIGRlcHMpO1xuICAgIH1cbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoYnVpbGRQYXRoLCBjb25maWd1cmF0aW9uLCAndXRmOCcpO1xuICB9XG5cbiAgYXN5bmMgcnVuQnVpbGRQcm9jZXNzICgpIHtcbiAgICBjb25zdCB7Y21kLCBhcmdzfSA9IHRoaXMuZ2V0Q29tbWFuZCgpO1xuICAgIHRoaXMubG9nLmRlYnVnKGBCZWdpbm5pbmcgYnVpbGQgd2l0aCBjb21tYW5kICcke2NtZH0gJHthcmdzLmpvaW4oJyAnKX0nIGAgK1xuICAgICAgYGluIGRpcmVjdG9yeSAnJHt0aGlzLnNlcnZlclBhdGh9J2ApO1xuICAgIGNvbnN0IGdyYWRsZWJ1aWxkID0gbmV3IFN1YlByb2Nlc3MoY21kLCBhcmdzLCB7XG4gICAgICBjd2Q6IHRoaXMuc2VydmVyUGF0aCxcbiAgICAgIHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ3BpcGUnXSxcbiAgICAgIHdpbmRvd3NWZXJiYXRpbUFyZ3VtZW50czogdHJ1ZVxuICAgIH0pO1xuICAgIGxldCBidWlsZExhc3RMaW5lcyA9IFtdO1xuXG4gICAgY29uc3QgbG9nTXNnID0gYE91dHB1dCBmcm9tIEdyYWRsZSAke3RoaXMuc2hvd0dyYWRsZUxvZyA/ICd3aWxsJyA6ICd3aWxsIG5vdCd9IGJlIGxvZ2dlZGA7XG4gICAgdGhpcy5sb2cuZGVidWcoYCR7bG9nTXNnfS4gVG8gY2hhbmdlIHRoaXMsIHVzZSAnc2hvd0dyYWRsZUxvZycgZGVzaXJlZCBjYXBhYmlsaXR5YCk7XG4gICAgZ3JhZGxlYnVpbGQub24oJ3N0cmVhbS1saW5lJywgKGxpbmUpID0+IHtcbiAgICAgIGlmICh0aGlzLnNob3dHcmFkbGVMb2cpIHtcbiAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnW1NUREVSUl0nKSkge1xuICAgICAgICAgIHRoaXMubG9nLndhcm4oYFtHcmFkbGVdICR7bGluZX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZy5pbmZvKGBbR3JhZGxlXSAke2xpbmV9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJ1aWxkTGFzdExpbmVzLnB1c2goYCR7RU9MfSR7bGluZX1gKTtcbiAgICAgIGlmIChidWlsZExhc3RMaW5lcy5sZW5ndGggPiBHUkFETEVfTUFYX0VSUk9SX0xPR19MSU5FUykge1xuICAgICAgICBidWlsZExhc3RMaW5lcyA9IGJ1aWxkTGFzdExpbmVzLnNsaWNlKC1HUkFETEVfTUFYX0VSUk9SX0xPR19MSU5FUyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZ3JhZGxlYnVpbGQuc3RhcnQoKTtcbiAgICAgIGF3YWl0IGdyYWRsZWJ1aWxkLmpvaW4oKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxldCBtc2cgPSBgVW5hYmxlIHRvIGJ1aWxkIEVzcHJlc3NvIHNlcnZlciAtICR7ZXJyLm1lc3NhZ2V9XFxuYCArXG4gICAgICAgIGBHcmFkbGUgZXJyb3IgbWVzc2FnZToke0VPTH0ke2J1aWxkTGFzdExpbmVzfWA7XG4gICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KG1zZyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7IFNlcnZlckJ1aWxkZXIsIFZFUlNJT05fS0VZUywgR1JBRExFX1VSTF9URU1QTEFURSwgYnVpbGRTZXJ2ZXJTaWduaW5nQ29uZmlnIH07XG5leHBvcnQgZGVmYXVsdCBTZXJ2ZXJCdWlsZGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsa0JBQWtCLEdBQUcsUUFBM0I7QUFDQSxNQUFN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
206
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3NlcnZlci1idWlsZGVyLmpzIiwibmFtZXMiOlsiR1JBRExFX1ZFUlNJT05fS0VZIiwiR1JBRExFX1VSTF9QUkVGSVgiLCJHUkFETEVfVVJMX1RFTVBMQVRFIiwiR1JBRExFX01BWF9FUlJPUl9MT0dfTElORVMiLCJERVBFTkRFTkNZX1BST1BfTkFNRVMiLCJWRVJTSU9OX0tFWVMiLCJidWlsZFNlcnZlclNpZ25pbmdDb25maWciLCJhcmdzIiwiemlwQWxpZ24iLCJrZXlzdG9yZUZpbGUiLCJrZXlzdG9yZVBhc3N3b3JkIiwia2V5QWxpYXMiLCJrZXlQYXNzd29yZCIsIlNlcnZlckJ1aWxkZXIiLCJjb25zdHJ1Y3RvciIsImxvZyIsInNlcnZlclBhdGgiLCJzaG93R3JhZGxlTG9nIiwiYnVpbGRDb25maWd1cmF0aW9uIiwidmVyc2lvbkNvbmZpZ3VyYXRpb24iLCJ0b29sc1ZlcnNpb25zIiwic2VydmVyVmVyc2lvbnMiLCJfIiwicmVkdWNlIiwiYWNjIiwidmFsdWUiLCJrZXkiLCJpbmNsdWRlcyIsIndhcm4iLCJ0ZXN0QXBwUGFja2FnZSIsInNpZ25pbmdDb25maWciLCJwcm9wTmFtZSIsImJ1aWxkIiwic2V0R3JhZGxlV3JhcHBlclZlcnNpb24iLCJpbnNlcnRBZGRpdGlvbmFsRGVwZW5kZW5jaWVzIiwicnVuQnVpbGRQcm9jZXNzIiwiZ2V0Q29tbWFuZCIsImNtZCIsInN5c3RlbSIsImlzV2luZG93cyIsInBhdGgiLCJyZXNvbHZlIiwiYnVpbGRQcm9wZXJ0eSIsImZpbHRlciIsIm1hcCIsInNlcnZlclZlcnNpb24iLCJncmFkbGVQcm9wZXJ0eSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJCb29sZWFuIiwicHVzaCIsImtleXMiLCJ1cHBlckZpcnN0IiwiayIsInYiLCJ2ZXJzaW9uIiwicHJvcGVydGllc1BhdGgiLCJvcmlnaW5hbFByb3BlcnRpZXMiLCJmcyIsInJlYWRGaWxlIiwibmV3UHJvcGVydGllcyIsInVwZGF0ZUdyYWRsZURpc3RVcmwiLCJ3cml0ZUZpbGUiLCJwcm9wZXJ0aWVzQ29udGVudCIsInJlcGxhY2UiLCJSZWdFeHAiLCJlc2NhcGVSZWdFeHAiLCJoYXNBZGRpdGlvbmFsRGVwcyIsImlzQXJyYXkiLCJFcnJvciIsImlzRW1wdHkiLCJsaW5lIiwidHJpbSIsImRlcCIsInRlc3QiLCJidWlsZFBhdGgiLCJjb25maWd1cmF0aW9uIiwicHJlZml4IiwiZGVwcyIsImluZm8iLCJ1cGRhdGVEZXBlbmRlbmN5TGluZXMiLCJkZWJ1ZyIsImpvaW4iLCJncmFkbGVidWlsZCIsIlN1YlByb2Nlc3MiLCJjd2QiLCJzdGRpbyIsIndpbmRvd3NWZXJiYXRpbUFyZ3VtZW50cyIsImJ1aWxkTGFzdExpbmVzIiwibG9nTXNnIiwib24iLCJzdGFydHNXaXRoIiwiRU9MIiwibGVuZ3RoIiwic3RhcnQiLCJlcnIiLCJtc2ciLCJtZXNzYWdlIiwiZXJyb3JBbmRUaHJvdyJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9zZXJ2ZXItYnVpbGRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IGZzLCBzeXN0ZW0gfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRU9MIH0gZnJvbSAnb3MnO1xuaW1wb3J0IHsgdXBkYXRlRGVwZW5kZW5jeUxpbmVzIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IEdSQURMRV9WRVJTSU9OX0tFWSA9ICdncmFkbGUnO1xuY29uc3QgR1JBRExFX1VSTF9QUkVGSVggPSAnZGlzdHJpYnV0aW9uVXJsPSc7XG5jb25zdCBHUkFETEVfVVJMX1RFTVBMQVRFID0gJ2h0dHBzXFxcXDovL3NlcnZpY2VzLmdyYWRsZS5vcmcvZGlzdHJpYnV0aW9ucy9ncmFkbGUtVkVSU0lPTi1hbGwuemlwJztcbmNvbnN0IEdSQURMRV9NQVhfRVJST1JfTE9HX0xJTkVTID0gMTU7XG5jb25zdCBERVBFTkRFTkNZX1BST1BfTkFNRVMgPSBbJ2FkZGl0aW9uYWxBcHBEZXBlbmRlbmNpZXMnLCAnYWRkaXRpb25hbEFuZHJvaWRUZXN0RGVwZW5kZW5jaWVzJ107XG5cbmNvbnN0IFZFUlNJT05fS0VZUyA9IFtcbiAgR1JBRExFX1ZFUlNJT05fS0VZLFxuICAnYW5kcm9pZEdyYWRsZVBsdWdpbicsXG4gICdjb21waWxlU2RrJyxcbiAgJ2J1aWxkVG9vbHMnLFxuICAnbWluU2RrJyxcbiAgJ3RhcmdldFNkaycsXG4gICdrb3RsaW4nLFxuICAnc291cmNlQ29tcGF0aWJpbGl0eScsXG4gICd0YXJnZXRDb21wYXRpYmlsaXR5JyxcbiAgJ2p2bVRhcmdldCcsXG4gICdjb21wb3NlVmVyc2lvbicsXG4gICdhbm5vdGF0aW9uVmVyc2lvbidcbl07XG5cbmZ1bmN0aW9uIGJ1aWxkU2VydmVyU2lnbmluZ0NvbmZpZyAoYXJncykge1xuICByZXR1cm4ge1xuICAgIHppcEFsaWduOiB0cnVlLFxuICAgIGtleXN0b3JlRmlsZTogYXJncy5rZXlzdG9yZUZpbGUsXG4gICAga2V5c3RvcmVQYXNzd29yZDogYXJncy5rZXlzdG9yZVBhc3N3b3JkLFxuICAgIGtleUFsaWFzOiBhcmdzLmtleUFsaWFzLFxuICAgIGtleVBhc3N3b3JkOiBhcmdzLmtleVBhc3N3b3JkXG4gIH07XG59XG5cbmNsYXNzIFNlcnZlckJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvciAobG9nLCBhcmdzID0ge30pIHtcbiAgICB0aGlzLmxvZyA9IGxvZztcbiAgICB0aGlzLnNlcnZlclBhdGggPSBhcmdzLnNlcnZlclBhdGg7XG4gICAgdGhpcy5zaG93R3JhZGxlTG9nID0gYXJncy5zaG93R3JhZGxlTG9nO1xuXG4gICAgY29uc3QgYnVpbGRDb25maWd1cmF0aW9uID0gYXJncy5idWlsZENvbmZpZ3VyYXRpb24gfHwge307XG5cbiAgICBjb25zdCB2ZXJzaW9uQ29uZmlndXJhdGlvbiA9IGJ1aWxkQ29uZmlndXJhdGlvbi50b29sc1ZlcnNpb25zIHx8IHt9O1xuICAgIHRoaXMuc2VydmVyVmVyc2lvbnMgPSBfLnJlZHVjZSh2ZXJzaW9uQ29uZmlndXJhdGlvbiwgKGFjYywgdmFsdWUsIGtleSkgPT4ge1xuICAgICAgaWYgKFZFUlNJT05fS0VZUy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cud2FybihgR290IHVuZXhwZWN0ZWQgJyR7a2V5fScgaW4gdG9vbHNWZXJzaW9uIGJsb2NrIG9mIHRoZSBidWlsZCBjb25maWd1cmF0aW9uYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcblxuICAgIHRoaXMudGVzdEFwcFBhY2thZ2UgPSBhcmdzLnRlc3RBcHBQYWNrYWdlO1xuICAgIHRoaXMuc2lnbmluZ0NvbmZpZyA9IGFyZ3Muc2lnbmluZ0NvbmZpZztcblxuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgb2YgREVQRU5ERU5DWV9QUk9QX05BTUVTKSB7XG4gICAgICB0aGlzW3Byb3BOYW1lXSA9IGJ1aWxkQ29uZmlndXJhdGlvbltwcm9wTmFtZV0gfHwgW107XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYnVpbGQgKCkge1xuICAgIGlmICh0aGlzLnNlcnZlclZlcnNpb25zW0dSQURMRV9WRVJTSU9OX0tFWV0pIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0R3JhZGxlV3JhcHBlclZlcnNpb24odGhpcy5zZXJ2ZXJWZXJzaW9uc1tHUkFETEVfVkVSU0lPTl9LRVldKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmluc2VydEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMoKTtcblxuICAgIGF3YWl0IHRoaXMucnVuQnVpbGRQcm9jZXNzKCk7XG4gIH1cblxuICBnZXRDb21tYW5kICgpIHtcbiAgICBjb25zdCBjbWQgPSBzeXN0ZW0uaXNXaW5kb3dzKCkgPyAnZ3JhZGxldy5iYXQnIDogcGF0aC5yZXNvbHZlKHRoaXMuc2VydmVyUGF0aCwgJ2dyYWRsZXcnKTtcbiAgICBjb25zdCBidWlsZFByb3BlcnR5ID0gKGtleSwgdmFsdWUpID0+IHZhbHVlID8gYC1QJHtrZXl9PSR7dmFsdWV9YCA6IG51bGw7XG4gICAgbGV0IGFyZ3MgPSBWRVJTSU9OX0tFWVNcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5ICE9PSBHUkFETEVfVkVSU0lPTl9LRVkpXG4gICAgICAubWFwKChrZXkpID0+IHtcbiAgICAgICAgY29uc3Qgc2VydmVyVmVyc2lvbiA9IHRoaXMuc2VydmVyVmVyc2lvbnNba2V5XTtcbiAgICAgICAgY29uc3QgZ3JhZGxlUHJvcGVydHkgPSBgYXBwaXVtJHtrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtrZXkuc2xpY2UoMSl9YDtcbiAgICAgICAgcmV0dXJuIGJ1aWxkUHJvcGVydHkoZ3JhZGxlUHJvcGVydHksIHNlcnZlclZlcnNpb24pO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAodGhpcy5zaWduaW5nQ29uZmlnKSB7XG4gICAgICBhcmdzLnB1c2goLi4uKFxuICAgICAgICBfLmtleXModGhpcy5zaWduaW5nQ29uZmlnKVxuICAgICAgICAubWFwKChrZXkpID0+IFtgYXBwaXVtJHtfLnVwcGVyRmlyc3Qoa2V5KX1gLCB0aGlzLnNpZ25pbmdDb25maWdba2V5XV0pXG4gICAgICAgIC5tYXAoKFtrLCB2XSkgPT4gYnVpbGRQcm9wZXJ0eShrLCB2KSlcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGVzdEFwcFBhY2thZ2UpIHtcbiAgICAgIGFyZ3MucHVzaChidWlsZFByb3BlcnR5KCdhcHBpdW1UYXJnZXRQYWNrYWdlJywgdGhpcy50ZXN0QXBwUGFja2FnZSkpO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJ2FwcDphc3NlbWJsZUFuZHJvaWRUZXN0Jyk7XG5cbiAgICByZXR1cm4ge2NtZCwgYXJnc307XG4gIH1cblxuICBhc3luYyBzZXRHcmFkbGVXcmFwcGVyVmVyc2lvbiAodmVyc2lvbikge1xuICAgIGNvbnN0IHByb3BlcnRpZXNQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMuc2VydmVyUGF0aCwgJ2dyYWRsZScsICd3cmFwcGVyJywgJ2dyYWRsZS13cmFwcGVyLnByb3BlcnRpZXMnKTtcbiAgICBjb25zdCBvcmlnaW5hbFByb3BlcnRpZXMgPSBhd2FpdCBmcy5yZWFkRmlsZShwcm9wZXJ0aWVzUGF0aCwgJ3V0ZjgnKTtcbiAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0gdGhpcy51cGRhdGVHcmFkbGVEaXN0VXJsKG9yaWdpbmFsUHJvcGVydGllcywgdmVyc2lvbik7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHByb3BlcnRpZXNQYXRoLCBuZXdQcm9wZXJ0aWVzLCAndXRmOCcpO1xuICB9XG5cbiAgdXBkYXRlR3JhZGxlRGlzdFVybCAocHJvcGVydGllc0NvbnRlbnQsIHZlcnNpb24pIHtcbiAgICByZXR1cm4gcHJvcGVydGllc0NvbnRlbnQucmVwbGFjZShcbiAgICAgIG5ldyBSZWdFeHAoYF4oJHtfLmVzY2FwZVJlZ0V4cChHUkFETEVfVVJMX1BSRUZJWCl9KS4rJGAsICdnbScpLFxuICAgICAgYCQxJHtHUkFETEVfVVJMX1RFTVBMQVRFLnJlcGxhY2UoJ1ZFUlNJT04nLCB2ZXJzaW9uKX1gXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMgKCkge1xuICAgIGxldCBoYXNBZGRpdGlvbmFsRGVwcyA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgb2YgREVQRU5ERU5DWV9QUk9QX05BTUVTKSB7XG4gICAgICBpZiAoIV8uaXNBcnJheSh0aGlzW3Byb3BOYW1lXSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtwcm9wTmFtZX0nIG11c3QgYmUgYW4gYXJyYXlgKTtcbiAgICAgIH1cbiAgICAgIGlmIChfLmlzRW1wdHkodGhpc1twcm9wTmFtZV0uZmlsdGVyKChsaW5lKSA9PiBfLnRyaW0obGluZSkpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBkZXAgb2YgdGhpc1twcm9wTmFtZV0pIHtcbiAgICAgICAgaWYgKC9bXFxzJ1xcXFwkXS8udGVzdChkZXApKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaW5nbGUgcXVvdGVzLCBkb2xsYXIgY2hhcmFjdGVycyBhbmQgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzJyArXG4gICAgICAgICAgICBgIGFyZSBkaXNhbGxvd2VkIGluIGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzOiAke2RlcH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaGFzQWRkaXRpb25hbERlcHMgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWhhc0FkZGl0aW9uYWxEZXBzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYnVpbGRQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMuc2VydmVyUGF0aCwgJ2FwcCcsICdidWlsZC5ncmFkbGUua3RzJyk7XG4gICAgbGV0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBmcy5yZWFkRmlsZShidWlsZFBhdGgsICd1dGY4Jyk7XG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBERVBFTkRFTkNZX1BST1BfTkFNRVMpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IHByb3BOYW1lID09PSBERVBFTkRFTkNZX1BST1BfTkFNRVNbMF1cbiAgICAgICAgPyAnaW1wbGVtZW50YXRpb24nXG4gICAgICAgIDogJ2FuZHJvaWRUZXN0SW1wbGVtZW50YXRpb24nO1xuICAgICAgY29uc3QgZGVwcyA9IHRoaXNbcHJvcE5hbWVdXG4gICAgICAgIC5maWx0ZXIoKGxpbmUpID0+IF8udHJpbShsaW5lKSlcbiAgICAgICAgLm1hcCgobGluZSkgPT4gYCR7cHJlZml4fShcIiR7bGluZX1cIilgKTtcbiAgICAgIGlmIChfLmlzRW1wdHkoZGVwcykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9nLmluZm8oYEFkZGluZyB0aGUgZm9sbG93aW5nICR7cHJvcE5hbWV9IHRvIGJ1aWxkLmdyYWRsZS5rdHM6ICR7ZGVwc31gKTtcbiAgICAgIGNvbmZpZ3VyYXRpb24gPSB1cGRhdGVEZXBlbmRlbmN5TGluZXMoY29uZmlndXJhdGlvbiwgcHJvcE5hbWUsIGRlcHMpO1xuICAgIH1cbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoYnVpbGRQYXRoLCBjb25maWd1cmF0aW9uLCAndXRmOCcpO1xuICB9XG5cbiAgYXN5bmMgcnVuQnVpbGRQcm9jZXNzICgpIHtcbiAgICBjb25zdCB7Y21kLCBhcmdzfSA9IHRoaXMuZ2V0Q29tbWFuZCgpO1xuICAgIHRoaXMubG9nLmRlYnVnKGBCZWdpbm5pbmcgYnVpbGQgd2l0aCBjb21tYW5kICcke2NtZH0gJHthcmdzLmpvaW4oJyAnKX0nIGAgK1xuICAgICAgYGluIGRpcmVjdG9yeSAnJHt0aGlzLnNlcnZlclBhdGh9J2ApO1xuICAgIGNvbnN0IGdyYWRsZWJ1aWxkID0gbmV3IFN1YlByb2Nlc3MoY21kLCBhcmdzLCB7XG4gICAgICBjd2Q6IHRoaXMuc2VydmVyUGF0aCxcbiAgICAgIHN0ZGlvOiBbJ2lnbm9yZScsICdwaXBlJywgJ3BpcGUnXSxcbiAgICAgIHdpbmRvd3NWZXJiYXRpbUFyZ3VtZW50czogdHJ1ZVxuICAgIH0pO1xuICAgIGxldCBidWlsZExhc3RMaW5lcyA9IFtdO1xuXG4gICAgY29uc3QgbG9nTXNnID0gYE91dHB1dCBmcm9tIEdyYWRsZSAke3RoaXMuc2hvd0dyYWRsZUxvZyA/ICd3aWxsJyA6ICd3aWxsIG5vdCd9IGJlIGxvZ2dlZGA7XG4gICAgdGhpcy5sb2cuZGVidWcoYCR7bG9nTXNnfS4gVG8gY2hhbmdlIHRoaXMsIHVzZSAnc2hvd0dyYWRsZUxvZycgZGVzaXJlZCBjYXBhYmlsaXR5YCk7XG4gICAgZ3JhZGxlYnVpbGQub24oJ3N0cmVhbS1saW5lJywgKGxpbmUpID0+IHtcbiAgICAgIGlmICh0aGlzLnNob3dHcmFkbGVMb2cpIHtcbiAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnW1NUREVSUl0nKSkge1xuICAgICAgICAgIHRoaXMubG9nLndhcm4oYFtHcmFkbGVdICR7bGluZX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZy5pbmZvKGBbR3JhZGxlXSAke2xpbmV9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJ1aWxkTGFzdExpbmVzLnB1c2goYCR7RU9MfSR7bGluZX1gKTtcbiAgICAgIGlmIChidWlsZExhc3RMaW5lcy5sZW5ndGggPiBHUkFETEVfTUFYX0VSUk9SX0xPR19MSU5FUykge1xuICAgICAgICBidWlsZExhc3RMaW5lcyA9IGJ1aWxkTGFzdExpbmVzLnNsaWNlKC1HUkFETEVfTUFYX0VSUk9SX0xPR19MSU5FUyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZ3JhZGxlYnVpbGQuc3RhcnQoKTtcbiAgICAgIGF3YWl0IGdyYWRsZWJ1aWxkLmpvaW4oKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxldCBtc2cgPSBgVW5hYmxlIHRvIGJ1aWxkIEVzcHJlc3NvIHNlcnZlciAtICR7ZXJyLm1lc3NhZ2V9XFxuYCArXG4gICAgICAgIGBHcmFkbGUgZXJyb3IgbWVzc2FnZToke0VPTH0ke2J1aWxkTGFzdExpbmVzfWA7XG4gICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KG1zZyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7IFNlcnZlckJ1aWxkZXIsIFZFUlNJT05fS0VZUywgR1JBRExFX1VSTF9URU1QTEFURSwgYnVpbGRTZXJ2ZXJTaWduaW5nQ29uZmlnIH07XG5leHBvcnQgZGVmYXVsdCBTZXJ2ZXJCdWlsZGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FB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
@@ -36,4 +36,4 @@ var _default = startServer;
36
36
  exports.default = _default;require('source-map-support').install();
37
37
 
38
38
 
39
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3NlcnZlci5qcyIsIm5hbWVzIjpbInN0YXJ0U2VydmVyIiwicG9ydCIsImhvc3QiLCJkIiwiRXNwcmVzc29Ecml2ZXIiLCJzZXJ2ZXIiLCJyb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24iLCJob3N0bmFtZSIsImxvZyIsImluZm8iXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvc2VydmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgc2VydmVyIGFzIGJhc2VTZXJ2ZXIsIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IEVzcHJlc3NvRHJpdmVyIGZyb20gJy4vZHJpdmVyJztcblxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFNlcnZlciAocG9ydCwgaG9zdCkge1xuICBjb25zdCBkID0gbmV3IEVzcHJlc3NvRHJpdmVyKHtwb3J0LCBob3N0fSk7XG4gIGNvbnN0IHNlcnZlciA9IGJhc2VTZXJ2ZXIoe1xuICAgIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbjogcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uKGQpLFxuICAgIHBvcnQsXG4gICAgaG9zdG5hbWU6IGhvc3QsXG4gIH0pO1xuICBsb2cuaW5mbyhgQW5kcm9pZCBFc3ByZXNzbyBEcml2ZXIgbGlzdGVuaW5nIG9uIGh0dHA6Ly8ke2hvc3R9OiR7cG9ydH1gKTtcbiAgcmV0dXJuIGF3YWl0IHNlcnZlcjtcbn1cblxuZXhwb3J0IHsgc3RhcnRTZXJ2ZXIgfTtcbmV4cG9ydCBkZWZhdWx0IHN0YXJ0U2VydmVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxlQUFlQSxXQUFmLENBQTRCQyxJQUE1QixFQUFrQ0MsSUFBbEMsRUFBd0M7RUFDdEMsTUFBTUMsQ0FBQyxHQUFHLElBQUlDLGVBQUosQ0FBbUI7SUFBQ0gsSUFBRDtJQUFPQztFQUFQLENBQW5CLENBQVY7RUFDQSxNQUFNRyxNQUFNLEdBQUcsd0JBQVc7SUFDeEJDLHdCQUF3QixFQUFFLDBDQUF5QkgsQ0FBekIsQ0FERjtJQUV4QkYsSUFGd0I7SUFHeEJNLFFBQVEsRUFBRUw7RUFIYyxDQUFYLENBQWY7O0VBS0FNLGdCQUFJQyxJQUFKLENBQVUsK0NBQThDUCxJQUFLLElBQUdELElBQUssRUFBckU7O0VBQ0EsT0FBTyxNQUFNSSxNQUFiO0FBQ0Q7O2VBR2NMLFcifQ==
39
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3NlcnZlci5qcyIsIm5hbWVzIjpbInN0YXJ0U2VydmVyIiwicG9ydCIsImhvc3QiLCJkIiwiRXNwcmVzc29Ecml2ZXIiLCJzZXJ2ZXIiLCJiYXNlU2VydmVyIiwicm91dGVDb25maWd1cmluZ0Z1bmN0aW9uIiwiaG9zdG5hbWUiLCJsb2ciLCJpbmZvIl0sInNvdXJjZVJvb3QiOiIuLi8uLiIsInNvdXJjZXMiOlsibGliL3NlcnZlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IHNlcnZlciBhcyBiYXNlU2VydmVyLCByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24gfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCBFc3ByZXNzb0RyaXZlciBmcm9tICcuL2RyaXZlcic7XG5cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXJ2ZXIgKHBvcnQsIGhvc3QpIHtcbiAgY29uc3QgZCA9IG5ldyBFc3ByZXNzb0RyaXZlcih7cG9ydCwgaG9zdH0pO1xuICBjb25zdCBzZXJ2ZXIgPSBiYXNlU2VydmVyKHtcbiAgICByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb246IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbihkKSxcbiAgICBwb3J0LFxuICAgIGhvc3RuYW1lOiBob3N0LFxuICB9KTtcbiAgbG9nLmluZm8oYEFuZHJvaWQgRXNwcmVzc28gRHJpdmVyIGxpc3RlbmluZyBvbiBodHRwOi8vJHtob3N0fToke3BvcnR9YCk7XG4gIHJldHVybiBhd2FpdCBzZXJ2ZXI7XG59XG5cbmV4cG9ydCB7IHN0YXJ0U2VydmVyIH07XG5leHBvcnQgZGVmYXVsdCBzdGFydFNlcnZlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0EsZUFBZUEsV0FBZixDQUE0QkMsSUFBNUIsRUFBa0NDLElBQWxDLEVBQXdDO0VBQ3RDLE1BQU1DLENBQUMsR0FBRyxJQUFJQyxlQUFKLENBQW1CO0lBQUNILElBQUQ7SUFBT0M7RUFBUCxDQUFuQixDQUFWO0VBQ0EsTUFBTUcsTUFBTSxHQUFHLElBQUFDLGtCQUFBLEVBQVc7SUFDeEJDLHdCQUF3QixFQUFFLElBQUFBLG9DQUFBLEVBQXlCSixDQUF6QixDQURGO0lBRXhCRixJQUZ3QjtJQUd4Qk8sUUFBUSxFQUFFTjtFQUhjLENBQVgsQ0FBZjs7RUFLQU8sZUFBQSxDQUFJQyxJQUFKLENBQVUsK0NBQThDUixJQUFLLElBQUdELElBQUssRUFBckU7O0VBQ0EsT0FBTyxNQUFNSSxNQUFiO0FBQ0Q7O2VBR2NMLFcifQ==
@@ -82,4 +82,4 @@ function updateDependencyLines(originalContent, dependencyPlaceholder, dependenc
82
82
  }require('source-map-support').install();
83
83
 
84
84
 
85
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3V0aWxzLmpzIiwibmFtZXMiOlsicXVhbGlmeUFjdGl2aXR5TmFtZSIsImFjdGl2aXR5TmFtZSIsInBhY2thZ2VOYW1lIiwic29tZSIsIm5hbWUiLCJfIiwiaW5jbHVkZXMiLCJkb3RQb3MiLCJpbmRleE9mIiwiY29weUdyYWRsZVByb2plY3RSZWN1cnNpdmVseSIsInNvdXJjZUJhc2VEaXIiLCJ0YXJnZXRCYXNlRGlyIiwiZnMiLCJ3YWxrRGlyIiwiaXRlbVBhdGgiLCJpc0RpcmVjdG9yeSIsInJlbGF0aXZlUGF0aCIsInBhdGgiLCJyZWxhdGl2ZSIsInRhcmdldFBhdGgiLCJyZXNvbHZlIiwiaXNJbkdyYWRsZUJ1aWxkRGlyIiwic2VwIiwiY29weUZpbGUiLCJyZXF1aXJlT3B0aW9ucyIsIm9wdHMiLCJyZXF1aXJlZEtleXMiLCJtaXNzaW5nS2V5cyIsImRpZmZlcmVuY2UiLCJrZXlzIiwiaXNFbXB0eSIsIkVycm9yIiwidXBkYXRlRGVwZW5kZW5jeUxpbmVzIiwib3JpZ2luYWxDb250ZW50IiwiZGVwZW5kZW5jeVBsYWNlaG9sZGVyIiwiZGVwZW5kZW5jeUxpbmVzIiwiY29uZmlndXJhdGlvbkxpbmVzIiwic3BsaXQiLCJzZWFyY2hSZSIsIlJlZ0V4cCIsImVzY2FwZVJlZ0V4cCIsInBsYWNlaG9sZGVySW5kZXgiLCJmaW5kSW5kZXgiLCJsaW5lIiwidGVzdCIsInBsYWNlaG9sZGVyTGluZSIsImluZGVudExlbiIsImxlbmd0aCIsInRyaW1TdGFydCIsInNwbGljZSIsIm1hcCIsInJlcGVhdCIsImpvaW4iXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnMsIG1rZGlycCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vZnJhbWV3b3Jrcy9iYXNlLysvbWFzdGVyL3Rvb2xzL2FhcHQvUmVzb3VyY2UuY3BwIzc1NVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpdml0eU5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYWNrYWdlTmFtZVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHF1YWxpZmllZCBhY3Rpdml0eSBuYW1lXG4gKi9cbmZ1bmN0aW9uIHF1YWxpZnlBY3Rpdml0eU5hbWUgKGFjdGl2aXR5TmFtZSwgcGFja2FnZU5hbWUpIHtcbiAgLy8gaWYgZWl0aGVyIGFjdGl2aXR5IG9yIHBhY2thZ2UgbmFtZSBpcyBub3Qgc2V0XG4gIC8vIG9yIGFueSBvZiB0aGVzZSBjb250YWluIHdpbGRjYXJkcyB0aGVuIHRoZXJlIGlzXG4gIC8vIG5vIHBvaW50IGluIHF1YWxpZnlpbmcgdGhlIGFjdGl2aXR5IG5hbWVcbiAgaWYgKFthY3Rpdml0eU5hbWUsIHBhY2thZ2VOYW1lXS5zb21lKChuYW1lKSA9PiAhbmFtZSB8fCBfLmluY2x1ZGVzKG5hbWUsICcqJykpKSB7XG4gICAgcmV0dXJuIGFjdGl2aXR5TmFtZTtcbiAgfVxuXG4gIGNvbnN0IGRvdFBvcyA9IGFjdGl2aXR5TmFtZS5pbmRleE9mKCcuJyk7XG4gIGlmIChkb3RQb3MgPiAwKSB7XG4gICAgcmV0dXJuIGFjdGl2aXR5TmFtZTtcbiAgfVxuICByZXR1cm4gYCR7cGFja2FnZU5hbWV9JHtkb3RQb3MgPT09IDAgPyAnJyA6ICcuJ30ke2FjdGl2aXR5TmFtZX1gO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGNvcHkgYWxsIGZpbGVzIGV4Y2VwdCBidWlsZCBkaXJlY3RvcmllcyBjb250ZW50c1xuICogQHBhcmFtIHNvdXJjZUJhc2VEaXIge3N0cmluZ30gZGlyZWN0b3J5IHRvIGNvcHkgZmlsZXMgZnJvbVxuICogQHBhcmFtIHRhcmdldEJhc2VEaXIge3N0cmluZ30gZGlyZWN0b3J5IHRvIGNvcHkgZmlsZXMgdG9cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY29weUdyYWRsZVByb2plY3RSZWN1cnNpdmVseSAoc291cmNlQmFzZURpciwgdGFyZ2V0QmFzZURpcikge1xuICBhd2FpdCBmcy53YWxrRGlyKHNvdXJjZUJhc2VEaXIsIHRydWUsIGFzeW5jIChpdGVtUGF0aCwgaXNEaXJlY3RvcnkpID0+IHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKHNvdXJjZUJhc2VEaXIsIGl0ZW1QYXRoKTtcbiAgICBjb25zdCB0YXJnZXRQYXRoID0gcGF0aC5yZXNvbHZlKHRhcmdldEJhc2VEaXIsIHJlbGF0aXZlUGF0aCk7XG5cbiAgICBjb25zdCBpc0luR3JhZGxlQnVpbGREaXIgPSBgJHtwYXRoLnNlcH0ke2l0ZW1QYXRofWAuaW5jbHVkZXMoYCR7cGF0aC5zZXB9YnVpbGQke3BhdGguc2VwfWApO1xuICAgIGlmIChpc0luR3JhZGxlQnVpbGREaXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoaXNEaXJlY3RvcnkpIHtcbiAgICAgIGF3YWl0IG1rZGlycCh0YXJnZXRQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgZnMuY29weUZpbGUoaXRlbVBhdGgsIHRhcmdldFBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXF1aXJlT3B0aW9ucyAob3B0cywgcmVxdWlyZWRLZXlzID0gW10pIHtcbiAgY29uc3QgbWlzc2luZ0tleXMgPSBfLmRpZmZlcmVuY2UocmVxdWlyZWRLZXlzLCBfLmtleXMob3B0cykpO1xuICBpZiAoIV8uaXNFbXB0eShtaXNzaW5nS2V5cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgcmVxdWlyZWQ6ICR7bWlzc2luZ0tleXN9YCk7XG4gIH1cbiAgcmV0dXJuIG9wdHM7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZURlcGVuZGVuY3lMaW5lcyAob3JpZ2luYWxDb250ZW50LCBkZXBlbmRlbmN5UGxhY2Vob2xkZXIsIGRlcGVuZGVuY3lMaW5lcykge1xuICBjb25zdCBjb25maWd1cmF0aW9uTGluZXMgPSBvcmlnaW5hbENvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICBjb25zdCBzZWFyY2hSZSA9IG5ldyBSZWdFeHAoYF5cXFxccyovL1xcXFxzKlxcXFxiJHtfLmVzY2FwZVJlZ0V4cChkZXBlbmRlbmN5UGxhY2Vob2xkZXIpfVxcXFxiYCwgJ20nKTtcbiAgY29uc3QgcGxhY2Vob2xkZXJJbmRleCA9IGNvbmZpZ3VyYXRpb25MaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IHNlYXJjaFJlLnRlc3QobGluZSkpO1xuICBpZiAocGxhY2Vob2xkZXJJbmRleCA8IDApIHtcbiAgICByZXR1cm4gb3JpZ2luYWxDb250ZW50O1xuICB9XG5cbiAgY29uc3QgcGxhY2Vob2xkZXJMaW5lID0gY29uZmlndXJhdGlvbkxpbmVzW3BsYWNlaG9sZGVySW5kZXhdO1xuICBjb25zdCBpbmRlbnRMZW4gPSBwbGFjZWhvbGRlckxpbmUubGVuZ3RoIC0gXy50cmltU3RhcnQocGxhY2Vob2xkZXJMaW5lKS5sZW5ndGg7XG4gIGNvbmZpZ3VyYXRpb25MaW5lcy5zcGxpY2UocGxhY2Vob2xkZXJJbmRleCArIDEsIDAsIC4uLihkZXBlbmRlbmN5TGluZXNcbiAgICAubWFwKChsaW5lKSA9PiBgJHsnICcucmVwZWF0KGluZGVudExlbil9JHtsaW5lfWApKSk7XG4gIHJldHVybiBjb25maWd1cmF0aW9uTGluZXMuam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCB7IHF1YWxpZnlBY3Rpdml0eU5hbWUsIGNvcHlHcmFkbGVQcm9qZWN0UmVjdXJzaXZlbHksIHJlcXVpcmVPcHRpb25zLCB1cGRhdGVEZXBlbmRlbmN5TGluZXMgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFTQSxTQUFTQSxtQkFBVCxDQUE4QkMsWUFBOUIsRUFBNENDLFdBQTVDLEVBQXlE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
85
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3V0aWxzLmpzIiwibmFtZXMiOlsicXVhbGlmeUFjdGl2aXR5TmFtZSIsImFjdGl2aXR5TmFtZSIsInBhY2thZ2VOYW1lIiwic29tZSIsIm5hbWUiLCJfIiwiaW5jbHVkZXMiLCJkb3RQb3MiLCJpbmRleE9mIiwiY29weUdyYWRsZVByb2plY3RSZWN1cnNpdmVseSIsInNvdXJjZUJhc2VEaXIiLCJ0YXJnZXRCYXNlRGlyIiwiZnMiLCJ3YWxrRGlyIiwiaXRlbVBhdGgiLCJpc0RpcmVjdG9yeSIsInJlbGF0aXZlUGF0aCIsInBhdGgiLCJyZWxhdGl2ZSIsInRhcmdldFBhdGgiLCJyZXNvbHZlIiwiaXNJbkdyYWRsZUJ1aWxkRGlyIiwic2VwIiwibWtkaXJwIiwiY29weUZpbGUiLCJyZXF1aXJlT3B0aW9ucyIsIm9wdHMiLCJyZXF1aXJlZEtleXMiLCJtaXNzaW5nS2V5cyIsImRpZmZlcmVuY2UiLCJrZXlzIiwiaXNFbXB0eSIsIkVycm9yIiwidXBkYXRlRGVwZW5kZW5jeUxpbmVzIiwib3JpZ2luYWxDb250ZW50IiwiZGVwZW5kZW5jeVBsYWNlaG9sZGVyIiwiZGVwZW5kZW5jeUxpbmVzIiwiY29uZmlndXJhdGlvbkxpbmVzIiwic3BsaXQiLCJzZWFyY2hSZSIsIlJlZ0V4cCIsImVzY2FwZVJlZ0V4cCIsInBsYWNlaG9sZGVySW5kZXgiLCJmaW5kSW5kZXgiLCJsaW5lIiwidGVzdCIsInBsYWNlaG9sZGVyTGluZSIsImluZGVudExlbiIsImxlbmd0aCIsInRyaW1TdGFydCIsInNwbGljZSIsIm1hcCIsInJlcGVhdCIsImpvaW4iXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnMsIG1rZGlycCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vZnJhbWV3b3Jrcy9iYXNlLysvbWFzdGVyL3Rvb2xzL2FhcHQvUmVzb3VyY2UuY3BwIzc1NVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpdml0eU5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYWNrYWdlTmFtZVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHF1YWxpZmllZCBhY3Rpdml0eSBuYW1lXG4gKi9cbmZ1bmN0aW9uIHF1YWxpZnlBY3Rpdml0eU5hbWUgKGFjdGl2aXR5TmFtZSwgcGFja2FnZU5hbWUpIHtcbiAgLy8gaWYgZWl0aGVyIGFjdGl2aXR5IG9yIHBhY2thZ2UgbmFtZSBpcyBub3Qgc2V0XG4gIC8vIG9yIGFueSBvZiB0aGVzZSBjb250YWluIHdpbGRjYXJkcyB0aGVuIHRoZXJlIGlzXG4gIC8vIG5vIHBvaW50IGluIHF1YWxpZnlpbmcgdGhlIGFjdGl2aXR5IG5hbWVcbiAgaWYgKFthY3Rpdml0eU5hbWUsIHBhY2thZ2VOYW1lXS5zb21lKChuYW1lKSA9PiAhbmFtZSB8fCBfLmluY2x1ZGVzKG5hbWUsICcqJykpKSB7XG4gICAgcmV0dXJuIGFjdGl2aXR5TmFtZTtcbiAgfVxuXG4gIGNvbnN0IGRvdFBvcyA9IGFjdGl2aXR5TmFtZS5pbmRleE9mKCcuJyk7XG4gIGlmIChkb3RQb3MgPiAwKSB7XG4gICAgcmV0dXJuIGFjdGl2aXR5TmFtZTtcbiAgfVxuICByZXR1cm4gYCR7cGFja2FnZU5hbWV9JHtkb3RQb3MgPT09IDAgPyAnJyA6ICcuJ30ke2FjdGl2aXR5TmFtZX1gO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGNvcHkgYWxsIGZpbGVzIGV4Y2VwdCBidWlsZCBkaXJlY3RvcmllcyBjb250ZW50c1xuICogQHBhcmFtIHNvdXJjZUJhc2VEaXIge3N0cmluZ30gZGlyZWN0b3J5IHRvIGNvcHkgZmlsZXMgZnJvbVxuICogQHBhcmFtIHRhcmdldEJhc2VEaXIge3N0cmluZ30gZGlyZWN0b3J5IHRvIGNvcHkgZmlsZXMgdG9cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY29weUdyYWRsZVByb2plY3RSZWN1cnNpdmVseSAoc291cmNlQmFzZURpciwgdGFyZ2V0QmFzZURpcikge1xuICBhd2FpdCBmcy53YWxrRGlyKHNvdXJjZUJhc2VEaXIsIHRydWUsIGFzeW5jIChpdGVtUGF0aCwgaXNEaXJlY3RvcnkpID0+IHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKHNvdXJjZUJhc2VEaXIsIGl0ZW1QYXRoKTtcbiAgICBjb25zdCB0YXJnZXRQYXRoID0gcGF0aC5yZXNvbHZlKHRhcmdldEJhc2VEaXIsIHJlbGF0aXZlUGF0aCk7XG5cbiAgICBjb25zdCBpc0luR3JhZGxlQnVpbGREaXIgPSBgJHtwYXRoLnNlcH0ke2l0ZW1QYXRofWAuaW5jbHVkZXMoYCR7cGF0aC5zZXB9YnVpbGQke3BhdGguc2VwfWApO1xuICAgIGlmIChpc0luR3JhZGxlQnVpbGREaXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoaXNEaXJlY3RvcnkpIHtcbiAgICAgIGF3YWl0IG1rZGlycCh0YXJnZXRQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgZnMuY29weUZpbGUoaXRlbVBhdGgsIHRhcmdldFBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXF1aXJlT3B0aW9ucyAob3B0cywgcmVxdWlyZWRLZXlzID0gW10pIHtcbiAgY29uc3QgbWlzc2luZ0tleXMgPSBfLmRpZmZlcmVuY2UocmVxdWlyZWRLZXlzLCBfLmtleXMob3B0cykpO1xuICBpZiAoIV8uaXNFbXB0eShtaXNzaW5nS2V5cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgcmVxdWlyZWQ6ICR7bWlzc2luZ0tleXN9YCk7XG4gIH1cbiAgcmV0dXJuIG9wdHM7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZURlcGVuZGVuY3lMaW5lcyAob3JpZ2luYWxDb250ZW50LCBkZXBlbmRlbmN5UGxhY2Vob2xkZXIsIGRlcGVuZGVuY3lMaW5lcykge1xuICBjb25zdCBjb25maWd1cmF0aW9uTGluZXMgPSBvcmlnaW5hbENvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICBjb25zdCBzZWFyY2hSZSA9IG5ldyBSZWdFeHAoYF5cXFxccyovL1xcXFxzKlxcXFxiJHtfLmVzY2FwZVJlZ0V4cChkZXBlbmRlbmN5UGxhY2Vob2xkZXIpfVxcXFxiYCwgJ20nKTtcbiAgY29uc3QgcGxhY2Vob2xkZXJJbmRleCA9IGNvbmZpZ3VyYXRpb25MaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IHNlYXJjaFJlLnRlc3QobGluZSkpO1xuICBpZiAocGxhY2Vob2xkZXJJbmRleCA8IDApIHtcbiAgICByZXR1cm4gb3JpZ2luYWxDb250ZW50O1xuICB9XG5cbiAgY29uc3QgcGxhY2Vob2xkZXJMaW5lID0gY29uZmlndXJhdGlvbkxpbmVzW3BsYWNlaG9sZGVySW5kZXhdO1xuICBjb25zdCBpbmRlbnRMZW4gPSBwbGFjZWhvbGRlckxpbmUubGVuZ3RoIC0gXy50cmltU3RhcnQocGxhY2Vob2xkZXJMaW5lKS5sZW5ndGg7XG4gIGNvbmZpZ3VyYXRpb25MaW5lcy5zcGxpY2UocGxhY2Vob2xkZXJJbmRleCArIDEsIDAsIC4uLihkZXBlbmRlbmN5TGluZXNcbiAgICAubWFwKChsaW5lKSA9PiBgJHsnICcucmVwZWF0KGluZGVudExlbil9JHtsaW5lfWApKSk7XG4gIHJldHVybiBjb25maWd1cmF0aW9uTGluZXMuam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCB7IHF1YWxpZnlBY3Rpdml0eU5hbWUsIGNvcHlHcmFkbGVQcm9qZWN0UmVjdXJzaXZlbHksIHJlcXVpcmVPcHRpb25zLCB1cGRhdGVEZXBlbmRlbmN5TGluZXMgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFTQSxTQUFTQSxtQkFBVCxDQUE4QkMsWUFBOUIsRUFBNENDLFdB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
@@ -86,6 +86,7 @@ android {
86
86
 
87
87
  val kotlinVersion = rootProject.extra["appiumKotlin"]
88
88
  val composeVersion = getStringProperty("appiumComposeVersion", Version.compose)
89
+ val annotationVersion = getStringProperty("appiumAnnotationVersion", Version.annotation)
89
90
 
90
91
  dependencies {
91
92
  implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
@@ -95,7 +96,7 @@ dependencies {
95
96
  testImplementation("org.powermock:powermock-classloading-xstream:${Version.mocklib}")
96
97
  testImplementation("org.powermock:powermock-module-junit4-rule:${Version.mocklib}")
97
98
  testImplementation("org.powermock:powermock-module-junit4:${Version.mocklib}")
98
- testImplementation("androidx.annotation:annotation:${Version.annotation}")
99
+ testImplementation("androidx.annotation:annotation:${annotationVersion}")
99
100
  testImplementation("androidx.test.espresso:espresso-contrib:${Version.espresso}")
100
101
  testImplementation("androidx.test.espresso:espresso-core:${Version.espresso}")
101
102
  testImplementation("androidx.test.espresso:espresso-web:${Version.espresso}")
@@ -114,7 +115,7 @@ dependencies {
114
115
  testImplementation("androidx.compose.ui:ui-test:${composeVersion}")
115
116
  testImplementation("androidx.compose.ui:ui-test-junit4:${composeVersion}")
116
117
 
117
- androidTestImplementation("androidx.annotation:annotation:${Version.annotation}")
118
+ androidTestImplementation("androidx.annotation:annotation:${annotationVersion}")
118
119
  androidTestImplementation("androidx.test.espresso:espresso-contrib:${Version.espresso}") {
119
120
  // Exclude transitive dependencies to limit conflicts with AndroidX libraries from AUT.
120
121
  // Link to PR with fix and discussion https://github.com/appium/appium-espresso-driver/pull/596
@@ -137,6 +138,15 @@ dependencies {
137
138
  // additionalAndroidTestDependencies placeholder (don't change or delete this line)
138
139
  }
139
140
 
141
+ configurations.all {
142
+ resolutionStrategy.eachDependency {
143
+ // To avoid "androidx.annotation:annotation" version conflict.
144
+ if (requested.group == "androidx.annotation" && !requested.name.contains("annotation")) {
145
+ useVersion(annotationVersion)
146
+ }
147
+ }
148
+ }
149
+
140
150
  tasks.withType<Test> {
141
151
  systemProperty("skipespressoserver", "true")
142
152
  }
@@ -16,15 +16,17 @@
16
16
 
17
17
  package io.appium.espressoserver.lib.handlers
18
18
 
19
- import io.appium.espressoserver.lib.handlers.exceptions.AppiumException
19
+ import io.appium.espressoserver.lib.helpers.getSemanticsNode
20
20
  import io.appium.espressoserver.lib.model.AppiumParams
21
- import io.appium.espressoserver.lib.model.EspressoElement
22
-
23
21
  import io.appium.espressoserver.lib.model.ViewElement
22
+ import io.appium.espressoserver.lib.model.EspressoElement
23
+ import io.appium.espressoserver.lib.model.ComposeNodeElement
24
24
 
25
25
  class GetEnabled : RequestHandler<AppiumParams, Boolean> {
26
26
 
27
- @Throws(AppiumException::class)
28
- override fun handleInternal(params: AppiumParams): Boolean =
29
- ViewElement(EspressoElement.getViewById(params.elementId)).isEnabled
27
+ override fun handleEspresso(params: AppiumParams): Boolean =
28
+ ViewElement(EspressoElement.getViewById(params.elementId)).isEnabled
29
+
30
+ override fun handleCompose(params: AppiumParams): Boolean =
31
+ ComposeNodeElement(getSemanticsNode(params.elementId!!)).isEnabled
30
32
  }
@@ -16,17 +16,22 @@
16
16
 
17
17
  package io.appium.espressoserver.lib.handlers
18
18
 
19
- import io.appium.espressoserver.lib.handlers.exceptions.AppiumException
19
+ import io.appium.espressoserver.lib.helpers.getSemanticsNode
20
20
  import io.appium.espressoserver.lib.model.AppiumParams
21
- import io.appium.espressoserver.lib.model.EspressoElement
22
21
  import io.appium.espressoserver.lib.model.Location
23
22
  import io.appium.espressoserver.lib.model.ViewElement
23
+ import io.appium.espressoserver.lib.model.EspressoElement
24
+ import io.appium.espressoserver.lib.model.ComposeNodeElement
24
25
 
25
26
  class GetLocation : RequestHandler<AppiumParams, Location> {
26
27
 
27
- @Throws(AppiumException::class)
28
- override fun handleInternal(params: AppiumParams): Location {
28
+ override fun handleEspresso(params: AppiumParams): Location {
29
29
  val viewElement = ViewElement(EspressoElement.getViewById(params.elementId))
30
30
  return Location(viewElement.bounds.left, viewElement.bounds.top)
31
31
  }
32
+
33
+ override fun handleCompose(params: AppiumParams): Location {
34
+ val composeNodeElement = ComposeNodeElement(getSemanticsNode(params.elementId!!))
35
+ return Location(composeNodeElement.bounds.left, composeNodeElement.bounds.top)
36
+ }
32
37
  }
@@ -16,18 +16,15 @@
16
16
 
17
17
  package io.appium.espressoserver.lib.handlers
18
18
 
19
- import io.appium.espressoserver.lib.handlers.exceptions.AppiumException
20
19
  import io.appium.espressoserver.lib.model.AppiumParams
21
- import io.appium.espressoserver.lib.model.EspressoElement
22
20
  import io.appium.espressoserver.lib.model.Location
21
+ import io.appium.espressoserver.lib.model.EspressoElement
23
22
  import io.appium.espressoserver.lib.model.ViewElement
24
23
 
25
24
  class GetLocationInView : RequestHandler<AppiumParams, Location> {
26
25
 
27
- @Throws(AppiumException::class)
28
- override fun handleInternal(params: AppiumParams): Location {
29
- val view = EspressoElement.getViewById(params.elementId)
30
- val viewElement = ViewElement(view)
26
+ override fun handleEspresso(params: AppiumParams): Location {
27
+ val viewElement = ViewElement(EspressoElement.getViewById(params.elementId))
31
28
  return Location(viewElement.relativeLeft, viewElement.relativeTop)
32
29
  }
33
30
  }
@@ -16,16 +16,21 @@
16
16
 
17
17
  package io.appium.espressoserver.lib.handlers
18
18
 
19
- import io.appium.espressoserver.lib.handlers.exceptions.AppiumException
19
+ import io.appium.espressoserver.lib.helpers.getSemanticsNode
20
20
  import io.appium.espressoserver.lib.model.AppiumParams
21
- import io.appium.espressoserver.lib.model.EspressoElement
22
21
  import io.appium.espressoserver.lib.model.ViewElement
22
+ import io.appium.espressoserver.lib.model.EspressoElement
23
+ import io.appium.espressoserver.lib.model.ComposeNodeElement
23
24
 
24
25
  class GetName : RequestHandler<AppiumParams, String?> {
25
26
 
26
- @Throws(AppiumException::class)
27
- override fun handleInternal(params: AppiumParams): String? {
27
+ override fun handleEspresso(params: AppiumParams): String? {
28
28
  val view = EspressoElement.getViewById(params.elementId)
29
29
  return ViewElement(view).contentDescription?.toString()
30
30
  }
31
+
32
+ override fun handleCompose(params: AppiumParams): String? {
33
+ val composeNodeElement = ComposeNodeElement(getSemanticsNode(params.elementId!!))
34
+ return composeNodeElement.contentDescription?.toString()
35
+ }
31
36
  }
@@ -16,15 +16,18 @@
16
16
 
17
17
  package io.appium.espressoserver.lib.handlers
18
18
 
19
- import io.appium.espressoserver.lib.handlers.exceptions.AppiumException
19
+ import io.appium.espressoserver.lib.helpers.getSemanticsNode
20
20
  import io.appium.espressoserver.lib.model.AppiumParams
21
+ import io.appium.espressoserver.lib.model.ComposeNodeElement
21
22
  import io.appium.espressoserver.lib.model.EspressoElement
22
23
 
23
24
  import io.appium.espressoserver.lib.model.ViewElement
24
25
 
25
26
  class GetSelected : RequestHandler<AppiumParams, Boolean> {
26
27
 
27
- @Throws(AppiumException::class)
28
- override fun handleInternal(params: AppiumParams): Boolean =
28
+ override fun handleEspresso(params: AppiumParams): Boolean =
29
29
  ViewElement(EspressoElement.getViewById(params.elementId)).isSelected
30
+
31
+ override fun handleCompose(params: AppiumParams): Boolean =
32
+ ComposeNodeElement(getSemanticsNode(params.elementId!!)).isSelected
30
33
  }
@@ -16,17 +16,22 @@
16
16
 
17
17
  package io.appium.espressoserver.lib.handlers
18
18
 
19
- import io.appium.espressoserver.lib.handlers.exceptions.AppiumException
19
+ import io.appium.espressoserver.lib.helpers.getSemanticsNode
20
20
  import io.appium.espressoserver.lib.model.AppiumParams
21
- import io.appium.espressoserver.lib.model.EspressoElement
22
21
  import io.appium.espressoserver.lib.model.Size
23
22
  import io.appium.espressoserver.lib.model.ViewElement
23
+ import io.appium.espressoserver.lib.model.EspressoElement
24
+ import io.appium.espressoserver.lib.model.ComposeNodeElement
24
25
 
25
26
  class GetSize : RequestHandler<AppiumParams, Size> {
26
27
 
27
- @Throws(AppiumException::class)
28
- override fun handleInternal(params: AppiumParams): Size {
28
+ override fun handleEspresso(params: AppiumParams): Size {
29
29
  val bounds = ViewElement(EspressoElement.getViewById(params.elementId)).bounds
30
30
  return Size(bounds.width(), bounds.height())
31
31
  }
32
+
33
+ override fun handleCompose(params: AppiumParams): Size {
34
+ val bounds = ComposeNodeElement(getSemanticsNode(params.elementId!!)).bounds
35
+ return Size(bounds.width(), bounds.height())
36
+ }
32
37
  }
@@ -16,7 +16,6 @@
16
16
 
17
17
  package io.appium.espressoserver.lib.handlers
18
18
 
19
- import io.appium.espressoserver.lib.handlers.exceptions.InvalidElementStateException
20
19
  import io.appium.espressoserver.lib.helpers.getSemanticsNode
21
20
  import io.appium.espressoserver.lib.model.AppiumParams
22
21
  import io.appium.espressoserver.lib.model.ComposeNodeElement
@@ -59,7 +59,6 @@ class EspressoAttributes : CommonAttributes(commonAttributes + espressoAttribute
59
59
  AttributesEnum.ADAPTERS,
60
60
  AttributesEnum.ADAPTER_TYPE,
61
61
  AttributesEnum.CHECKABLE,
62
- AttributesEnum.CHECKED,
63
62
  AttributesEnum.FOCUSABLE,
64
63
  AttributesEnum.HINT,
65
64
  AttributesEnum.INSTANCE,
@@ -81,6 +80,7 @@ abstract class CommonAttributes(var attributes: List<AttributesEnum>) {
81
80
  val commonAttributes: List<AttributesEnum> by lazy {
82
81
  listOf(
83
82
  AttributesEnum.BOUNDS,
83
+ AttributesEnum.CHECKED,
84
84
  AttributesEnum.CLASS,
85
85
  AttributesEnum.CLICKABLE,
86
86
  AttributesEnum.CONTENT_DESC,
@@ -22,7 +22,8 @@ const VERSION_KEYS = [
22
22
  'sourceCompatibility',
23
23
  'targetCompatibility',
24
24
  'jvmTarget',
25
- 'composeVersion'
25
+ 'composeVersion',
26
+ 'annotationVersion'
26
27
  ];
27
28
 
28
29
  function buildServerSigningConfig (args) {