testcafe 1.20.2-alpha.1 → 2.0.0-rc.3

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 (231) hide show
  1. package/lib/api/request-hooks/assert-type.js +2 -2
  2. package/lib/api/request-hooks/hook.js +2 -2
  3. package/lib/api/request-hooks/request-logger.js +2 -2
  4. package/lib/api/skip-js-errors/index.js +62 -0
  5. package/lib/api/structure/base-unit.js +2 -2
  6. package/lib/api/structure/fixture.js +13 -13
  7. package/lib/api/structure/test.js +18 -17
  8. package/lib/api/structure/testing-unit.js +26 -16
  9. package/lib/api/test-controller/assertion.js +5 -5
  10. package/lib/api/test-controller/execution-context.js +2 -2
  11. package/lib/api/test-controller/index.js +33 -30
  12. package/lib/api/test-controller/proxy.js +2 -2
  13. package/lib/api/test-page-url.js +4 -4
  14. package/lib/api/test-run-tracker.js +2 -2
  15. package/lib/api/wrap-test-function.js +3 -3
  16. package/lib/assertions/executor.js +4 -4
  17. package/lib/assertions/get-fn.js +3 -3
  18. package/lib/browser/connection/gateway.js +18 -18
  19. package/lib/browser/connection/get-hints.js +8 -8
  20. package/lib/browser/connection/index.js +11 -11
  21. package/lib/browser/connection/remotes-queue.js +4 -4
  22. package/lib/browser/provider/built-in/dedicated/base.js +6 -6
  23. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/index.js +10 -10
  24. package/lib/browser/provider/built-in/dedicated/chrome/config.js +17 -17
  25. package/lib/browser/provider/built-in/dedicated/chrome/create-temp-profile.js +4 -4
  26. package/lib/browser/provider/built-in/dedicated/chrome/index.js +6 -6
  27. package/lib/browser/provider/built-in/dedicated/chrome/local-chrome.js +6 -6
  28. package/lib/browser/provider/built-in/dedicated/chrome/runtime-info.js +4 -4
  29. package/lib/browser/provider/built-in/dedicated/edge/runtime-info.js +2 -2
  30. package/lib/browser/provider/built-in/dedicated/firefox/config.js +8 -8
  31. package/lib/browser/provider/built-in/dedicated/firefox/create-temp-profile.js +3 -3
  32. package/lib/browser/provider/built-in/dedicated/firefox/index.js +5 -5
  33. package/lib/browser/provider/built-in/dedicated/firefox/local-firefox.js +2 -2
  34. package/lib/browser/provider/built-in/dedicated/firefox/marionette-client/index.js +7 -7
  35. package/lib/browser/provider/built-in/dedicated/firefox/runtime-info.js +3 -3
  36. package/lib/browser/provider/built-in/path.js +2 -2
  37. package/lib/browser/provider/built-in/remote.js +3 -3
  38. package/lib/browser/provider/index.js +5 -5
  39. package/lib/browser/provider/plugin-host.js +5 -6
  40. package/lib/browser/provider/pool.js +4 -4
  41. package/lib/browser/provider/utils/argument-parsing.js +3 -3
  42. package/lib/browser/provider/utils/browser-starter.js +2 -2
  43. package/lib/cli/argument-parser/index.js +52 -41
  44. package/lib/cli/argument-parser/parse-utils.js +2 -2
  45. package/lib/cli/authentication-helper.js +3 -3
  46. package/lib/cli/cli.js +8 -8
  47. package/lib/cli/correct-browsers-and-sources.js +2 -2
  48. package/lib/cli/index.js +2 -2
  49. package/lib/cli/log.js +3 -3
  50. package/lib/cli/remotes-wizard.js +3 -3
  51. package/lib/client/automation/index.js +120 -34
  52. package/lib/client/automation/index.min.js +1 -1
  53. package/lib/client/browser/idle-page/index.js +321 -317
  54. package/lib/client/browser/service-worker.js +244 -290
  55. package/lib/client/core/deps/hammerhead.js +12 -4
  56. package/lib/client/core/index.js +145 -55
  57. package/lib/client/core/index.min.js +1 -1
  58. package/lib/client/core/utils/dom.js +33 -28
  59. package/lib/client/core/utils/position.js +18 -14
  60. package/lib/client/core/utils/style.js +8 -4
  61. package/lib/client/driver/command-executors/client-functions/selector-executor/filter.js +5 -5
  62. package/lib/client/driver/command-executors/client-functions/selector-executor/utils.js +3 -3
  63. package/lib/client/driver/deps/hammerhead.js +12 -4
  64. package/lib/client/driver/deps/testcafe-core.js +12 -4
  65. package/lib/client/driver/deps/testcafe-ui.js +12 -4
  66. package/lib/client/driver/index.js +654 -630
  67. package/lib/client/driver/index.min.js +1 -1
  68. package/lib/client/driver/status.js +2 -2
  69. package/lib/client/ui/index.js +10 -8
  70. package/lib/client/ui/index.min.js +1 -1
  71. package/lib/client-functions/builder-symbol.js +1 -2
  72. package/lib/client-functions/client-function-builder.js +12 -12
  73. package/lib/client-functions/replicator.js +2 -2
  74. package/lib/client-functions/selector-api-execution-mode.js +2 -2
  75. package/lib/client-functions/selectors/add-api.js +48 -48
  76. package/lib/client-functions/selectors/selector-builder.js +17 -17
  77. package/lib/compiler/compile-client-function.js +6 -6
  78. package/lib/compiler/index.js +9 -9
  79. package/lib/compiler/test-file/api-based.js +8 -8
  80. package/lib/compiler/test-file/base.js +6 -6
  81. package/lib/compiler/test-file/exportble-lib-path.js +2 -2
  82. package/lib/compiler/test-file/formats/coffeescript/compiler.js +2 -2
  83. package/lib/compiler/test-file/formats/coffeescript/get-test-list.js +2 -2
  84. package/lib/compiler/test-file/formats/es-next/compiler.js +4 -4
  85. package/lib/compiler/test-file/formats/es-next/get-test-list.js +4 -4
  86. package/lib/compiler/test-file/formats/raw.js +2 -2
  87. package/lib/compiler/test-file/formats/typescript/compiler.js +11 -11
  88. package/lib/compiler/test-file/formats/typescript/get-test-list.js +3 -3
  89. package/lib/compiler/test-file/test-file-parser-base.js +3 -3
  90. package/lib/configuration/configuration-base.js +15 -15
  91. package/lib/configuration/interfaces.js +1 -1
  92. package/lib/configuration/skip-js-errors-option-names.js +11 -0
  93. package/lib/configuration/testcafe-configuration.js +21 -16
  94. package/lib/configuration/types.js +1 -1
  95. package/lib/configuration/typescript-configuration.js +4 -4
  96. package/lib/custom-client-scripts/assert-type.js +2 -2
  97. package/lib/custom-client-scripts/client-script.js +6 -6
  98. package/lib/custom-client-scripts/get-code.js +2 -2
  99. package/lib/custom-client-scripts/routing.js +3 -3
  100. package/lib/custom-client-scripts/utils.js +3 -3
  101. package/lib/dashboard/connector.js +4 -4
  102. package/lib/dashboard/get-default-project-link.js +2 -2
  103. package/lib/dashboard/index.js +26 -26
  104. package/lib/errors/create-stack-filter.js +2 -2
  105. package/lib/errors/error-list.js +2 -2
  106. package/lib/errors/get-callsite.js +2 -2
  107. package/lib/errors/is-internal-stack-frame.js +5 -5
  108. package/lib/errors/process-test-fn-error.js +2 -2
  109. package/lib/errors/runtime/index.js +10 -10
  110. package/lib/errors/runtime/templates.js +5 -2
  111. package/lib/errors/runtime/type-assertions.js +6 -6
  112. package/lib/errors/stack-cleaning-hook.js +2 -2
  113. package/lib/errors/test-run/formattable-adapter.js +7 -7
  114. package/lib/errors/test-run/index.js +25 -5
  115. package/lib/errors/test-run/render-error-template/index.js +6 -6
  116. package/lib/errors/test-run/render-error-template/utils.js +2 -2
  117. package/lib/errors/test-run/templates.js +40 -31
  118. package/lib/errors/test-run/utils.js +7 -7
  119. package/lib/errors/types.js +5 -1
  120. package/lib/index.js +1 -1
  121. package/lib/live/file-watcher/index.js +2 -2
  122. package/lib/live/keyboard-observer.js +3 -3
  123. package/lib/live/test-run-controller.js +3 -3
  124. package/lib/live/test-run.js +3 -2
  125. package/lib/live/test-runner.js +2 -2
  126. package/lib/load-assets.js +2 -2
  127. package/lib/notifications/add-rendered-warning.js +4 -4
  128. package/lib/notifications/debug-logger.js +6 -6
  129. package/lib/notifications/deprecated.js +2 -2
  130. package/lib/notifications/information-message.js +4 -3
  131. package/lib/proxyless/resource-injector.js +4 -4
  132. package/lib/reporter/command/command-formatter.js +4 -4
  133. package/lib/reporter/index.js +10 -10
  134. package/lib/reporter/plugin-host.js +7 -7
  135. package/lib/role/index.js +8 -8
  136. package/lib/role/role.js +2 -2
  137. package/lib/runner/bootstrapper.js +20 -20
  138. package/lib/runner/browser-job.js +3 -3
  139. package/lib/runner/browser-set.js +12 -12
  140. package/lib/runner/fixture-hook-controller.js +5 -5
  141. package/lib/runner/index.js +43 -33
  142. package/lib/runner/task/index.js +10 -6
  143. package/lib/runner/test-run-hook-controller.js +5 -5
  144. package/lib/runner/tested-app.js +7 -7
  145. package/lib/screenshots/capturer.js +17 -17
  146. package/lib/screenshots/crop.js +8 -8
  147. package/lib/screenshots/index.js +6 -10
  148. package/lib/screenshots/utils.js +4 -4
  149. package/lib/services/compiler/host.js +8 -8
  150. package/lib/services/compiler/service.js +13 -13
  151. package/lib/services/compiler/test-run-proxy.js +8 -8
  152. package/lib/services/serialization/replicator/transforms/callsite-record-transform.js +2 -2
  153. package/lib/services/serialization/replicator/transforms/command-base-trasform/command-constructors.js +2 -1
  154. package/lib/services/serialization/replicator/transforms/command-base-trasform/index.js +3 -3
  155. package/lib/services/serialization/replicator/transforms/raw-command-callsite-record-transform.js +2 -2
  156. package/lib/services/serialization/test-structure.js +4 -4
  157. package/lib/services/utils/ipc/interfaces.js +1 -3
  158. package/lib/services/utils/ipc/io.js +3 -3
  159. package/lib/services/utils/ipc/message.js +2 -2
  160. package/lib/services/utils/ipc/proxy.js +4 -4
  161. package/lib/services/utils/ipc/transport.js +2 -2
  162. package/lib/shared/errors/index.js +9 -2
  163. package/lib/shared/errors/selector-error-ctor-callback.js +7 -3
  164. package/lib/test-run/bookmark.js +1 -1
  165. package/lib/test-run/browser-manipulation-queue.js +3 -3
  166. package/lib/test-run/commands/actions.js +66 -46
  167. package/lib/test-run/commands/assertion.js +3 -3
  168. package/lib/test-run/commands/base.js +2 -2
  169. package/lib/test-run/commands/browser-manipulation.js +8 -8
  170. package/lib/test-run/commands/observation.js +4 -4
  171. package/lib/test-run/commands/options.js +27 -12
  172. package/lib/test-run/commands/type.js +2 -1
  173. package/lib/test-run/commands/utils.js +3 -2
  174. package/lib/test-run/commands/validations/argument.js +19 -10
  175. package/lib/test-run/commands/validations/factories.js +10 -2
  176. package/lib/test-run/commands/validations/initializers.js +4 -4
  177. package/lib/test-run/debug-log.js +4 -4
  178. package/lib/test-run/execute-js-expression/index.js +4 -4
  179. package/lib/test-run/index.js +48 -41
  180. package/lib/test-run/request/create-request-options.js +9 -9
  181. package/lib/test-run/request/process-response-data.js +2 -2
  182. package/lib/test-run/request/send.js +5 -5
  183. package/lib/testcafe.js +8 -4
  184. package/lib/utils/check-file-path.js +2 -2
  185. package/lib/utils/check-url.js +2 -2
  186. package/lib/utils/correct-file-path.js +4 -4
  187. package/lib/utils/delegated-api.js +1 -1
  188. package/lib/utils/detect-ffmpeg.js +3 -3
  189. package/lib/utils/diff/colors.js +2 -2
  190. package/lib/utils/diff/index.js +11 -7
  191. package/lib/utils/diff/util.js +5 -5
  192. package/lib/utils/diff.js +4 -4
  193. package/lib/utils/escape-user-agent.js +2 -2
  194. package/lib/utils/execute-fn-with-timeout.js +2 -2
  195. package/lib/utils/get-browser.js +2 -2
  196. package/lib/utils/get-filter-fn.js +4 -4
  197. package/lib/utils/get-options/base.js +2 -2
  198. package/lib/utils/get-options/compiler.js +2 -2
  199. package/lib/utils/get-options/dashboard.js +2 -2
  200. package/lib/utils/get-options/get-assertion-timeout.js +1 -1
  201. package/lib/utils/get-options/index.js +4 -2
  202. package/lib/utils/get-options/meta.js +2 -2
  203. package/lib/utils/get-options/quarantine.js +8 -6
  204. package/lib/utils/get-options/screenshot.js +2 -2
  205. package/lib/utils/get-options/skip-js-errors.js +35 -0
  206. package/lib/utils/get-options/ssl.js +6 -6
  207. package/lib/utils/get-options/video.js +2 -2
  208. package/lib/utils/is-password-input.js +1 -1
  209. package/lib/utils/log-entry.js +2 -2
  210. package/lib/utils/make-reg-exp.js +19 -6
  211. package/lib/utils/moment-loader.js +2 -2
  212. package/lib/utils/parse-file-list.js +7 -7
  213. package/lib/utils/path-pattern.js +4 -4
  214. package/lib/utils/prepare-reporters.js +2 -2
  215. package/lib/utils/prerender-callsite.js +6 -6
  216. package/lib/utils/process.js +7 -7
  217. package/lib/utils/promisified-functions.js +14 -14
  218. package/lib/utils/raw-command-callsite-record.js +2 -2
  219. package/lib/utils/resolve-path-relatively-cwd.js +2 -2
  220. package/lib/utils/string.js +3 -3
  221. package/lib/utils/temp-directory/cleanup-process/index.js +6 -6
  222. package/lib/utils/temp-directory/cleanup-process/worker.js +4 -4
  223. package/lib/utils/temp-directory/index.js +6 -6
  224. package/lib/utils/temp-directory/lockfile.js +2 -2
  225. package/lib/video-recorder/process.js +6 -6
  226. package/lib/video-recorder/recorder.js +9 -9
  227. package/lib/video-recorder/test-run-video-recorder.js +2 -2
  228. package/package.json +8 -7
  229. package/ts-defs/index.d.ts +46 -7
  230. package/ts-defs/selectors.d.ts +39 -0
  231. package/ts-defs/testcafe-scripts.d.ts +39 -0
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.urlArgument = exports.urlsArgument = exports.setCookiesArgument = exports.cookiesArgument = exports.functionArgument = exports.screenshotPathArgument = exports.resizeWindowDeviceArgument = exports.stringOrStringArrayArgument = exports.pageUrlArgument = exports.nullableStringArgument = exports.nonEmptyStringArgument = exports.stringArgument = exports.actionOptions = exports.actionRoleArgument = exports.setSpeedArgument = exports.booleanArgument = exports.positiveIntegerArgument = exports.integerArgument = void 0;
6
+ exports.skipJsErrorOptions = exports.urlArgument = exports.urlsArgument = exports.setCookiesArgument = exports.cookiesArgument = exports.functionArgument = exports.screenshotPathArgument = exports.resizeWindowDeviceArgument = exports.stringOrStringArrayArgument = exports.pageUrlArgument = exports.nullableStringArgument = exports.nonEmptyStringArgument = exports.stringArgument = exports.actionOptions = exports.actionRoleArgument = exports.setSpeedArgument = exports.booleanArgument = exports.positiveIntegerArgument = exports.integerArgument = void 0;
7
7
  const device_specs_1 = require("device-specs");
