testcafe 1.16.0-rc.1 → 1.16.1

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 (107) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/LICENSE +21 -21
  3. package/lib/api/exportable-lib/index.js +13 -2
  4. package/lib/api/request-hooks/request-mock/index.js +3 -4
  5. package/lib/api/structure/test-file.js +4 -3
  6. package/lib/api/structure/test.js +15 -8
  7. package/lib/api/test-controller/assertion.js +37 -41
  8. package/lib/api/test-controller/index.js +96 -100
  9. package/lib/assertions/executor.js +1 -1
  10. package/lib/assertions/get-fn.js +1 -1
  11. package/lib/browser/connection/index.js +10 -5
  12. package/lib/browser/provider/built-in/dedicated/base.js +3 -3
  13. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/barriers/emitters/client-request.js +46 -0
  14. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/barriers/emitters/script-execution.js +39 -0
  15. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/barriers/page-unload-barrier.js +39 -0
  16. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/client-function-executor.js +51 -15
  17. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/index.js +48 -11
  18. package/lib/browser/provider/built-in/dedicated/chrome/index.js +3 -3
  19. package/lib/browser/provider/index.js +5 -5
  20. package/lib/cli/argument-parser.js +2 -1
  21. package/lib/cli/cli.js +4 -2
  22. package/lib/client/automation/index.js +25 -27
  23. package/lib/client/automation/index.min.js +1 -1
  24. package/lib/client/browser/idle-page/index.html.mustache +35 -35
  25. package/lib/client/core/index.js +449 -269
  26. package/lib/client/core/index.min.js +1 -1
  27. package/lib/client/driver/index.js +107 -178
  28. package/lib/client/driver/index.min.js +1 -1
  29. package/lib/client/driver/internal-properties.js +1 -2
  30. package/lib/client/proxyless/index.js +71 -17
  31. package/lib/client/test-run/iframe.js.mustache +17 -17
  32. package/lib/client/test-run/index.js.mustache +51 -51
  33. package/lib/client/ui/index.js +14 -14
  34. package/lib/client-functions/client-function-builder.js +3 -3
  35. package/lib/compiler/babel/load-libs.js +8 -5
  36. package/lib/compiler/test-file/add-export-api.js +26 -0
  37. package/lib/compiler/test-file/api-based.js +18 -10
  38. package/lib/compiler/test-file/formats/es-next/compiler.js +4 -4
  39. package/lib/compiler/test-file/formats/raw.js +5 -4
  40. package/lib/compiler/test-file/test-file-temp-variable-name.js +6 -0
  41. package/lib/configuration/configuration-base.js +17 -16
  42. package/lib/configuration/default-values.js +3 -2
  43. package/lib/configuration/option-names.js +2 -1
  44. package/lib/configuration/run-option-names.js +2 -1
  45. package/lib/configuration/testcafe-configuration.js +11 -6
  46. package/lib/configuration/typescript-configuration.js +4 -4
  47. package/lib/errors/runtime/index.js +5 -4
  48. package/lib/errors/test-run/formattable-adapter.js +4 -3
  49. package/lib/live/test-run.js +5 -5
  50. package/lib/notifications/add-rendered-warning.js +4 -3
  51. package/lib/notifications/warning-log.js +16 -2
  52. package/lib/reporter/command/command-formatter.js +3 -3
  53. package/lib/reporter/command/format-command.js +1 -1
  54. package/lib/reporter/index.js +193 -113
  55. package/lib/reporter/interfaces.js +1 -1
  56. package/lib/reporter/plugin-host.js +5 -1
  57. package/lib/reporter/plugin-methods.js +2 -1
  58. package/lib/runner/bootstrapper.js +13 -40
  59. package/lib/runner/browser-job.js +4 -8
  60. package/lib/runner/fixture-hook-controller.js +1 -1
  61. package/lib/runner/index.js +31 -19
  62. package/lib/runner/interfaces.js +1 -1
  63. package/lib/runner/reporter-stream-controller.js +4 -4
  64. package/lib/runner/task/index.js +10 -14
  65. package/lib/runner/test-run-controller.js +7 -5
  66. package/lib/runner/tested-app.js +5 -4
  67. package/lib/services/compiler/host.js +20 -15
  68. package/lib/services/compiler/interfaces.js +1 -1
  69. package/lib/services/compiler/protocol.js +1 -1
  70. package/lib/services/compiler/service.js +10 -9
  71. package/lib/services/compiler/test-run-proxy.js +10 -19
  72. package/lib/services/interfaces.js +1 -1
  73. package/lib/services/serialization/replicator/create-replicator.js +3 -1
  74. package/lib/services/serialization/replicator/interfaces.js +1 -1
  75. package/lib/services/serialization/replicator/transforms/callsite-record-transform.js +3 -4
  76. package/lib/services/serialization/replicator/transforms/command-base-trasform/assertion-command-constructors.js +28 -0
  77. package/lib/services/serialization/replicator/transforms/command-base-trasform/command-constructors.js +7 -3
  78. package/lib/services/serialization/replicator/transforms/command-base-trasform/index.js +8 -6
  79. package/lib/services/serialization/replicator/transforms/raw-command-callsite-record-transform.js +22 -0
  80. package/lib/services/serialization/test-structure.js +1 -1
  81. package/lib/shared/adapter/index.js +17 -0
  82. package/lib/shared/barriers/request.js +79 -0
  83. package/lib/shared/barriers/script-execution.js +73 -0
  84. package/lib/shared/errors/index.js +10 -11
  85. package/lib/shared/utils/delay.js +10 -0
  86. package/lib/shared/utils/event-emitter.js +52 -0
  87. package/lib/test-run/bookmark.js +1 -1
  88. package/lib/test-run/commands/actions.js +78 -39
  89. package/lib/test-run/commands/assertion.js +71 -5
  90. package/lib/test-run/commands/base.js +10 -3
  91. package/lib/test-run/commands/browser-manipulation.js +14 -6
  92. package/lib/test-run/commands/from-object.js +3 -3
  93. package/lib/test-run/commands/observation.js +12 -6
  94. package/lib/test-run/commands/utils.js +6 -2
  95. package/lib/test-run/execute-js-expression/constants.js +4 -2
  96. package/lib/test-run/index.js +59 -49
  97. package/lib/utils/get-filter-fn.js +3 -1
  98. package/lib/utils/get-options/get-assertion-timeout.js +1 -1
  99. package/lib/utils/get-renderes.js +11 -0
  100. package/lib/utils/message-bus.js +14 -0
  101. package/lib/utils/prerender-callsite.js +6 -5
  102. package/lib/utils/raw-command-callsite-record.js +70 -0
  103. package/lib/utils/render-callsite-sync.js +4 -3
  104. package/package.json +6 -4
  105. package/ts-defs/index.d.ts +13 -13
  106. package/ts-defs/selectors.d.ts +4 -4
  107. package/ts-defs/testcafe-scripts.d.ts +5 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,75 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.16.1 (2021-10-05)