8
8
  const marker_symbol_1 = __importDefault(require("../../../role/marker-symbol"));
9
9
  const factories_1 = require("./factories");
@@ -12,11 +12,12 @@ const url_1 = require("url");
12
12
  const test_page_url_1 = require("../../../api/test-page-url");
13
13
  const check_file_path_1 = __importDefault(require("../../../utils/check-file-path"));
14
14
  const lodash_1 = require("lodash");
15
+ const skip_js_errors_1 = require("../../../api/skip-js-errors");
15
16
  // Validators
16
- exports.integerArgument = factories_1.createIntegerValidator(test_run_1.ActionIntegerArgumentError);
17
- exports.positiveIntegerArgument = factories_1.createPositiveIntegerValidator(test_run_1.ActionPositiveIntegerArgumentError);
18
- exports.booleanArgument = factories_1.createBooleanValidator(test_run_1.ActionBooleanArgumentError);
19
- exports.setSpeedArgument = factories_1.createSpeedValidator(test_run_1.SetTestSpeedArgumentError);
17
+ exports.integerArgument = (0, factories_1.createIntegerValidator)(test_run_1.ActionIntegerArgumentError);
18
+ exports.positiveIntegerArgument = (0, factories_1.createPositiveIntegerValidator)(test_run_1.ActionPositiveIntegerArgumentError);
19
+ exports.booleanArgument = (0, factories_1.createBooleanValidator)(test_run_1.ActionBooleanArgumentError);
20
+ exports.setSpeedArgument = (0, factories_1.createSpeedValidator)(test_run_1.SetTestSpeedArgumentError);
20
21
  function actionRoleArgument(name, val) {
21
22
  if (!val || !val[marker_symbol_1.default])
22
23
  throw new test_run_1.ActionRoleArgumentError(name, typeof val);
@@ -52,7 +53,7 @@ function nullableStringArgument(argument, val) {
52
53
  exports.nullableStringArgument = nullableStringArgument;
53
54
  function pageUrlArgument(name, val) {
54
55
  nonEmptyStringArgument(name, val);
55
- test_page_url_1.assertPageUrl(val.trim(), 'navigateTo');
56
+ (0, test_page_url_1.assertPageUrl)(val.trim(), 'navigateTo');
56
57
  }
57
58
  exports.pageUrlArgument = pageUrlArgument;
58
59
  function stringOrStringArrayArgument(argument, val) {
@@ -74,13 +75,13 @@ function stringOrStringArrayArgument(argument, val) {
74
75
  exports.stringOrStringArrayArgument = stringOrStringArrayArgument;
75
76
  function resizeWindowDeviceArgument(name, val) {
76
77
  nonEmptyStringArgument(name, val);
77
- if (!device_specs_1.isValidDeviceName(val))
78
+ if (!(0, device_specs_1.isValidDeviceName)(val))
78
79
  throw new test_run_1.ActionUnsupportedDeviceTypeError(name, val);
79
80
  }
80
81
  exports.resizeWindowDeviceArgument = resizeWindowDeviceArgument;
81
82
  function screenshotPathArgument(name, val) {
82
83
  nonEmptyStringArgument(name, val);
83
- const forbiddenCharsList = check_file_path_1.default(val);
84
+ const forbiddenCharsList = (0, check_file_path_1.default)(val);
84
85
  if (forbiddenCharsList.length)
85
86
  throw new test_run_1.ForbiddenCharactersInScreenshotPathError(val, forbiddenCharsList);
86
87
  }
@@ -119,7 +120,7 @@ function isValidUrl(url) {
119
120
  }
120
121
  }
121
122
  function urlsArgument(name, val) {
122
- const castVal = lodash_1.castArray(val);
123
+ const castVal = (0, lodash_1.castArray)(val);
123
124
  for (const [i, value] of castVal.entries()) {
124
125
  if (!isValidUrl(value)) {
125
126
  throw castVal.length === 1
@@ -135,4 +136,12 @@ function urlArgument(name, val) {
135
136
  throw new test_run_1.ActionUrlArgumentError(name, valType);
136
137
  }
137
138
  exports.urlArgument = urlArgument;
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdC1ydW4vY29tbWFuZHMvdmFsaWRhdGlvbnMvYXJndW1lbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQWlEO0FBQ2pELGdGQUEyRDtBQUUzRCwyQ0FLcUI7QUFFckIsdURBb0JrQztBQUVsQyw2QkFBMEI7QUFDMUIsOERBQTJEO0FBQzNELHFGQUEyRDtBQUMzRCxtQ0FBbUM7QUFHbkMsYUFBYTtBQUNBLFFBQUEsZUFBZSxHQUFXLGtDQUFzQixDQUFDLHFDQUEwQixDQUFDLENBQUM7QUFDN0UsUUFBQSx1QkFBdUIsR0FBRywwQ0FBOEIsQ0FBQyw2Q0FBa0MsQ0FBQyxDQUFDO0FBQzdGLFFBQUEsZUFBZSxHQUFXLGtDQUFzQixDQUFDLHFDQUEwQixDQUFDLENBQUM7QUFDN0UsUUFBQSxnQkFBZ0IsR0FBVSxnQ0FBb0IsQ0FBQyxvQ0FBeUIsQ0FBQyxDQUFDO0FBR3ZGLFNBQWdCLGtCQUFrQixDQUFFLElBQUksRUFBRSxHQUFHO0lBQ3pDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQWdCLENBQUM7UUFDOUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFIRCxnREFHQztBQUVELFNBQWdCLGFBQWEsQ0FBRSxJQUFJLEVBQUUsR0FBRztJQUNwQyxNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsQ0FBQztJQUV4QixJQUFJLElBQUksS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDO1FBQ25ELE1BQU0sSUFBSSxpQ0FBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBTEQsc0NBS0M7QUFHRCxTQUFnQixjQUFjLENBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxXQUFXO0lBQ3RE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RyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUxELGdEQUtDO0FBRUQsU0FBUyxVQUFVLENBQUUsR0FBRztJQUNwQixJQUFJO1FBQ0EsT0FBTyxJQUFJLFNBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7S0FDL0I7SUFDRCxXQUFNO1FBQ0YsT0FBTyxLQUFLLENBQUM7S0FDaEI7QUFDTCxDQUFDO0FBRUQsU0FBZ0IsWUFBWSxDQUFFLElBQUksRUFBRSxHQUFHO0lBQ25DLE1BQU0sT0FBTyxHQUFHLGtCQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFL0IsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUN0QixDQUFDLENBQUMsSUFBSSx1Q0FBNEIsRUFBRTtnQkFDcEMsQ0FBQyxDQUFDLElBQUksd0NBQTZCLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3JEO0tBQ0o7QUFDTCxDQUFDO0FBVkQsb0NBVUM7QUFFRCxTQUFnQixXQUFXLENBQUUsSUFBSSxFQUFFLEdBQUc7SUFDbEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxHQUFHLENBQUM7SUFFM0IsSUFBSSxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksU0FBRyxDQUFDO1FBQzdDLE1BQU0sSUFBSSxpQ0FBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUxELGtDQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNWYWxpZERldmljZU5hbWUgfSBmcm9tICdkZXZpY2Utc3BlY3MnO1xuaW1wb3J0IHJvbGVNYXJrZXJTeW1ib2wgZnJvbSAnLi4vLi4vLi4vcm9sZS9tYXJrZXItc3ltYm9sJztcblxuaW1wb3J0IHtcbiAgICBjcmVhdGVCb29sZWFuVmFsaWRhdG9yLFxuICAgIGNyZWF0ZUludGVnZXJWYWxpZGF0b3IsXG4gICAgY3JlYXRlUG9zaXRpdmVJbnRlZ2VyVmFsaWRhdG9yLFxuICAgIGNyZWF0ZVNwZWVkVmFsaWRhdG9yLFxufSBmcm9tICcuL2ZhY3Rvcmllcyc7XG5cbmltcG9ydCB7XG4gICAgQWN0aW9uT3B0aW9uc1R5cGVFcnJvcixcbiAgICBBY3Rpb25Cb29sZWFuQXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25TdHJpbmdBcmd1bWVudEVycm9yLFxuICAgIEFjdGlvbk51bGxhYmxlU3RyaW5nQXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25JbnRlZ2VyQXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25Sb2xlQXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25Qb3NpdGl2ZUludGVnZXJBcmd1bWVudEVycm9yLFxuICAgIEFjdGlvblN0cmluZ09yU3RyaW5nQXJyYXlBcmd1bWVudEVycm9yLFxuICAgIEFjdGlvblN0cmluZ0FycmF5RWxlbWVudEVycm9yLFxuICAgIEFjdGlvblVuc3VwcG9ydGVkRGV2aWNlVHlwZUVycm9yLFxuICAgIEFjdGlvbkZ1bmN0aW9uQXJndW1lbnRFcnJvcixcbiAgICBTZXRUZXN0U3BlZWRBcmd1bWVudEVycm9yLFxuICAgIEZvcmJpZGRlbkNoYXJhY3RlcnNJblNjcmVlbnNob3RQYXRoRXJyb3IsXG4gICAgQWN0aW9uQ29va2llQXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25Db29raWVBcmd1bWVudHNFcnJvcixcbiAgICBBY3Rpb25VcmxDb29raWVBcmd1bWVudEVycm9yLFxuICAgIEFjdGlvblVybHNDb29raWVBcmd1bWVudEVycm9yLFxuICAgIEFjdGlvblJlcXVpcmVkQ29va2llQXJndW1lbnRzLFxuICAgIEFjdGlvblVybEFyZ3VtZW50RXJyb3IsXG59IGZyb20gJy4uLy4uLy4uL2Vycm9ycy90ZXN0LXJ1bic7XG5cbmltcG9ydCB7IFVSTCB9IGZyb20gJ3VybCc7XG5pbXBvcnQgeyBhc3NlcnRQYWdlVXJsIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3Rlc3QtcGFnZS11cmwnO1xuaW1wb3J0IGNoZWNrRmlsZVBhdGggZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2hlY2stZmlsZS1wYXRoJztcbmltcG9ydCB7IGNhc3RBcnJheSB9IGZyb20gJ2xvZGFzaCc7XG5cblxuLy8gVmFsaWRhdG9yc1xuZXhwb3J0IGNvbnN0IGludGVnZXJBcmd1bWVudCAgICAgICAgID0gY3JlYXRlSW50ZWdlclZhbGlkYXRvcihBY3Rpb25JbnRlZ2VyQXJndW1lbnRFcnJvcik7XG5leHBvcnQgY29uc3QgcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQgPSBjcmVhdGVQb3NpdGl2ZUludGVnZXJWYWxpZGF0b3IoQWN0aW9uUG9zaXRpdmVJbnRlZ2VyQXJndW1lbnRFcnJvcik7XG5leHBvcnQgY29uc3QgYm9vbGVhbkFyZ3VtZW50ICAgICAgICAgPSBjcmVhdGVCb29sZWFuVmFsaWRhdG9yKEFjdGlvbkJvb2xlYW5Bcmd1bWVudEVycm9yKTtcbmV4cG9ydCBjb25zdCBzZXRTcGVlZEFyZ3VtZW50ICAgICAgICA9IGNyZWF0ZVNwZWVkVmFsaWRhdG9yKFNldFRlc3RTcGVlZEFyZ3VtZW50RXJyb3IpO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25Sb2xlQXJndW1lbnQgKG5hbWUsIHZhbCkge1xuICAgIGlmICghdmFsIHx8ICF2YWxbcm9sZU1hcmtlclN5bWJvbF0pXG4gICAgICAgIHRocm93IG5ldyBBY3Rpb25Sb2xlQXJndW1lbnRFcnJvcihuYW1lLCB0eXBlb2YgdmFsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbk9wdGlvbnMgKG5hbWUsIHZhbCkge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgaWYgKHR5cGUgIT09ICdvYmplY3QnICYmIHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09IHZvaWQgMClcbiAgICAgICAgdGhyb3cgbmV3IEFjdGlvbk9wdGlvbnNUeXBlRXJyb3IodHlwZSk7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0FyZ3VtZW50IChhcmd1bWVudCwgdmFsLCBjcmVhdGVFcnJvcikge1xuICAgIGlmICghY3JlYXRlRXJyb3IpXG4gICAgICAgIGNyZWF0ZUVycm9yID0gYWN0dWFsVmFsdWUgPT4gbmV3IEFjdGlvblN0cmluZ0FyZ3VtZW50RXJyb3IoYXJndW1lbnQsIGFjdHVhbFZhbHVlKTtcblxuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgaWYgKHR5cGUgIT09ICdzdHJpbmcnKVxuICAgICAgICB0aHJvdyBjcmVhdGVFcnJvcih0eXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vbkVtcHR5U3RyaW5nQXJndW1lbnQgKGFyZ3VtZW50LCB2YWwsIGNyZWF0ZUVycm9yKSB7XG4gICAgaWYgKCFjcmVhdGVFcnJvcilcbiAgICAgICAgY3JlYXRlRXJyb3IgPSBhY3R1YWxWYWx1ZSA9PiBuZXcgQWN0aW9uU3RyaW5nQXJndW1lbnRFcnJvcihhcmd1bWVudCwgYWN0dWFsVmFsdWUpO1xuXG4gICAgc3RyaW5nQXJndW1lbnQoYXJndW1lbnQsIHZhbCwgY3JlYXRlRXJyb3IpO1xuXG4gICAgaWYgKCF2YWwubGVuZ3RoKVxuICAgICAgICB0aHJvdyBjcmVhdGVFcnJvcignXCJcIicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbnVsbGFibGVTdHJpbmdBcmd1bWVudCAoYXJndW1lbnQsIHZhbCkge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgaWYgKHR5cGUgIT09ICdzdHJpbmcnICYmIHZhbCAhPT0gbnVsbClcbiAgICAgICAgdGhyb3cgbmV3IEFjdGlvbk51bGxhYmxlU3RyaW5nQXJndW1lbnRFcnJvcihhcmd1bWVudCwgdHlwZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYWdlVXJsQXJndW1lbnQgKG5hbWUsIHZhbCkge1xuICAgIG5vbkVtcHR5U3RyaW5nQXJndW1lbnQobmFtZSwgdmFsKTtcblxuICAgIGFzc2VydFBhZ2VVcmwodmFsLnRyaW0oKSwgJ25hdmlnYXRlVG8nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ09yU3RyaW5nQXJyYXlBcmd1bWVudCAoYXJndW1lbnQsIHZhbCkge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmICghdmFsLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBBY3Rpb25TdHJpbmdPclN0cmluZ0FycmF5QXJndW1lbnRFcnJvcihhcmd1bWVudCwgJ1wiXCInKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgaWYgKCF2YWwubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEFjdGlvblN0cmluZ09yU3RyaW5nQXJyYXlBcmd1bWVudEVycm9yKGFyZ3VtZW50LCAnW10nKTtcblxuICAgICAgICBjb25zdCB2YWxpZGF0ZUVsZW1lbnQgPSBlbGVtZW50SW5kZXggPT4gbm9uRW1wdHlTdHJpbmdBcmd1bWVudChcbiAgICAgICAgICAgIGFyZ3VtZW50LFxuICAgICAgICAgICAgdmFsW2VsZW1lbnRJbmRleF0sXG4gICAgICAgICAgICBhY3R1YWxWYWx1ZSA9PiBuZXcgQWN0aW9uU3RyaW5nQXJyYXlFbGVtZW50RXJyb3IoYXJndW1lbnQsIGFjdHVhbFZhbHVlLCBlbGVtZW50SW5kZXgpXG4gICAgICAgICk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICB2YWxpZGF0ZUVsZW1lbnQoaSk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aHJvdyBuZXcgQWN0aW9uU3RyaW5nT3JTdHJpbmdBcnJheUFyZ3VtZW50RXJyb3IoYXJndW1lbnQsIHR5cGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplV2luZG93RGV2aWNlQXJndW1lbnQgKG5hbWUsIHZhbCkge1xuICAgIG5vbkVtcHR5U3RyaW5nQXJndW1lbnQobmFtZSwgdmFsKTtcblxuICAgIGlmICghaXNWYWxpZERldmljZU5hbWUodmFsKSlcbiAgICAgICAgdGhyb3cgbmV3IEFjdGlvblVuc3VwcG9ydGVkRGV2aWNlVHlwZUVycm9yKG5hbWUsIHZhbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzY3JlZW5zaG90UGF0aEFyZ3VtZW50IChuYW1lLCB2YWwpIHtcbiAgICBub25FbXB0eVN0cmluZ0FyZ3VtZW50KG5hbWUsIHZhbCk7XG5cbiAgICBjb25zdCBmb3JiaWRkZW5DaGFyc0xpc3QgPSBjaGVja0ZpbGVQYXRoKHZhbCk7XG5cbiAgICBpZiAoZm9yYmlkZGVuQ2hhcnNMaXN0Lmxlbmd0aClcbiAgICAgICAgdGhyb3cgbmV3IEZvcmJpZGRlbkNoYXJhY3RlcnNJblNjcmVlbnNob3RQYXRoRXJyb3IodmFsLCBmb3JiaWRkZW5DaGFyc0xpc3QpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnVuY3Rpb25Bcmd1bWVudCAobmFtZSwgdmFsKSB7XG4gICAgaWYgKHR5cGVvZiB2YWwgIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBBY3Rpb25GdW5jdGlvbkFyZ3VtZW50RXJyb3IobmFtZSwgdmFsKTtcbn1cblxuZnVuY3Rpb24gaXNWYWxpZENvb2tpZSAoY29va2llKSB7XG4gICAgcmV0dXJuICEhY29va2llICYmICh0eXBlb2YgY29va2llID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgY29va2llID09PSAnc3RyaW5nJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb29raWVzQXJndW1lbnQgKG5hbWUsIHZhbCkge1xuICAgIGNvbnN0IGNvb2tpZXNMZW5ndGggPSB2YWwubGVuZ3RoO1xuXG4gICAgZm9yIChjb25zdCBbaSwgdmFsdWVdIG9mIHZhbC5lbnRyaWVzKCkpIHtcbiAgICAgICAgaWYgKCFpc1ZhbGlkQ29va2llKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhyb3cgY29va2llc0xlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgID8gbmV3IEFjdGlvbkNvb2tpZUFyZ3VtZW50RXJyb3IoKVxuICAgICAgICAgICAgICAgIDogbmV3IEFjdGlvbkNvb2tpZUFyZ3VtZW50c0Vycm9yKGksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldENvb2tpZXNBcmd1bWVudCAobmFtZSwgdmFsKSB7XG4gICAgaWYgKCF2YWwubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgQWN0aW9uUmVxdWlyZWRDb29raWVBcmd1bWVudHMoKTtcblxuICAgIGNvb2tpZXNBcmd1bWVudChuYW1lLCB2YWwpO1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkVXJsICh1cmwpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gbmV3IFVSTCh1cmwpICYmIHRydWU7XG4gICAgfVxuICAgIGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybHNBcmd1bWVudCAobmFtZSwgdmFsKSB7XG4gICAgY29uc3QgY2FzdFZhbCA9IGNhc3RBcnJheSh2YWwpO1xuXG4gICAgZm9yIChjb25zdCBbaSwgdmFsdWVdIG9mIGNhc3RWYWwuZW50cmllcygpKSB7XG4gICAgICAgIGlmICghaXNWYWxpZFVybCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRocm93IGNhc3RWYWwubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgPyBuZXcgQWN0aW9uVXJsQ29va2llQXJndW1lbnRFcnJvcigpXG4gICAgICAgICAgICAgICAgOiBuZXcgQWN0aW9uVXJsc0Nvb2tpZUFyZ3VtZW50RXJyb3IoaSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsQXJndW1lbnQgKG5hbWUsIHZhbCkge1xuICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgaWYgKHZhbFR5cGUgIT09ICdzdHJpbmcnICYmICEodmFsIGluc3RhbmNlb2YgVVJMKSlcbiAgICAgICAgdGhyb3cgbmV3IEFjdGlvblVybEFyZ3VtZW50RXJyb3IobmFtZSwgdmFsVHlwZSk7XG59XG4iXX0=
139
+ function skipJsErrorOptions(name, val) {
140
+ const valType = typeof val;
141
+ if (valType !== 'undefined' && valType !== 'object' && valType !== 'boolean' && valType !== 'function')
142
+ throw new test_run_1.ActionSkipJsErrorsArgumentTypeError(name, valType);
143
+ if ((0, skip_js_errors_1.isSkipJsErrorsCallbackWithOptionsObject)(val) && val.dependencies && typeof val.dependencies !== 'object')
144
+ throw new test_run_1.ActionSkipJsErrorsDependenciesArgumentTypeError('dependencies', typeof dependencies);
145
+ }
146
+ exports.skipJsErrorOptions = skipJsErrorOptions;
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGVzdC1ydW4vY29tbWFuZHMvdmFsaWRhdGlvbnMvYXJndW1lbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsK0NBQWlEO0FBQ2pELGdGQUEyRDtBQUUzRCwyQ0FLcUI7QUFFckIsdURBc0JrQztBQUVsQyw2QkFBMEI7QUFDMUIsOERBQTJEO0FBQzNELHFGQUEyRDtBQUMzRCxtQ0FBbUM7QUFDbkMsZ0VBQXNGO0FBR3RGLGFBQWE7QUFDQSxRQUFBLGVBQWUsR0FBVyxJQUFBLGtDQUFzQixFQUFDLHFDQUEwQixDQUFDLENBQUM7QUFDN0UsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLDBDQUE4QixFQUFDLDZDQUFrQyxDQUFDLENBQUM7QUFDN0YsUUFBQSxlQUFlLEdBQVcsSUFBQSxrQ0FBc0IsRUFBQyxxQ0FBMEIsQ0FBQyxDQUFDO0FBQzdFLFFBQUEsZ0JBQWdCLEdBQVUsSUFBQSxnQ0FBb0IsRUFBQyxvQ0FBeUIsQ0FBQyxDQUFDO0FBR3ZGLFNBQWdCLGtCQUFrQixDQUFFLElBQUksRUFBRSxHQUFHO0lBQ3pDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQWdCLENBQUM7UUFDOUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFIRCxnREFHQztBQUVELFNBQWdCLGFBQWEsQ0FBRSxJQUFJLEVBQUUsR0FBRztJQUNwQyxNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsQ0FBQztJQUV4QixJQUFJLElBQUksS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssS0FBSyxDQUFDO1FBQ25ELE1BQU0sSUFBSSxpQ0FBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBTEQsc0NBS0M7QUFHRCxTQUFnQixjQUFjLENB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QUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLE9BQU8sS0FBSyxVQUFVO1FBQ2xHLE1BQU0sSUFBSSw4Q0FBbUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFakUsSUFBSSxJQUFBLHdEQUF1QyxFQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxZQUFZLElBQUksT0FBTyxHQUFHLENBQUMsWUFBWSxLQUFLLFFBQVE7UUFDeEcsTUFBTSxJQUFJLDBEQUErQyxDQUFDLGNBQWMsRUFBRSxPQUFPLFlBQVksQ0FBQyxDQUFDO0FBQ3ZHLENBQUM7QUFSRCxnREFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVmFsaWREZXZpY2VOYW1lIH0gZnJvbSAnZGV2aWNlLXNwZWNzJztcbmltcG9ydCByb2xlTWFya2VyU3ltYm9sIGZyb20gJy4uLy4uLy4uL3JvbGUvbWFya2VyLXN5bWJvbCc7XG5cbmltcG9ydCB7XG4gICAgY3JlYXRlQm9vbGVhblZhbGlkYXRvcixcbiAgICBjcmVhdGVJbnRlZ2VyVmFsaWRhdG9yLFxuICAgIGNyZWF0ZVBvc2l0aXZlSW50ZWdlclZhbGlkYXRvcixcbiAgICBjcmVhdGVTcGVlZFZhbGlkYXRvcixcbn0gZnJvbSAnLi9mYWN0b3JpZXMnO1xuXG5pbXBvcnQge1xuICAgIEFjdGlvbk9wdGlvbnNUeXBlRXJyb3IsXG4gICAgQWN0aW9uQm9vbGVhbkFyZ3VtZW50RXJyb3IsXG4gICAgQWN0aW9uU3RyaW5nQXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25OdWxsYWJsZVN0cmluZ0FyZ3VtZW50RXJyb3IsXG4gICAgQWN0aW9uSW50ZWdlckFyZ3VtZW50RXJyb3IsXG4gICAgQWN0aW9uUm9sZUFyZ3VtZW50RXJyb3IsXG4gICAgQWN0aW9uUG9zaXRpdmVJbnRlZ2VyQXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25TdHJpbmdPclN0cmluZ0FycmF5QXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25TdHJpbmdBcnJheUVsZW1lbnRFcnJvcixcbiAgICBBY3Rpb25VbnN1cHBvcnRlZERldmljZVR5cGVFcnJvcixcbiAgICBBY3Rpb25GdW5jdGlvbkFyZ3VtZW50RXJyb3IsXG4gICAgU2V0VGVzdFNwZWVkQXJndW1lbnRFcnJvcixcbiAgICBGb3JiaWRkZW5DaGFyYWN0ZXJzSW5TY3JlZW5zaG90UGF0aEVycm9yLFxuICAgIEFjdGlvbkNvb2tpZUFyZ3VtZW50RXJyb3IsXG4gICAgQWN0aW9uQ29va2llQXJndW1lbnRzRXJyb3IsXG4gICAgQWN0aW9uVXJsQ29va2llQXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25VcmxzQ29va2llQXJndW1lbnRFcnJvcixcbiAgICBBY3Rpb25SZXF1aXJlZENvb2tpZUFyZ3VtZW50cyxcbiAgICBBY3Rpb25VcmxBcmd1bWVudEVycm9yLFxuICAgIEFjdGlvblNraXBKc0Vycm9yc0FyZ3VtZW50VHlwZUVycm9yLFxuICAgIEFjdGlvblNraXBKc0Vycm9yc0RlcGVuZGVuY2llc0FyZ3VtZW50VHlwZUVycm9yLFxufSBmcm9tICcuLi8uLi8uLi9lcnJvcnMvdGVzdC1ydW4nO1xuXG5pbXBvcnQgeyBVUkwgfSBmcm9tICd1cmwnO1xuaW1wb3J0IHsgYXNzZXJ0UGFnZVVybCB9IGZyb20gJy4uLy4uLy4uL2FwaS90ZXN0LXBhZ2UtdXJsJztcbmltcG9ydCBjaGVja0ZpbGVQYXRoIGZyb20gJy4uLy4uLy4uL3V0aWxzL2NoZWNrLWZpbGUtcGF0aCc7XG5pbXBvcnQgeyBjYXN0QXJyYXkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgaXNTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vYXBpL3NraXAtanMtZXJyb3JzJztcblxuXG4vLyBWYWxpZGF0b3JzXG5leHBvcnQgY29uc3QgaW50ZWdlckFyZ3VtZW50ICAgICAgICAgPSBjcmVhdGVJbnRlZ2VyVmFsaWRhdG9yKEFjdGlvbkludGVnZXJBcmd1bWVudEVycm9yKTtcbmV4cG9ydCBjb25zdCBwb3NpdGl2ZUludGVnZXJBcmd1bWVudCA9IGNyZWF0ZVBvc2l0aXZlSW50ZWdlclZhbGlkYXRvcihBY3Rpb25Qb3NpdGl2ZUludGVnZXJBcmd1bWVudEVycm9yKTtcbmV4cG9ydCBjb25zdCBib29sZWFuQXJndW1lbnQgICAgICAgICA9IGNyZWF0ZUJvb2xlYW5WYWxpZGF0b3IoQWN0aW9uQm9vbGVhbkFyZ3VtZW50RXJyb3IpO1xuZXhwb3J0IGNvbnN0IHNldFNwZWVkQXJndW1lbnQgICAgICAgID0gY3JlYXRlU3BlZWRWYWxpZGF0b3IoU2V0VGVzdFNwZWVkQXJndW1lbnRFcnJvcik7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvblJvbGVBcmd1bWVudCAobmFtZSwgdmFsKSB7XG4gICAgaWYgKCF2YWwgfHwgIXZhbFtyb2xlTWFya2VyU3ltYm9sXSlcbiAgICAgICAgdGhyb3cgbmV3IEFjdGlvblJvbGVBcmd1bWVudEVycm9yKG5hbWUsIHR5cGVvZiB2YWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWN0aW9uT3B0aW9ucyAobmFtZSwgdmFsKSB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICBpZiAodHlwZSAhPT0gJ29iamVjdCcgJiYgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gdm9pZCAwKVxuICAgICAgICB0aHJvdyBuZXcgQWN0aW9uT3B0aW9uc1R5cGVFcnJvcih0eXBlKTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nQXJndW1lbnQgKGFyZ3VtZW50LCB2YWwsIGNyZWF0ZUVycm9yKSB7XG4gICAgaWYgKCFjcmVhdGVFcnJvcilcbiAgICAgICAgY3JlYXRlRXJyb3IgPSBhY3R1YWxWYWx1ZSA9PiBuZXcgQWN0aW9uU3RyaW5nQXJndW1lbnRFcnJvcihhcmd1bWVudCwgYWN0dWFsVmFsdWUpO1xuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICBpZiAodHlwZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IGNyZWF0ZUVycm9yKHR5cGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9uRW1wdHlTdHJpbmdBcmd1bWVudCAoYXJndW1lbnQsIHZhbCwgY3JlYXRlRXJyb3IpIHtcbiAgICBpZiAoIWNyZWF0ZUVycm9yKVxuICAgICAgICBjcmVhdGVFcnJvciA9IGFjdHVhbFZhbHVlID0+IG5ldyBBY3Rpb25TdHJpbmdBcmd1bWVudEVycm9yKGFyZ3VtZW50LCBhY3R1YWxWYWx1ZSk7XG5cbiAgICBzdHJpbmdBcmd1bWVudChhcmd1bWVudCwgdmFsLCBjcmVhdGVFcnJvcik7XG5cbiAgICBpZiAoIXZhbC5sZW5ndGgpXG4gICAgICAgIHRocm93IGNyZWF0ZUVycm9yKCdcIlwiJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBudWxsYWJsZVN0cmluZ0FyZ3VtZW50IChhcmd1bWVudCwgdmFsKSB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICBpZiAodHlwZSAhPT0gJ3N0cmluZycgJiYgdmFsICE9PSBudWxsKVxuICAgICAgICB0aHJvdyBuZXcgQWN0aW9uTnVsbGFibGVTdHJpbmdBcmd1bWVudEVycm9yKGFyZ3VtZW50LCB0eXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhZ2VVcmxBcmd1bWVudCAobmFtZSwgdmFsKSB7XG4gICAgbm9uRW1wdHlTdHJpbmdBcmd1bWVudChuYW1lLCB2YWwpO1xuXG4gICAgYXNzZXJ0UGFnZVVybCh2YWwudHJpbSgpLCAnbmF2aWdhdGVUbycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nT3JTdHJpbmdBcnJheUFyZ3VtZW50IChhcmd1bWVudCwgdmFsKSB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICBpZiAodHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKCF2YWwubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEFjdGlvblN0cmluZ09yU3RyaW5nQXJyYXlBcmd1bWVudEVycm9yKGFyZ3VtZW50LCAnXCJcIicpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICBpZiAoIXZhbC5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgQWN0aW9uU3RyaW5nT3JTdHJpbmdBcnJheUFyZ3VtZW50RXJyb3IoYXJndW1lbnQsICdbXScpO1xuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRlRWxlbWVudCA9IGVsZW1lbnRJbmRleCA9PiBub25FbXB0eVN0cmluZ0FyZ3VtZW50KFxuICAgICAgICAgICAgYXJndW1lbnQsXG4gICAgICAgICAgICB2YWxbZWxlbWVudEluZGV4XSxcbiAgICAgICAgICAgIGFjdHVhbFZhbHVlID0+IG5ldyBBY3Rpb25TdHJpbmdBcnJheUVsZW1lbnRFcnJvcihhcmd1bWVudCwgYWN0dWFsVmFsdWUsIGVsZW1lbnRJbmRleClcbiAgICAgICAgKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHZhbGlkYXRlRWxlbWVudChpKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRocm93IG5ldyBBY3Rpb25TdHJpbmdPclN0cmluZ0FycmF5QXJndW1lbnRFcnJvcihhcmd1bWVudCwgdHlwZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNpemVXaW5kb3dEZXZpY2VBcmd1bWVudCAobmFtZSwgdmFsKSB7XG4gICAgbm9uRW1wdHlTdHJpbmdBcmd1bWVudChuYW1lLCB2YWwpO1xuXG4gICAgaWYgKCFpc1ZhbGlkRGV2aWNlTmFtZSh2YWwpKVxuICAgICAgICB0aHJvdyBuZXcgQWN0aW9uVW5zdXBwb3J0ZWREZXZpY2VUeXBlRXJyb3IobmFtZSwgdmFsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNjcmVlbnNob3RQYXRoQXJndW1lbnQgKG5hbWUsIHZhbCkge1xuICAgIG5vbkVtcHR5U3RyaW5nQXJndW1lbnQobmFtZSwgdmFsKTtcblxuICAgIGNvbnN0IGZvcmJpZGRlbkNoYXJzTGlzdCA9IGNoZWNrRmlsZVBhdGgodmFsKTtcblxuICAgIGlmIChmb3JiaWRkZW5DaGFyc0xpc3QubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgRm9yYmlkZGVuQ2hhcmFjdGVyc0luU2NyZWVuc2hvdFBhdGhFcnJvcih2YWwsIGZvcmJpZGRlbkNoYXJzTGlzdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmdW5jdGlvbkFyZ3VtZW50IChuYW1lLCB2YWwpIHtcbiAgICBpZiAodHlwZW9mIHZhbCAhPT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgdGhyb3cgbmV3IEFjdGlvbkZ1bmN0aW9uQXJndW1lbnRFcnJvcihuYW1lLCB2YWwpO1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkQ29va2llIChjb29raWUpIHtcbiAgICByZXR1cm4gISFjb29raWUgJiYgKHR5cGVvZiBjb29raWUgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBjb29raWUgPT09ICdzdHJpbmcnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvb2tpZXNBcmd1bWVudCAobmFtZSwgdmFsKSB7XG4gICAgY29uc3QgY29va2llc0xlbmd0aCA9IHZhbC5sZW5ndGg7XG5cbiAgICBmb3IgKGNvbnN0IFtpLCB2YWx1ZV0gb2YgdmFsLmVudHJpZXMoKSkge1xuICAgICAgICBpZiAoIWlzVmFsaWRDb29raWUodmFsdWUpKSB7XG4gICAgICAgICAgICB0aHJvdyBjb29raWVzTGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgPyBuZXcgQWN0aW9uQ29va2llQXJndW1lbnRFcnJvcigpXG4gICAgICAgICAgICAgICAgOiBuZXcgQWN0aW9uQ29va2llQXJndW1lbnRzRXJyb3IoaSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29va2llc0FyZ3VtZW50IChuYW1lLCB2YWwpIHtcbiAgICBpZiAoIXZhbC5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBBY3Rpb25SZXF1aXJlZENvb2tpZUFyZ3VtZW50cygpO1xuXG4gICAgY29va2llc0FyZ3VtZW50KG5hbWUsIHZhbCk7XG59XG5cbmZ1bmN0aW9uIGlzVmFsaWRVcmwgKHVybCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBuZXcgVVJMKHVybCkgJiYgdHJ1ZTtcbiAgICB9XG4gICAgY2F0Y2gge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsc0FyZ3VtZW50IChuYW1lLCB2YWwpIHtcbiAgICBjb25zdCBjYXN0VmFsID0gY2FzdEFycmF5KHZhbCk7XG5cbiAgICBmb3IgKGNvbnN0IFtpLCB2YWx1ZV0gb2YgY2FzdFZhbC5lbnRyaWVzKCkpIHtcbiAgICAgICAgaWYgKCFpc1ZhbGlkVXJsKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhyb3cgY2FzdFZhbC5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgICA/IG5ldyBBY3Rpb25VcmxDb29raWVBcmd1bWVudEVycm9yKClcbiAgICAgICAgICAgICAgICA6IG5ldyBBY3Rpb25VcmxzQ29va2llQXJndW1lbnRFcnJvcihpLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxBcmd1bWVudCAobmFtZSwgdmFsKSB7XG4gICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICBpZiAodmFsVHlwZSAhPT0gJ3N0cmluZycgJiYgISh2YWwgaW5zdGFuY2VvZiBVUkwpKVxuICAgICAgICB0aHJvdyBuZXcgQWN0aW9uVXJsQXJndW1lbnRFcnJvcihuYW1lLCB2YWxUeXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNraXBKc0Vycm9yT3B0aW9ucyAobmFtZSwgdmFsKSB7XG4gICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICBpZiAodmFsVHlwZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsVHlwZSAhPT0gJ29iamVjdCcgJiYgdmFsVHlwZSAhPT0gJ2Jvb2xlYW4nICYmIHZhbFR5cGUgIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBBY3Rpb25Ta2lwSnNFcnJvcnNBcmd1bWVudFR5cGVFcnJvcihuYW1lLCB2YWxUeXBlKTtcblxuICAgIGlmIChpc1NraXBKc0Vycm9yc0NhbGxiYWNrV2l0aE9wdGlvbnNPYmplY3QodmFsKSAmJiB2YWwuZGVwZW5kZW5jaWVzICYmIHR5cGVvZiB2YWwuZGVwZW5kZW5jaWVzICE9PSAnb2JqZWN0JylcbiAgICAgICAgdGhyb3cgbmV3IEFjdGlvblNraXBKc0Vycm9yc0RlcGVuZGVuY2llc0FyZ3VtZW50VHlwZUVycm9yKCdkZXBlbmRlbmNpZXMnLCB0eXBlb2YgZGVwZW5kZW5jaWVzKTtcbn1cbiJdfQ==
@@ -4,7 +4,7 @@
4
4
  // Do not use any browser or node-specific API!
5
5
  // -------------------------------------------------------------
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createObjectValidator = exports.createUrlSearchParamsValidator = exports.createUrlValidator = exports.createNumberValidator = exports.createDateValidator = exports.createStringValidator = exports.createSpeedValidator = exports.createBooleanValidator = exports.createPositiveIntegerValidator = exports.createIntegerValidator = void 0;
7
+ exports.createObjectValidator = exports.createUrlSearchParamsValidator = exports.createUrlValidator = exports.createNumberValidator = exports.createDateValidator = exports.createStringOrRegexValidator = exports.createStringValidator = exports.createSpeedValidator = exports.createBooleanValidator = exports.createPositiveIntegerValidator = exports.createIntegerValidator = void 0;
8
8
  function createIntegerValidator(ErrorCtor) {
9
9
  return (name, val) => {
10
10
  const valType = typeof val;
@@ -53,6 +53,14 @@ function createStringValidator(ErrorCtor) {
53
53
  };
54
54
  }
55
55
  exports.createStringValidator = createStringValidator;
56
+ function createStringOrRegexValidator(ErrorCtor) {
57
+ return (name, val) => {
58
+ const valType = typeof val;
59
+ if (valType !== 'string' && !(val instanceof RegExp))
60
+ throw new ErrorCtor(name, valType);
61
+ };
62
+ }
63
+ exports.createStringOrRegexValidator = createStringOrRegexValidator;
56
64
  function createDateValidator(ErrorCtor) {
57
65
  return (name, val) => {
58
66
  if (!(val instanceof Date))
@@ -91,4 +99,4 @@ function createObjectValidator(ErrorCtor) {
91
99
  };
92
100
  }
93
101
  exports.createObjectValidator = createObjectValidator;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVuL2NvbW1hbmRzL3ZhbGlkYXRpb25zL2ZhY3Rvcmllcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0VBQWdFO0FBQ2hFLGdFQUFnRTtBQUNoRSwrQ0FBK0M7QUFDL0MsZ0VBQWdFOzs7QUFFaEUsU0FBZ0Isc0JBQXNCLENBQUUsU0FBUztJQUM3QyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLE9BQU8sR0FBRyxDQUFDO1FBRTNCLElBQUksT0FBTyxLQUFLLFFBQVE7WUFDcEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdkMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ2IsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUNiLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTO1lBQ1YsTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQWRELHdEQWNDO0FBRUQsU0FBZ0IsOEJBQThCLENBQUUsU0FBUztJQUNyRCxNQUFNLGdCQUFnQixHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTNELE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDakIsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTVCLElBQUksR0FBRyxHQUFHLENBQUM7WUFDUCxNQUFNLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUM7QUFDTixDQUFDO0FBVEQsd0VBU0M7QUFFRCxTQUFnQixz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TyxLQUFLLFFBQVE7WUFDcEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQVBELHNEQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gV0FSTklORzogdGhpcyBmaWxlIGlzIHVzZWQgYnkgYm90aCB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyLlxuLy8gRG8gbm90IHVzZSBhbnkgYnJvd3NlciBvciBub2RlLXNwZWNpZmljIEFQSSFcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludGVnZXJWYWxpZGF0b3IgKEVycm9yQ3Rvcikge1xuICAgIHJldHVybiAobmFtZSwgdmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgICAgIGlmICh2YWxUeXBlICE9PSAnbnVtYmVyJylcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckN0b3IobmFtZSwgdmFsVHlwZSk7XG5cbiAgICAgICAgY29uc3QgaXNJbnRlZ2VyID0gIWlzTmFOKHZhbCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRmluaXRlKHZhbCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9PT0gTWF0aC5mbG9vcih2YWwpO1xuXG4gICAgICAgIGlmICghaXNJbnRlZ2VyKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yQ3RvcihuYW1lLCB2YWwpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQb3NpdGl2ZUludGVnZXJWYWxpZGF0b3IgKEVycm9yQ3Rvcikge1xuICAgIGNvbnN0IGludGVnZXJWYWxpZGF0b3IgPSBjcmVhdGVJbnRlZ2VyVmFsaWRhdG9yKEVycm9yQ3Rvcik7XG5cbiAgICByZXR1cm4gKG5hbWUsIHZhbCkgPT4ge1xuICAgICAgICBpbnRlZ2VyVmFsaWRhdG9yKG5hbWUsIHZhbCk7XG5cbiAgICAgICAgaWYgKHZhbCA8IDApXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHZhbCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvb2xlYW5WYWxpZGF0b3IgKEVycm9yQ3Rvcikge1xuICAgIHJldHVybiAobmFtZSwgdmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgICAgIGlmICh2YWxUeXBlICE9PSAnYm9vbGVhbicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHZhbFR5cGUpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTcGVlZFZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICAgICAgaWYgKHZhbFR5cGUgIT09ICdudW1iZXInKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yQ3RvcihuYW1lLCB2YWxUeXBlKTtcblxuICAgICAgICBpZiAoaXNOYU4odmFsKSB8fCB2YWwgPCAwLjAxIHx8IHZhbCA+IDEpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHZhbCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0cmluZ1ZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICAgICAgaWYgKHZhbFR5cGUgIT09ICdzdHJpbmcnKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yQ3RvcihuYW1lLCB2YWxUeXBlKTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGF0ZVZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgaWYgKCEodmFsIGluc3RhbmNlb2YgRGF0ZSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHZhbCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU51bWJlclZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgaWYgKGlzTmFOKE51bWJlcih2YWwpKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckN0b3IobmFtZSwgdHlwZW9mIHZhbCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVybFZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICAgICAgaWYgKHZhbFR5cGUgIT09ICdzdHJpbmcnICYmICEodmFsIGluc3RhbmNlb2YgVVJMKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckN0b3IobmFtZSwgdmFsVHlwZSk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVybFNlYXJjaFBhcmFtc1ZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICAgICAgaWYgKHZhbFR5cGUgIT09ICdvYmplY3QnICYmICEodmFsIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckN0b3IobmFtZSwgdmFsVHlwZSk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICAgICAgaWYgKHZhbFR5cGUgIT09ICdvYmplY3QnKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yQ3RvcihuYW1lLCB2YWxUeXBlKTtcbiAgICB9O1xufVxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVuL2NvbW1hbmRzL3ZhbGlkYXRpb25zL2ZhY3Rvcmllcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0VBQWdFO0FBQ2hFLGdFQUFnRTtBQUNoRSwrQ0FBK0M7QUFDL0MsZ0VBQWdFOzs7QUFFaEUsU0FBZ0Isc0JBQXNCLENBQUUsU0FBUztJQUM3QyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLE9BQU8sR0FBRyxDQUFDO1FBRTNCLElBQUksT0FBTyxLQUFLLFFBQVE7WUFDcEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdkMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ2IsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUNiLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTO1lBQ1YsTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQWRELHdEQWNDO0FBRUQsU0FBZ0IsOEJBQThCLENBQUUsU0FBUztJQUNyRCxNQUFNLGdCQUFnQixHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTNELE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDakIsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTVCLElBQUksR0FBRyxHQUFHLENBQUM7WUFDUCxNQUFNLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUM7QUFDTixDQUFDO0FBVEQsd0VBU0M7QUFFRCxTQUFnQixz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TyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLGVBQWUsQ0FBQztZQUN6RCxNQUFNLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBUEQsd0VBT0M7QUFFRCxTQUFnQixxQkFBcUIsQ0FBRSxTQUFTO0lBQzVDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDakIsTUFBTSxPQUFPLEdBQUcsT0FBTyxHQUFHLENBQUM7UUFFM0IsSUFBSSxPQUFPLEtBQUssUUFBUTtZQUNwQixNQUFNLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBUEQsc0RBT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBXQVJOSU5HOiB0aGlzIGZpbGUgaXMgdXNlZCBieSBib3RoIHRoZSBjbGllbnQgYW5kIHRoZSBzZXJ2ZXIuXG4vLyBEbyBub3QgdXNlIGFueSBicm93c2VyIG9yIG5vZGUtc3BlY2lmaWMgQVBJIVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW50ZWdlclZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICAgICAgaWYgKHZhbFR5cGUgIT09ICdudW1iZXInKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yQ3RvcihuYW1lLCB2YWxUeXBlKTtcblxuICAgICAgICBjb25zdCBpc0ludGVnZXIgPSAhaXNOYU4odmFsKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGaW5pdGUodmFsKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsID09PSBNYXRoLmZsb29yKHZhbCk7XG5cbiAgICAgICAgaWYgKCFpc0ludGVnZXIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHZhbCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBvc2l0aXZlSW50ZWdlclZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgY29uc3QgaW50ZWdlclZhbGlkYXRvciA9IGNyZWF0ZUludGVnZXJWYWxpZGF0b3IoRXJyb3JDdG9yKTtcblxuICAgIHJldHVybiAobmFtZSwgdmFsKSA9PiB7XG4gICAgICAgIGludGVnZXJWYWxpZGF0b3IobmFtZSwgdmFsKTtcblxuICAgICAgICBpZiAodmFsIDwgMClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckN0b3IobmFtZSwgdmFsKTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQm9vbGVhblZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICAgICAgaWYgKHZhbFR5cGUgIT09ICdib29sZWFuJylcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckN0b3IobmFtZSwgdmFsVHlwZSk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNwZWVkVmFsaWRhdG9yIChFcnJvckN0b3IpIHtcbiAgICByZXR1cm4gKG5hbWUsIHZhbCkgPT4ge1xuICAgICAgICBjb25zdCB2YWxUeXBlID0gdHlwZW9mIHZhbDtcblxuICAgICAgICBpZiAodmFsVHlwZSAhPT0gJ251bWJlcicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHZhbFR5cGUpO1xuXG4gICAgICAgIGlmIChpc05hTih2YWwpIHx8IHZhbCA8IDAuMDEgfHwgdmFsID4gMSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckN0b3IobmFtZSwgdmFsKTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RyaW5nVmFsaWRhdG9yIChFcnJvckN0b3IpIHtcbiAgICByZXR1cm4gKG5hbWUsIHZhbCkgPT4ge1xuICAgICAgICBjb25zdCB2YWxUeXBlID0gdHlwZW9mIHZhbDtcblxuICAgICAgICBpZiAodmFsVHlwZSAhPT0gJ3N0cmluZycpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHZhbFR5cGUpO1xuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RyaW5nT3JSZWdleFZhbGlkYXRvciAoRXJyb3JDdG9yKSB7XG4gICAgcmV0dXJuIChuYW1lLCB2YWwpID0+IHtcbiAgICAgICAgY29uc3QgdmFsVHlwZSA9IHR5cGVvZiB2YWw7XG5cbiAgICAgICAgaWYgKHZhbFR5cGUgIT09ICdzdHJpbmcnICYmICEodmFsIGluc3RhbmNlb2YgUmVnRXhwKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckN0b3IobmFtZSwgdmFsVHlwZSk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGVWYWxpZGF0b3IgKEVycm9yQ3Rvcikge1xuICAgIHJldHVybiAobmFtZSwgdmFsKSA9PiB7XG4gICAgICAgIGlmICghKHZhbCBpbnN0YW5jZW9mIERhdGUpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yQ3RvcihuYW1lLCB2YWwpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOdW1iZXJWYWxpZGF0b3IgKEVycm9yQ3Rvcikge1xuICAgIHJldHVybiAobmFtZSwgdmFsKSA9PiB7XG4gICAgICAgIGlmIChpc05hTihOdW1iZXIodmFsKSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHR5cGVvZiB2YWwpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVcmxWYWxpZGF0b3IgKEVycm9yQ3Rvcikge1xuICAgIHJldHVybiAobmFtZSwgdmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgICAgIGlmICh2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiAhKHZhbCBpbnN0YW5jZW9mIFVSTCkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHZhbFR5cGUpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVcmxTZWFyY2hQYXJhbXNWYWxpZGF0b3IgKEVycm9yQ3Rvcikge1xuICAgIHJldHVybiAobmFtZSwgdmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgICAgIGlmICh2YWxUeXBlICE9PSAnb2JqZWN0JyAmJiAhKHZhbCBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtcykpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3JDdG9yKG5hbWUsIHZhbFR5cGUpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPYmplY3RWYWxpZGF0b3IgKEVycm9yQ3Rvcikge1xuICAgIHJldHVybiAobmFtZSwgdmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgdmFsO1xuXG4gICAgICAgIGlmICh2YWxUeXBlICE9PSAnb2JqZWN0JylcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvckN0b3IobmFtZSwgdmFsVHlwZSk7XG4gICAgfTtcbn1cbiJdfQ==
@@ -37,15 +37,15 @@ function initSelector(name, val, _a) {
37
37
  if (val instanceof observation_1.ExecuteSelectorCommand)
38
38
  return val;
39
39
  try {
40
- if (utils_1.isJSExpression(val))
41
- val = execute_js_expression_1.executeJsExpression(val.value, testRun, options);
40
+ if ((0, utils_1.isJSExpression)(val))
41
+ val = (0, execute_js_expression_1.executeJsExpression)(val.value, testRun, options);
42
42
  const { skipVisibilityCheck } = options, builderOptions = __rest(options, ["skipVisibilityCheck"]);
43
43
  const builder = new selector_builder_1.default(val, Object.assign({ visibilityCheck: !skipVisibilityCheck }, builderOptions), { instantiation: 'Selector' });
44
- return builder.getCommand([]);
44
+ return builder.getCommand();
45
45
  }
46
46
  catch (err) {
47
47
  throw new test_run_1.ActionSelectorError(name, err, err instanceof runtime_1.APIError);
48
48
  }
49
49
  }
50
50
  exports.initSelector = initSelector;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVuL2NvbW1hbmRzL3ZhbGlkYXRpb25zL2luaXRpYWxpemVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRHQUFtRjtBQUNuRix1REFBK0Q7QUFDL0QscURBQW1EO0FBQ25ELGdEQUF3RDtBQUN4RCx1RUFBa0U7QUFDbEUsb0NBQTBDO0FBRTFDLFNBQWdCLGtCQUFrQixDQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVztJQUN0RCxXQUFXLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBRXZDLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUpELGdEQUlDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXO0lBQ3BELFdBQVcsQ0FBQyxTQUFTLEdBQUssSUFBSSxDQUFDO0lBQy9CLFdBQVcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRS9CLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBZ0IsWUFBWSxDQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBdUI7UUFBdkIsRUFBRSxPQUFPLE9BQWMsRUFBVCxPQUFPLGNBQXJCLFdBQXVCLENBQUY7SUFDMUQsSUFBSSxHQUFHLFlBQVksb0NBQXNCO1FBQ3JDLE9BQU8sR0FBRyxDQUFDO0lBRWYsSUFBSTtRQUNBLElBQUksc0JBQWMsQ0FBQyxHQUFHLENBQUM7WUFDbkIsR0FBRyxHQUFHLDJDQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTNELE1BQU0sRUFBRSxtQkFBbUIsS0FBd0IsT0FBTyxFQUExQixjQUFjLFVBQUssT0FBTyxFQUFwRCx1QkFBMEMsQ0FBVSxDQUFDO1FBRTNELE1BQU0sT0FBTyxHQUFHLElBQUksMEJBQWUsQ0FBQyxHQUFHLGtCQUNuQyxlQUFlLEVBQUUsQ0FBQyxtQkFBbUIsSUFDbEMsY0FBYyxHQUNsQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqQztJQUNELE9BQU8sR0FBRyxFQUFFO1FBQ1IsTUFBTSxJQUFJLDhCQUFtQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxZQUFZLGtCQUFRLENBQUMsQ0FBQztLQUNyRTtBQUNMLENBQUM7QUFwQkQsb0NBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNlbGVjdG9yQnVpbGRlciBmcm9tICcuLi8uLi8uLi9jbGllbnQtZnVuY3Rpb25zL3NlbGVjdG9ycy9zZWxlY3Rvci1idWlsZGVyJztcbmltcG9ydCB7IEFjdGlvblNlbGVjdG9yRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMvdGVzdC1ydW4nO1xuaW1wb3J0IHsgQVBJRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMvcnVudGltZSc7XG5pbXBvcnQgeyBFeGVjdXRlU2VsZWN0b3JDb21tYW5kIH0gZnJvbSAnLi4vb2JzZXJ2YXRpb24nO1xuaW1wb3J0IHsgZXhlY3V0ZUpzRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2V4ZWN1dGUtanMtZXhwcmVzc2lvbic7XG5pbXBvcnQgeyBpc0pTRXhwcmVzc2lvbiB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRVcGxvYWRTZWxlY3RvciAobmFtZSwgdmFsLCBpbml0T3B0aW9ucykge1xuICAgIGluaXRPcHRpb25zLnNraXBWaXNpYmlsaXR5Q2hlY2sgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGluaXRTZWxlY3RvcihuYW1lLCB2YWwsIGluaXRPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRUeXBlU2VsZWN0b3IgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMpIHtcbiAgICBpbml0T3B0aW9ucy5uZWVkRXJyb3IgICA9IHRydWU7XG4gICAgaW5pdE9wdGlvbnMuc3RyaWN0RXJyb3IgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGluaXRTZWxlY3RvcihuYW1lLCB2YWwsIGluaXRPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTZWxlY3RvciAobmFtZSwgdmFsLCB7IHRlc3RSdW4sIC4uLm9wdGlvbnMgfSkge1xuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBFeGVjdXRlU2VsZWN0b3JDb21tYW5kKVxuICAgICAgICByZXR1cm4gdmFsO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKGlzSlNFeHByZXNzaW9uKHZhbCkpXG4gICAgICAgICAgICB2YWwgPSBleGVjdXRlSnNFeHByZXNzaW9uKHZhbC52YWx1ZSwgdGVzdFJ1biwgb3B0aW9ucyk7XG5cbiAgICAgICAgY29uc3QgeyBza2lwVmlzaWJpbGl0eUNoZWNrLCAuLi5idWlsZGVyT3B0aW9ucyB9ID0gb3B0aW9ucztcblxuICAgICAgICBjb25zdCBidWlsZGVyID0gbmV3IFNlbGVjdG9yQnVpbGRlcih2YWwsIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHlDaGVjazogIXNraXBWaXNpYmlsaXR5Q2hlY2ssXG4gICAgICAgICAgICAuLi5idWlsZGVyT3B0aW9ucyxcbiAgICAgICAgfSwgeyBpbnN0YW50aWF0aW9uOiAnU2VsZWN0b3InIH0pO1xuXG4gICAgICAgIHJldHVybiBidWlsZGVyLmdldENvbW1hbmQoW10pO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRocm93IG5ldyBBY3Rpb25TZWxlY3RvckVycm9yKG5hbWUsIGVyciwgZXJyIGluc3RhbmNlb2YgQVBJRXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rlc3QtcnVuL2NvbW1hbmRzL3ZhbGlkYXRpb25zL2luaXRpYWxpemVycy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRHQUFtRjtBQUNuRix1REFBK0Q7QUFDL0QscURBQW1EO0FBQ25ELGdEQUF3RDtBQUN4RCx1RUFBa0U7QUFDbEUsb0NBQTBDO0FBRTFDLFNBQWdCLGtCQUFrQixDQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVztJQUN0RCxXQUFXLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBRXZDLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUpELGdEQUlDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXO0lBQ3BELFdBQVcsQ0FBQyxTQUFTLEdBQUssSUFBSSxDQUFDO0lBQy9CLFdBQVcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRS9CLE9BQU8sWUFBWSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBZ0IsWUFBWSxDQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBdUI7UUFBdkIsRUFBRSxPQUFPLE9BQWMsRUFBVCxPQUFPLGNBQXJCLFdBQXVCLENBQUY7SUFDMUQsSUFBSSxHQUFHLFlBQVksb0NBQXNCO1FBQ3JDLE9BQU8sR0FBRyxDQUFDO0lBRWYsSUFBSTtRQUNBLElBQUksSUFBQSxzQkFBYyxFQUFDLEdBQUcsQ0FBQztZQUNuQixHQUFHLEdBQUcsSUFBQSwyQ0FBbUIsRUFBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUzRCxNQUFNLEVBQUUsbUJBQW1CLEtBQXdCLE9BQU8sRUFBMUIsY0FBYyxVQUFLLE9BQU8sRUFBcEQsdUJBQTBDLENBQVUsQ0FBQztRQUUzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFlLENBQUMsR0FBRyxrQkFDbkMsZUFBZSxFQUFFLENBQUMsbUJBQW1CLElBQ2xDLGNBQWMsR0FDbEIsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUVsQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQUMvQjtJQUNELE9BQU8sR0FBRyxFQUFFO1FBQ1IsTUFBTSxJQUFJLDhCQUFtQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxZQUFZLGtCQUFRLENBQUMsQ0FBQztLQUNyRTtBQUNMLENBQUM7QUFwQkQsb0NBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNlbGVjdG9yQnVpbGRlciBmcm9tICcuLi8uLi8uLi9jbGllbnQtZnVuY3Rpb25zL3NlbGVjdG9ycy9zZWxlY3Rvci1idWlsZGVyJztcbmltcG9ydCB7IEFjdGlvblNlbGVjdG9yRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMvdGVzdC1ydW4nO1xuaW1wb3J0IHsgQVBJRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMvcnVudGltZSc7XG5pbXBvcnQgeyBFeGVjdXRlU2VsZWN0b3JDb21tYW5kIH0gZnJvbSAnLi4vb2JzZXJ2YXRpb24nO1xuaW1wb3J0IHsgZXhlY3V0ZUpzRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2V4ZWN1dGUtanMtZXhwcmVzc2lvbic7XG5pbXBvcnQgeyBpc0pTRXhwcmVzc2lvbiB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRVcGxvYWRTZWxlY3RvciAobmFtZSwgdmFsLCBpbml0T3B0aW9ucykge1xuICAgIGluaXRPcHRpb25zLnNraXBWaXNpYmlsaXR5Q2hlY2sgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGluaXRTZWxlY3RvcihuYW1lLCB2YWwsIGluaXRPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRUeXBlU2VsZWN0b3IgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMpIHtcbiAgICBpbml0T3B0aW9ucy5uZWVkRXJyb3IgICA9IHRydWU7XG4gICAgaW5pdE9wdGlvbnMuc3RyaWN0RXJyb3IgPSB0cnVlO1xuXG4gICAgcmV0dXJuIGluaXRTZWxlY3RvcihuYW1lLCB2YWwsIGluaXRPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTZWxlY3RvciAobmFtZSwgdmFsLCB7IHRlc3RSdW4sIC4uLm9wdGlvbnMgfSkge1xuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBFeGVjdXRlU2VsZWN0b3JDb21tYW5kKVxuICAgICAgICByZXR1cm4gdmFsO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKGlzSlNFeHByZXNzaW9uKHZhbCkpXG4gICAgICAgICAgICB2YWwgPSBleGVjdXRlSnNFeHByZXNzaW9uKHZhbC52YWx1ZSwgdGVzdFJ1biwgb3B0aW9ucyk7XG5cbiAgICAgICAgY29uc3QgeyBza2lwVmlzaWJpbGl0eUNoZWNrLCAuLi5idWlsZGVyT3B0aW9ucyB9ID0gb3B0aW9ucztcblxuICAgICAgICBjb25zdCBidWlsZGVyID0gbmV3IFNlbGVjdG9yQnVpbGRlcih2YWwsIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHlDaGVjazogIXNraXBWaXNpYmlsaXR5Q2hlY2ssXG4gICAgICAgICAgICAuLi5idWlsZGVyT3B0aW9ucyxcbiAgICAgICAgfSwgeyBpbnN0YW50aWF0aW9uOiAnU2VsZWN0b3InIH0pO1xuXG4gICAgICAgIHJldHVybiBidWlsZGVyLmdldENvbW1hbmQoKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgQWN0aW9uU2VsZWN0b3JFcnJvcihuYW1lLCBlcnIsIGVyciBpbnN0YW5jZW9mIEFQSUVycm9yKTtcbiAgICB9XG59XG4iXX0=
@@ -7,11 +7,11 @@ const debug_1 = __importDefault(require("debug"));
7
7
  const log_entry_1 = __importDefault(require("../utils/log-entry"));
8
8
  class TestRunDebugLog {
9
9
  constructor(userAgent) {
10
- this.driverMessageLogger = debug_1.default(`testcafe:test-run:${userAgent}:driver-message`);
11
- this.commandLogger = debug_1.default(`testcafe:test-run:${userAgent}:command`);
10
+ this.driverMessageLogger = (0, debug_1.default)(`testcafe:test-run:${userAgent}:driver-message`);
11
+ this.commandLogger = (0, debug_1.default)(`testcafe:test-run:${userAgent}:command`);
12
12
  }
13
13
  static _addEntry(logger, data) {
14
- log_entry_1.default(logger, data);
14
+ (0, log_entry_1.default)(logger, data);
15
15
  }
16
16
  driverMessage(msg) {
17
17
  TestRunDebugLog._addEntry(this.driverMessageLogger, msg);
@@ -22,4 +22,4 @@ class TestRunDebugLog {
22
22
  }
23
23
  exports.default = TestRunDebugLog;
24
24
  module.exports = exports.default;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtcnVuL2RlYnVnLWxvZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtEQUFnQztBQUNoQyxtRUFBMEM7QUFFMUMsTUFBcUIsZUFBZTtJQUNoQyxZQUFhLFNBQVM7UUFDbEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGVBQVcsQ0FBQyxxQkFBcUIsU0FBUyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxhQUFhLEdBQVMsZUFBVyxDQUFDLHFCQUFxQixTQUFTLFVBQVUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFFLE1BQU0sRUFBRSxJQUFJO1FBQzFCLG1CQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhLENBQUUsR0FBRztRQUNkLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxPQUFPLENBQUUsR0FBRztRQUNSLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0o7QUFqQkQsa0NBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnTG9nZ2VyIGZyb20gJ2RlYnVnJztcbmltcG9ydCBsb2dFbnRyeSBmcm9tICcuLi91dGlscy9sb2ctZW50cnknO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXN0UnVuRGVidWdMb2cge1xuICAgIGNvbnN0cnVjdG9yICh1c2VyQWdlbnQpIHtcbiAgICAgICAgdGhpcy5kcml2ZXJNZXNzYWdlTG9nZ2VyID0gZGVidWdMb2dnZXIoYHRlc3RjYWZlOnRlc3QtcnVuOiR7dXNlckFnZW50fTpkcml2ZXItbWVzc2FnZWApO1xuICAgICAgICB0aGlzLmNvbW1hbmRMb2dnZXIgICAgICAgPSBkZWJ1Z0xvZ2dlcihgdGVzdGNhZmU6dGVzdC1ydW46JHt1c2VyQWdlbnR9OmNvbW1hbmRgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgX2FkZEVudHJ5IChsb2dnZXIsIGRhdGEpIHtcbiAgICAgICAgbG9nRW50cnkobG9nZ2VyLCBkYXRhKTtcbiAgICB9XG5cbiAgICBkcml2ZXJNZXNzYWdlIChtc2cpIHtcbiAgICAgICAgVGVzdFJ1bkRlYnVnTG9nLl9hZGRFbnRyeSh0aGlzLmRyaXZlck1lc3NhZ2VMb2dnZXIsIG1zZyk7XG4gICAgfVxuXG4gICAgY29tbWFuZCAoY21kKSB7XG4gICAgICAgIFRlc3RSdW5EZWJ1Z0xvZy5fYWRkRW50cnkodGhpcy5jb21tYW5kTG9nZ2VyLCBjbWQpO1xuICAgIH1cbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtcnVuL2RlYnVnLWxvZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtEQUFnQztBQUNoQyxtRUFBMEM7QUFFMUMsTUFBcUIsZUFBZTtJQUNoQyxZQUFhLFNBQVM7UUFDbEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUEsZUFBVyxFQUFDLHFCQUFxQixTQUFTLGlCQUFpQixDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLGFBQWEsR0FBUyxJQUFBLGVBQVcsRUFBQyxxQkFBcUIsU0FBUyxVQUFVLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBRSxNQUFNLEVBQUUsSUFBSTtRQUMxQixJQUFBLG1CQUFRLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhLENBQUUsR0FBRztRQUNkLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxPQUFPLENBQUUsR0FBRztRQUNSLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0o7QUFqQkQsa0NBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnTG9nZ2VyIGZyb20gJ2RlYnVnJztcbmltcG9ydCBsb2dFbnRyeSBmcm9tICcuLi91dGlscy9sb2ctZW50cnknO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXN0UnVuRGVidWdMb2cge1xuICAgIGNvbnN0cnVjdG9yICh1c2VyQWdlbnQpIHtcbiAgICAgICAgdGhpcy5kcml2ZXJNZXNzYWdlTG9nZ2VyID0gZGVidWdMb2dnZXIoYHRlc3RjYWZlOnRlc3QtcnVuOiR7dXNlckFnZW50fTpkcml2ZXItbWVzc2FnZWApO1xuICAgICAgICB0aGlzLmNvbW1hbmRMb2dnZXIgICAgICAgPSBkZWJ1Z0xvZ2dlcihgdGVzdGNhZmU6dGVzdC1ydW46JHt1c2VyQWdlbnR9OmNvbW1hbmRgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgX2FkZEVudHJ5IChsb2dnZXIsIGRhdGEpIHtcbiAgICAgICAgbG9nRW50cnkobG9nZ2VyLCBkYXRhKTtcbiAgICB9XG5cbiAgICBkcml2ZXJNZXNzYWdlIChtc2cpIHtcbiAgICAgICAgVGVzdFJ1bkRlYnVnTG9nLl9hZGRFbnRyeSh0aGlzLmRyaXZlck1lc3NhZ2VMb2dnZXIsIG1zZyk7XG4gICAgfVxuXG4gICAgY29tbWFuZCAoY21kKSB7XG4gICAgICAgIFRlc3RSdW5EZWJ1Z0xvZy5fYWRkRW50cnkodGhpcy5jb21tYW5kTG9nZ2VyLCBjbWQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -46,7 +46,7 @@ function createErrorFormattingOptions() {
46
46
  function getExecutionContext(testController, options = execution_context_1.DEFAULT_CONTEXT_OPTIONS) {
47
47
  const context = testController.getExecutionContext();
48
48
  // TODO: Find a way to avoid this assignment
49
- execution_context_1.setContextOptions(context, options);
49
+ (0, execution_context_1.setContextOptions)(context, options);
50
50
  return context;
51
51
  }
52
52
  function isRuntimeError(err) {
@@ -58,7 +58,7 @@ function isRuntimeError(err) {
58
58
  function executeJsExpression(expression, testRun, options) {
59
59
  const context = getExecutionContext(testRun.controller, options);
60
60
  const errorOptions = createErrorFormattingOptions();
61
- return vm_1.runInContext(expression, context, errorOptions);
61
+ return (0, vm_1.runInContext)(expression, context, errorOptions);
62
62
  }
63
63
  exports.executeJsExpression = executeJsExpression;
64
64
  async function executeAsyncJsExpression(expression, testRun, callsite, onBeforeRaisingError) {
@@ -68,7 +68,7 @@ async function executeAsyncJsExpression(expression, testRun, callsite, onBeforeR
68
68
  const errorOptions = createErrorFormattingOptions(expression);
69
69
  const wrappedExpression = wrapInAsync(expression, testRun.id);
70
70
  try {
71
- return await vm_1.runInContext(wrappedExpression, context, errorOptions)();
71
+ return await (0, vm_1.runInContext)(wrappedExpression, context, errorOptions)();
72
72
  }
73
73
  catch (err) {
74
74
  const { line, column } = getErrorLineColumn(err);
@@ -83,4 +83,4 @@ async function executeAsyncJsExpression(expression, testRun, callsite, onBeforeR
83
83
  }
84
84
  }
85
85
  exports.executeAsyncJsExpression = executeAsyncJsExpression;
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdC1ydW4vZXhlY3V0ZS1qcy1leHByZXNzaW9uL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJCQUFrQztBQUVsQyxrREFLOEI7QUFFOUIsb0RBQXlHO0FBQ3pHLG1GQUF5RztBQUV6RywyQ0FJcUI7QUFFckIsa0ZBQXdEO0FBRXhELDJGQUEyRjtBQUMzRixTQUFTLFdBQVcsQ0FBRSxVQUFVLEVBQUUsU0FBUztJQUN2QyxPQUFPLG1CQUFtQiwwQkFBYyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsU0FBUztRQUNyRSxVQUFVLEdBQUcsS0FBSztRQUNsQixLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUUsR0FBRztJQUM1QixJQUFJLEdBQUcsQ0FBQyxlQUFlLEVBQUU7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRO1lBQ2IsT0FBTyxFQUFFLENBQUM7UUFFZCxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNmLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUVsQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDbkQsTUFBTSxVQUFVLEdBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBSSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFNUMsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLElBQUksRUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFO1lBQ2xDLE1BQU0sRUFBRSxVQUFVLENBQUMsZUFBZSxFQUFFO1NBQ3ZDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNWO0lBRUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxD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USxDQUFDLENBQUM7UUFFM0YsSUFBSSxvQkFBb0I7WUFDcEIsTUFBTSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1QyxNQUFNLFdBQVcsQ0FBQztLQUNyQjtBQUNMLENBQUM7QUF6QkQsNERBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcnVuSW5Db250ZXh0IH0gZnJvbSAndm0nO1xuXG5pbXBvcnQge1xuICAgIEdlbmVyYWxFcnJvcixcbiAgICBUZXN0Q29tcGlsYXRpb25FcnJvcixcbiAgICBBUElFcnJvcixcbiAgICBDb21wb3NpdGVFcnJvcixcbn0gZnJvbSAnLi4vLi4vZXJyb3JzL3J1bnRpbWUnO1xuXG5pbXBvcnQgeyBVbmNhdWdodEVycm9ySW5DdXN0b21TY3JpcHQsIFVuY2F1Z2h0VGVzdENhZmVFcnJvckluQ3VzdG9tU2NyaXB0IH0gZnJvbSAnLi4vLi4vZXJyb3JzL3Rlc3QtcnVuJztcbmltcG9ydCB7IHNldENvbnRleHRPcHRpb25zLCBERUZBVUxUX0NPTlRFWFRfT1BUSU9OUyB9IGZyb20gJy4uLy4uL2FwaS90ZXN0LWNvbnRyb2xsZXIvZXhlY3V0aW9uLWNvbnRleHQnO1xuXG5pbXBvcnQge1xuICAgIEVSUk9SX0xJTkVfQ09MVU1OX1JFR0VYUCxcbiAgICBFUlJPUl9GSUxFTkFNRSxcbiAgICBFUlJPUl9MSU5FX09GRlNFVCxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgVGVzdFJ1blRyYWNrZXIgZnJvbSAnLi4vLi4vYXBpL3Rlc3QtcnVuLXRyYWNrZXInO1xuXG4vLyBOT1RFOiBkbyBub3QgYmVhdXRpZnkgdGhpcyBjb2RlIHNpbmNlIG9mZnNldHMgZm9yIGVycm9yIGxpbmVzIGFuZCBjb2x1bW5zIGFyZSBjb2RlZCBoZXJlXG5mdW5jdGlvbiB3cmFwSW5Bc3luYyAoZXhwcmVzc2lvbiwgdGVzdFJ1bklkKSB7XG4gICAgcmV0dXJuIGAoYXN5bmMgZnVuY3Rpb24gJHtUZXN0UnVuVHJhY2tlci5nZXRNYXJrZWRGbk5hbWUodGVzdFJ1bklkKX0gKCkge1xcbmAgK1xuICAgICAgICAgICBleHByZXNzaW9uICsgJztcXG4nICtcbiAgICAgICAgICAgJ30pOyc7XG59XG5cbmZ1bmN0aW9uIGdldEVycm9yTGluZUNvbHVtbiAoZXJyKSB7XG4gICAgaWYgKGVyci5pc1Rlc3RDYWZlRXJyb3IpIHtcbiAgICAgICAgaWYgKCFlcnIuY2FsbHNpdGUpXG4gICAgICAgICAgICByZXR1cm4ge307XG5cbiAgICAgICAgaWYgKGVyci5jYWxsc2l0ZS5pZClcbiAgICAgICAgICAgIHJldHVybiB7IGxpbmU6IDAsIGNvbHVtbjogMCB9O1xuXG4gICAgICAgIGNvbnN0IHN0YWNrRnJhbWVzID0gZXJyLmNhbGxzaXRlLnN0YWNrRnJhbWVzIHx8IFtdO1xuICAgICAgICBjb25zdCBmcmFtZUluZGV4ICA9IGVyci5jYWxsc2l0ZS5jYWxsc2l0ZUZyYW1lSWR4O1xuICAgICAgICBjb25zdCBzdGFja0ZyYW1lICA9IHN0YWNrRnJhbWVzW2ZyYW1lSW5kZXhdO1xuXG4gICAgICAgIHJldHVybiBzdGFja0ZyYW1lID8ge1xuICAgICAgICAgICAgbGluZTogICBzdGFja0ZyYW1lLmdldExpbmVOdW1iZXIoKSxcbiAgICAgICAgICAgIGNvbHVtbjogc3RhY2tGcmFtZS5nZXRDb2x1bW5OdW1iZXIoKSxcbiAgICAgICAgfSA6IHt9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGVyci5zdGFjayAmJiBlcnIuc3RhY2subWF0Y2goRVJST1JfTElORV9DT0xVTU5fUkVHRVhQKTtcblxuICAgIGlmICghcmVzdWx0KVxuICAgICAgICByZXR1cm4ge307XG5cbiAgICBjb25zdCBsaW5lICAgPSByZXN1bHRbMV0gPyBwYXJzZUludChyZXN1bHRbMV0sIDEwKSA6IHZvaWQgMDtcbiAgICBjb25zdCBjb2x1bW4gPSByZXN1bHRbMl0gPyBwYXJzZUludChyZXN1bHRbMl0sIDEwKSA6IHZvaWQgMDtcblxuICAgIHJldHVybiB7IGxpbmUsIGNvbHVtbiB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFcnJvckZvcm1hdHRpbmdPcHRpb25zICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWxlbmFtZTogICBFUlJPUl9GSUxFTkFNRSxcbiAgICAgICAgbGluZU9mZnNldDogRVJST1JfTElORV9PRkZTRVQsXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RXhlY3V0aW9uQ29udGV4dCAodGVzdENvbnRyb2xsZXIsIG9wdGlvbnMgPSBERUZBVUxUX0NPTlRFWFRfT1BUSU9OUykge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0ZXN0Q29udHJvbGxlci5nZXRFeGVjdXRpb25Db250ZXh0KCk7XG5cbiAgICAvLyBUT0RPOiBGaW5kIGEgd2F5IHRvIGF2b2lkIHRoaXMgYXNzaWdubWVudFxuICAgIHNldENvbnRleHRPcHRpb25zKGNvbnRleHQsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIGlzUnVudGltZUVycm9yIChlcnIpIHtcbiAgICByZXR1cm4gZXJyIGluc3RhbmNlb2YgR2VuZXJhbEVycm9yIHx8XG4gICAgICAgICAgIGVyciBpbnN0YW5jZW9mIFRlc3RDb21waWxhdGlvbkVycm9yIHx8XG4gICAgICAgICAgIGVyciBpbnN0YW5jZW9mIEFQSUVycm9yIHx8XG4gICAgICAgICAgIGVyciBpbnN0YW5jZW9mIENvbXBvc2l0ZUVycm9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZUpzRXhwcmVzc2lvbiAoZXhwcmVzc2lvbiwgdGVzdFJ1biwgb3B0aW9ucykge1xuICAgIGNvbnN0IGNvbnRleHQgICAgICA9IGdldEV4ZWN1dGlvbkNvbnRleHQodGVzdFJ1bi5jb250cm9sbGVyLCBvcHRpb25zKTtcbiAgICBjb25zdCBlcnJvck9wdGlvbnMgPSBjcmVhdGVFcnJvckZvcm1hdHRpbmdPcHRpb25zKCk7XG5cbiAgICByZXR1cm4gcnVuSW5Db250ZXh0KGV4cHJlc3Npb24sIGNvbnRleHQsIGVycm9yT3B0aW9ucyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlQXN5bmNKc0V4cHJlc3Npb24gKGV4cHJlc3Npb24sIHRlc3RSdW4sIGNhbGxzaXRlLCBvbkJlZm9yZVJhaXNpbmdFcnJvcikge1xuICAgIGlmICghZXhwcmVzc2lvbiB8fCAhZXhwcmVzc2lvbi5sZW5ndGgpXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAgIGNvbnN0IGNvbnRleHQgICAgICAgICAgID0gZ2V0RXhlY3V0aW9uQ29udGV4dCh0ZXN0UnVuLmNvbnRyb2xsZXIpO1xuICAgIGNvbnN0IGVycm9yT3B0aW9ucyAgICAgID0gY3JlYXRlRXJyb3JGb3JtYXR0aW5nT3B0aW9ucyhleHByZXNzaW9uKTtcbiAgICBjb25zdCB3cmFwcGVkRXhwcmVzc2lvbiA9IHdyYXBJbkFzeW5jKGV4cHJlc3Npb24sIHRlc3RSdW4uaWQpO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJ1bkluQ29udGV4dCh3cmFwcGVkRXhwcmVzc2lvbiwgY29udGV4dCwgZXJyb3JPcHRpb25zKSgpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnN0IHsgbGluZSwgY29sdW1uIH0gPSBnZXRFcnJvckxpbmVDb2x1bW4oZXJyKTtcbiAgICAgICAgbGV0IHJlc3VsdEVycm9yICAgICAgICA9IG51bGw7XG5cbiAgICAgICAgaWYgKGVyci5pc1Rlc3RDYWZlRXJyb3IgfHwgaXNSdW50aW1lRXJyb3IoZXJyKSlcbiAgICAgICAgICAgIHJlc3VsdEVycm9yID0gbmV3IFVuY2F1Z2h0VGVzdENhZmVFcnJvckluQ3VzdG9tU2NyaXB0KGVyciwgZXhwcmVzc2lvbiwgbGluZSwgY29sdW1uLCBjYWxsc2l0ZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJlc3VsdEVycm9yID0gbmV3IFVuY2F1Z2h0RXJyb3JJbkN1c3RvbVNjcmlwdChlcnIsIGV4cHJlc3Npb24sIGxpbmUsIGNvbHVtbiwgY2FsbHNpdGUpO1xuXG4gICAgICAgIGlmIChvbkJlZm9yZVJhaXNpbmdFcnJvcilcbiAgICAgICAgICAgIGF3YWl0IG9uQmVmb3JlUmFpc2luZ0Vycm9yKHJlc3VsdEVycm9yKTtcblxuICAgICAgICB0aHJvdyByZXN1bHRFcnJvcjtcbiAgICB9XG59XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdC1ydW4vZXhlY3V0ZS1qcy1leHByZXNzaW9uL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJCQUFrQztBQUVsQyxrREFLOEI7QUFFOUIsb0RBQXlHO0FBQ3pHLG1GQUF5RztBQUV6RywyQ0FJcUI7QUFFckIsa0ZBQXdEO0FBRXhELDJGQUEyRjtBQUMzRixTQUFTLFdBQVcsQ0FBRSxVQUFVLEVBQUUsU0FBUztJQUN2QyxPQUFPLG1CQUFtQiwwQkFBYyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsU0FBUztRQUNyRSxVQUFVLEdBQUcsS0FBSztRQUNsQixLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUUsR0FBRztJQUM1QixJQUFJLEdBQUcsQ0FBQyxlQUFlLEVBQUU7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRO1lBQ2IsT0FBTyxFQUFFLENBQUM7UUFFZCxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNmLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUVsQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDbkQsTUFBTSxVQUFVLEdBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBSSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFNUMsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLElBQUksRUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFO1lBQ2xDLE1BQU0sRUFBRSxVQUFVLENBQUMsZUFBZSxFQUFFO1NBQ3ZDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNWO0lBRUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxD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RSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFM0YsSUFBSSxvQkFBb0I7WUFDcEIsTUFBTSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1QyxNQUFNLFdBQVcsQ0FBQztLQUNyQjtBQUNMLENBQUM7QUF6QkQsNERBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcnVuSW5Db250ZXh0IH0gZnJvbSAndm0nO1xuXG5pbXBvcnQge1xuICAgIEdlbmVyYWxFcnJvcixcbiAgICBUZXN0Q29tcGlsYXRpb25FcnJvcixcbiAgICBBUElFcnJvcixcbiAgICBDb21wb3NpdGVFcnJvcixcbn0gZnJvbSAnLi4vLi4vZXJyb3JzL3J1bnRpbWUnO1xuXG5pbXBvcnQgeyBVbmNhdWdodEVycm9ySW5DdXN0b21TY3JpcHQsIFVuY2F1Z2h0VGVzdENhZmVFcnJvckluQ3VzdG9tU2NyaXB0IH0gZnJvbSAnLi4vLi4vZXJyb3JzL3Rlc3QtcnVuJztcbmltcG9ydCB7IHNldENvbnRleHRPcHRpb25zLCBERUZBVUxUX0NPTlRFWFRfT1BUSU9OUyB9IGZyb20gJy4uLy4uL2FwaS90ZXN0LWNvbnRyb2xsZXIvZXhlY3V0aW9uLWNvbnRleHQnO1xuXG5pbXBvcnQge1xuICAgIEVSUk9SX0xJTkVfQ09MVU1OX1JFR0VYUCxcbiAgICBFUlJPUl9GSUxFTkFNRSxcbiAgICBFUlJPUl9MSU5FX09GRlNFVCxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgVGVzdFJ1blRyYWNrZXIgZnJvbSAnLi4vLi4vYXBpL3Rlc3QtcnVuLXRyYWNrZXInO1xuXG4vLyBOT1RFOiBkbyBub3QgYmVhdXRpZnkgdGhpcyBjb2RlIHNpbmNlIG9mZnNldHMgZm9yIGVycm9yIGxpbmVzIGFuZCBjb2x1bW5zIGFyZSBjb2RlZCBoZXJlXG5mdW5jdGlvbiB3cmFwSW5Bc3luYyAoZXhwcmVzc2lvbiwgdGVzdFJ1bklkKSB7XG4gICAgcmV0dXJuIGAoYXN5bmMgZnVuY3Rpb24gJHtUZXN0UnVuVHJhY2tlci5nZXRNYXJrZWRGbk5hbWUodGVzdFJ1bklkKX0gKCkge1xcbmAgK1xuICAgICAgICAgICBleHByZXNzaW9uICsgJztcXG4nICtcbiAgICAgICAgICAgJ30pOyc7XG59XG5cbmZ1bmN0aW9uIGdldEVycm9yTGluZUNvbHVtbiAoZXJyKSB7XG4gICAgaWYgKGVyci5pc1Rlc3RDYWZlRXJyb3IpIHtcbiAgICAgICAgaWYgKCFlcnIuY2FsbHNpdGUpXG4gICAgICAgICAgICByZXR1cm4ge307XG5cbiAgICAgICAgaWYgKGVyci5jYWxsc2l0ZS5pZClcbiAgICAgICAgICAgIHJldHVybiB7IGxpbmU6IDAsIGNvbHVtbjogMCB9O1xuXG4gICAgICAgIGNvbnN0IHN0YWNrRnJhbWVzID0gZXJyLmNhbGxzaXRlLnN0YWNrRnJhbWVzIHx8IFtdO1xuICAgICAgICBjb25zdCBmcmFtZUluZGV4ICA9IGVyci5jYWxsc2l0ZS5jYWxsc2l0ZUZyYW1lSWR4O1xuICAgICAgICBjb25zdCBzdGFja0ZyYW1lICA9IHN0YWNrRnJhbWVzW2ZyYW1lSW5kZXhdO1xuXG4gICAgICAgIHJldHVybiBzdGFja0ZyYW1lID8ge1xuICAgICAgICAgICAgbGluZTogICBzdGFja0ZyYW1lLmdldExpbmVOdW1iZXIoKSxcbiAgICAgICAgICAgIGNvbHVtbjogc3RhY2tGcmFtZS5nZXRDb2x1bW5OdW1iZXIoKSxcbiAgICAgICAgfSA6IHt9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGVyci5zdGFjayAmJiBlcnIuc3RhY2subWF0Y2goRVJST1JfTElORV9DT0xVTU5fUkVHRVhQKTtcblxuICAgIGlmICghcmVzdWx0KVxuICAgICAgICByZXR1cm4ge307XG5cbiAgICBjb25zdCBsaW5lICAgPSByZXN1bHRbMV0gPyBwYXJzZUludChyZXN1bHRbMV0sIDEwKSA6IHZvaWQgMDtcbiAgICBjb25zdCBjb2x1bW4gPSByZXN1bHRbMl0gPyBwYXJzZUludChyZXN1bHRbMl0sIDEwKSA6IHZvaWQgMDtcblxuICAgIHJldHVybiB7IGxpbmUsIGNvbHVtbiB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFcnJvckZvcm1hdHRpbmdPcHRpb25zICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWxlbmFtZTogICBFUlJPUl9GSUxFTkFNRSxcbiAgICAgICAgbGluZU9mZnNldDogRVJST1JfTElORV9PRkZTRVQsXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RXhlY3V0aW9uQ29udGV4dCAodGVzdENvbnRyb2xsZXIsIG9wdGlvbnMgPSBERUZBVUxUX0NPTlRFWFRfT1BUSU9OUykge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0ZXN0Q29udHJvbGxlci5nZXRFeGVjdXRpb25Db250ZXh0KCk7XG5cbiAgICAvLyBUT0RPOiBGaW5kIGEgd2F5IHRvIGF2b2lkIHRoaXMgYXNzaWdubWVudFxuICAgIHNldENvbnRleHRPcHRpb25zKGNvbnRleHQsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIGlzUnVudGltZUVycm9yIChlcnIpIHtcbiAgICByZXR1cm4gZXJyIGluc3RhbmNlb2YgR2VuZXJhbEVycm9yIHx8XG4gICAgICAgICAgIGVyciBpbnN0YW5jZW9mIFRlc3RDb21waWxhdGlvbkVycm9yIHx8XG4gICAgICAgICAgIGVyciBpbnN0YW5jZW9mIEFQSUVycm9yIHx8XG4gICAgICAgICAgIGVyciBpbnN0YW5jZW9mIENvbXBvc2l0ZUVycm9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZUpzRXhwcmVzc2lvbiAoZXhwcmVzc2lvbiwgdGVzdFJ1biwgb3B0aW9ucykge1xuICAgIGNvbnN0IGNvbnRleHQgICAgICA9IGdldEV4ZWN1dGlvbkNvbnRleHQodGVzdFJ1bi5jb250cm9sbGVyLCBvcHRpb25zKTtcbiAgICBjb25zdCBlcnJvck9wdGlvbnMgPSBjcmVhdGVFcnJvckZvcm1hdHRpbmdPcHRpb25zKCk7XG5cbiAgICByZXR1cm4gcnVuSW5Db250ZXh0KGV4cHJlc3Npb24sIGNvbnRleHQsIGVycm9yT3B0aW9ucyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlQXN5bmNKc0V4cHJlc3Npb24gKGV4cHJlc3Npb24sIHRlc3RSdW4sIGNhbGxzaXRlLCBvbkJlZm9yZVJhaXNpbmdFcnJvcikge1xuICAgIGlmICghZXhwcmVzc2lvbiB8fCAhZXhwcmVzc2lvbi5sZW5ndGgpXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAgIGNvbnN0IGNvbnRleHQgICAgICAgICAgID0gZ2V0RXhlY3V0aW9uQ29udGV4dCh0ZXN0UnVuLmNvbnRyb2xsZXIpO1xuICAgIGNvbnN0IGVycm9yT3B0aW9ucyAgICAgID0gY3JlYXRlRXJyb3JGb3JtYXR0aW5nT3B0aW9ucyhleHByZXNzaW9uKTtcbiAgICBjb25zdCB3cmFwcGVkRXhwcmVzc2lvbiA9IHdyYXBJbkFzeW5jKGV4cHJlc3Npb24sIHRlc3RSdW4uaWQpO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJ1bkluQ29udGV4dCh3cmFwcGVkRXhwcmVzc2lvbiwgY29udGV4dCwgZXJyb3JPcHRpb25zKSgpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnN0IHsgbGluZSwgY29sdW1uIH0gPSBnZXRFcnJvckxpbmVDb2x1bW4oZXJyKTtcbiAgICAgICAgbGV0IHJlc3VsdEVycm9yICAgICAgICA9IG51bGw7XG5cbiAgICAgICAgaWYgKGVyci5pc1Rlc3RDYWZlRXJyb3IgfHwgaXNSdW50aW1lRXJyb3IoZXJyKSlcbiAgICAgICAgICAgIHJlc3VsdEVycm9yID0gbmV3IFVuY2F1Z2h0VGVzdENhZmVFcnJvckluQ3VzdG9tU2NyaXB0KGVyciwgZXhwcmVzc2lvbiwgbGluZSwgY29sdW1uLCBjYWxsc2l0ZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJlc3VsdEVycm9yID0gbmV3IFVuY2F1Z2h0RXJyb3JJbkN1c3RvbVNjcmlwdChlcnIsIGV4cHJlc3Npb24sIGxpbmUsIGNvbHVtbiwgY2FsbHNpdGUpO1xuXG4gICAgICAgIGlmIChvbkJlZm9yZVJhaXNpbmdFcnJvcilcbiAgICAgICAgICAgIGF3YWl0IG9uQmVmb3JlUmFpc2luZ0Vycm9yKHJlc3VsdEVycm9yKTtcblxuICAgICAgICB0aHJvdyByZXN1bHRFcnJvcjtcbiAgICB9XG59XG4iXX0=