4
+
5
+ ### Bug Fixes
6
+
7
+ * Incorrect handling of the beforeInput Firefox event ([#6504](https://github.com/DevExpress/testcafe/issues/6504))
8
+ * Incorrect handling of page styles leads to test failure in Safari 15 ([#6546](https://github.com/DevExpress/testcafe/issues/6546))
9
+ * Incorrect stylesheet filtering procedure leads to client-side errors in IE11 ([#6439](https://github.com/DevExpress/testcafe/issues/6439))
10
+
11
+ ## v1.16.0 (2021-09-08)
12
+
13
+ ### Enhancements
14
+
15
+ #### Support for JavaScript configuration files
16
+
17
+ You can now store TestCafe settings in a `js` file. Configuration properties in JavaScript files can reference JavaScript methods, functions and variables, which makes it easy to create dynamic configuration files.
18
+
19
+ Just `export` the JSON name/value pairs in the file:
20
+
21
+ ```js
22
+ module.exports = {
23
+ skipJsErrors: true,
24
+ hostname: "localhost",
25
+ // other settings
26
+ }
27
+ ```
28
+
29
+ #### Support for custom user variables in the configuration file
30
+
31
+ TestCafe v1.16.0 and later supports configuration files with variable declarations. Users can reference variables from a configuration file in the tests that utilize that configuration file. To enable access to configuration file variables, import the `userVariables` object from the `testcafe` module at the beginning of the test script.
32
+
33
+ This capability can come in handy if there's a single piece of data you want to use in multiple tests — for example, the website's URL. That way, if your website moves to a new domain name, you don't have to change your tests one by one.
34
+
35
+ If you previously used environment variables to achieve the same goal, you might prefer the new method — it significantly simplifies the setup process, and allows you to commit the data to a version control system.
36
+
37
+ Define your custom variables with the `userVariables` JSON object:
38
+
39
+ ```JSON
40
+ {
41
+ "userVariables": {
42
+ "url": "http://devexpress.github.io/testcafe/example",
43
+ }
44
+ }
45
+ ```
46
+
47
+ Reference this variable in your test:
48
+
49
+ ```js
50
+ import { userVariables } from 'testcafe';
51
+
52
+ fixture `Test user variables`
53
+ .page(userVariables.url);
54
+
55
+ test('Type text', async t => {
56
+ await t
57
+ .typeText('#developer-name', 'John Smith')
58
+ .click('#submit-button');
59
+ });
60
+ ```
61
+
62
+ #### Other enhancements
63
+
64
+ * New option that disables thumbnail generation for test screenshots ([PR by @taki-fw](https://github.com/DevExpress/testcafe/pull/6078)).
65
+ * New `embedding-utils` API method that retrieves information about skipped tests ([PR by @flora8984461](https://github.com/DevExpress/testcafe/pull/6398)).
66
+ * The `Runner.filter` function supports asynchronous arguments ([PR by @eignatyev](https://github.com/DevExpress/testcafe/pull/6371)).
67
+ * You can import the `test` and `fixture` objects directly from the `testcafe` module ([PR #6338](https://github.com/DevExpress/testcafe/pull/6338)).
68
+
69
+ ### Bug Fixes
70
+
71
+ * TestCafe does not keep track of file changes in live mode ([#6481](https://github.com/DevExpress/testcafe/issues/6481)).
72
+
3
73
  ## v1.15.3 (2021-08-19)
4
74
 
5
75
  ### Bug Fixes
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- The MIT License
2
-
3
- Copyright (C) 2012-2021 Developer Express Inc.
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
1
+ The MIT License
2
+
3
+ Copyright (C) 2012-2021 Developer Express Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const test_file_temp_variable_name_1 = __importDefault(require("../../compiler/test-file/test-file-temp-variable-name"));
3
7
  const lazyRequire = require('import-lazy')(require);
4
8
  const ClientFunctionBuilder = lazyRequire('../../client-functions/client-function-builder');
5
9
  const SelectorBuilder = lazyRequire('../../client-functions/selectors/selector-builder');
@@ -7,6 +11,7 @@ const role = lazyRequire('../../role');
7
11
  const createRequestLogger = lazyRequire('../request-hooks/request-logger');
8
12
  const createRequestMock = lazyRequire('../request-hooks/request-mock/create-request-mock');
9
13
  const userVariables = lazyRequire('../user-variables');
14
+ const addExportAPI = lazyRequire('../../compiler/test-file/add-export-api');
10
15
  // NOTE: We can't use lazy require for RequestHook, because it will break base class detection for inherited classes
11
16
  let RequestHook = null;
12
17
  // NOTE: We can't use lazy require for testControllerProxy, because it will break test controller detection
@@ -31,7 +36,7 @@ function Selector(fn, options) {
31
36
  Object.defineProperty(Role, 'anonymous', {
32
37
  get: () => role.createAnonymousRole,
33
38
  });
34
- exports.default = {
39
+ const exportableLib = {
35
40
  Role,
36
41
  ClientFunction,
37
42
  Selector,
@@ -51,5 +56,11 @@ exports.default = {
51
56
  return userVariables.value;
52
57
  },
53
58
  };
59
+ const tempTestFile = global[test_file_temp_variable_name_1.default];
60
+ if (tempTestFile) {
61
+ addExportAPI(tempTestFile, exportableLib, true);
62
+ delete global[test_file_temp_variable_name_1.default];
63
+ }
64
+ exports.default = exportableLib;
54
65
  module.exports = exports.default;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2V4cG9ydGFibGUtbGliL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTSxXQUFXLEdBQWEsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlELE1BQU0scUJBQXFCLEdBQUcsV0FBVyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7QUFDNUYsTUFBTSxlQUFlLEdBQVMsV0FBVyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFDL0YsTUFBTSxJQUFJLEdBQW9CLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4RCxNQUFNLG1CQUFtQixHQUFLLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQzdFLE1BQU0saUJBQWlCLEdBQU8sV0FBVyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFDL0YsTUFBTSxhQUFhLEdBQVcsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFFL0Qsb0hBQW9IO0FBQ3BILElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztBQUV2QiwyR0FBMkc7QUFDM0csSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFFL0IsU0FBUyxJQUFJLENBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPO0lBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxTQUFTLFdBQVc7SUFDaEIsT0FBTyxpQkFBaUIsRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBRSxxQkFBcUIsRUFBRSxVQUFVO0lBQ3JELE9BQU8sbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFFLEVBQUUsRUFBRSxPQUFPO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQXFCLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFNUYsT0FBTyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFFLEVBQUUsRUFBRSxPQUFPO0lBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUVoRixPQUFPLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0lBQ3JDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO0NBQ3RDLENBQUMsQ0FBQztBQUVILGtCQUFlO0lBQ1gsSUFBSTtJQUVKLGNBQWM7SUFFZCxRQUFRO0lBRVIsYUFBYTtJQUViLFdBQVc7SUFFWCxJQUFJLFdBQVc7UUFDWCxJQUFJLENBQUMsV0FBVztZQUNaLFdBQVcsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUVuRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQjtZQUNwQixtQkFBbUIsR0FBRyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUU5RCxPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsYXp5UmVxdWlyZSAgICAgICAgICAgPSByZXF1aXJlKCdpbXBvcnQtbGF6eScpKHJlcXVpcmUpO1xuY29uc3QgQ2xpZW50RnVuY3Rpb25CdWlsZGVyID0gbGF6eVJlcXVpcmUoJy4uLy4uL2NsaWVudC1mdW5jdGlvbnMvY2xpZW50LWZ1bmN0aW9uLWJ1aWxkZXInKTtcbmNvbnN0IFNlbGVjdG9yQnVpbGRlciAgICAgICA9IGxhenlSZXF1aXJlKCcuLi8uLi9jbGllbnQtZnVuY3Rpb25zL3NlbGVjdG9ycy9zZWxlY3Rvci1idWlsZGVyJyk7XG5jb25zdCByb2xlICAgICAgICAgICAgICAgICAgPSBsYXp5UmVxdWlyZSgnLi4vLi4vcm9sZScpO1xuY29uc3QgY3JlYXRlUmVxdWVzdExvZ2dlciAgID0gbGF6eVJlcXVpcmUoJy4uL3JlcXVlc3QtaG9va3MvcmVxdWVzdC1sb2dnZXInKTtcbmNvbnN0IGNyZWF0ZVJlcXVlc3RNb2NrICAgICA9IGxhenlSZXF1aXJlKCcuLi9yZXF1ZXN0LWhvb2tzL3JlcXVlc3QtbW9jay9jcmVhdGUtcmVxdWVzdC1tb2NrJyk7XG5jb25zdCB1c2VyVmFyaWFibGVzICAgICAgICAgPSBsYXp5UmVxdWlyZSgnLi4vdXNlci12YXJpYWJsZXMnKTtcblxuLy8gTk9URTogV2UgY2FuJ3QgdXNlIGxhenkgcmVxdWlyZSBmb3IgUmVxdWVzdEhvb2ssIGJlY2F1c2UgaXQgd2lsbCBicmVhayBiYXNlIGNsYXNzIGRldGVjdGlvbiBmb3IgaW5oZXJpdGVkIGNsYXNzZXNcbmxldCBSZXF1ZXN0SG9vayA9IG51bGw7XG5cbi8vIE5PVEU6IFdlIGNhbid0IHVzZSBsYXp5IHJlcXVpcmUgZm9yIHRlc3RDb250cm9sbGVyUHJveHksIGJlY2F1c2UgaXQgd2lsbCBicmVhayB0ZXN0IGNvbnRyb2xsZXIgZGV0ZWN0aW9uXG5sZXQgdGVzdENvbnRyb2xsZXJQcm94eSA9IG51bGw7XG5cbmZ1bmN0aW9uIFJvbGUgKGxvZ2luVXJsLCBpbml0Rm4sIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gcm9sZS5jcmVhdGVSb2xlKGxvZ2luVXJsLCBpbml0Rm4sIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBSZXF1ZXN0TW9jayAoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RNb2NrKCk7XG59XG5cbmZ1bmN0aW9uIFJlcXVlc3RMb2dnZXIgKHJlcXVlc3RGaWx0ZXJSdWxlSW5pdCwgbG9nT3B0aW9ucykge1xuICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0TG9nZ2VyKHJlcXVlc3RGaWx0ZXJSdWxlSW5pdCwgbG9nT3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIENsaWVudEZ1bmN0aW9uIChmbiwgb3B0aW9ucykge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQ2xpZW50RnVuY3Rpb25CdWlsZGVyKGZuLCBvcHRpb25zLCB7IGluc3RhbnRpYXRpb246ICdDbGllbnRGdW5jdGlvbicgfSk7XG5cbiAgICByZXR1cm4gYnVpbGRlci5nZXRGdW5jdGlvbigpO1xufVxuXG5mdW5jdGlvbiBTZWxlY3RvciAoZm4sIG9wdGlvbnMpIHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IFNlbGVjdG9yQnVpbGRlcihmbiwgb3B0aW9ucywgeyBpbnN0YW50aWF0aW9uOiAnU2VsZWN0b3InIH0pO1xuXG4gICAgcmV0dXJuIGJ1aWxkZXIuZ2V0RnVuY3Rpb24oKTtcbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFJvbGUsICdhbm9ueW1vdXMnLCB7XG4gICAgZ2V0OiAoKSA9PiByb2xlLmNyZWF0ZUFub255bW91c1JvbGUsXG59KTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIFJvbGUsXG5cbiAgICBDbGllbnRGdW5jdGlvbixcblxuICAgIFNlbGVjdG9yLFxuXG4gICAgUmVxdWVzdExvZ2dlcixcblxuICAgIFJlcXVlc3RNb2NrLFxuXG4gICAgZ2V0IFJlcXVlc3RIb29rICgpIHtcbiAgICAgICAgaWYgKCFSZXF1ZXN0SG9vaylcbiAgICAgICAgICAgIFJlcXVlc3RIb29rID0gcmVxdWlyZSgnLi4vcmVxdWVzdC1ob29rcy9ob29rJyk7XG5cbiAgICAgICAgcmV0dXJuIFJlcXVlc3RIb29rO1xuICAgIH0sXG5cbiAgICBnZXQgdCAoKSB7XG4gICAgICAgIGlmICghdGVzdENvbnRyb2xsZXJQcm94eSlcbiAgICAgICAgICAgIHRlc3RDb250cm9sbGVyUHJveHkgPSByZXF1aXJlKCcuLi90ZXN0LWNvbnRyb2xsZXIvcHJveHknKTtcblxuICAgICAgICByZXR1cm4gdGVzdENvbnRyb2xsZXJQcm94eTtcbiAgICB9LFxuXG4gICAgZ2V0IHVzZXJWYXJpYWJsZXMgKCkge1xuICAgICAgICByZXR1cm4gdXNlclZhcmlhYmxlcy52YWx1ZTtcbiAgICB9LFxufTtcbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2V4cG9ydGFibGUtbGliL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUhBQWlHO0FBRWpHLE1BQU0sV0FBVyxHQUFhLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0FBQzVGLE1BQU0sZUFBZSxHQUFTLFdBQVcsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0FBQy9GLE1BQU0sSUFBSSxHQUFvQixXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDeEQsTUFBTSxtQkFBbUIsR0FBSyxXQUFXLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUM3RSxNQUFNLGlCQUFpQixHQUFPLFdBQVcsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0FBQy9GLE1BQU0sYUFBYSxHQUFXLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sWUFBWSxHQUFZLFdBQVcsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0FBRXJGLG9IQUFvSDtBQUNwSCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFFdkIsMkdBQTJHO0FBQzNHLElBQUksbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0FBRS9CLFNBQVMsSUFBSSxDQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTztJQUNwQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBUyxXQUFXO0lBQ2hCLE9BQU8saUJBQWlCLEVBQUUsQ0FBQztBQUMvQixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUUscUJBQXFCLEVBQUUsVUFBVTtJQUNyRCxPQUFPLG1CQUFtQixDQUFDLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBRSxFQUFFLEVBQUUsT0FBTztJQUNoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRTVGLE9BQU8sT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2pDLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBRSxFQUFFLEVBQUUsT0FBTztJQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFFaEYsT0FBTyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtJQUNyQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtDQUN0QyxDQUFDLENBQUM7QUFFSCxNQUFNLGFBQWEsR0FBRztJQUNsQixJQUFJO0lBRUosY0FBYztJQUVkLFFBQVE7SUFFUixhQUFhO0lBRWIsV0FBVztJQUVYLElBQUksV0FBVztRQUNYLElBQUksQ0FBQyxXQUFXO1lBQ1osV0FBVyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRW5ELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CO1lBQ3BCLG1CQUFtQixHQUFHLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRTlELE9BQU8sbUJBQW1CLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxzQ0FBNEIsQ0FBQyxDQUFDO0FBRTFELElBQUksWUFBWSxFQUFFO0lBQ2QsWUFBWSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFaEQsT0FBTyxNQUFNLENBQUMsc0NBQTRCLENBQUMsQ0FBQztDQUMvQztBQUVELGtCQUFlLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBURVNUX0ZJTEVfVEVNUF9WQVJJQUJMRV9OQU1FIGZyb20gJy4uLy4uL2NvbXBpbGVyL3Rlc3QtZmlsZS90ZXN0LWZpbGUtdGVtcC12YXJpYWJsZS1uYW1lJztcblxuY29uc3QgbGF6eVJlcXVpcmUgICAgICAgICAgID0gcmVxdWlyZSgnaW1wb3J0LWxhenknKShyZXF1aXJlKTtcbmNvbnN0IENsaWVudEZ1bmN0aW9uQnVpbGRlciA9IGxhenlSZXF1aXJlKCcuLi8uLi9jbGllbnQtZnVuY3Rpb25zL2NsaWVudC1mdW5jdGlvbi1idWlsZGVyJyk7XG5jb25zdCBTZWxlY3RvckJ1aWxkZXIgICAgICAgPSBsYXp5UmVxdWlyZSgnLi4vLi4vY2xpZW50LWZ1bmN0aW9ucy9zZWxlY3RvcnMvc2VsZWN0b3ItYnVpbGRlcicpO1xuY29uc3Qgcm9sZSAgICAgICAgICAgICAgICAgID0gbGF6eVJlcXVpcmUoJy4uLy4uL3JvbGUnKTtcbmNvbnN0IGNyZWF0ZVJlcXVlc3RMb2dnZXIgICA9IGxhenlSZXF1aXJlKCcuLi9yZXF1ZXN0LWhvb2tzL3JlcXVlc3QtbG9nZ2VyJyk7XG5jb25zdCBjcmVhdGVSZXF1ZXN0TW9jayAgICAgPSBsYXp5UmVxdWlyZSgnLi4vcmVxdWVzdC1ob29rcy9yZXF1ZXN0LW1vY2svY3JlYXRlLXJlcXVlc3QtbW9jaycpO1xuY29uc3QgdXNlclZhcmlhYmxlcyAgICAgICAgID0gbGF6eVJlcXVpcmUoJy4uL3VzZXItdmFyaWFibGVzJyk7XG5jb25zdCBhZGRFeHBvcnRBUEkgICAgICAgICAgPSBsYXp5UmVxdWlyZSgnLi4vLi4vY29tcGlsZXIvdGVzdC1maWxlL2FkZC1leHBvcnQtYXBpJyk7XG5cbi8vIE5PVEU6IFdlIGNhbid0IHVzZSBsYXp5IHJlcXVpcmUgZm9yIFJlcXVlc3RIb29rLCBiZWNhdXNlIGl0IHdpbGwgYnJlYWsgYmFzZSBjbGFzcyBkZXRlY3Rpb24gZm9yIGluaGVyaXRlZCBjbGFzc2VzXG5sZXQgUmVxdWVzdEhvb2sgPSBudWxsO1xuXG4vLyBOT1RFOiBXZSBjYW4ndCB1c2UgbGF6eSByZXF1aXJlIGZvciB0ZXN0Q29udHJvbGxlclByb3h5LCBiZWNhdXNlIGl0IHdpbGwgYnJlYWsgdGVzdCBjb250cm9sbGVyIGRldGVjdGlvblxubGV0IHRlc3RDb250cm9sbGVyUHJveHkgPSBudWxsO1xuXG5mdW5jdGlvbiBSb2xlIChsb2dpblVybCwgaW5pdEZuLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIHJvbGUuY3JlYXRlUm9sZShsb2dpblVybCwgaW5pdEZuLCBvcHRpb25zKTtcbn1cblxuZnVuY3Rpb24gUmVxdWVzdE1vY2sgKCkge1xuICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0TW9jaygpO1xufVxuXG5mdW5jdGlvbiBSZXF1ZXN0TG9nZ2VyIChyZXF1ZXN0RmlsdGVyUnVsZUluaXQsIGxvZ09wdGlvbnMpIHtcbiAgICByZXR1cm4gY3JlYXRlUmVxdWVzdExvZ2dlcihyZXF1ZXN0RmlsdGVyUnVsZUluaXQsIGxvZ09wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBDbGllbnRGdW5jdGlvbiAoZm4sIG9wdGlvbnMpIHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IENsaWVudEZ1bmN0aW9uQnVpbGRlcihmbiwgb3B0aW9ucywgeyBpbnN0YW50aWF0aW9uOiAnQ2xpZW50RnVuY3Rpb24nIH0pO1xuXG4gICAgcmV0dXJuIGJ1aWxkZXIuZ2V0RnVuY3Rpb24oKTtcbn1cblxuZnVuY3Rpb24gU2VsZWN0b3IgKGZuLCBvcHRpb25zKSB7XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBTZWxlY3RvckJ1aWxkZXIoZm4sIG9wdGlvbnMsIHsgaW5zdGFudGlhdGlvbjogJ1NlbGVjdG9yJyB9KTtcblxuICAgIHJldHVybiBidWlsZGVyLmdldEZ1bmN0aW9uKCk7XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShSb2xlLCAnYW5vbnltb3VzJywge1xuICAgIGdldDogKCkgPT4gcm9sZS5jcmVhdGVBbm9ueW1vdXNSb2xlLFxufSk7XG5cbmNvbnN0IGV4cG9ydGFibGVMaWIgPSB7XG4gICAgUm9sZSxcblxuICAgIENsaWVudEZ1bmN0aW9uLFxuXG4gICAgU2VsZWN0b3IsXG5cbiAgICBSZXF1ZXN0TG9nZ2VyLFxuXG4gICAgUmVxdWVzdE1vY2ssXG5cbiAgICBnZXQgUmVxdWVzdEhvb2sgKCkge1xuICAgICAgICBpZiAoIVJlcXVlc3RIb29rKVxuICAgICAgICAgICAgUmVxdWVzdEhvb2sgPSByZXF1aXJlKCcuLi9yZXF1ZXN0LWhvb2tzL2hvb2snKTtcblxuICAgICAgICByZXR1cm4gUmVxdWVzdEhvb2s7XG4gICAgfSxcblxuICAgIGdldCB0ICgpIHtcbiAgICAgICAgaWYgKCF0ZXN0Q29udHJvbGxlclByb3h5KVxuICAgICAgICAgICAgdGVzdENvbnRyb2xsZXJQcm94eSA9IHJlcXVpcmUoJy4uL3Rlc3QtY29udHJvbGxlci9wcm94eScpO1xuXG4gICAgICAgIHJldHVybiB0ZXN0Q29udHJvbGxlclByb3h5O1xuICAgIH0sXG5cbiAgICBnZXQgdXNlclZhcmlhYmxlcyAoKSB7XG4gICAgICAgIHJldHVybiB1c2VyVmFyaWFibGVzLnZhbHVlO1xuICAgIH0sXG59O1xuXG5jb25zdCB0ZW1wVGVzdEZpbGUgPSBnbG9iYWxbVEVTVF9GSUxFX1RFTVBfVkFSSUFCTEVfTkFNRV07XG5cbmlmICh0ZW1wVGVzdEZpbGUpIHtcbiAgICBhZGRFeHBvcnRBUEkodGVtcFRlc3RGaWxlLCBleHBvcnRhYmxlTGliLCB0cnVlKTtcblxuICAgIGRlbGV0ZSBnbG9iYWxbVEVTVF9GSUxFX1RFTVBfVkFSSUFCTEVfTkFNRV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGV4cG9ydGFibGVMaWI7XG5cbiJdfQ==
@@ -19,9 +19,8 @@ class RequestMock extends hook_1.default {
19
19
  await event.setMock(mock);
20
20
  }
21
21
  async onResponse(event) {
22
- var _a;
23
- if (event.isSameOriginPolicyFailed)
24
- (_a = this._warningLog) === null || _a === void 0 ? void 0 : _a.addWarning(warning_message_1.default.requestMockCORSValidationFailed, RequestMock.name, event.requestFilterRule);
22
+ if (event.isSameOriginPolicyFailed && this._warningLog)
23
+ this._warningLog.addWarning(warning_message_1.default.requestMockCORSValidationFailed, RequestMock.name, event.requestFilterRule);
25
24
  }
26
25
  // API
27
26
  onRequestTo(requestFilterRuleInit) {
@@ -43,4 +42,4 @@ class RequestMock extends hook_1.default {
43
42
  }
44
43
  exports.default = RequestMock;
45
44
  module.exports = exports.default;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL3JlcXVlc3QtaG9va3MvcmVxdWVzdC1tb2NrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbURBQWtDO0FBRWxDLDZEQU02QjtBQUU3QixxREFBbUQ7QUFDbkQsaURBQXVEO0FBQ3ZELDZGQUFxRTtBQUdyRSxNQUFxQixXQUFZLFNBQVEsY0FBVztJQUloRDtRQUNJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVWLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssR0FBMkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVMsQ0FBRSxLQUFtQjtRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFpQixDQUFDO1FBRXhFLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBRSxLQUFvQjs7UUFDekMsSUFBSSxLQUFLLENBQUMsd0JBQXdCO1lBQzlCLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsVUFBVSxDQUFDLHlCQUFlLENBQUMsK0JBQStCLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsaUJBQWlCLEVBQUU7SUFDakksQ0FBQztJQUVELE1BQU07SUFDQyxXQUFXLENBQUUscUJBQTRDO1FBQzVELElBQUksSUFBSSxDQUFDLDZCQUE2QjtZQUNsQyxNQUFNLElBQUksa0JBQVEsQ0FBQyxhQUFhLEVBQUUsc0JBQWMsQ0FBQyw0QkFBNEIsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLDZIQUE2SCxDQUFDLENBQUM7UUFFcE8sSUFBSSxDQUFDLDZCQUE2QixHQUFHLHFCQUFxQixDQUFDO1FBRTNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxPQUFPLENBQUUsSUFBdUIsRUFBRSxVQUFtQixFQUFFLE9BQWdCO1FBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCO1lBQ25DLE1BQU0sSUFBSSxrQkFBUSxDQUFDLFNBQVMsRUFBRSxzQkFBYyxDQUFDLDRCQUE0QixFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsbUpBQW1KLENBQUMsQ0FBQztRQUV0UCxNQUFNLElBQUksR0FBRyxJQUFJLGtDQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLHVDQUFpQixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO1FBRTFDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSjtBQTlDRCw4QkE4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVxdWVzdEhvb2sgZnJvbSAnLi4vaG9vayc7XG5cbmltcG9ydCB7XG4gICAgUmVzcG9uc2VNb2NrLFxuICAgIFJlcXVlc3RFdmVudCxcbiAgICBSZXNwb25zZUV2ZW50LFxuICAgIFJlcXVlc3RGaWx0ZXJSdWxlSW5pdCxcbiAgICBSZXF1ZXN0RmlsdGVyUnVsZSxcbn0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5cbmltcG9ydCB7IEFQSUVycm9yIH0gZnJvbSAnLi4vLi4vLi4vZXJyb3JzL3J1bnRpbWUnO1xuaW1wb3J0IHsgUlVOVElNRV9FUlJPUlMgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMvdHlwZXMnO1xuaW1wb3J0IFdBUk5JTkdfTUVTU0FHRSBmcm9tICcuLi8uLi8uLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbWVzc2FnZSc7XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVxdWVzdE1vY2sgZXh0ZW5kcyBSZXF1ZXN0SG9vayB7XG4gICAgcHJpdmF0ZSBfcGVuZGluZ1JlcXVlc3RGaWx0ZXJSdWxlSW5pdDogbnVsbCB8IFJlcXVlc3RGaWx0ZXJSdWxlSW5pdDtcbiAgICBwdWJsaWMgbW9ja3M6IE1hcDxzdHJpbmcsIFJlc3BvbnNlTW9jaz47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKCkge1xuICAgICAgICBzdXBlcihbXSk7XG5cbiAgICAgICAgdGhpcy5fcGVuZGluZ1JlcXVlc3RGaWx0ZXJSdWxlSW5pdCA9IG51bGw7XG4gICAgICAgIHRoaXMubW9ja3MgICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgTWFwKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG9uUmVxdWVzdCAoZXZlbnQ6IFJlcXVlc3RFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBtb2NrID0gdGhpcy5tb2Nrcy5nZXQoZXZlbnQucmVxdWVzdEZpbHRlclJ1bGUuaWQpIGFzIFJlc3BvbnNlTW9jaztcblxuICAgICAgICBhd2FpdCBldmVudC5zZXRNb2NrKG1vY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvblJlc3BvbnNlIChldmVudDogUmVzcG9uc2VFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoZXZlbnQuaXNTYW1lT3JpZ2luUG9saWN5RmFpbGVkKVxuICAgICAgICAgICAgdGhpcy5fd2FybmluZ0xvZz8uYWRkV2FybmluZyhXQVJOSU5HX01FU1NBR0UucmVxdWVzdE1vY2tDT1JTVmFsaWRhdGlvbkZhaWxlZCwgUmVxdWVzdE1vY2submFtZSwgZXZlbnQucmVxdWVzdEZpbHRlclJ1bGUpO1xuICAgIH1cblxuICAgIC8vIEFQSVxuICAgIHB1YmxpYyBvblJlcXVlc3RUbyAocmVxdWVzdEZpbHRlclJ1bGVJbml0OiBSZXF1ZXN0RmlsdGVyUnVsZUluaXQpOiBSZXF1ZXN0TW9jayB7XG4gICAgICAgIGlmICh0aGlzLl9wZW5kaW5nUmVxdWVzdEZpbHRlclJ1bGVJbml0KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEFQSUVycm9yKCdvblJlcXVlc3RUbycsIFJVTlRJTUVfRVJST1JTLnJlcXVlc3RIb29rQ29uZmlndXJlQVBJRXJyb3IsIFJlcXVlc3RNb2NrLm5hbWUsIFwiVGhlICdyZXNwb25kJyBtZXRob2Qgd2FzIG5vdCBjYWxsZWQgYWZ0ZXIgJ29uUmVxdWVzdFRvJy4gWW91IG11c3QgY2FsbCB0aGUgJ3Jlc3BvbmQnIG1ldGhvZCB0byBwcm92aWRlIHRoZSBtb2NrZWQgcmVzcG9uc2UuXCIpO1xuXG4gICAgICAgIHRoaXMuX3BlbmRpbmdSZXF1ZXN0RmlsdGVyUnVsZUluaXQgPSByZXF1ZXN0RmlsdGVyUnVsZUluaXQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3BvbmQgKGJvZHk6IHN0cmluZyB8IEZ1bmN0aW9uLCBzdGF0dXNDb2RlPzogbnVtYmVyLCBoZWFkZXJzPzogb2JqZWN0KTogUmVxdWVzdE1vY2sge1xuICAgICAgICBpZiAoIXRoaXMuX3BlbmRpbmdSZXF1ZXN0RmlsdGVyUnVsZUluaXQpXG4gICAgICAgICAgICB0aHJvdyBuZXcgQVBJRXJyb3IoJ3Jlc3BvbmQnLCBSVU5USU1FX0VSUk9SUy5yZXF1ZXN0SG9va0NvbmZpZ3VyZUFQSUVycm9yLCBSZXF1ZXN0TW9jay5uYW1lLCBcIlRoZSAnb25SZXF1ZXN0VG8nIG1ldGhvZCB3YXMgbm90IGNhbGxlZCBiZWZvcmUgJ3Jlc3BvbmQnLiBZb3UgbXVzdCBjYWxsIHRoZSAnb25SZXF1ZXN0VG8nIG1ldGhvZCB0byBwcm92aWRlIHRoZSBVUkwgcmVxdWVzdHMgdG8gd2hpY2ggYXJlIG1vY2tlZC5cIik7XG5cbiAgICAgICAgY29uc3QgbW9jayA9IG5ldyBSZXNwb25zZU1vY2soYm9keSwgc3RhdHVzQ29kZSwgaGVhZGVycyk7XG4gICAgICAgIGNvbnN0IHJ1bGUgPSBuZXcgUmVxdWVzdEZpbHRlclJ1bGUodGhpcy5fcGVuZGluZ1JlcXVlc3RGaWx0ZXJSdWxlSW5pdCk7XG5cbiAgICAgICAgdGhpcy5fcmVxdWVzdEZpbHRlclJ1bGVzLnB1c2gocnVsZSk7XG4gICAgICAgIHRoaXMubW9ja3Muc2V0KHJ1bGUuaWQsIG1vY2spO1xuXG4gICAgICAgIHRoaXMuX3BlbmRpbmdSZXF1ZXN0RmlsdGVyUnVsZUluaXQgPSBudWxsO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL3JlcXVlc3QtaG9va3MvcmVxdWVzdC1tb2NrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbURBQWtDO0FBRWxDLDZEQU02QjtBQUU3QixxREFBbUQ7QUFDbkQsaURBQXVEO0FBQ3ZELDZGQUFxRTtBQUdyRSxNQUFxQixXQUFZLFNBQVEsY0FBVztJQUloRDtRQUNJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVWLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssR0FBMkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVMsQ0FBRSxLQUFtQjtRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFpQixDQUFDO1FBRXhFLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBRSxLQUFvQjtRQUN6QyxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxJQUFJLENBQUMsV0FBVztZQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyx5QkFBZSxDQUFDLCtCQUErQixFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEksQ0FBQztJQUVELE1BQU07SUFDQyxXQUFXLENBQUUscUJBQTRDO1FBQzVELElBQUksSUFBSSxDQUFDLDZCQUE2QjtZQUNsQyxNQUFNLElBQUksa0JBQVEsQ0FBQyxhQUFhLEVBQUUsc0JBQWMsQ0FBQyw0QkFBNEIsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLDZIQUE2SCxDQUFDLENBQUM7UUFFcE8sSUFBSSxDQUFDLDZCQUE2QixHQUFHLHFCQUFxQixDQUFDO1FBRTNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxPQUFPLENBQUUsSUFBdUIsRUFBRSxVQUFtQixFQUFFLE9BQWdCO1FBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCO1lBQ25DLE1BQU0sSUFBSSxrQkFBUSxDQUFDLFNBQVMsRUFBRSxzQkFBYyxDQUFDLDRCQUE0QixFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsbUpBQW1KLENBQUMsQ0FBQztRQUV0UCxNQUFNLElBQUksR0FBRyxJQUFJLGtDQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLHVDQUFpQixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO1FBRTFDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSjtBQTlDRCw4QkE4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVxdWVzdEhvb2sgZnJvbSAnLi4vaG9vayc7XG5cbmltcG9ydCB7XG4gICAgUmVzcG9uc2VNb2NrLFxuICAgIFJlcXVlc3RFdmVudCxcbiAgICBSZXNwb25zZUV2ZW50LFxuICAgIFJlcXVlc3RGaWx0ZXJSdWxlSW5pdCxcbiAgICBSZXF1ZXN0RmlsdGVyUnVsZSxcbn0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5cbmltcG9ydCB7IEFQSUVycm9yIH0gZnJvbSAnLi4vLi4vLi4vZXJyb3JzL3J1bnRpbWUnO1xuaW1wb3J0IHsgUlVOVElNRV9FUlJPUlMgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMvdHlwZXMnO1xuaW1wb3J0IFdBUk5JTkdfTUVTU0FHRSBmcm9tICcuLi8uLi8uLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbWVzc2FnZSc7XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVxdWVzdE1vY2sgZXh0ZW5kcyBSZXF1ZXN0SG9vayB7XG4gICAgcHJpdmF0ZSBfcGVuZGluZ1JlcXVlc3RGaWx0ZXJSdWxlSW5pdDogbnVsbCB8IFJlcXVlc3RGaWx0ZXJSdWxlSW5pdDtcbiAgICBwdWJsaWMgbW9ja3M6IE1hcDxzdHJpbmcsIFJlc3BvbnNlTW9jaz47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKCkge1xuICAgICAgICBzdXBlcihbXSk7XG5cbiAgICAgICAgdGhpcy5fcGVuZGluZ1JlcXVlc3RGaWx0ZXJSdWxlSW5pdCA9IG51bGw7XG4gICAgICAgIHRoaXMubW9ja3MgICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgTWFwKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG9uUmVxdWVzdCAoZXZlbnQ6IFJlcXVlc3RFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBtb2NrID0gdGhpcy5tb2Nrcy5nZXQoZXZlbnQucmVxdWVzdEZpbHRlclJ1bGUuaWQpIGFzIFJlc3BvbnNlTW9jaztcblxuICAgICAgICBhd2FpdCBldmVudC5zZXRNb2NrKG1vY2spO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvblJlc3BvbnNlIChldmVudDogUmVzcG9uc2VFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoZXZlbnQuaXNTYW1lT3JpZ2luUG9saWN5RmFpbGVkICYmIHRoaXMuX3dhcm5pbmdMb2cpXG4gICAgICAgICAgICB0aGlzLl93YXJuaW5nTG9nLmFkZFdhcm5pbmcoV0FSTklOR19NRVNTQUdFLnJlcXVlc3RNb2NrQ09SU1ZhbGlkYXRpb25GYWlsZWQsIFJlcXVlc3RNb2NrLm5hbWUsIGV2ZW50LnJlcXVlc3RGaWx0ZXJSdWxlKTtcbiAgICB9XG5cbiAgICAvLyBBUElcbiAgICBwdWJsaWMgb25SZXF1ZXN0VG8gKHJlcXVlc3RGaWx0ZXJSdWxlSW5pdDogUmVxdWVzdEZpbHRlclJ1bGVJbml0KTogUmVxdWVzdE1vY2sge1xuICAgICAgICBpZiAodGhpcy5fcGVuZGluZ1JlcXVlc3RGaWx0ZXJSdWxlSW5pdClcbiAgICAgICAgICAgIHRocm93IG5ldyBBUElFcnJvcignb25SZXF1ZXN0VG8nLCBSVU5USU1FX0VSUk9SUy5yZXF1ZXN0SG9va0NvbmZpZ3VyZUFQSUVycm9yLCBSZXF1ZXN0TW9jay5uYW1lLCBcIlRoZSAncmVzcG9uZCcgbWV0aG9kIHdhcyBub3QgY2FsbGVkIGFmdGVyICdvblJlcXVlc3RUbycuIFlvdSBtdXN0IGNhbGwgdGhlICdyZXNwb25kJyBtZXRob2QgdG8gcHJvdmlkZSB0aGUgbW9ja2VkIHJlc3BvbnNlLlwiKTtcblxuICAgICAgICB0aGlzLl9wZW5kaW5nUmVxdWVzdEZpbHRlclJ1bGVJbml0ID0gcmVxdWVzdEZpbHRlclJ1bGVJbml0O1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNwb25kIChib2R5OiBzdHJpbmcgfCBGdW5jdGlvbiwgc3RhdHVzQ29kZT86IG51bWJlciwgaGVhZGVycz86IG9iamVjdCk6IFJlcXVlc3RNb2NrIHtcbiAgICAgICAgaWYgKCF0aGlzLl9wZW5kaW5nUmVxdWVzdEZpbHRlclJ1bGVJbml0KVxuICAgICAgICAgICAgdGhyb3cgbmV3IEFQSUVycm9yKCdyZXNwb25kJywgUlVOVElNRV9FUlJPUlMucmVxdWVzdEhvb2tDb25maWd1cmVBUElFcnJvciwgUmVxdWVzdE1vY2submFtZSwgXCJUaGUgJ29uUmVxdWVzdFRvJyBtZXRob2Qgd2FzIG5vdCBjYWxsZWQgYmVmb3JlICdyZXNwb25kJy4gWW91IG11c3QgY2FsbCB0aGUgJ29uUmVxdWVzdFRvJyBtZXRob2QgdG8gcHJvdmlkZSB0aGUgVVJMIHJlcXVlc3RzIHRvIHdoaWNoIGFyZSBtb2NrZWQuXCIpO1xuXG4gICAgICAgIGNvbnN0IG1vY2sgPSBuZXcgUmVzcG9uc2VNb2NrKGJvZHksIHN0YXR1c0NvZGUsIGhlYWRlcnMpO1xuICAgICAgICBjb25zdCBydWxlID0gbmV3IFJlcXVlc3RGaWx0ZXJSdWxlKHRoaXMuX3BlbmRpbmdSZXF1ZXN0RmlsdGVyUnVsZUluaXQpO1xuXG4gICAgICAgIHRoaXMuX3JlcXVlc3RGaWx0ZXJSdWxlcy5wdXNoKHJ1bGUpO1xuICAgICAgICB0aGlzLm1vY2tzLnNldChydWxlLmlkLCBtb2NrKTtcblxuICAgICAgICB0aGlzLl9wZW5kaW5nUmVxdWVzdEZpbHRlclJ1bGVJbml0ID0gbnVsbDtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG4iXX0=
@@ -20,14 +20,15 @@ class TestFile extends base_unit_1.default {
20
20
  //@ts-ignore
21
21
  test[prop] = test[prop] || test.fixture[prop];
22
22
  });
23
+ const testFixture = test.fixture;
23
24
  if (test.disablePageReloads === void 0)
24
- test.disablePageReloads = test.fixture.disablePageReloads;
25
+ test.disablePageReloads = testFixture.disablePageReloads;
25
26
  if (!test.disablePageCaching)
26
- test.disablePageCaching = test.fixture.disablePageCaching;
27
+ test.disablePageCaching = testFixture.disablePageCaching;
27
28
  });
28
29
  return this.collectedTests;
29
30
  }
30
31
  }
31
32
  exports.default = TestFile;
32
33
  module.exports = exports.default;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9zdHJ1Y3R1cmUvdGVzdC1maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNERBQW1DO0FBQ25DLDREQUFtQztBQUluQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUVoRixNQUFxQixRQUFTLFNBQVEsbUJBQVE7SUFLMUMsWUFBb0IsUUFBZ0I7UUFDaEMsS0FBSyxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLFFBQVEsR0FBUyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQix3QkFBd0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BDLDREQUE0RDtnQkFDNUQsWUFBWTtnQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxLQUFLLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1lBRTlELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCO2dCQUN4QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0NBQ0o7QUE5QkQsMkJBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VVbml0IGZyb20gJy4vYmFzZS11bml0JztcbmltcG9ydCBVbml0VHlwZSBmcm9tICcuL3VuaXQtdHlwZSc7XG5pbXBvcnQgRml4dHVyZSBmcm9tICcuL2ZpeHR1cmUnO1xuaW1wb3J0IFRlc3QgZnJvbSAnLi90ZXN0JztcblxuY29uc3QgQk9SUk9XRURfVEVTVF9QUk9QRVJUSUVTID0gWydza2lwJywgJ29ubHknLCAncGFnZVVybCcsICdhdXRoQ3JlZGVudGlhbHMnXTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdEZpbGUgZXh0ZW5kcyBCYXNlVW5pdCB7XG4gICAgcHVibGljIGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIGN1cnJlbnRGaXh0dXJlOiBGaXh0dXJlIHwgbnVsbDtcbiAgICBwdWJsaWMgY29sbGVjdGVkVGVzdHM6IFRlc3RbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoZmlsZW5hbWU6IHN0cmluZykge1xuICAgICAgICBzdXBlcihVbml0VHlwZS50ZXN0RmlsZSk7XG5cbiAgICAgICAgdGhpcy5maWxlbmFtZSAgICAgICA9IGZpbGVuYW1lO1xuICAgICAgICB0aGlzLmN1cnJlbnRGaXh0dXJlID0gbnVsbDtcbiAgICAgICAgdGhpcy5jb2xsZWN0ZWRUZXN0cyA9IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUZXN0cyAoKTogVGVzdFtdIHtcbiAgICAgICAgdGhpcy5jb2xsZWN0ZWRUZXN0cy5mb3JFYWNoKHRlc3QgPT4ge1xuICAgICAgICAgICAgQk9SUk9XRURfVEVTVF9QUk9QRVJUSUVTLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogYWRkIGluZGV4IHNpZ25hdHVyZSB0byB0aGUgVGVzdCBhbmQgRml4dHVyZSBjbGFzc2VzXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgdGVzdFtwcm9wXSA9IHRlc3RbcHJvcF0gfHwgdGVzdC5maXh0dXJlW3Byb3BdO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0ZXN0LmRpc2FibGVQYWdlUmVsb2FkcyA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgICAgIHRlc3QuZGlzYWJsZVBhZ2VSZWxvYWRzID0gdGVzdC5maXh0dXJlLmRpc2FibGVQYWdlUmVsb2FkcztcblxuICAgICAgICAgICAgaWYgKCF0ZXN0LmRpc2FibGVQYWdlQ2FjaGluZylcbiAgICAgICAgICAgICAgICB0ZXN0LmRpc2FibGVQYWdlQ2FjaGluZyA9IHRlc3QuZml4dHVyZS5kaXNhYmxlUGFnZUNhY2hpbmc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3RlZFRlc3RzO1xuICAgIH1cbn1cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9zdHJ1Y3R1cmUvdGVzdC1maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNERBQW1DO0FBQ25DLDREQUFtQztBQUluQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUVoRixNQUFxQixRQUFTLFNBQVEsbUJBQVE7SUFLMUMsWUFBb0IsUUFBZ0I7UUFDaEMsS0FBSyxDQUFDLG1CQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLFFBQVEsR0FBUyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQix3QkFBd0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BDLDREQUE0RDtnQkFDNUQsWUFBWTtnQkFDWixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBa0IsQ0FBQztZQUU1QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxLQUFLLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUM7WUFFN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0I7Z0JBQ3hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBaENELDJCQWdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlVW5pdCBmcm9tICcuL2Jhc2UtdW5pdCc7XG5pbXBvcnQgVW5pdFR5cGUgZnJvbSAnLi91bml0LXR5cGUnO1xuaW1wb3J0IEZpeHR1cmUgZnJvbSAnLi9maXh0dXJlJztcbmltcG9ydCBUZXN0IGZyb20gJy4vdGVzdCc7XG5cbmNvbnN0IEJPUlJPV0VEX1RFU1RfUFJPUEVSVElFUyA9IFsnc2tpcCcsICdvbmx5JywgJ3BhZ2VVcmwnLCAnYXV0aENyZWRlbnRpYWxzJ107XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRlc3RGaWxlIGV4dGVuZHMgQmFzZVVuaXQge1xuICAgIHB1YmxpYyBmaWxlbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBjdXJyZW50Rml4dHVyZTogRml4dHVyZSB8IG51bGw7XG4gICAgcHVibGljIGNvbGxlY3RlZFRlc3RzOiBUZXN0W107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoVW5pdFR5cGUudGVzdEZpbGUpO1xuXG4gICAgICAgIHRoaXMuZmlsZW5hbWUgICAgICAgPSBmaWxlbmFtZTtcbiAgICAgICAgdGhpcy5jdXJyZW50Rml4dHVyZSA9IG51bGw7XG4gICAgICAgIHRoaXMuY29sbGVjdGVkVGVzdHMgPSBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VGVzdHMgKCk6IFRlc3RbXSB7XG4gICAgICAgIHRoaXMuY29sbGVjdGVkVGVzdHMuZm9yRWFjaCh0ZXN0ID0+IHtcbiAgICAgICAgICAgIEJPUlJPV0VEX1RFU1RfUFJPUEVSVElFUy5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IGFkZCBpbmRleCBzaWduYXR1cmUgdG8gdGhlIFRlc3QgYW5kIEZpeHR1cmUgY2xhc3Nlc1xuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHRlc3RbcHJvcF0gPSB0ZXN0W3Byb3BdIHx8IHRlc3QuZml4dHVyZVtwcm9wXTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCB0ZXN0Rml4dHVyZSA9IHRlc3QuZml4dHVyZSBhcyBGaXh0dXJlO1xuXG4gICAgICAgICAgICBpZiAodGVzdC5kaXNhYmxlUGFnZVJlbG9hZHMgPT09IHZvaWQgMClcbiAgICAgICAgICAgICAgICB0ZXN0LmRpc2FibGVQYWdlUmVsb2FkcyA9IHRlc3RGaXh0dXJlLmRpc2FibGVQYWdlUmVsb2FkcztcblxuICAgICAgICAgICAgaWYgKCF0ZXN0LmRpc2FibGVQYWdlQ2FjaGluZylcbiAgICAgICAgICAgICAgICB0ZXN0LmRpc2FibGVQYWdlQ2FjaGluZyA9IHRlc3RGaXh0dXJlLmRpc2FibGVQYWdlQ2FjaGluZztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGVjdGVkVGVzdHM7XG4gICAgfVxufVxuIl19
@@ -16,23 +16,30 @@ const option_names_1 = __importDefault(require("../../configuration/option-names
16
16
  const testcafe_hammerhead_1 = require("testcafe-hammerhead");
17
17
  const test_timeout_1 = __importDefault(require("./test-timeout"));
18
18
  class Test extends testing_unit_1.default {
19
- constructor(testFile) {
19
+ constructor(testFile, isCompilerServiceMode = false) {
20
20
  // NOTE: 'fixture' directive can be missing
21
21
  const fixture = testFile.currentFixture;
22
- const pageUrl = fixture && fixture.pageUrl || testcafe_hammerhead_1.SPECIAL_BLANK_PAGE;
22
+ const pageUrl = (fixture === null || fixture === void 0 ? void 0 : fixture.pageUrl) || testcafe_hammerhead_1.SPECIAL_BLANK_PAGE;
23
23
  super(testFile, unit_type_1.default.test, pageUrl);
24
- this.fixture = fixture;
24
+ this.fixture = null;
25
25
  this.fn = null;
26
26
  this.beforeFn = null;
27
27
  this.afterFn = null;
28
28
  this.timeouts = null;
29
- if (this.fixture) {
30
- this.requestHooks = this.fixture.requestHooks.slice();
31
- this.clientScripts = this.fixture.clientScripts.slice();
32
- }
29
+ this._isCompilerService = isCompilerServiceMode;
30
+ this._initFixture(testFile);
33
31
  return this.apiOrigin;
34
32
  }
33
+ _initFixture(testFile) {
34
+ this.fixture = testFile.currentFixture;
35
+ if (!this.fixture)
36
+ return;
37
+ this.requestHooks = this.fixture.requestHooks.slice();
38
+ this.clientScripts = this.fixture.clientScripts.slice();
39
+ }
35
40
  _add(name, fn) {
41
+ if (this._isCompilerService && !this.fixture)
42
+ this._initFixture(this.testFile);
36
43
  type_assertions_1.assertType(type_assertions_1.is.string, 'apiOrigin', 'The test name', name);
37
44
  type_assertions_1.assertType(type_assertions_1.is.function, 'apiOrigin', 'The test body', fn);
38
45
  type_assertions_1.assertType(type_assertions_1.is.nonNullObject, 'apiOrigin', `The fixture of '${name}' test`, this.fixture);
@@ -84,4 +91,4 @@ class Test extends testing_unit_1.default {
84
91
  exports.default = Test;
85
92
  testing_unit_1.default.makeAPIListForChildClass(Test);
86
93
  module.exports = exports.default;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvc3RydWN0dXJlL3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBdUQ7QUFDdkQsa0VBQXlDO0FBQ3pDLDREQUFtQztBQUNuQywwRUFBc0U7QUFDdEUsK0VBQXFEO0FBQ3JELCtFQUFpRTtBQUNqRSwwRkFBNkU7QUFDN0UsOENBQW9EO0FBQ3BELGtEQUFnRDtBQUNoRCxvRkFBNEQ7QUFLNUQsNkRBQXlEO0FBRXpELGtFQUF5QztBQUV6QyxNQUFxQixJQUFLLFNBQVEsc0JBQVc7SUFPekMsWUFBb0IsUUFBa0I7UUFDbEMsMkNBQTJDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUF5QixDQUFDO1FBQ25ELE1BQU0sT0FBTyxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLHdDQUFrQixDQUFDO1FBRWpFLEtBQUssQ0FBQyxRQUFRLEVBQUUsbUJBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLE9BQU8sR0FBSSxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLEVBQUUsR0FBUyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBSSxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksR0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzNEO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBNEIsQ0FBQztJQUM3QyxD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QUM7UUFFbkUsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBVyxDQUFDO2FBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUM7YUFDdEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2YsNEJBQVUsQ0FBQyxvQkFBRSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxpQkFBaUIsT0FBTyxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQTZCLENBQUMsQ0FBQyxDQUFDO1FBQ3RILENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7Q0FDSjtBQW5HRCx1QkFtR0M7QUFFRCxzQkFBVyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmxhdHRlbkRlZXAgYXMgZmxhdHRlbiwgdW5pb24gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFRlc3RpbmdVbml0IGZyb20gJy4vdGVzdGluZy11bml0JztcbmltcG9ydCBVbml0VHlwZSBmcm9tICcuL3VuaXQtdHlwZSc7XG5pbXBvcnQgeyBhc3NlcnRUeXBlLCBpcyB9IGZyb20gJy4uLy4uL2Vycm9ycy9ydW50aW1lL3R5cGUtYXNzZXJ0aW9ucyc7XG5pbXBvcnQgd3JhcFRlc3RGdW5jdGlvbiBmcm9tICcuLi93cmFwLXRlc3QtZnVuY3Rpb24nO1xuaW1wb3J0IGFzc2VydFJlcXVlc3RIb29rVHlwZSBmcm9tICcuLi9yZXF1ZXN0LWhvb2tzL2Fzc2VydC10eXBlJztcbmltcG9ydCBhc3NlcnRDbGllbnRTY3JpcHRUeXBlIGZyb20gJy4uLy4uL2N1c3RvbS1jbGllbnQtc2NyaXB0cy9hc3NlcnQtdHlwZSc7XG5pbXBvcnQgeyBSVU5USU1FX0VSUk9SUyB9IGZyb20gJy4uLy4uL2Vycm9ycy90eXBlcyc7XG5pbXBvcnQgeyBBUElFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9ycy9ydW50aW1lJztcbmltcG9ydCBPUFRJT05fTkFNRVMgZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9vcHRpb24tbmFtZXMnO1xuaW1wb3J0IFRlc3RGaWxlIGZyb20gJy4vdGVzdC1maWxlJztcbmltcG9ydCBGaXh0dXJlIGZyb20gJy4vZml4dHVyZSc7XG5pbXBvcnQgUmVxdWVzdEhvb2sgZnJvbSAnLi4vcmVxdWVzdC1ob29rcy9ob29rJztcbmltcG9ydCBDbGllbnRTY3JpcHRJbml0IGZyb20gJy4uLy4uL2N1c3RvbS1jbGllbnQtc2NyaXB0cy9jbGllbnQtc2NyaXB0LWluaXQnO1xuaW1wb3J0IHsgU1BFQ0lBTF9CTEFOS19QQUdFIH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5pbXBvcnQgeyBUZXN0VGltZW91dHMgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IFRlc3RUaW1lb3V0IGZyb20gJy4vdGVzdC10aW1lb3V0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVzdCBleHRlbmRzIFRlc3RpbmdVbml0IHtcbiAgICBwdWJsaWMgZml4dHVyZTogRml4dHVyZTtcbiAgICBwdWJsaWMgZm46IEZ1bmN0aW9uIHwgbnVsbDtcbiAgICBwdWJsaWMgYmVmb3JlRm46IEZ1bmN0aW9uIHwgbnVsbDtcbiAgICBwdWJsaWMgYWZ0ZXJGbjogRnVuY3Rpb24gfCBudWxsO1xuICAgIHB1YmxpYyB0aW1lb3V0czogVGVzdFRpbWVvdXRzIHwgbnVsbDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAodGVzdEZpbGU6IFRlc3RGaWxlKSB7XG4gICAgICAgIC8vIE5PVEU6ICdmaXh0dXJlJyBkaXJlY3RpdmUgY2FuIGJlIG1pc3NpbmdcbiAgICAgICAgY29uc3QgZml4dHVyZSA9IHRlc3RGaWxlLmN1cnJlbnRGaXh0dXJlIGFzIEZpeHR1cmU7XG4gICAgICAgIGNvbnN0IHBhZ2VVcmwgPSBmaXh0dXJlICYmIGZpeHR1cmUucGFnZVVybCB8fCBTUEVDSUFMX0JMQU5LX1BBR0U7XG5cbiAgICAgICAgc3VwZXIodGVzdEZpbGUsIFVuaXRUeXBlLnRlc3QsIHBhZ2VVcmwpO1xuXG4gICAgICAgIHRoaXMuZml4dHVyZSAgPSBmaXh0dXJlO1xuICAgICAgICB0aGlzLmZuICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5iZWZvcmVGbiA9IG51bGw7XG4gICAgICAgIHRoaXMuYWZ0ZXJGbiAgPSBudWxsO1xuICAgICAgICB0aGlzLnRpbWVvdXRzID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5maXh0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLnJlcXVlc3RIb29rcyAgPSB0aGlzLmZpeHR1cmUucmVxdWVzdEhvb2tzLnNsaWNlKCk7XG4gICAgICAgICAgICB0aGlzLmNsaWVudFNjcmlwdHMgPSB0aGlzLmZpeHR1cmUuY2xpZW50U2NyaXB0cy5zbGljZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luIGFzIHVua25vd24gYXMgVGVzdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2FkZCAobmFtZTogc3RyaW5nLCBmbjogRnVuY3Rpb24pOiBGdW5jdGlvbiB7XG4gICAgICAgIGFzc2VydFR5cGUoaXMuc3RyaW5nLCAnYXBpT3JpZ2luJywgJ1RoZSB0ZXN0IG5hbWUnLCBuYW1lKTtcbiAgICAgICAgYXNzZXJ0VHlwZShpcy5mdW5jdGlvbiwgJ2FwaU9yaWdpbicsICdUaGUgdGVzdCBib2R5JywgZm4pO1xuICAgICAgICBhc3NlcnRUeXBlKGlzLm5vbk51bGxPYmplY3QsICdhcGlPcmlnaW4nLCBgVGhlIGZpeHR1cmUgb2YgJyR7bmFtZX0nIHRlc3RgLCB0aGlzLmZpeHR1cmUpO1xuXG4gICAgICAgIHRoaXMubmFtZSAgICAgICAgICA9IG5hbWU7XG4gICAgICAgIHRoaXMuZm4gICAgICAgICAgICA9IHdyYXBUZXN0RnVuY3Rpb24oZm4pO1xuXG4gICAgICAgIGlmICghdGhpcy50ZXN0RmlsZS5jb2xsZWN0ZWRUZXN0cy5pbmNsdWRlcyh0aGlzKSlcbiAgICAgICAgICAgIHRoaXMudGVzdEZpbGUuY29sbGVjdGVkVGVzdHMucHVzaCh0aGlzKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hcGlPcmlnaW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYmVmb3JlJCAoZm46IEZ1bmN0aW9uKTogRnVuY3Rpb24ge1xuICAgICAgICBhc3NlcnRUeXBlKGlzLmZ1bmN0aW9uLCAnYmVmb3JlJywgJ1RoZSB0ZXN0LmJlZm9yZSBob29rJywgZm4pO1xuXG4gICAgICAgIHRoaXMuYmVmb3JlRm4gPSB3cmFwVGVzdEZ1bmN0aW9uKGZuKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hcGlPcmlnaW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWZ0ZXIkIChmbjogRnVuY3Rpb24pOiBGdW5jdGlvbiB7XG4gICAgICAgIGFzc2VydFR5cGUoaXMuZnVuY3Rpb24sICdhZnRlcicsICdUaGUgdGVzdC5hZnRlciBob29rJywgZm4pO1xuXG4gICAgICAgIHRoaXMuYWZ0ZXJGbiA9IHdyYXBUZXN0RnVuY3Rpb24oZm4pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1ZXN0SG9va3MkICguLi5ob29rczogUmVxdWVzdEhvb2tbXSk6IEZ1bmN0aW9uIHtcbiAgICAgICAgaWYgKHRoaXMuYXBpTWV0aG9kV2FzQ2FsbGVkLnJlcXVlc3RIb29rcylcbiAgICAgICAgICAgIHRocm93IG5ldyBBUElFcnJvcihPUFRJT05fTkFNRVMucmVxdWVzdEhvb2tzLCBSVU5USU1FX0VSUk9SUy5tdWx0aXBsZUFQSU1ldGhvZENhbGxGb3JiaWRkZW4sIE9QVElPTl9OQU1FUy5yZXF1ZXN0SG9va3MpO1xuXG4gICAgICAgIGhvb2tzID0gZmxhdHRlbihob29rcyk7XG5cbiAgICAgICAgYXNzZXJ0UmVxdWVzdEhvb2tUeXBlKGhvb2tzKTtcblxuICAgICAgICB0aGlzLnJlcXVlc3RIb29rcyAgICAgICAgICAgICAgICAgICAgPSB1bmlvbih0aGlzLnJlcXVlc3RIb29rcywgaG9va3MpO1xuICAgICAgICB0aGlzLmFwaU1ldGhvZFdhc0NhbGxlZC5yZXF1ZXN0SG9va3MgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGllbnRTY3JpcHRzJCAoLi4uc2NyaXB0czogQ2xpZW50U2NyaXB0SW5pdFtdKTogRnVuY3Rpb24ge1xuICAgICAgICBpZiAodGhpcy5hcGlNZXRob2RXYXNDYWxsZWQuY2xpZW50U2NyaXB0cylcbiAgICAgICAgICAgIHRocm93IG5ldyBBUElFcnJvcihPUFRJT05fTkFNRVMuY2xpZW50U2NyaXB0cywgUlVOVElNRV9FUlJPUlMubXVsdGlwbGVBUElNZXRob2RDYWxsRm9yYmlkZGVuLCBPUFRJT05fTkFNRVMuY2xpZW50U2NyaXB0cyk7XG5cbiAgICAgICAgc2NyaXB0cyA9IGZsYXR0ZW4oc2NyaXB0cyk7XG5cbiAgICAgICAgYXNzZXJ0Q2xpZW50U2NyaXB0VHlwZShzY3JpcHRzKTtcblxuICAgICAgICB0aGlzLmNsaWVudFNjcmlwdHMgICAgICAgICAgICAgICAgICAgID0gdW5pb24odGhpcy5jbGllbnRTY3JpcHRzLCBzY3JpcHRzKTtcbiAgICAgICAgdGhpcy5hcGlNZXRob2RXYXNDYWxsZWQuY2xpZW50U2NyaXB0cyA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RpbWVvdXRzJCAodGltZW91dHM6IFRlc3RUaW1lb3V0cyk6IEZ1bmN0aW9uIHtcbiAgICAgICAgYXNzZXJ0VHlwZShpcy50ZXN0VGltZW91dHMsICd0aW1lb3V0cycsICd0ZXN0LnRpbWVvdXRzJywgdGltZW91dHMpO1xuXG4gICAgICAgIE9iamVjdC5rZXlzKFRlc3RUaW1lb3V0KVxuICAgICAgICAgICAgLmZpbHRlcih0aW1lb3V0ID0+IHRpbWVvdXQgaW4gdGltZW91dHMpXG4gICAgICAgICAgICAuZm9yRWFjaCh0aW1lb3V0ID0+IHtcbiAgICAgICAgICAgICAgICBhc3NlcnRUeXBlKGlzLm5vbk5lZ2F0aXZlTnVtYmVyLCAndGltZW91dHMnLCBgdGVzdC50aW1lb3V0cy4ke3RpbWVvdXR9YCwgdGltZW91dHNbdGltZW91dCBhcyBrZXlvZiBUZXN0VGltZW91dHNdKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGltZW91dHMgPSB0aW1lb3V0cztcblxuICAgICAgICByZXR1cm4gdGhpcy5hcGlPcmlnaW47XG4gICAgfVxufVxuXG5UZXN0aW5nVW5pdC5tYWtlQVBJTGlzdEZvckNoaWxkQ2xhc3MoVGVzdCk7XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvc3RydWN0dXJlL3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBdUQ7QUFDdkQsa0VBQXlDO0FBQ3pDLDREQUFtQztBQUNuQywwRUFBc0U7QUFDdEUsK0VBQXFEO0FBQ3JELCtFQUFpRTtBQUNqRSwwRkFBNkU7QUFDN0UsOENBQW9EO0FBQ3BELGtEQUFnRDtBQUNoRCxvRkFBNEQ7QUFLNUQsNkRBQXlEO0FBRXpELGtFQUF5QztBQUd6QyxNQUFxQixJQUFLLFNBQVEsc0JBQVc7SUFRekMsWUFBb0IsUUFBa0IsRUFBRSxxQkFBcUIsR0FBRyxLQUFLO1FBQ2pFLDJDQUEyQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBeUIsQ0FBQztRQUNuRCxNQUFNLE9BQU8sR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLEtBQUksd0NBQWtCLENBQUM7UUFFdkQsS0FBSyxDQUFDLFFBQVEsRUFBRSxtQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsT0FBTyxHQUFJLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsRUFBRSxHQUFTLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFJLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVyQixJQUFJLENBQUMsa0JBQWtCLEdBQUcscUJBQXFCLENBQUM7UUFFaEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QixPQUFPLElBQUksQ0FBQyxTQUE0QixDQUFDO0lBQzdDLENBQUM7SUFFTyxZQUFZLENBQUUsUUFBa0I7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENB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Q0FBQyxPQUFPLENBQUMsQ0FBQztRQUUzQixxQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsYUFBYSxHQUFzQixjQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUU3QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVPLFVBQVUsQ0FBRSxRQUFzQjtRQUN0Qyw0QkFBVSxDQUFDLG9CQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbkUsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBVyxDQUFDO2FBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUM7YUFDdEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2YsNEJBQVUsQ0FBQyxvQkFBRSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxpQkFBaUIsT0FBTyxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQTZCLENBQUMsQ0FBQyxDQUFDO1FBQ3RILENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7Q0FDSjtBQWhIRCx1QkFnSEM7QUFFRCxzQkFBVyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmxhdHRlbkRlZXAgYXMgZmxhdHRlbiwgdW5pb24gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFRlc3RpbmdVbml0IGZyb20gJy4vdGVzdGluZy11bml0JztcbmltcG9ydCBVbml0VHlwZSBmcm9tICcuL3VuaXQtdHlwZSc7XG5pbXBvcnQgeyBhc3NlcnRUeXBlLCBpcyB9IGZyb20gJy4uLy4uL2Vycm9ycy9ydW50aW1lL3R5cGUtYXNzZXJ0aW9ucyc7XG5pbXBvcnQgd3JhcFRlc3RGdW5jdGlvbiBmcm9tICcuLi93cmFwLXRlc3QtZnVuY3Rpb24nO1xuaW1wb3J0IGFzc2VydFJlcXVlc3RIb29rVHlwZSBmcm9tICcuLi9yZXF1ZXN0LWhvb2tzL2Fzc2VydC10eXBlJztcbmltcG9ydCBhc3NlcnRDbGllbnRTY3JpcHRUeXBlIGZyb20gJy4uLy4uL2N1c3RvbS1jbGllbnQtc2NyaXB0cy9hc3NlcnQtdHlwZSc7XG5pbXBvcnQgeyBSVU5USU1FX0VSUk9SUyB9IGZyb20gJy4uLy4uL2Vycm9ycy90eXBlcyc7XG5pbXBvcnQgeyBBUElFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9ycy9ydW50aW1lJztcbmltcG9ydCBPUFRJT05fTkFNRVMgZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9vcHRpb24tbmFtZXMnO1xuaW1wb3J0IFRlc3RGaWxlIGZyb20gJy4vdGVzdC1maWxlJztcbmltcG9ydCBGaXh0dXJlIGZyb20gJy4vZml4dHVyZSc7XG5pbXBvcnQgUmVxdWVzdEhvb2sgZnJvbSAnLi4vcmVxdWVzdC1ob29rcy9ob29rJztcbmltcG9ydCBDbGllbnRTY3JpcHRJbml0IGZyb20gJy4uLy4uL2N1c3RvbS1jbGllbnQtc2NyaXB0cy9jbGllbnQtc2NyaXB0LWluaXQnO1xuaW1wb3J0IHsgU1BFQ0lBTF9CTEFOS19QQUdFIH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5pbXBvcnQgeyBUZXN0VGltZW91dHMgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IFRlc3RUaW1lb3V0IGZyb20gJy4vdGVzdC10aW1lb3V0JztcblxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXN0IGV4dGVuZHMgVGVzdGluZ1VuaXQge1xuICAgIHB1YmxpYyBmaXh0dXJlOiBGaXh0dXJlIHwgbnVsbDtcbiAgICBwdWJsaWMgZm46IEZ1bmN0aW9uIHwgbnVsbDtcbiAgICBwdWJsaWMgYmVmb3JlRm46IEZ1bmN0aW9uIHwgbnVsbDtcbiAgICBwdWJsaWMgYWZ0ZXJGbjogRnVuY3Rpb24gfCBudWxsO1xuICAgIHB1YmxpYyB0aW1lb3V0czogVGVzdFRpbWVvdXRzIHwgbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pc0NvbXBpbGVyU2VydmljZTogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAodGVzdEZpbGU6IFRlc3RGaWxlLCBpc0NvbXBpbGVyU2VydmljZU1vZGUgPSBmYWxzZSkge1xuICAgICAgICAvLyBOT1RFOiAnZml4dHVyZScgZGlyZWN0aXZlIGNhbiBiZSBtaXNzaW5nXG4gICAgICAgIGNvbnN0IGZpeHR1cmUgPSB0ZXN0RmlsZS5jdXJyZW50Rml4dHVyZSBhcyBGaXh0dXJlO1xuICAgICAgICBjb25zdCBwYWdlVXJsID0gZml4dHVyZT8ucGFnZVVybCB8fCBTUEVDSUFMX0JMQU5LX1BBR0U7XG5cbiAgICAgICAgc3VwZXIodGVzdEZpbGUsIFVuaXRUeXBlLnRlc3QsIHBhZ2VVcmwpO1xuXG4gICAgICAgIHRoaXMuZml4dHVyZSAgPSBudWxsO1xuICAgICAgICB0aGlzLmZuICAgICAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5iZWZvcmVGbiA9IG51bGw7XG4gICAgICAgIHRoaXMuYWZ0ZXJGbiAgPSBudWxsO1xuICAgICAgICB0aGlzLnRpbWVvdXRzID0gbnVsbDtcblxuICAgICAgICB0aGlzLl9pc0NvbXBpbGVyU2VydmljZSA9IGlzQ29tcGlsZXJTZXJ2aWNlTW9kZTtcblxuICAgICAgICB0aGlzLl9pbml0Rml4dHVyZSh0ZXN0RmlsZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luIGFzIHVua25vd24gYXMgVGVzdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pbml0Rml4dHVyZSAodGVzdEZpbGU6IFRlc3RGaWxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZml4dHVyZSA9IHRlc3RGaWxlLmN1cnJlbnRGaXh0dXJlO1xuXG4gICAgICAgIGlmICghdGhpcy5maXh0dXJlKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMucmVxdWVzdEhvb2tzICA9IHRoaXMuZml4dHVyZS5yZXF1ZXN0SG9va3Muc2xpY2UoKTtcbiAgICAgICAgdGhpcy5jbGllbnRTY3JpcHRzID0gdGhpcy5maXh0dXJlLmNsaWVudFNjcmlwdHMuc2xpY2UoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2FkZCAobmFtZTogc3RyaW5nLCBmbjogRnVuY3Rpb24pOiBGdW5jdGlvbiB7XG4gICAgICAgIGlmICh0aGlzLl9pc0NvbXBpbGVyU2VydmljZSAmJiAhdGhpcy5maXh0dXJlKVxuICAgICAgICAgICAgdGhpcy5faW5pdEZpeHR1cmUodGhpcy50ZXN0RmlsZSk7XG5cbiAgICAgICAgYXNzZXJ0VHlwZShpcy5zdHJpbmcsICdhcGlPcmlnaW4nLCAnVGhlIHRlc3QgbmFtZScsIG5hbWUpO1xuICAgICAgICBhc3NlcnRUeXBlKGlzLmZ1bmN0aW9uLCAnYXBpT3JpZ2luJywgJ1RoZSB0ZXN0IGJvZHknLCBmbik7XG4gICAgICAgIGFzc2VydFR5cGUoaXMubm9uTnVsbE9iamVjdCwgJ2FwaU9yaWdpbicsIGBUaGUgZml4dHVyZSBvZiAnJHtuYW1lfScgdGVzdGAsIHRoaXMuZml4dHVyZSk7XG5cbiAgICAgICAgdGhpcy5uYW1lICAgICAgICAgID0gbmFtZTtcbiAgICAgICAgdGhpcy5mbiAgICAgICAgICAgID0gd3JhcFRlc3RGdW5jdGlvbihmbik7XG5cbiAgICAgICAgaWYgKCF0aGlzLnRlc3RGaWxlLmNvbGxlY3RlZFRlc3RzLmluY2x1ZGVzKHRoaXMpKVxuICAgICAgICAgICAgdGhpcy50ZXN0RmlsZS5jb2xsZWN0ZWRUZXN0cy5wdXNoKHRoaXMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9iZWZvcmUkIChmbjogRnVuY3Rpb24pOiBGdW5jdGlvbiB7XG4gICAgICAgIGFzc2VydFR5cGUoaXMuZnVuY3Rpb24sICdiZWZvcmUnLCAnVGhlIHRlc3QuYmVmb3JlIGhvb2snLCBmbik7XG5cbiAgICAgICAgdGhpcy5iZWZvcmVGbiA9IHdyYXBUZXN0RnVuY3Rpb24oZm4pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hZnRlciQgKGZuOiBGdW5jdGlvbik6IEZ1bmN0aW9uIHtcbiAgICAgICAgYXNzZXJ0VHlwZShpcy5mdW5jdGlvbiwgJ2FmdGVyJywgJ1RoZSB0ZXN0LmFmdGVyIGhvb2snLCBmbik7XG5cbiAgICAgICAgdGhpcy5hZnRlckZuID0gd3JhcFRlc3RGdW5jdGlvbihmbik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVlc3RIb29rcyQgKC4uLmhvb2tzOiBSZXF1ZXN0SG9va1tdKTogRnVuY3Rpb24ge1xuICAgICAgICBpZiAodGhpcy5hcGlNZXRob2RXYXNDYWxsZWQucmVxdWVzdEhvb2tzKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEFQSUVycm9yKE9QVElPTl9OQU1FUy5yZXF1ZXN0SG9va3MsIFJVTlRJTUVfRVJST1JTLm11bHRpcGxlQVBJTWV0aG9kQ2FsbEZvcmJpZGRlbiwgT1BUSU9OX05BTUVTLnJlcXVlc3RIb29rcyk7XG5cbiAgICAgICAgaG9va3MgPSBmbGF0dGVuKGhvb2tzKTtcblxuICAgICAgICBhc3NlcnRSZXF1ZXN0SG9va1R5cGUoaG9va3MpO1xuXG4gICAgICAgIHRoaXMucmVxdWVzdEhvb2tzICAgICAgICAgICAgICAgICAgICA9IHVuaW9uKHRoaXMucmVxdWVzdEhvb2tzLCBob29rcyk7XG4gICAgICAgIHRoaXMuYXBpTWV0aG9kV2FzQ2FsbGVkLnJlcXVlc3RIb29rcyA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpT3JpZ2luO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NsaWVudFNjcmlwdHMkICguLi5zY3JpcHRzOiBDbGllbnRTY3JpcHRJbml0W10pOiBGdW5jdGlvbiB7XG4gICAgICAgIGlmICh0aGlzLmFwaU1ldGhvZFdhc0NhbGxlZC5jbGllbnRTY3JpcHRzKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEFQSUVycm9yKE9QVElPTl9OQU1FUy5jbGllbnRTY3JpcHRzLCBSVU5USU1FX0VSUk9SUy5tdWx0aXBsZUFQSU1ldGhvZENhbGxGb3JiaWRkZW4sIE9QVElPTl9OQU1FUy5jbGllbnRTY3JpcHRzKTtcblxuICAgICAgICBzY3JpcHRzID0gZmxhdHRlbihzY3JpcHRzKTtcblxuICAgICAgICBhc3NlcnRDbGllbnRTY3JpcHRUeXBlKHNjcmlwdHMpO1xuXG4gICAgICAgIHRoaXMuY2xpZW50U2NyaXB0cyAgICAgICAgICAgICAgICAgICAgPSB1bmlvbih0aGlzLmNsaWVudFNjcmlwdHMsIHNjcmlwdHMpO1xuICAgICAgICB0aGlzLmFwaU1ldGhvZFdhc0NhbGxlZC5jbGllbnRTY3JpcHRzID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5hcGlPcmlnaW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdGltZW91dHMkICh0aW1lb3V0czogVGVzdFRpbWVvdXRzKTogRnVuY3Rpb24ge1xuICAgICAgICBhc3NlcnRUeXBlKGlzLnRlc3RUaW1lb3V0cywgJ3RpbWVvdXRzJywgJ3Rlc3QudGltZW91dHMnLCB0aW1lb3V0cyk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoVGVzdFRpbWVvdXQpXG4gICAgICAgICAgICAuZmlsdGVyKHRpbWVvdXQgPT4gdGltZW91dCBpbiB0aW1lb3V0cylcbiAgICAgICAgICAgIC5mb3JFYWNoKHRpbWVvdXQgPT4ge1xuICAgICAgICAgICAgICAgIGFzc2VydFR5cGUoaXMubm9uTmVnYXRpdmVOdW1iZXIsICd0aW1lb3V0cycsIGB0ZXN0LnRpbWVvdXRzLiR7dGltZW91dH1gLCB0aW1lb3V0c1t0aW1lb3V0IGFzIGtleW9mIFRlc3RUaW1lb3V0c10pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50aW1lb3V0cyA9IHRpbWVvdXRzO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwaU9yaWdpbjtcbiAgICB9XG59XG5cblRlc3RpbmdVbml0Lm1ha2VBUElMaXN0Rm9yQ2hpbGRDbGFzcyhUZXN0KTtcbiJdfQ==
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const assertion_1 = __importDefault(require("../../test-run/commands/assertion"));
7
- const type_1 = __importDefault(require("../../assertions/type"));
3
+ const assertion_1 = require("../../test-run/commands/assertion");
8
4
  const test_run_1 = require("../../errors/test-run");
9
5
  class Assertion {
10
6
  constructor(actual, testController, callsite) {
@@ -15,7 +11,7 @@ class Assertion {
15
11
  then() {
16
12
  throw new test_run_1.AssertionWithoutMethodCallError(this._callsite);
17
13
  }
18
- _enqueueAssertion(apiMethodName, assertionArgs) {
14
+ _enqueueAssertion(command, assertionArgs) {
19
15
  let options = assertionArgs.opts || {};
20
16
  let message = assertionArgs.message;
21
17
  // NOTE: Assertion options should be specified after the 'message' parameter.
@@ -26,8 +22,8 @@ class Assertion {
26
22
  options = assertionArgs.message;
27
23
  message = void 0;
28
24
  }
29
- return this._testController._enqueueCommand(apiMethodName, assertion_1.default, {
30
- assertionType: apiMethodName,
25
+ return this._testController._enqueueCommand(command, {
26
+ assertionType: command.methodName,
31
27
  actual: this._actual,
32
28
  expected: assertionArgs.expected,
33
29
  expected2: assertionArgs.expected2,
@@ -35,56 +31,56 @@ class Assertion {
35
31
  options: { timeout: options.timeout, allowUnawaitedPromise: options.allowUnawaitedPromise },
36
32
  });
37
33
  }
38
- eql(expected, message, opts) {
39
- return this._enqueueAssertion(type_1.default.eql, { expected, message, opts });
34
+ [assertion_1.EqlAssertionCommand.methodName](expected, message, opts) {
35
+ return this._enqueueAssertion(assertion_1.EqlAssertionCommand, { expected, message, opts });
40
36
  }
41
- notEql(expected, message, opts) {
42
- return this._enqueueAssertion(type_1.default.notEql, { expected, message, opts });
37
+ [assertion_1.NotEqlAssertionCommand.methodName](expected, message, opts) {
38
+ return this._enqueueAssertion(assertion_1.NotEqlAssertionCommand, { expected, message, opts });
43
39
  }
44
- ok(message, opts) {
45
- return this._enqueueAssertion(type_1.default.ok, { message, opts });
40
+ [assertion_1.OkAssertionCommand.methodName](message, opts) {
41
+ return this._enqueueAssertion(assertion_1.OkAssertionCommand, { message, opts });
46
42
  }
47
- notOk(message, opts) {
48
- return this._enqueueAssertion(type_1.default.notOk, { message, opts });
43
+ [assertion_1.NotOkAssertionCommand.methodName](message, opts) {
44
+ return this._enqueueAssertion(assertion_1.NotOkAssertionCommand, { message, opts });
49
45
  }
50
- contains(expected, message, opts) {
51
- return this._enqueueAssertion(type_1.default.contains, { expected, message, opts });
46
+ [assertion_1.ContainsAssertionCommand.methodName](expected, message, opts) {
47
+ return this._enqueueAssertion(assertion_1.ContainsAssertionCommand, { expected, message, opts });
52
48
  }
53
- notContains(expected, message, opts) {
54
- return this._enqueueAssertion(type_1.default.notContains, { expected, message, opts });
49
+ [assertion_1.NotContainsAssertionCommand.methodName](expected, message, opts) {
50
+ return this._enqueueAssertion(assertion_1.NotContainsAssertionCommand, { expected, message, opts });
55
51
  }
56
- typeOf(expected, message, opts) {
57
- return this._enqueueAssertion(type_1.default.typeOf, { expected, message, opts });
52
+ [assertion_1.TypeOfAssertionCommand.methodName](expected, message, opts) {
53
+ return this._enqueueAssertion(assertion_1.TypeOfAssertionCommand, { expected, message, opts });
58
54
  }
59
- notTypeOf(expected, message, opts) {
60
- return this._enqueueAssertion(type_1.default.notTypeOf, { expected, message, opts });
55
+ [assertion_1.NotTypeOfAssertionCommand.methodName](expected, message, opts) {
56
+ return this._enqueueAssertion(assertion_1.NotTypeOfAssertionCommand, { expected, message, opts });
61
57
  }
62
- gt(expected, message, opts) {
63
- return this._enqueueAssertion(type_1.default.gt, { expected, message, opts });
58
+ [assertion_1.GtAssertionCommand.methodName](expected, message, opts) {
59
+ return this._enqueueAssertion(assertion_1.GtAssertionCommand, { expected, message, opts });
64
60
  }
65
- gte(expected, message, opts) {
66
- return this._enqueueAssertion(type_1.default.gte, { expected, message, opts });
61
+ [assertion_1.GteAssertionCommand.methodName](expected, message, opts) {
62
+ return this._enqueueAssertion(assertion_1.GteAssertionCommand, { expected, message, opts });
67
63
  }
68
- lt(expected, message, opts) {
69
- return this._enqueueAssertion(type_1.default.lt, { expected, message, opts });
64
+ [assertion_1.LtAssertionCommand.methodName](expected, message, opts) {
65
+ return this._enqueueAssertion(assertion_1.LtAssertionCommand, { expected, message, opts });
70
66
  }
71
- lte(expected, message, opts) {
72
- return this._enqueueAssertion(type_1.default.lte, { expected, message, opts });
67
+ [assertion_1.LteAssertionCommand.methodName](expected, message, opts) {
68
+ return this._enqueueAssertion(assertion_1.LteAssertionCommand, { expected, message, opts });
73
69
  }
74
- within(start, finish, message, opts) {
70
+ [assertion_1.WithinAssertionCommand.methodName](start, finish, message, opts) {
75
71
  // NOTE: `within` is not available in Chai `assert` interface.
76
- return this._enqueueAssertion(type_1.default.within, { expected: start, expected2: finish, message, opts });
72
+ return this._enqueueAssertion(assertion_1.WithinAssertionCommand, { expected: start, expected2: finish, message, opts });
77
73
  }
78
- notWithin(start, finish, message, opts) {
79
- return this._enqueueAssertion(type_1.default.notWithin, { expected: start, expected2: finish, message, opts });
74
+ [assertion_1.NotWithinAssertionCommand.methodName](start, finish, message, opts) {
75
+ return this._enqueueAssertion(assertion_1.NotWithinAssertionCommand, { expected: start, expected2: finish, message, opts });
80
76
  }
81
- match(expected, message, opts) {
82
- return this._enqueueAssertion(type_1.default.match, { expected, message, opts });
77
+ [assertion_1.MatchAssertionCommand.methodName](expected, message, opts) {
78
+ return this._enqueueAssertion(assertion_1.MatchAssertionCommand, { expected, message, opts });
83
79
  }
84
- notMatch(expected, message, opts) {
85
- return this._enqueueAssertion(type_1.default.notMatch, { expected, message, opts });
80
+ [assertion_1.NotMatchAssertionCommand.methodName](expected, message, opts) {
81
+ return this._enqueueAssertion(assertion_1.NotMatchAssertionCommand, { expected, message, opts });
86
82
  }
87
83
  }
88
84
  exports.default = Assertion;
89
85
  module.exports = exports.default;
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90ZXN0LWNvbnRyb2xsZXIvYXNzZXJ0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0ZBQWlFO0FBQ2pFLGlFQUFtRDtBQUNuRCxvREFBd0U7QUFZeEUsTUFBcUIsU0FBUztJQUsxQixZQUFvQixNQUFlLEVBQUUsY0FBOEIsRUFBRSxRQUF3QjtRQUN6RixJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFXLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFTLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRU0sSUFBSTtRQUNQLE1BQU0sSUFBSSwwQ0FBK0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLGlCQUFpQixDQUFFLGFBQXFCLEVBQUUsYUFBNEI7UUFDMUUsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkMsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUVwQyw2RUFBNkU7UUFDN0UsaUVBQWlFO1FBQ2pFLDRHQUE0RztRQUM1RyxrREFBa0Q7UUFDbEQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDN0IsT0FBTyxHQUFHLGFBQWEsQ0FBQyxPQUEyQixDQUFDO1lBQ3BELE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztTQUNwQjtRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLG1CQUFnQixFQUFFO1lBQ3pFLGFBQWEsRUFBRSxhQUFhO1lBQzVCLE1BQU0sRUFBUyxJQUFJLENBQUMsT0FBTztZQUMzQixRQUFRLEVBQU8sYUFBYSxDQUFDLFFBQVE7WUFDckMsU0FBUyxFQUFNLGFBQWEsQ0FBQyxTQUFTO1lBQ3RDLE9BQU8s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QUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU0sTUFBTSxDQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsT0FBZSxFQUFFLElBQXNCO1FBQ2pGLDhEQUE4RDtRQUM5RCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFTSxTQUFTLENBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDcEYsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRU0sS0FBSyxDQUFFLFFBQWlCLEVBQUUsT0FBZSxFQUFFLElBQXNCO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVNLFFBQVEsQ0FBRSxRQUFpQixFQUFFLE9BQWUsRUFBRSxJQUFzQjtRQUN2RSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7Q0FDSjtBQXRHRCw0QkFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXNzZXJ0aW9uQ29tbWFuZCBmcm9tICcuLi8uLi90ZXN0LXJ1bi9jb21tYW5kcy9hc3NlcnRpb24nO1xuaW1wb3J0IEFTU0VSVElPTl9UWVBFIGZyb20gJy4uLy4uL2Fzc2VydGlvbnMvdHlwZSc7XG5pbXBvcnQgeyBBc3NlcnRpb25XaXRob3V0TWV0aG9kQ2FsbEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3JzL3Rlc3QtcnVuJztcbmltcG9ydCBUZXN0Q29udHJvbGxlciBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IENhbGxzaXRlUmVjb3JkIH0gZnJvbSAnY2FsbHNpdGUtcmVjb3JkJztcbmltcG9ydCB7IEFzc2VydGlvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi90ZXN0LXJ1bi9jb21tYW5kcy9vcHRpb25zJztcblxuaW50ZXJmYWNlIEFzc2VydGlvbkFyZ3Mge1xuICAgIG9wdHM6IEFzc2VydGlvbk9wdGlvbnM7XG4gICAgbWVzc2FnZT86IHN0cmluZyB8IEFzc2VydGlvbk9wdGlvbnM7XG4gICAgZXhwZWN0ZWQ/OiB1bmtub3duO1xuICAgIGV4cGVjdGVkMj86IHVua25vd247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFzc2VydGlvbiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGVzdENvbnRyb2xsZXI6IFRlc3RDb250cm9sbGVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FjdHVhbDogdW5rbm93bjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jYWxsc2l0ZTogQ2FsbHNpdGVSZWNvcmQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGFjdHVhbDogdW5rbm93biwgdGVzdENvbnRyb2xsZXI6IFRlc3RDb250cm9sbGVyLCBjYWxsc2l0ZTogQ2FsbHNpdGVSZWNvcmQpIHtcbiAgICAgICAgdGhpcy5fdGVzdENvbnRyb2xsZXIgPSB0ZXN0Q29udHJvbGxlcjtcbiAgICAgICAgdGhpcy5fYWN0dWFsICAgICAgICAgPSBhY3R1YWw7XG4gICAgICAgIHRoaXMuX2NhbGxzaXRlICAgICAgID0gY2FsbHNpdGU7XG4gICAgfVxuXG4gICAgcHVibGljIHRoZW4gKCk6IG5ldmVyIHtcbiAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbldpdGhvdXRNZXRob2RDYWxsRXJyb3IodGhpcy5fY2FsbHNpdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2VucXVldWVBc3NlcnRpb24gKGFwaU1ldGhvZE5hbWU6IHN0cmluZywgYXNzZXJ0aW9uQXJnczogQXNzZXJ0aW9uQXJncyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICBsZXQgb3B0aW9ucyA9IGFzc2VydGlvbkFyZ3Mub3B0cyB8fCB7fTtcbiAgICAgICAgbGV0IG1lc3NhZ2UgPSBhc3NlcnRpb25BcmdzLm1lc3NhZ2U7XG5cbiAgICAgICAgLy8gTk9URTogQXNzZXJ0aW9uIG9wdGlvbnMgc2hvdWxkIGJlIHNwZWNpZmllZCBhZnRlciB0aGUgJ21lc3NhZ2UnIHBhcmFtZXRlci5cbiAgICAgICAgLy8gYXdhaXQgdC5leHBlY3QoNDIpLmVxbCg0MywgJ3dyb25nIHZhbHVlJywgeyB0aW1lb3V0OiAxMDAwMCB9KTtcbiAgICAgICAgLy8gSW4gY2FzZSBvZiBlbXB0eSBhc3NlcnRpb24gbWVzc2FnZSB3ZSBhbGxvd2luZyB0byBzcGVjaWZ5IGFzc2VydGlvbiBvcHRpb24gaW4gcGxhY2Ugb2YgYXNzZXJ0aW9uIG1lc3NhZ2UuXG4gICAgICAgIC8vIGF3YWl0IHQuZXhwZWN0KDQyKS5lcWwoNDMsIHsgdGltZW91dDogMTAwMDAgfSk7XG4gICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBhc3NlcnRpb25BcmdzLm1lc3NhZ2UgYXMgQXNzZXJ0aW9uT3B0aW9ucztcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2b2lkIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fdGVzdENvbnRyb2xsZXIuX2VucXVldWVDb21tYW5kKGFwaU1ldGhvZE5hbWUsIEFzc2VydGlvbkNvbW1hbmQsIHtcbiAgICAgICAgICAgIGFzc2VydGlvblR5cGU6IGFwaU1ldGhvZE5hbWUsXG4gICAgICAgICAgICBhY3R1YWw6ICAgICAgICB0aGlzLl9hY3R1YWwsXG4gICAgICAgICAgICBleHBlY3RlZDogICAgICBhc3NlcnRpb25BcmdzLmV4cGVjdGVkLFxuICAgICAgICAgICAgZXhwZWN0ZWQyOiAgICAgYXNzZXJ0aW9uQXJncy5leHBlY3RlZDIsXG4gICAgICAgICAgICBtZXNzYWdlOiAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgb3B0aW9uczogICAgICAgeyB0aW1lb3V0OiBvcHRpb25zLnRpbWVvdXQsIGFsbG93VW5hd2FpdGVkUHJvbWlzZTogb3B0aW9ucy5hbGxvd1VuYXdhaXRlZFByb21pc2UgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGVxbCAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5lcWwsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5vdEVxbCAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5ub3RFcWwsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9rIChtZXNzYWdlOiBzdHJpbmcsIG9wdHM6IEFzc2VydGlvbk9wdGlvbnMpOiAoKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oQVNTRVJUSU9OX1RZUEUub2ssIHsgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm90T2sgKG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5ub3RPaywgeyBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250YWlucyAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5jb250YWlucywgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm90Q29udGFpbnMgKGV4cGVjdGVkOiB1bmtub3duLCBtZXNzYWdlOiBzdHJpbmcsIG9wdHM6IEFzc2VydGlvbk9wdGlvbnMpOiAoKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oQVNTRVJUSU9OX1RZUEUubm90Q29udGFpbnMsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHR5cGVPZiAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS50eXBlT2YsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5vdFR5cGVPZiAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5ub3RUeXBlT2YsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGd0IChleHBlY3RlZDogdW5rbm93biwgbWVzc2FnZTogc3RyaW5nLCBvcHRzOiBBc3NlcnRpb25PcHRpb25zKTogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLmd0LCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBndGUgKGV4cGVjdGVkOiB1bmtub3duLCBtZXNzYWdlOiBzdHJpbmcsIG9wdHM6IEFzc2VydGlvbk9wdGlvbnMpOiAoKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oQVNTRVJUSU9OX1RZUEUuZ3RlLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBsdCAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5sdCwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbHRlIChleHBlY3RlZDogdW5rbm93biwgbWVzc2FnZTogc3RyaW5nLCBvcHRzOiBBc3NlcnRpb25PcHRpb25zKTogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLmx0ZSwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aGluIChzdGFydDogbnVtYmVyLCBmaW5pc2g6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nLCBvcHRzOiBBc3NlcnRpb25PcHRpb25zKTogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgIC8vIE5PVEU6IGB3aXRoaW5gIGlzIG5vdCBhdmFpbGFibGUgaW4gQ2hhaSBgYXNzZXJ0YCBpbnRlcmZhY2UuXG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLndpdGhpbiwgeyBleHBlY3RlZDogc3RhcnQsIGV4cGVjdGVkMjogZmluaXNoLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3RXaXRoaW4gKHN0YXJ0OiBudW1iZXIsIGZpbmlzaDogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcsIG9wdHM6IEFzc2VydGlvbk9wdGlvbnMpOiAoKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oQVNTRVJUSU9OX1RZUEUubm90V2l0aGluLCB7IGV4cGVjdGVkOiBzdGFydCwgZXhwZWN0ZWQyOiBmaW5pc2gsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG1hdGNoIChleHBlY3RlZDogdW5rbm93biwgbWVzc2FnZTogc3RyaW5nLCBvcHRzOiBBc3NlcnRpb25PcHRpb25zKTogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEFTU0VSVElPTl9UWVBFLm1hdGNoLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3RNYXRjaCAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihBU1NFUlRJT05fVFlQRS5ub3RNYXRjaCwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG59XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90ZXN0LWNvbnRyb2xsZXIvYXNzZXJ0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUVBa0IyQztBQUMzQyxvREFBd0U7QUFZeEUsTUFBcUIsU0FBUztJQUsxQixZQUFvQixNQUFlLEVBQUUsY0FBOEIsRUFBRSxRQUF3QjtRQUN6RixJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFXLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFTLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRU0sSUFBSTtRQUNQLE1BQU0sSUFBSSwwQ0FBK0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLGlCQUFpQixDQUFFLE9BQWdDLEVBQUUsYUFBNEI7UUFDckYsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkMsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUVwQyw2RUFBNkU7UUFDN0UsaUVBQWlFO1FBQ2pFLDRHQUE0RztRQUM1RyxrREFBa0Q7UUFDbEQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDN0IsT0FBTyxHQUFHLGFBQWEsQ0FBQyxPQUEyQixDQUFDO1lBQ3BELE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztTQUNwQjtRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFO1lBQ2pELGFBQWEsRUFBRSxPQUFPLENBQUMsVUFBVTtZQUNqQyxNQUFNLEVBQVMsSUFBSSxDQUFDLE9BQU87WUFDM0IsUUFBUSxFQUFPLGFBQWEsQ0FBQyxRQUFRO1lBQ3JDLFNBQVMsRUFBTSxhQUFhLENBQUMsU0FBUztZQUN0QyxPQUFPLEVBQVEsT0FBTztZQUN0QixPQUFPLEVBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLENBQUMscUJBQXFCLEVBQUU7U0FDcEcsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLENBQUMsK0JBQW1CLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDL0YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsK0JBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVNLENBQUMsa0NBQXNCLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDbEcsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0NBQXNCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLENBQUMsOEJBQWtCLENBQUMsVUFBVSxDQUFDLENBQUUsT0FBZSxFQUFFLElBQXNCO1FBQzNFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLDhCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLENBQUMsaUNBQXFCLENBQUMsVUFBVSxDQUFDLENBQUUsT0FBZSxFQUFFLElBQXNCO1FBQzlFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlDQUFxQixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLENBQUMsb0NBQXdCLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDcEcsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0NBQXdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVNLENBQUMsdUNBQTJCLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDdkcsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsdUNBQTJCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLENBQUMsa0NBQXNCLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDbEcsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0NBQXNCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLENBQUMscUNBQXlCLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDckcsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMscUNBQXlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVNLENBQUMsOEJBQWtCLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDOUYsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsOEJBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVNLENBQUMsK0JBQW1CLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDL0YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsK0JBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVNLENBQUMsOEJBQWtCLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDOUYsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsOEJBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVNLENBQUMsK0JBQW1CLENBQUMsVUFBVSxDQUFDLENBQUUsUUFBaUIsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDL0YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsK0JBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVNLENBQUMsa0NBQXNCLENBQUMsVUFBVSxDQUFDLENBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxPQUFlLEVBQUUsSUFBc0I7UUFDOUcsOERBQThEO1FBQzlELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtDQUFzQixFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pILENBQUM7SUFFTSxDQUFDLHFDQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsT0FBZSxFQUFFLElBQXNCO1FBQ2pILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFDQUF5QixFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFTSxDQUFDLGlDQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFFLFFBQWlCLEVBQUUsT0FBZSxFQUFFLElBQXNCO1FBQ2pHLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlDQUFxQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFTSxDQUFDLG9DQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFFLFFBQWlCLEVBQUUsT0FBZSxFQUFFLElBQXNCO1FBQ3BHLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9DQUF3QixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7Q0FDSjtBQXRHRCw0QkFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFzc2VydGlvbkNvbW1hbmQsXG4gICAgQ29udGFpbnNBc3NlcnRpb25Db21tYW5kLFxuICAgIEVxbEFzc2VydGlvbkNvbW1hbmQsXG4gICAgR3RBc3NlcnRpb25Db21tYW5kLFxuICAgIEd0ZUFzc2VydGlvbkNvbW1hbmQsXG4gICAgTHRBc3NlcnRpb25Db21tYW5kLFxuICAgIEx0ZUFzc2VydGlvbkNvbW1hbmQsXG4gICAgTWF0Y2hBc3NlcnRpb25Db21tYW5kLFxuICAgIE5vdENvbnRhaW5zQXNzZXJ0aW9uQ29tbWFuZCxcbiAgICBOb3RFcWxBc3NlcnRpb25Db21tYW5kLFxuICAgIE5vdE1hdGNoQXNzZXJ0aW9uQ29tbWFuZCxcbiAgICBOb3RPa0Fzc2VydGlvbkNvbW1hbmQsXG4gICAgTm90VHlwZU9mQXNzZXJ0aW9uQ29tbWFuZCxcbiAgICBOb3RXaXRoaW5Bc3NlcnRpb25Db21tYW5kLFxuICAgIE9rQXNzZXJ0aW9uQ29tbWFuZCxcbiAgICBUeXBlT2ZBc3NlcnRpb25Db21tYW5kLFxuICAgIFdpdGhpbkFzc2VydGlvbkNvbW1hbmQsXG59IGZyb20gJy4uLy4uL3Rlc3QtcnVuL2NvbW1hbmRzL2Fzc2VydGlvbic7XG5pbXBvcnQgeyBBc3NlcnRpb25XaXRob3V0TWV0aG9kQ2FsbEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3JzL3Rlc3QtcnVuJztcbmltcG9ydCBUZXN0Q29udHJvbGxlciBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IENhbGxzaXRlUmVjb3JkIH0gZnJvbSAnY2FsbHNpdGUtcmVjb3JkJztcbmltcG9ydCB7IEFzc2VydGlvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi90ZXN0LXJ1bi9jb21tYW5kcy9vcHRpb25zJztcblxuaW50ZXJmYWNlIEFzc2VydGlvbkFyZ3Mge1xuICAgIG9wdHM6IEFzc2VydGlvbk9wdGlvbnM7XG4gICAgbWVzc2FnZT86IHN0cmluZyB8IEFzc2VydGlvbk9wdGlvbnM7XG4gICAgZXhwZWN0ZWQ/OiB1bmtub3duO1xuICAgIGV4cGVjdGVkMj86IHVua25vd247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFzc2VydGlvbiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGVzdENvbnRyb2xsZXI6IFRlc3RDb250cm9sbGVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FjdHVhbDogdW5rbm93bjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jYWxsc2l0ZTogQ2FsbHNpdGVSZWNvcmQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGFjdHVhbDogdW5rbm93biwgdGVzdENvbnRyb2xsZXI6IFRlc3RDb250cm9sbGVyLCBjYWxsc2l0ZTogQ2FsbHNpdGVSZWNvcmQpIHtcbiAgICAgICAgdGhpcy5fdGVzdENvbnRyb2xsZXIgPSB0ZXN0Q29udHJvbGxlcjtcbiAgICAgICAgdGhpcy5fYWN0dWFsICAgICAgICAgPSBhY3R1YWw7XG4gICAgICAgIHRoaXMuX2NhbGxzaXRlICAgICAgID0gY2FsbHNpdGU7XG4gICAgfVxuXG4gICAgcHVibGljIHRoZW4gKCk6IG5ldmVyIHtcbiAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbldpdGhvdXRNZXRob2RDYWxsRXJyb3IodGhpcy5fY2FsbHNpdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2VucXVldWVBc3NlcnRpb24gKGNvbW1hbmQ6IHR5cGVvZiBBc3NlcnRpb25Db21tYW5kLCBhc3NlcnRpb25BcmdzOiBBc3NlcnRpb25BcmdzKTogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgIGxldCBvcHRpb25zID0gYXNzZXJ0aW9uQXJncy5vcHRzIHx8IHt9O1xuICAgICAgICBsZXQgbWVzc2FnZSA9IGFzc2VydGlvbkFyZ3MubWVzc2FnZTtcblxuICAgICAgICAvLyBOT1RFOiBBc3NlcnRpb24gb3B0aW9ucyBzaG91bGQgYmUgc3BlY2lmaWVkIGFmdGVyIHRoZSAnbWVzc2FnZScgcGFyYW1ldGVyLlxuICAgICAgICAvLyBhd2FpdCB0LmV4cGVjdCg0MikuZXFsKDQzLCAnd3JvbmcgdmFsdWUnLCB7IHRpbWVvdXQ6IDEwMDAwIH0pO1xuICAgICAgICAvLyBJbiBjYXNlIG9mIGVtcHR5IGFzc2VydGlvbiBtZXNzYWdlIHdlIGFsbG93aW5nIHRvIHNwZWNpZnkgYXNzZXJ0aW9uIG9wdGlvbiBpbiBwbGFjZSBvZiBhc3NlcnRpb24gbWVzc2FnZS5cbiAgICAgICAgLy8gYXdhaXQgdC5leHBlY3QoNDIpLmVxbCg0MywgeyB0aW1lb3V0OiAxMDAwMCB9KTtcbiAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgb3B0aW9ucyA9IGFzc2VydGlvbkFyZ3MubWVzc2FnZSBhcyBBc3NlcnRpb25PcHRpb25zO1xuICAgICAgICAgICAgbWVzc2FnZSA9IHZvaWQgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl90ZXN0Q29udHJvbGxlci5fZW5xdWV1ZUNvbW1hbmQoY29tbWFuZCwge1xuICAgICAgICAgICAgYXNzZXJ0aW9uVHlwZTogY29tbWFuZC5tZXRob2ROYW1lLFxuICAgICAgICAgICAgYWN0dWFsOiAgICAgICAgdGhpcy5fYWN0dWFsLFxuICAgICAgICAgICAgZXhwZWN0ZWQ6ICAgICAgYXNzZXJ0aW9uQXJncy5leHBlY3RlZCxcbiAgICAgICAgICAgIGV4cGVjdGVkMjogICAgIGFzc2VydGlvbkFyZ3MuZXhwZWN0ZWQyLFxuICAgICAgICAgICAgbWVzc2FnZTogICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIG9wdGlvbnM6ICAgICAgIHsgdGltZW91dDogb3B0aW9ucy50aW1lb3V0LCBhbGxvd1VuYXdhaXRlZFByb21pc2U6IG9wdGlvbnMuYWxsb3dVbmF3YWl0ZWRQcm9taXNlIH0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBbRXFsQXNzZXJ0aW9uQ29tbWFuZC5tZXRob2ROYW1lXSAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihFcWxBc3NlcnRpb25Db21tYW5kLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBbTm90RXFsQXNzZXJ0aW9uQ29tbWFuZC5tZXRob2ROYW1lXSAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihOb3RFcWxBc3NlcnRpb25Db21tYW5kLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBbT2tBc3NlcnRpb25Db21tYW5kLm1ldGhvZE5hbWVdIChtZXNzYWdlOiBzdHJpbmcsIG9wdHM6IEFzc2VydGlvbk9wdGlvbnMpOiAoKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oT2tBc3NlcnRpb25Db21tYW5kLCB7IG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIFtOb3RPa0Fzc2VydGlvbkNvbW1hbmQubWV0aG9kTmFtZV0gKG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihOb3RPa0Fzc2VydGlvbkNvbW1hbmQsIHsgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgW0NvbnRhaW5zQXNzZXJ0aW9uQ29tbWFuZC5tZXRob2ROYW1lXSAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihDb250YWluc0Fzc2VydGlvbkNvbW1hbmQsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIFtOb3RDb250YWluc0Fzc2VydGlvbkNvbW1hbmQubWV0aG9kTmFtZV0gKGV4cGVjdGVkOiB1bmtub3duLCBtZXNzYWdlOiBzdHJpbmcsIG9wdHM6IEFzc2VydGlvbk9wdGlvbnMpOiAoKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oTm90Q29udGFpbnNBc3NlcnRpb25Db21tYW5kLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBbVHlwZU9mQXNzZXJ0aW9uQ29tbWFuZC5tZXRob2ROYW1lXSAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihUeXBlT2ZBc3NlcnRpb25Db21tYW5kLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBbTm90VHlwZU9mQXNzZXJ0aW9uQ29tbWFuZC5tZXRob2ROYW1lXSAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihOb3RUeXBlT2ZBc3NlcnRpb25Db21tYW5kLCB7IGV4cGVjdGVkLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBbR3RBc3NlcnRpb25Db21tYW5kLm1ldGhvZE5hbWVdIChleHBlY3RlZDogdW5rbm93biwgbWVzc2FnZTogc3RyaW5nLCBvcHRzOiBBc3NlcnRpb25PcHRpb25zKTogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEd0QXNzZXJ0aW9uQ29tbWFuZCwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgW0d0ZUFzc2VydGlvbkNvbW1hbmQubWV0aG9kTmFtZV0gKGV4cGVjdGVkOiB1bmtub3duLCBtZXNzYWdlOiBzdHJpbmcsIG9wdHM6IEFzc2VydGlvbk9wdGlvbnMpOiAoKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oR3RlQXNzZXJ0aW9uQ29tbWFuZCwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgW0x0QXNzZXJ0aW9uQ29tbWFuZC5tZXRob2ROYW1lXSAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihMdEFzc2VydGlvbkNvbW1hbmQsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIFtMdGVBc3NlcnRpb25Db21tYW5kLm1ldGhvZE5hbWVdIChleHBlY3RlZDogdW5rbm93biwgbWVzc2FnZTogc3RyaW5nLCBvcHRzOiBBc3NlcnRpb25PcHRpb25zKTogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKEx0ZUFzc2VydGlvbkNvbW1hbmQsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIFtXaXRoaW5Bc3NlcnRpb25Db21tYW5kLm1ldGhvZE5hbWVdIChzdGFydDogbnVtYmVyLCBmaW5pc2g6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nLCBvcHRzOiBBc3NlcnRpb25PcHRpb25zKTogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgIC8vIE5PVEU6IGB3aXRoaW5gIGlzIG5vdCBhdmFpbGFibGUgaW4gQ2hhaSBgYXNzZXJ0YCBpbnRlcmZhY2UuXG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKFdpdGhpbkFzc2VydGlvbkNvbW1hbmQsIHsgZXhwZWN0ZWQ6IHN0YXJ0LCBleHBlY3RlZDI6IGZpbmlzaCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgW05vdFdpdGhpbkFzc2VydGlvbkNvbW1hbmQubWV0aG9kTmFtZV0gKHN0YXJ0OiBudW1iZXIsIGZpbmlzaDogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcsIG9wdHM6IEFzc2VydGlvbk9wdGlvbnMpOiAoKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VucXVldWVBc3NlcnRpb24oTm90V2l0aGluQXNzZXJ0aW9uQ29tbWFuZCwgeyBleHBlY3RlZDogc3RhcnQsIGV4cGVjdGVkMjogZmluaXNoLCBtZXNzYWdlLCBvcHRzIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBbTWF0Y2hBc3NlcnRpb25Db21tYW5kLm1ldGhvZE5hbWVdIChleHBlY3RlZDogdW5rbm93biwgbWVzc2FnZTogc3RyaW5nLCBvcHRzOiBBc3NlcnRpb25PcHRpb25zKTogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnF1ZXVlQXNzZXJ0aW9uKE1hdGNoQXNzZXJ0aW9uQ29tbWFuZCwgeyBleHBlY3RlZCwgbWVzc2FnZSwgb3B0cyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgW05vdE1hdGNoQXNzZXJ0aW9uQ29tbWFuZC5tZXRob2ROYW1lXSAoZXhwZWN0ZWQ6IHVua25vd24sIG1lc3NhZ2U6IHN0cmluZywgb3B0czogQXNzZXJ0aW9uT3B0aW9ucyk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5xdWV1ZUFzc2VydGlvbihOb3RNYXRjaEFzc2VydGlvbkNvbW1hbmQsIHsgZXhwZWN0ZWQsIG1lc3NhZ2UsIG9wdHMgfSk7XG4gICAgfVxufVxuIl19