testcafe 1.15.3-rc.1 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -0
- package/bin/testcafe-with-v8-flag-filter.js +9 -3
- package/lib/api/exportable-lib/index.js +5 -1
- package/lib/api/test-controller/execution-context.js +2 -1
- package/lib/api/user-variables/index.js +13 -0
- package/lib/browser/provider/built-in/dedicated/base.js +6 -1
- package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/client-function-executor.js +110 -0
- package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/index.js +15 -61
- package/lib/browser/provider/built-in/dedicated/chrome/index.js +2 -1
- package/lib/browser/provider/index.js +4 -1
- package/lib/cli/argument-parser.js +9 -4
- package/lib/cli/node-arguments-filter.js +49 -0
- package/lib/client/automation/index.js +4 -4
- package/lib/client/automation/index.min.js +1 -1
- package/lib/client/core/index.js +87 -49
- package/lib/client/core/index.min.js +1 -1
- package/lib/client/driver/index.js +684 -654
- package/lib/client/driver/index.min.js +1 -1
- package/lib/client/proxyless/index.js +1117 -324
- package/lib/client-functions/selectors/selector-builder.js +2 -2
- package/lib/client-functions/selectors/snapshot-properties.js +1 -1
- package/lib/compiler/test-file/api-based.js +21 -3
- package/lib/compiler/test-file/disable-v8-optimization-note.js +6 -0
- package/lib/compiler/test-file/formats/es-next/compiler.js +10 -1
- package/lib/compiler/test-file/formats/es-next/get-test-list.js +2 -1
- package/lib/compiler/test-file/formats/typescript/compiler.js +20 -2
- package/lib/compiler/test-file/formats/typescript/get-test-list.js +2 -1
- package/lib/compiler/test-file/test-file-parser-base.js +21 -6
- package/lib/configuration/configuration-base.js +68 -17
- package/lib/configuration/default-values.js +3 -2
- package/lib/configuration/formats.js +7 -0
- package/lib/configuration/option-names.js +3 -1
- package/lib/configuration/screenshot-option-names.js +2 -1
- package/lib/configuration/testcafe-configuration.js +14 -10
- package/lib/configuration/types.js +1 -1
- package/lib/configuration/typescript-configuration.js +4 -4
- package/lib/index.js +5 -1
- package/lib/live/test-runner.js +3 -4
- package/lib/notifications/warning-message.js +3 -2
- package/lib/runner/bootstrapper.js +7 -4
- package/lib/runner/fixture-hook-controller.js +20 -11
- package/lib/runner/index.js +8 -5
- package/lib/runner/task/index.js +3 -11
- package/lib/screenshots/capturer.js +8 -4
- package/lib/screenshots/index.js +4 -3
- package/lib/services/compiler/host.js +27 -5
- package/lib/services/compiler/interfaces.js +1 -1
- package/lib/services/compiler/protocol.js +1 -1
- package/lib/services/compiler/service.js +14 -1
- package/lib/services/serialization/prepare-options.js +2 -1
- package/lib/shared/errors/index.js +7 -6
- package/lib/test-run/browser-manipulation-queue.js +2 -1
- package/lib/test-run/commands/browser-manipulation.js +4 -3
- package/lib/test-run/index.js +17 -8
- package/lib/test-run/proxyless-commands-support.js +14 -0
- package/lib/testcafe.js +6 -2
- package/lib/utils/get-filter-fn.js +3 -1
- package/package.json +2 -1
- package/ts-defs/index.d.ts +19 -1
- package/ts-defs/selectors.d.ts +10 -0
- package/ts-defs/testcafe-scripts.d.ts +26 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,78 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v1.16.0 (2021-09-08)
|
|
4
|
+
|
|
5
|
+
### Enhancements
|
|
6
|
+
|
|
7
|
+
#### Support for JavaScript configuration files
|
|
8
|
+
|
|
9
|
+
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.
|
|
10
|
+
|
|
11
|
+
Just `export` the JSON name/value pairs in the file:
|
|
12
|
+
|
|
13
|
+
```js
|
|
14
|
+
module.exports = {
|
|
15
|
+
skipJsErrors: true,
|
|
16
|
+
hostname: "localhost",
|
|
17
|
+
// other settings
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
#### Support for custom user variables in the configuration file
|
|
22
|
+
|
|
23
|
+
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.
|
|
24
|
+
|
|
25
|
+
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.
|
|
26
|
+
|
|
27
|
+
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.
|
|
28
|
+
|
|
29
|
+
Define your custom variables with the `userVariables` JSON object:
|
|
30
|
+
|
|
31
|
+
```JSON
|
|
32
|
+
{
|
|
33
|
+
"userVariables": {
|
|
34
|
+
"url": "http://devexpress.github.io/testcafe/example",
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Reference this variable in your test:
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
import { userVariables } from 'testcafe';
|
|
43
|
+
|
|
44
|
+
fixture `Test user variables`
|
|
45
|
+
.page(userVariables.url);
|
|
46
|
+
|
|
47
|
+
test('Type text', async t => {
|
|
48
|
+
await t
|
|
49
|
+
.typeText('#developer-name', 'John Smith')
|
|
50
|
+
.click('#submit-button');
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### Other enhancements
|
|
55
|
+
|
|
56
|
+
* New option that disables thumbnail generation for test screenshots ([PR by @taki-fw](https://github.com/DevExpress/testcafe/pull/6078)).
|
|
57
|
+
* New `embedding-utils` API method that retrieves information about skipped tests ([PR by @flora8984461](https://github.com/DevExpress/testcafe/pull/6398)).
|
|
58
|
+
* The `Runner.filter` function supports asynchronous arguments ([PR by @eignatyev](https://github.com/DevExpress/testcafe/pull/6371)).
|
|
59
|
+
* You can import the `test` and `fixture` objects directly from the `testcafe` module ([PR #6338](https://github.com/DevExpress/testcafe/pull/6338)).
|
|
60
|
+
|
|
61
|
+
### Bug Fixes
|
|
62
|
+
|
|
63
|
+
* TestCafe does not keep track of file changes in live mode ([#6481](https://github.com/DevExpress/testcafe/issues/6481)).
|
|
64
|
+
|
|
65
|
+
## v1.15.3 (2021-08-19)
|
|
66
|
+
|
|
67
|
+
### Bug Fixes
|
|
68
|
+
|
|
69
|
+
* TestCafe throws an error if you use the 'all' alias in the command line to run tests in all installed browsers ([#6456](https://github.com/DevExpress/testcafe/issues/6456)).
|
|
70
|
+
* TestCafe does not check if the configuration file exists ([#6337](https://github.com/DevExpress/testcafe/issues/6337)).
|
|
71
|
+
* TestCafe cannot disable HTTP/2 to avoid compatibility issues ([testcafe-hammerhead/#2681](https://github.com/DevExpress/testcafe-hammerhead/pull/2681)).
|
|
72
|
+
* TestCafe works incorrectly if you use extended Function objects ([testcafe-hammerhead/#2439](https://github.com/DevExpress/testcafe-hammerhead/issues/2439)).
|
|
73
|
+
* TestCafe processes a test application incorrectly if it uses the Immutable.js library ([testcafe-hammerhead/#2669](https://github.com/DevExpress/testcafe-hammerhead/issues/2669)).
|
|
74
|
+
* TestCafe adds an element incorrectly into a nested body element ([PR testcafe-hammerhead/#2682](https://github.com/DevExpress/testcafe-hammerhead/pull/2682)).
|
|
75
|
+
|
|
3
76
|
## v1.15.2 (2021-08-11)
|
|
4
77
|
|
|
5
78
|
### Bug Fixes
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const v8FlagsFilter = require('bin-v8-flags-filter');
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
const EXPERIMENTAL_DEBUG_OPTION = '--experimental-debug';
|
|
9
|
+
|
|
10
|
+
if (process.argv.slice(2).includes(EXPERIMENTAL_DEBUG_OPTION))
|
|
11
|
+
require('../lib/cli');
|
|
12
|
+
|
|
13
|
+
else
|
|
14
|
+
v8FlagsFilter(path.join(__dirname, '../lib/cli'), { useShutdownMessage: true });
|
|
@@ -6,6 +6,7 @@ const SelectorBuilder = lazyRequire('../../client-functions/selectors/selector-b
|
|
|
6
6
|
const role = lazyRequire('../../role');
|
|
7
7
|
const createRequestLogger = lazyRequire('../request-hooks/request-logger');
|
|
8
8
|
const createRequestMock = lazyRequire('../request-hooks/request-mock/create-request-mock');
|
|
9
|
+
const userVariables = lazyRequire('../user-variables');
|
|
9
10
|
// NOTE: We can't use lazy require for RequestHook, because it will break base class detection for inherited classes
|
|
10
11
|
let RequestHook = null;
|
|
11
12
|
// NOTE: We can't use lazy require for testControllerProxy, because it will break test controller detection
|
|
@@ -46,6 +47,9 @@ exports.default = {
|
|
|
46
47
|
testControllerProxy = require('../test-controller/proxy');
|
|
47
48
|
return testControllerProxy;
|
|
48
49
|
},
|
|
50
|
+
get userVariables() {
|
|
51
|
+
return userVariables.value;
|
|
52
|
+
},
|
|
49
53
|
};
|
|
50
54
|
module.exports = exports.default;
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2V4cG9ydGFibGUtbGliL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTSxXQUFXLEdBQWEsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzlELE1BQU0scUJBQXFCLEdBQUcsV0FBVyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7QUFDNUYsTUFBTSxlQUFlLEdBQVMsV0FBVyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFDL0YsTUFBTSxJQUFJLEdBQW9CLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4RCxNQUFNLG1CQUFtQixHQUFLLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQzdFLE1BQU0saUJBQWlCLEdBQU8sV0FBVyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFDL0YsTUFBTSxhQUFhLEdBQVcsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFFL0Qsb0hBQW9IO0FBQ3BILElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztBQUV2QiwyR0FBMkc7QUFDM0csSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFFL0IsU0FBUyxJQUFJLENBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPO0lBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxTQUFTLFdBQVc7SUFDaEIsT0FBTyxpQkFBaUIsRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBRSxxQkFBcUIsRUFBRSxVQUFVO0lBQ3JELE9BQU8sbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFFLEVBQUUsRUFBRSxPQUFPO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQXFCLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFNUYsT0FBTyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFFLEVBQUUsRUFBRSxPQUFPO0lBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUVoRixPQUFPLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0lBQ3JDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO0NBQ3RDLENBQUMsQ0FBQztBQUVILGtCQUFlO0lBQ1gsSUFBSTtJQUVKLGNBQWM7SUFFZCxRQUFRO0lBRVIsYUFBYTtJQUViLFdBQVc7SUFFWCxJQUFJLFdBQVc7UUFDWCxJQUFJLENBQUMsV0FBVztZQUNaLFdBQVcsR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUVuRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQjtZQUNwQixtQkFBbUIsR0FBRyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUU5RCxPQUFPLG1CQUFtQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsYXp5UmVxdWlyZSAgICAgICAgICAgPSByZXF1aXJlKCdpbXBvcnQtbGF6eScpKHJlcXVpcmUpO1xuY29uc3QgQ2xpZW50RnVuY3Rpb25CdWlsZGVyID0gbGF6eVJlcXVpcmUoJy4uLy4uL2NsaWVudC1mdW5jdGlvbnMvY2xpZW50LWZ1bmN0aW9uLWJ1aWxkZXInKTtcbmNvbnN0IFNlbGVjdG9yQnVpbGRlciAgICAgICA9IGxhenlSZXF1aXJlKCcuLi8uLi9jbGllbnQtZnVuY3Rpb25zL3NlbGVjdG9ycy9zZWxlY3Rvci1idWlsZGVyJyk7XG5jb25zdCByb2xlICAgICAgICAgICAgICAgICAgPSBsYXp5UmVxdWlyZSgnLi4vLi4vcm9sZScpO1xuY29uc3QgY3JlYXRlUmVxdWVzdExvZ2dlciAgID0gbGF6eVJlcXVpcmUoJy4uL3JlcXVlc3QtaG9va3MvcmVxdWVzdC1sb2dnZXInKTtcbmNvbnN0IGNyZWF0ZVJlcXVlc3RNb2NrICAgICA9IGxhenlSZXF1aXJlKCcuLi9yZXF1ZXN0LWhvb2tzL3JlcXVlc3QtbW9jay9jcmVhdGUtcmVxdWVzdC1tb2NrJyk7XG5jb25zdCB1c2VyVmFyaWFibGVzICAgICAgICAgPSBsYXp5UmVxdWlyZSgnLi4vdXNlci12YXJpYWJsZXMnKTtcblxuLy8gTk9URTogV2UgY2FuJ3QgdXNlIGxhenkgcmVxdWlyZSBmb3IgUmVxdWVzdEhvb2ssIGJlY2F1c2UgaXQgd2lsbCBicmVhayBiYXNlIGNsYXNzIGRldGVjdGlvbiBmb3IgaW5oZXJpdGVkIGNsYXNzZXNcbmxldCBSZXF1ZXN0SG9vayA9IG51bGw7XG5cbi8vIE5PVEU6IFdlIGNhbid0IHVzZSBsYXp5IHJlcXVpcmUgZm9yIHRlc3RDb250cm9sbGVyUHJveHksIGJlY2F1c2UgaXQgd2lsbCBicmVhayB0ZXN0IGNvbnRyb2xsZXIgZGV0ZWN0aW9uXG5sZXQgdGVzdENvbnRyb2xsZXJQcm94eSA9IG51bGw7XG5cbmZ1bmN0aW9uIFJvbGUgKGxvZ2luVXJsLCBpbml0Rm4sIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gcm9sZS5jcmVhdGVSb2xlKGxvZ2luVXJsLCBpbml0Rm4sIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBSZXF1ZXN0TW9jayAoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVJlcXVlc3RNb2NrKCk7XG59XG5cbmZ1bmN0aW9uIFJlcXVlc3RMb2dnZXIgKHJlcXVlc3RGaWx0ZXJSdWxlSW5pdCwgbG9nT3B0aW9ucykge1xuICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0TG9nZ2VyKHJlcXVlc3RGaWx0ZXJSdWxlSW5pdCwgbG9nT3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIENsaWVudEZ1bmN0aW9uIChmbiwgb3B0aW9ucykge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQ2xpZW50RnVuY3Rpb25CdWlsZGVyKGZuLCBvcHRpb25zLCB7IGluc3RhbnRpYXRpb246ICdDbGllbnRGdW5jdGlvbicgfSk7XG5cbiAgICByZXR1cm4gYnVpbGRlci5nZXRGdW5jdGlvbigpO1xufVxuXG5mdW5jdGlvbiBTZWxlY3RvciAoZm4sIG9wdGlvbnMpIHtcbiAgICBjb25zdCBidWlsZGVyID0gbmV3IFNlbGVjdG9yQnVpbGRlcihmbiwgb3B0aW9ucywgeyBpbnN0YW50aWF0aW9uOiAnU2VsZWN0b3InIH0pO1xuXG4gICAgcmV0dXJuIGJ1aWxkZXIuZ2V0RnVuY3Rpb24oKTtcbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFJvbGUsICdhbm9ueW1vdXMnLCB7XG4gICAgZ2V0OiAoKSA9PiByb2xlLmNyZWF0ZUFub255bW91c1JvbGUsXG59KTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIFJvbGUsXG5cbiAgICBDbGllbnRGdW5jdGlvbixcblxuICAgIFNlbGVjdG9yLFxuXG4gICAgUmVxdWVzdExvZ2dlcixcblxuICAgIFJlcXVlc3RNb2NrLFxuXG4gICAgZ2V0IFJlcXVlc3RIb29rICgpIHtcbiAgICAgICAgaWYgKCFSZXF1ZXN0SG9vaylcbiAgICAgICAgICAgIFJlcXVlc3RIb29rID0gcmVxdWlyZSgnLi4vcmVxdWVzdC1ob29rcy9ob29rJyk7XG5cbiAgICAgICAgcmV0dXJuIFJlcXVlc3RIb29rO1xuICAgIH0sXG5cbiAgICBnZXQgdCAoKSB7XG4gICAgICAgIGlmICghdGVzdENvbnRyb2xsZXJQcm94eSlcbiAgICAgICAgICAgIHRlc3RDb250cm9sbGVyUHJveHkgPSByZXF1aXJlKCcuLi90ZXN0LWNvbnRyb2xsZXIvcHJveHknKTtcblxuICAgICAgICByZXR1cm4gdGVzdENvbnRyb2xsZXJQcm94eTtcbiAgICB9LFxuXG4gICAgZ2V0IHVzZXJWYXJpYWJsZXMgKCkge1xuICAgICAgICByZXR1cm4gdXNlclZhcmlhYmxlcy52YWx1ZTtcbiAgICB9LFxufTtcbiJdfQ==
|
|
@@ -73,6 +73,7 @@ function createExecutionContext(testRun) {
|
|
|
73
73
|
RequestMock: exportable_lib_1.default.RequestMock,
|
|
74
74
|
RequestHook: exportable_lib_1.default.RequestHook,
|
|
75
75
|
[OPTIONS_KEY]: exports.DEFAULT_CONTEXT_OPTIONS,
|
|
76
|
+
userVariables: exportable_lib_1.default.userVariables,
|
|
76
77
|
};
|
|
77
78
|
return vm_1.createContext(new Proxy(replacers, {
|
|
78
79
|
get: (target, property) => {
|
|
@@ -85,4 +86,4 @@ function createExecutionContext(testRun) {
|
|
|
85
86
|
}));
|
|
86
87
|
}
|
|
87
88
|
exports.createExecutionContext = createExecutionContext;
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3Rlc3QtY29udHJvbGxlci9leGVjdXRpb24tY29udGV4dC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQkFBbUM7QUFDbkMsb0RBQTRCO0FBQzVCLGdEQUF3QjtBQUN4Qix1RUFBOEM7QUFDOUMscUdBQWlFO0FBRWpFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUV6QixRQUFBLHVCQUF1QixHQUFHO0lBQ25DLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsY0FBYyxFQUFPLEtBQUs7Q0FDN0IsQ0FBQztBQUVGLFNBQVMsa0JBQWtCLENBQUUsV0FBVztJQUNwQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDckIsSUFBSSxTQUFTLEdBQUssY0FBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1QyxPQUFPLFdBQVcsS0FBSyxTQUFTLEVBQUU7UUFDOUIsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUN4QixTQUFTLEdBQUssY0FBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4QyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGtDQUFZLENBQUMsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFFLFFBQVE7SUFDNUIsZ0NBQWdDO0lBQ2hDLElBQUksZ0JBQU0sQ0FBQyxxQkFBcUI7UUFDNUIsT0FBTyxnQkFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWxELElBQUksZ0JBQU0sQ0FBQyxhQUFhO1FBQ3BCLE9BQU8sZ0JBQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFMUMsTUFBTSxXQUFXLEdBQVksSUFBSSxnQkFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxNQUFNLGlCQUFpQixHQUFNLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTFELFdBQVcsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQ2hDLFdBQVcsQ0FBQyxLQUFLLEdBQU0saUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBRSxPQUFPO0lBQ3RDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFO1FBQ3hCLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdEcsSUFBSSxtQkFBbUI7WUFDbkIsT0FBTyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLEVBQUU7WUFDckIsT0FBTyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7UUFFbkMsSUFBSSxjQUFjO1lBQ2QsT0FBTyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFFNUMsT0FBTyx3QkFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELFNBQVMsOEJBQThCLENBQUUsT0FBTztJQUM1QyxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUN4QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRTtZQUNyQixPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUVuQyxPQUFPLHdCQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUUsT0FBTyxFQUFFLE9BQU87SUFDL0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztBQUNuQyxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FBRSxPQUFPO0lBQzNDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUVoRCxNQUFNLFNBQVMsR0FBRztRQUNkLE9BQU8sRUFBUyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLFVBQVUsRUFBTSxRQUFRO1FBQ3hCLFNBQVMsRUFBTyxjQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUN0QyxDQUFDLEVBQWUsT0FBTyxDQUFDLFVBQVU7UUFDbEMsUUFBUSxFQUFRLHdCQUF3QixDQUFDLE9BQU8sQ0FBQztRQUNqRCxjQUFjLEVBQUUsOEJBQThCLENBQUMsT0FBTyxDQUFDO1FBQ3ZELElBQUksRUFBWSx3QkFBYSxDQUFDLElBQUk7UUFDbEMsYUFBYSxFQUFHLHdCQUFhLENBQUMsYUFBYTtRQUMzQyxXQUFXLEVBQUssd0JBQWEsQ0FBQyxXQUFXO1FBQ3pDLFdBQVcsRUFBSyx3QkFBYSxDQUFDLFdBQVc7UUFDekMsQ0FBQyxXQUFXLENBQUMsRUFBRywrQkFBdUI7UUFDdkMsYUFBYSxFQUFHLHdCQUFhLENBQUMsYUFBYTtLQUM5QyxDQUFDO0lBRUYsT0FBTyxrQkFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtRQUN0QyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztnQkFDbEMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFL0IsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztnQkFDL0IsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztRQUNsRCxDQUFDO0tBQ0osQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDO0FBN0JELHdEQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tICd2bSc7XG5pbXBvcnQgTW9kdWxlIGZyb20gJ21vZHVsZSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBleHBvcnRhYmxlTGliIGZyb20gJy4uL2V4cG9ydGFibGUtbGliJztcbmltcG9ydCBOT0RFX01PRFVMRVMgZnJvbSAnLi4vLi4vc2hhcmVkL25vZGUtbW9kdWxlcy1mb2xkZXItbmFtZSc7XG5cbmNvbnN0IE9QVElPTlNfS0VZID0gU3ltYm9sKCdvcHRpb25zJyk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTlRFWFRfT1BUSU9OUyA9IHtcbiAgICBza2lwVmlzaWJpbGl0eUNoZWNrOiBmYWxzZSxcbiAgICBjb2xsZWN0aW9uTW9kZTogICAgICBmYWxzZSxcbn07XG5cbmZ1bmN0aW9uIGdldE1vZHVsZUJhc2VQYXRocyAoY3VycmVudFBhdGgpIHtcbiAgICBjb25zdCBub2RlUGF0aHMgPSBbXTtcbiAgICBsZXQgcGFyZW50RGlyICAgPSBwYXRoLmRpcm5hbWUoY3VycmVudFBhdGgpO1xuXG4gICAgd2hpbGUgKGN1cnJlbnRQYXRoICE9PSBwYXJlbnREaXIpIHtcbiAgICAgICAgY3VycmVudFBhdGggPSBwYXJlbnREaXI7XG4gICAgICAgIHBhcmVudERpciAgID0gcGF0aC5kaXJuYW1lKGN1cnJlbnRQYXRoKTtcblxuICAgICAgICBub2RlUGF0aHMucHVzaChwYXRoLmpvaW4oY3VycmVudFBhdGgsIE5PREVfTU9EVUxFUykpO1xuICAgIH1cblxuICAgIHJldHVybiBub2RlUGF0aHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJlcXVpcmUgKGZpbGVuYW1lKSB7XG4gICAgLy9EZXByZWNhdGVkIHNpbmNlOiBOb2RlIHYxMi4yLjBcbiAgICBpZiAoTW9kdWxlLmNyZWF0ZVJlcXVpcmVGcm9tUGF0aClcbiAgICAgICAgcmV0dXJuIE1vZHVsZS5jcmVhdGVSZXF1aXJlRnJvbVBhdGgoZmlsZW5hbWUpO1xuXG4gICAgaWYgKE1vZHVsZS5jcmVhdGVSZXF1aXJlKVxuICAgICAgICByZXR1cm4gTW9kdWxlLmNyZWF0ZVJlcXVpcmUoZmlsZW5hbWUpO1xuXG4gICAgY29uc3QgZHVtbXlNb2R1bGUgICAgICAgICAgPSBuZXcgTW9kdWxlKGZpbGVuYW1lLCBtb2R1bGUpO1xuICAgIGNvbnN0IGxvY2FsTW9kdWxlc1BhdGhzICAgID0gZ2V0TW9kdWxlQmFzZVBhdGhzKGZpbGVuYW1lKTtcblxuICAgIGR1bW15TW9kdWxlLmZpbGVuYW1lID0gZmlsZW5hbWU7XG4gICAgZHVtbXlNb2R1bGUucGF0aHMgICAgPSBsb2NhbE1vZHVsZXNQYXRocy5jb25jYXQobW9kdWxlLnBhdGhzKTtcblxuICAgIHJldHVybiBpZCA9PiBkdW1teU1vZHVsZS5yZXF1aXJlKGlkKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3JEZWZpbml0aW9uICh0ZXN0UnVuKSB7XG4gICAgcmV0dXJuIChmbiwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2tpcFZpc2liaWxpdHlDaGVjaywgY29sbGVjdGlvbk1vZGUgfSA9IHRlc3RSdW4uY29udHJvbGxlci5nZXRFeGVjdXRpb25Db250ZXh0KClbT1BUSU9OU19LRVldO1xuXG4gICAgICAgIGlmIChza2lwVmlzaWJpbGl0eUNoZWNrKVxuICAgICAgICAgICAgb3B0aW9ucy52aXNpYmlsaXR5Q2hlY2sgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGVzdFJ1biAmJiB0ZXN0UnVuLmlkKVxuICAgICAgICAgICAgb3B0aW9ucy5ib3VuZFRlc3RSdW4gPSB0ZXN0UnVuO1xuXG4gICAgICAgIGlmIChjb2xsZWN0aW9uTW9kZSlcbiAgICAgICAgICAgIG9wdGlvbnMuY29sbGVjdGlvbk1vZGUgPSBjb2xsZWN0aW9uTW9kZTtcblxuICAgICAgICByZXR1cm4gZXhwb3J0YWJsZUxpYi5TZWxlY3Rvcihmbiwgb3B0aW9ucyk7XG4gICAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2xpZW50RnVuY3Rpb25EZWZpbml0aW9uICh0ZXN0UnVuKSB7XG4gICAgcmV0dXJuIChmbiwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIGlmICh0ZXN0UnVuICYmIHRlc3RSdW4uaWQpXG4gICAgICAgICAgICBvcHRpb25zLmJvdW5kVGVzdFJ1biA9IHRlc3RSdW47XG5cbiAgICAgICAgcmV0dXJuIGV4cG9ydGFibGVMaWIuQ2xpZW50RnVuY3Rpb24oZm4sIG9wdGlvbnMpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDb250ZXh0T3B0aW9ucyAoY29udGV4dCwgb3B0aW9ucykge1xuICAgIGNvbnRleHRbT1BUSU9OU19LRVldID0gb3B0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4ZWN1dGlvbkNvbnRleHQgKHRlc3RSdW4pIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IHRlc3RSdW4udGVzdC50ZXN0RmlsZS5maWxlbmFtZTtcblxuICAgIGNvbnN0IHJlcGxhY2VycyA9IHtcbiAgICAgICAgcmVxdWlyZTogICAgICAgIGNyZWF0ZVJlcXVpcmUoZmlsZW5hbWUpLFxuICAgICAgICBfX2ZpbGVuYW1lOiAgICAgZmlsZW5hbWUsXG4gICAgICAgIF9fZGlybmFtZTogICAgICBwYXRoLmRpcm5hbWUoZmlsZW5hbWUpLFxuICAgICAgICB0OiAgICAgICAgICAgICAgdGVzdFJ1bi5jb250cm9sbGVyLFxuICAgICAgICBTZWxlY3RvcjogICAgICAgY3JlYXRlU2VsZWN0b3JEZWZpbml0aW9uKHRlc3RSdW4pLFxuICAgICAgICBDbGllbnRGdW5jdGlvbjogY3JlYXRlQ2xpZW50RnVuY3Rpb25EZWZpbml0aW9uKHRlc3RSdW4pLFxuICAgICAgICBSb2xlOiAgICAgICAgICAgZXhwb3J0YWJsZUxpYi5Sb2xlLFxuICAgICAgICBSZXF1ZXN0TG9nZ2VyOiAgZXhwb3J0YWJsZUxpYi5SZXF1ZXN0TG9nZ2VyLFxuICAgICAgICBSZXF1ZXN0TW9jazogICAgZXhwb3J0YWJsZUxpYi5SZXF1ZXN0TW9jayxcbiAgICAgICAgUmVxdWVzdEhvb2s6ICAgIGV4cG9ydGFibGVMaWIuUmVxdWVzdEhvb2ssXG4gICAgICAgIFtPUFRJT05TX0tFWV06ICBERUZBVUxUX0NPTlRFWFRfT1BUSU9OUyxcbiAgICAgICAgdXNlclZhcmlhYmxlczogIGV4cG9ydGFibGVMaWIudXNlclZhcmlhYmxlcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNyZWF0ZUNvbnRleHQobmV3IFByb3h5KHJlcGxhY2Vycywge1xuICAgICAgICBnZXQ6ICh0YXJnZXQsIHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVwbGFjZXJzLmhhc093blByb3BlcnR5KHByb3BlcnR5KSlcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVwbGFjZXJzW3Byb3BlcnR5XTtcblxuICAgICAgICAgICAgaWYgKGdsb2JhbC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGdsb2JhbFtwcm9wZXJ0eV07XG5cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtwcm9wZXJ0eX0gaXMgbm90IGRlZmluZWRgKTtcbiAgICAgICAgfSxcbiAgICB9KSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
_variables: null,
|
|
5
|
+
get value() {
|
|
6
|
+
return this._variables;
|
|
7
|
+
},
|
|
8
|
+
set value(value) {
|
|
9
|
+
this._variables = value;
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
module.exports = exports.default;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3VzZXItdmFyaWFibGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0JBQWU7SUFDWCxVQUFVLEVBQUUsSUFBbUI7SUFFL0IsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBRSxLQUFLO1FBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gICAgX3ZhcmlhYmxlczogbnVsbCBhcyBPcHRpb25WYWx1ZSxcblxuICAgIGdldCB2YWx1ZSAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YXJpYWJsZXM7XG4gICAgfSxcblxuICAgIHNldCB2YWx1ZSAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fdmFyaWFibGVzID0gdmFsdWU7XG4gICAgfSxcbn07XG4iXX0=
|
|
@@ -82,6 +82,11 @@ exports.default = {
|
|
|
82
82
|
const browserClient = this._getBrowserProtocolClient(runtimeInfo);
|
|
83
83
|
return browserClient.executeClientFunction(command, callsite);
|
|
84
84
|
},
|
|
85
|
+
async executeSelector({ browserId, command, callsite, selectorTimeout }) {
|
|
86
|
+
const runtimeInfo = this.openedBrowsers[browserId];
|
|
87
|
+
const browserClient = this._getBrowserProtocolClient(runtimeInfo);
|
|
88
|
+
return browserClient.executeSelector(command, callsite, selectorTimeout);
|
|
89
|
+
},
|
|
85
90
|
async switchToIframe(browserId) {
|
|
86
91
|
const runtimeInfo = this.openedBrowsers[browserId];
|
|
87
92
|
const browserClient = this._getBrowserProtocolClient(runtimeInfo);
|
|
@@ -94,4 +99,4 @@ exports.default = {
|
|
|
94
99
|
},
|
|
95
100
|
};
|
|
96
101
|
module.exports = exports.default;
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9icm93c2VyL3Byb3ZpZGVyL2J1aWx0LWluL2RlZGljYXRlZC9iYXNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUVBQXdEO0FBQ3hELHdIQUE0RjtBQUM1Rix1REFBOEQ7QUFDOUQsbUZBQTRFO0FBRTVFLGtCQUFlO0lBQ1gsY0FBYyxFQUFFLEVBQUU7SUFFbEIsY0FBYyxFQUFFLEtBQUs7SUFFckIsc0JBQXNCLEVBQUUsSUFBSTtJQUU1QixpQkFBaUIsQ0FBRSxTQUFTO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDekQsQ0FBQztJQUVELGlCQUFpQixDQUFFLFNBQVMsRUFBRSxHQUFHO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUN4RCxDQUFDO0lBRUQsWUFBWSxDQUFFLFNBQVM7UUFDbkIsTUFBTSxXQUFXLEdBQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RCxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUFDO1FBRTNFLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7SUFDcEUsQ0FBQztJQUVELG1CQUFtQixDQUFFLFNBQVM7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVuRCxPQUFPLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELG1CQUFtQixDQUFFLFNBQVMsRUFBRSxnQkFBZ0I7UUFDNUMs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QyxxQkFBcUIsQ0FBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVE7UUFDckQsTUFBTSxXQUFXLEdBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEUsT0FBTyxhQUFhLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFFLFNBQVM7UUFDM0IsTUFBTSxXQUFXLEdBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEUsT0FBTyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBRSxTQUFTO1FBQy9CLE1BQU0sV0FBVyxHQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxFLE9BQU8sYUFBYSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRCcm93c2VySW5mbyB9IGZyb20gJ3Rlc3RjYWZlLWJyb3dzZXItdG9vbHMnO1xuaW1wb3J0IGdldE1heGltaXplZEhlYWRsZXNzV2luZG93U2l6ZSBmcm9tICcuLi8uLi91dGlscy9nZXQtbWF4aW1pemVkLWhlYWRsZXNzLXdpbmRvdy1zaXplJztcbmltcG9ydCB7IGNyb3BTY3JlZW5zaG90IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2NyZWVuc2hvdHMvY3JvcCc7XG5pbXBvcnQgeyByZWFkUG5nLCB3cml0ZVBuZyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL3Byb21pc2lmaWVkLWZ1bmN0aW9ucyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBvcGVuZWRCcm93c2Vyczoge30sXG5cbiAgICBpc011bHRpQnJvd3NlcjogZmFsc2UsXG5cbiAgICBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzOiB0cnVlLFxuXG4gICAgZ2V0QWN0aXZlV2luZG93SWQgKGJyb3dzZXJJZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdLmFjdGl2ZVdpbmRvd0lkO1xuICAgIH0sXG5cbiAgICBzZXRBY3RpdmVXaW5kb3dJZCAoYnJvd3NlcklkLCB2YWwpIHtcbiAgICAgICAgdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdLmFjdGl2ZVdpbmRvd0lkID0gdmFsO1xuICAgIH0sXG5cbiAgICBnZXRQYWdlVGl0bGUgKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyAgICAgPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGlzSWRsZVBhZ2VTaG93biA9ICFPYmplY3Qua2V5cyhydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9ycykubGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiBpc0lkbGVQYWdlU2hvd24gPyBicm93c2VySWQgOiBydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZDtcbiAgICB9LFxuXG4gICAgZ2V0V2luZG93RGVzY3JpcHRvciAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIHJldHVybiBydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9yc1tydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZF07XG4gICAgfSxcblxuICAgIHNldFdpbmRvd0Rlc2NyaXB0b3IgKGJyb3dzZXJJZCwgd2luZG93RGVzY3JpcHRvcikge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9yc1tydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZF0gPSB3aW5kb3dEZXNjcmlwdG9yO1xuICAgIH0sXG5cbiAgICBnZXRDb25maWcgKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH0sXG5cbiAgICBfZ2V0QnJvd3NlclByb3RvY29sQ2xpZW50ICgvKiBydW50aW1lSW5mbyAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH0sXG5cbiAgICBfZ2V0QnJvd3Nlck5hbWUgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlck5hbWUucmVwbGFjZSgnOicsICcnKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgaXNWYWxpZEJyb3dzZXJOYW1lIChicm93c2VyTmFtZSkge1xuICAgICAgICBjb25zdCBjb25maWcgICAgICA9IGF3YWl0IHRoaXMuZ2V0Q29uZmlnKGJyb3dzZXJOYW1lKTtcbiAgICAgICAgY29uc3QgYnJvd3NlckluZm8gPSBhd2FpdCBnZXRCcm93c2VySW5mbyhjb25maWcucGF0aCB8fCB0aGlzLl9nZXRCcm93c2VyTmFtZSgpKTtcblxuICAgICAgICByZXR1cm4gISFicm93c2VySW5mbztcbiAgICB9LFxuXG4gICAgYXN5bmMgaXNMb2NhbEJyb3dzZXIgKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuXG4gICAgaXNIZWFkbGVzc0Jyb3dzZXIgKGJyb3dzZXJJZCwgYnJvd3Nlck5hbWUpIHtcbiAgICAgICAgaWYgKGJyb3dzZXJJZClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF0uY29uZmlnLmhlYWRsZXNzO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0Q29uZmlnKGJyb3dzZXJOYW1lKTtcblxuICAgICAgICByZXR1cm4gISFjb25maWcuaGVhZGxlc3M7XG4gICAgfSxcblxuICAgIF9nZXRDcm9wRGltZW5zaW9ucyAodmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQpIHtcbiAgICAgICAgaWYgKCF2aWV3cG9ydFdpZHRoIHx8ICF2aWV3cG9ydEhlaWdodClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWZ0OiAgIDAsXG4gICAgICAgICAgICB0b3A6ICAgIDAsXG4gICAgICAgICAgICByaWdodDogIHZpZXdwb3J0V2lkdGgsXG4gICAgICAgICAgICBib3R0b206IHZpZXdwb3J0SGVpZ2h0LFxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyB0YWtlU2NyZWVuc2hvdCAoYnJvd3NlcklkLCBwYXRoLCB2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCwgZnVsbFBhZ2UpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gICAgPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGJyb3dzZXJDbGllbnQgID0gdGhpcy5fZ2V0QnJvd3NlclByb3RvY29sQ2xpZW50KHJ1bnRpbWVJbmZvKTtcbiAgICAgICAgY29uc3QgYmluYXJ5SW1hZ2UgICAgPSBhd2FpdCBicm93c2VyQ2xpZW50LmdldFNjcmVlbnNob3REYXRhKGZ1bGxQYWdlKTtcbiAgICAgICAgY29uc3QgY3JvcERpbWVuc2lvbnMgPSB0aGlzLl9nZXRDcm9wRGltZW5zaW9ucyh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCk7XG5cbiAgICAgICAgbGV0IHBuZ0ltYWdlID0gYXdhaXQgcmVhZFBuZyhiaW5hcnlJbWFnZSk7XG5cbiAgICAgICAgaWYgKCFmdWxsUGFnZSlcbiAgICAgICAgICAgIHBuZ0ltYWdlID0gYXdhaXQgY3JvcFNjcmVlbnNob3QocG5nSW1hZ2UsIHsgcGF0aCwgY3JvcERpbWVuc2lvbnMgfSkgfHwgcG5nSW1hZ2U7XG5cbiAgICAgICAgYXdhaXQgd3JpdGVQbmcocGF0aCwgcG5nSW1hZ2UpO1xuICAgIH0sXG5cbiAgICBhc3luYyBtYXhpbWl6ZVdpbmRvdyAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IG1heGltdW1TaXplID0gZ2V0TWF4aW1pemVkSGVhZGxlc3NXaW5kb3dTaXplKCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5yZXNpemVXaW5kb3coYnJvd3NlcklkLCBtYXhpbXVtU2l6ZS53aWR0aCwgbWF4aW11bVNpemUuaGVpZ2h0LCBtYXhpbXVtU2l6ZS53aWR0aCwgbWF4aW11bVNpemUuaGVpZ2h0KTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZXhlY3V0ZUNsaWVudEZ1bmN0aW9uIChicm93c2VySWQsIGNvbW1hbmQsIGNhbGxzaXRlKSB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvICAgPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGJyb3dzZXJDbGllbnQgPSB0aGlzLl9nZXRCcm93c2VyUHJvdG9jb2xDbGllbnQocnVudGltZUluZm8pO1xuXG4gICAgICAgIHJldHVybiBicm93c2VyQ2xpZW50LmV4ZWN1dGVDbGllbnRGdW5jdGlvbihjb21tYW5kLCBjYWxsc2l0ZSk7XG4gICAgfSxcblxuICAgIGFzeW5jIHN3aXRjaFRvSWZyYW1lIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gICA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcbiAgICAgICAgY29uc3QgYnJvd3NlckNsaWVudCA9IHRoaXMuX2dldEJyb3dzZXJQcm90b2NvbENsaWVudChydW50aW1lSW5mbyk7XG5cbiAgICAgICAgcmV0dXJuIGJyb3dzZXJDbGllbnQuc3dpdGNoVG9JZnJhbWUoKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgc3dpdGNoVG9NYWluV2luZG93IChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gICA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcbiAgICAgICAgY29uc3QgYnJvd3NlckNsaWVudCA9IHRoaXMuX2dldEJyb3dzZXJQcm90b2NvbENsaWVudChydW50aW1lSW5mbyk7XG5cbiAgICAgICAgcmV0dXJuIGJyb3dzZXJDbGllbnQuc3dpdGNoVG9NYWluV2luZG93KCk7XG4gICAgfSxcbn07XG4iXX0=
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9icm93c2VyL3Byb3ZpZGVyL2J1aWx0LWluL2RlZGljYXRlZC9iYXNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUVBQXdEO0FBQ3hELHdIQUE0RjtBQUM1Rix1REFBOEQ7QUFDOUQsbUZBQTRFO0FBRTVFLGtCQUFlO0lBQ1gsY0FBYyxFQUFFLEVBQUU7SUFFbEIsY0FBYyxFQUFFLEtBQUs7SUFFckIsc0JBQXNCLEVBQUUsSUFBSTtJQUU1QixpQkFBaUIsQ0FBRSxTQUFTO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDekQsQ0FBQztJQUVELGlCQUFpQixDQUFFLFNBQVMsRUFBRSxHQUFHO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUN4RCxDQUFDO0lBRUQsWUFBWSxDQUFFLFNBQVM7UUFDbkIsTUFBTSxXQUFXLEdBQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2RCxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUFDO1FBRTNFLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7SUFDcEUsQ0FBQztJQUVELG1CQUFtQixDQUFFLFNBQVM7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVuRCxPQUFPLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELG1CQUFtQixDQUFFLFNBQVMsRUFBRSxnQkFBZ0I7UUFDNUMs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bXBvcnQgeyBnZXRCcm93c2VySW5mbyB9IGZyb20gJ3Rlc3RjYWZlLWJyb3dzZXItdG9vbHMnO1xuaW1wb3J0IGdldE1heGltaXplZEhlYWRsZXNzV2luZG93U2l6ZSBmcm9tICcuLi8uLi91dGlscy9nZXQtbWF4aW1pemVkLWhlYWRsZXNzLXdpbmRvdy1zaXplJztcbmltcG9ydCB7IGNyb3BTY3JlZW5zaG90IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2NyZWVuc2hvdHMvY3JvcCc7XG5pbXBvcnQgeyByZWFkUG5nLCB3cml0ZVBuZyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzL3Byb21pc2lmaWVkLWZ1bmN0aW9ucyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBvcGVuZWRCcm93c2Vyczoge30sXG5cbiAgICBpc011bHRpQnJvd3NlcjogZmFsc2UsXG5cbiAgICBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzOiB0cnVlLFxuXG4gICAgZ2V0QWN0aXZlV2luZG93SWQgKGJyb3dzZXJJZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdLmFjdGl2ZVdpbmRvd0lkO1xuICAgIH0sXG5cbiAgICBzZXRBY3RpdmVXaW5kb3dJZCAoYnJvd3NlcklkLCB2YWwpIHtcbiAgICAgICAgdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdLmFjdGl2ZVdpbmRvd0lkID0gdmFsO1xuICAgIH0sXG5cbiAgICBnZXRQYWdlVGl0bGUgKGJyb3dzZXJJZCkge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyAgICAgPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGlzSWRsZVBhZ2VTaG93biA9ICFPYmplY3Qua2V5cyhydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9ycykubGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiBpc0lkbGVQYWdlU2hvd24gPyBicm93c2VySWQgOiBydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZDtcbiAgICB9LFxuXG4gICAgZ2V0V2luZG93RGVzY3JpcHRvciAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuXG4gICAgICAgIHJldHVybiBydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9yc1tydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZF07XG4gICAgfSxcblxuICAgIHNldFdpbmRvd0Rlc2NyaXB0b3IgKGJyb3dzZXJJZCwgd2luZG93RGVzY3JpcHRvcikge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcblxuICAgICAgICBydW50aW1lSW5mby53aW5kb3dEZXNjcmlwdG9yc1tydW50aW1lSW5mby5hY3RpdmVXaW5kb3dJZF0gPSB3aW5kb3dEZXNjcmlwdG9yO1xuICAgIH0sXG5cbiAgICBnZXRDb25maWcgKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH0sXG5cbiAgICBfZ2V0QnJvd3NlclByb3RvY29sQ2xpZW50ICgvKiBydW50aW1lSW5mbyAqLykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICAgIH0sXG5cbiAgICBfZ2V0QnJvd3Nlck5hbWUgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlck5hbWUucmVwbGFjZSgnOicsICcnKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgaXNWYWxpZEJyb3dzZXJOYW1lIChicm93c2VyTmFtZSkge1xuICAgICAgICBjb25zdCBjb25maWcgICAgICA9IGF3YWl0IHRoaXMuZ2V0Q29uZmlnKGJyb3dzZXJOYW1lKTtcbiAgICAgICAgY29uc3QgYnJvd3NlckluZm8gPSBhd2FpdCBnZXRCcm93c2VySW5mbyhjb25maWcucGF0aCB8fCB0aGlzLl9nZXRCcm93c2VyTmFtZSgpKTtcblxuICAgICAgICByZXR1cm4gISFicm93c2VySW5mbztcbiAgICB9LFxuXG4gICAgYXN5bmMgaXNMb2NhbEJyb3dzZXIgKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuXG4gICAgaXNIZWFkbGVzc0Jyb3dzZXIgKGJyb3dzZXJJZCwgYnJvd3Nlck5hbWUpIHtcbiAgICAgICAgaWYgKGJyb3dzZXJJZClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF0uY29uZmlnLmhlYWRsZXNzO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0Q29uZmlnKGJyb3dzZXJOYW1lKTtcblxuICAgICAgICByZXR1cm4gISFjb25maWcuaGVhZGxlc3M7XG4gICAgfSxcblxuICAgIF9nZXRDcm9wRGltZW5zaW9ucyAodmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQpIHtcbiAgICAgICAgaWYgKCF2aWV3cG9ydFdpZHRoIHx8ICF2aWV3cG9ydEhlaWdodClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsZWZ0OiAgIDAsXG4gICAgICAgICAgICB0b3A6ICAgIDAsXG4gICAgICAgICAgICByaWdodDogIHZpZXdwb3J0V2lkdGgsXG4gICAgICAgICAgICBib3R0b206IHZpZXdwb3J0SGVpZ2h0LFxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyB0YWtlU2NyZWVuc2hvdCAoYnJvd3NlcklkLCBwYXRoLCB2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCwgZnVsbFBhZ2UpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gICAgPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGJyb3dzZXJDbGllbnQgID0gdGhpcy5fZ2V0QnJvd3NlclByb3RvY29sQ2xpZW50KHJ1bnRpbWVJbmZvKTtcbiAgICAgICAgY29uc3QgYmluYXJ5SW1hZ2UgICAgPSBhd2FpdCBicm93c2VyQ2xpZW50LmdldFNjcmVlbnNob3REYXRhKGZ1bGxQYWdlKTtcbiAgICAgICAgY29uc3QgY3JvcERpbWVuc2lvbnMgPSB0aGlzLl9nZXRDcm9wRGltZW5zaW9ucyh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCk7XG5cbiAgICAgICAgbGV0IHBuZ0ltYWdlID0gYXdhaXQgcmVhZFBuZyhiaW5hcnlJbWFnZSk7XG5cbiAgICAgICAgaWYgKCFmdWxsUGFnZSlcbiAgICAgICAgICAgIHBuZ0ltYWdlID0gYXdhaXQgY3JvcFNjcmVlbnNob3QocG5nSW1hZ2UsIHsgcGF0aCwgY3JvcERpbWVuc2lvbnMgfSkgfHwgcG5nSW1hZ2U7XG5cbiAgICAgICAgYXdhaXQgd3JpdGVQbmcocGF0aCwgcG5nSW1hZ2UpO1xuICAgIH0sXG5cbiAgICBhc3luYyBtYXhpbWl6ZVdpbmRvdyAoYnJvd3NlcklkKSB7XG4gICAgICAgIGNvbnN0IG1heGltdW1TaXplID0gZ2V0TWF4aW1pemVkSGVhZGxlc3NXaW5kb3dTaXplKCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5yZXNpemVXaW5kb3coYnJvd3NlcklkLCBtYXhpbXVtU2l6ZS53aWR0aCwgbWF4aW11bVNpemUuaGVpZ2h0LCBtYXhpbXVtU2l6ZS53aWR0aCwgbWF4aW11bVNpemUuaGVpZ2h0KTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZXhlY3V0ZUNsaWVudEZ1bmN0aW9uIChicm93c2VySWQsIGNvbW1hbmQsIGNhbGxzaXRlKSB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVJbmZvICAgPSB0aGlzLm9wZW5lZEJyb3dzZXJzW2Jyb3dzZXJJZF07XG4gICAgICAgIGNvbnN0IGJyb3dzZXJDbGllbnQgPSB0aGlzLl9nZXRCcm93c2VyUHJvdG9jb2xDbGllbnQocnVudGltZUluZm8pO1xuXG4gICAgICAgIHJldHVybiBicm93c2VyQ2xpZW50LmV4ZWN1dGVDbGllbnRGdW5jdGlvbihjb21tYW5kLCBjYWxsc2l0ZSk7XG4gICAgfSxcblxuICAgIGFzeW5jIGV4ZWN1dGVTZWxlY3RvciAoeyBicm93c2VySWQsIGNvbW1hbmQsIGNhbGxzaXRlLCBzZWxlY3RvclRpbWVvdXQgfSkge1xuICAgICAgICBjb25zdCBydW50aW1lSW5mbyAgID0gdGhpcy5vcGVuZWRCcm93c2Vyc1ticm93c2VySWRdO1xuICAgICAgICBjb25zdCBicm93c2VyQ2xpZW50ID0gdGhpcy5fZ2V0QnJvd3NlclByb3RvY29sQ2xpZW50KHJ1bnRpbWVJbmZvKTtcblxuICAgICAgICByZXR1cm4gYnJvd3NlckNsaWVudC5leGVjdXRlU2VsZWN0b3IoY29tbWFuZCwgY2FsbHNpdGUsIHNlbGVjdG9yVGltZW91dCk7XG4gICAgfSxcblxuICAgIGFzeW5jIHN3aXRjaFRvSWZyYW1lIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gICA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcbiAgICAgICAgY29uc3QgYnJvd3NlckNsaWVudCA9IHRoaXMuX2dldEJyb3dzZXJQcm90b2NvbENsaWVudChydW50aW1lSW5mbyk7XG5cbiAgICAgICAgcmV0dXJuIGJyb3dzZXJDbGllbnQuc3dpdGNoVG9JZnJhbWUoKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgc3dpdGNoVG9NYWluV2luZG93IChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgcnVudGltZUluZm8gICA9IHRoaXMub3BlbmVkQnJvd3NlcnNbYnJvd3NlcklkXTtcbiAgICAgICAgY29uc3QgYnJvd3NlckNsaWVudCA9IHRoaXMuX2dldEJyb3dzZXJQcm90b2NvbENsaWVudChydW50aW1lSW5mbyk7XG5cbiAgICAgICAgcmV0dXJuIGJyb3dzZXJDbGllbnQuc3dpdGNoVG9NYWluV2luZG93KCk7XG4gICAgfSxcbn07XG4iXX0=
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const errors_1 = require("../../../../../../shared/errors");
|
|
4
|
+
const EXECUTION_CTX_WAS_DESTROYED_CODE = -32000;
|
|
5
|
+
const SELECTOR_MAX_EXECUTE_COUNT = 10;
|
|
6
|
+
const PROXYLESS_SCRIPT = 'window["%proxyless%"]';
|
|
7
|
+
class ClientFunctionExecutor {
|
|
8
|
+
constructor() {
|
|
9
|
+
// new Map<frameId, executionContextId>
|
|
10
|
+
this._frameExecutionContexts = new Map();
|
|
11
|
+
this._currentFrameId = '';
|
|
12
|
+
}
|
|
13
|
+
async evaluateScript(Runtime, expression) {
|
|
14
|
+
const script = { expression, awaitPromise: true };
|
|
15
|
+
if (this._currentFrameId && this._frameExecutionContexts.has(this._currentFrameId))
|
|
16
|
+
script.contextId = this._frameExecutionContexts.get(this._currentFrameId);
|
|
17
|
+
try {
|
|
18
|
+
const { result, exceptionDetails = null } = await Runtime.evaluate(script);
|
|
19
|
+
return { result, exceptionDetails, error: null };
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
return { result: null, exceptionDetails: null, error };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async _evaluateScriptWithReloadPageIgnore(Runtime, expression) {
|
|
26
|
+
let attempts = 0;
|
|
27
|
+
let result;
|
|
28
|
+
let exceptionDetails;
|
|
29
|
+
let error;
|
|
30
|
+
while (attempts++ < SELECTOR_MAX_EXECUTE_COUNT) {
|
|
31
|
+
({ result, exceptionDetails, error } = await this.evaluateScript(Runtime, expression));
|
|
32
|
+
if (error && error.response.code === EXECUTION_CTX_WAS_DESTROYED_CODE)
|
|
33
|
+
continue;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-object-literal-type-assertion
|
|
37
|
+
return { result, exceptionDetails, error };
|
|
38
|
+
}
|
|
39
|
+
static _getPropertyByName(properties, name) {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
41
|
+
return properties.find(prop => prop.name === name).value;
|
|
42
|
+
}
|
|
43
|
+
static _throwException(details, command, callsite) {
|
|
44
|
+
var _a;
|
|
45
|
+
const exception = details.exception;
|
|
46
|
+
if (exception) {
|
|
47
|
+
const className = exception.className;
|
|
48
|
+
const properties = (_a = exception.preview) === null || _a === void 0 ? void 0 : _a.properties;
|
|
49
|
+
if (className === errors_1.UncaughtErrorInCustomDOMPropertyCode.name) {
|
|
50
|
+
throw new errors_1.UncaughtErrorInCustomDOMPropertyCode(command.instantiationCallsiteName, ClientFunctionExecutor._getPropertyByName(properties, 'errMsg'), ClientFunctionExecutor._getPropertyByName(properties, 'property'), callsite);
|
|
51
|
+
}
|
|
52
|
+
else if (className === errors_1.CannotObtainInfoForElementSpecifiedBySelectorError.name) {
|
|
53
|
+
throw new errors_1.CannotObtainInfoForElementSpecifiedBySelectorError(callsite, {
|
|
54
|
+
apiFnChain: command.apiFnChain,
|
|
55
|
+
apiFnIndex: parseInt(ClientFunctionExecutor._getPropertyByName(properties, 'apiFnIndex'), 10),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else if (className === errors_1.DomNodeClientFunctionResultError.name)
|
|
59
|
+
throw new errors_1.DomNodeClientFunctionResultError(command.instantiationCallsiteName, callsite);
|
|
60
|
+
else if (className === errors_1.InvalidSelectorResultError.name)
|
|
61
|
+
throw new errors_1.InvalidSelectorResultError(callsite);
|
|
62
|
+
}
|
|
63
|
+
throw new errors_1.UncaughtErrorInClientFunctionCode(command.instantiationCallsiteName, details.text, callsite);
|
|
64
|
+
}
|
|
65
|
+
async executeClientFunction(Runtime, command, callsite) {
|
|
66
|
+
const expression = `${PROXYLESS_SCRIPT}.executeClientFunctionCommand(${JSON.stringify(command)});`;
|
|
67
|
+
const { result, exceptionDetails, error } = await this.evaluateScript(Runtime, expression);
|
|
68
|
+
if (error) {
|
|
69
|
+
if (error.response.code === EXECUTION_CTX_WAS_DESTROYED_CODE)
|
|
70
|
+
throw new errors_1.ClientFunctionExecutionInterruptionError(command.instantiationCallsiteName, callsite);
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
if (exceptionDetails)
|
|
74
|
+
ClientFunctionExecutor._throwException(exceptionDetails, command, callsite);
|
|
75
|
+
return JSON.parse(result.value); // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
76
|
+
}
|
|
77
|
+
async executeSelector(Runtime, command, callsite, selectorTimeout) {
|
|
78
|
+
const expression = `${PROXYLESS_SCRIPT}.executeSelectorCommand(${JSON.stringify(command)}, ${selectorTimeout}, ${Date.now()});`;
|
|
79
|
+
const { result, exceptionDetails, error } = await this._evaluateScriptWithReloadPageIgnore(Runtime, expression);
|
|
80
|
+
if (error)
|
|
81
|
+
throw error;
|
|
82
|
+
if (exceptionDetails)
|
|
83
|
+
ClientFunctionExecutor._throwException(exceptionDetails, command, callsite);
|
|
84
|
+
return JSON.parse(result.value); // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
85
|
+
}
|
|
86
|
+
setupFramesWatching(Runtime) {
|
|
87
|
+
Runtime.on('executionContextCreated', (event) => {
|
|
88
|
+
var _a;
|
|
89
|
+
if (!((_a = event.context.auxData) === null || _a === void 0 ? void 0 : _a.frameId))
|
|
90
|
+
return;
|
|
91
|
+
this._frameExecutionContexts.set(event.context.auxData.frameId, event.context.id);
|
|
92
|
+
});
|
|
93
|
+
Runtime.on('executionContextDestroyed', (event) => {
|
|
94
|
+
for (const [frameId, executionContextId] of this._frameExecutionContexts.entries()) {
|
|
95
|
+
if (executionContextId === event.executionContextId)
|
|
96
|
+
this._frameExecutionContexts.delete(frameId);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
Runtime.on('executionContextsCleared', () => {
|
|
100
|
+
this._currentFrameId = '';
|
|
101
|
+
this._frameExecutionContexts.clear();
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
setCurrentFrameId(frameId) {
|
|
105
|
+
this._currentFrameId = frameId;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.default = ClientFunctionExecutor;
|
|
109
|
+
module.exports = exports.default;
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWZ1bmN0aW9uLWV4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9jZHAtY2xpZW50L2NsaWVudC1mdW5jdGlvbi1leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLDREQUt5QztBQW9CekMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLEtBQUssQ0FBQztBQUNoRCxNQUFNLDBCQUEwQixHQUFTLEVBQUUsQ0FBQztBQUM1QyxNQUFNLGdCQUFnQixHQUFtQix1QkFBdUIsQ0FBQztBQUdqRSxNQUFxQixzQkFBc0I7SUFBM0M7UUFDSSx1Q0FBdUM7UUFDdEIsNEJBQXVCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDN0Qsb0JBQWUsR0FBVyxFQUFFLENBQUM7SUE4SHpDLENBQUM7SUE1SFUsS0FBSyxDQUFDLGNBQWMsQ0FBRSxPQUFtQixFQUFFLFVBQWtCO1FBQ2hFLE1BQU0sTUFBTSxHQUFvQixFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUM5RSxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlFLElBQUk7WUFDQSxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixHQUFHLElBQUksRUFBRSxHQUFHLE1BQU0sT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNwRDtRQUNELE9BQU8sS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQzFEO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBRSxPQUFtQixFQUFFLFVBQWtCO1FBQ3RGLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksZ0JBQWdCLENBQUM7UUFDckIsSUFBSSxLQUFLLENBQUM7UUFFVixPQUFPLFFBQVEsRUFBRSxHQUFHLDBCQUEwQixFQUFFO1lBQzVDLENBQUMsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBRXZGLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLGdDQUFnQztnQkFDakUsU0FBUztZQUViLE1BQU07U0FDVDtRQUVELCtFQUErRTtRQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBMEIsQ0FBQztJQUN2RSxDQUFDO0lBRU8sTUFBTSxDQUFDLGtCQUFrQixDQUFFLFVBQTZCLEVBQUUsSUFBWTtRQUMxRSxvRUFBb0U7UUFDcEUsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUUsQ0FBQyxLQUFNLENBQUM7SUFDL0QsQ0FBQztJQUVPLE1BQU0sQ0FBQyxlQUFlLENBQUUsT0FBeUIsRUFBRSxPQUF5QyxFQUFFLFFBQXdCOztRQUMxSCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRXBDLElBQUksU0FBUyxFQUFFO1lBQ1gsTUFBTSxTQUFTLEdBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUN2QyxNQUFNLFVBQVUsR0FBRyxNQUFBLFNBQVMsQ0FBQyxPQUFPLDBDQUFFLFVBQStCLENBQUM7WUFFdEUsSUFBSSxTQUFTLEtBQUssNkNBQW9DLENBQUMsSUFBSSxFQUFFO2dCQUN6RCxNQUFNLElBQUksNkNBQW9DLENBQUMsT0FBTyxDQUFDLHlCQUF5QixFQUM1RSxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQy9ELHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFDakUsUUFBUSxDQUFDLENBQUM7YUFDakI7aUJBQ0ksSUFBSSxTQUFTLEtBQUssMkRBQWtELENBQUMsSUFBSSxFQUFFO2dCQUM1RSxNQUFNLElBQUksMkRBQWtELENBQUMsUUFBUSxFQUFFO29CQUNuRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7b0JBQzlCLFVBQVUsRUFBRSxRQUFRLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQztpQkFDaEcsQ0FBQyxDQUFDO2FBQ047aUJBQ0ksSUFBSSxTQUFTLEtBQUsseUNBQWdDLENBQUMsSUFBSTtnQkFDeEQsTUFBTSxJQUFJLHlDQUFnQyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxRQUFRLENBQUMsQ0FBQztpQkFDdkYsSUFBSSxTQUFTLEtBQUssbUNBQTBCLENBQUMsSUFBSTtnQkFDbEQsTUFBTSxJQUFJLG1DQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsTUFBTSxJQUFJLDBDQUFpQyxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFTSxLQUFLLENBQUMscUJBQXFCLENBQUUsT0FBbUIsRUFBRSxPQUFxQyxFQUFFLFFBQXdCO1FBQ3BILE1BQU0sVUFBVSxHQUFHLEdBQUcsZ0JBQWdCLGlDQUFpQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFbkcsTUFBTSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTNGLElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxnQ0FBZ0M7Z0JBQ3hELE1BQU0sSUFBSSxpREFBd0MsQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFcEcsTUFBTSxLQUFLLENBQUM7U0FDZjtRQUVELElBQUksZ0JBQWdCO1lBQ2hCLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFaEYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLCtEQUErRDtJQUNyRyxDQUFDO0lBRU0sS0FBSyxDQUFDLGVBQWUsQ0FBRSxPQUFtQixFQUFFLE9BQStCLEVBQUUsUUFBd0IsRUFBRSxlQUF1QjtRQUNqSSxNQUFNLFVBQVUsR0FBRyxHQUFHLGdCQUFnQiwyQkFBMkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxlQUFlLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFFaEksTUFBTSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFaEgsSUFBSSxLQUFLO1lBQ0wsTUFBTSxLQUFLLENBQUM7UUFFaEIsSUFBSSxnQkFBZ0I7WUFDaEIsc0JBQXNCLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVoRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsK0RBQStEO0lBQ3JHLENBQUM7SUFFTSxtQkFBbUIsQ0FBRSxPQUFtQjtRQUMzQyxPQUFPLENBQUMsRUFBRSxDQUFDLHlCQUF5QixFQUFFLENBQUMsS0FBb0QsRUFBRSxFQUFFOztZQUMzRixJQUFJLFFBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLDBDQUFFLE9BQU8sQ0FBQTtnQkFDL0IsT0FBTztZQUVYLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLENBQUMsS0FBc0QsRUFBRSxFQUFFO1lBQy9GLEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDaEYsSUFBSSxrQkFBa0IsS0FBSyxLQUFLLENBQUMsa0JBQWtCO29CQUMvQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3BEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtZQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0saUJBQWlCLENBQUUsT0FBZTtRQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUFqSUQseUNBaUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sJztcbmltcG9ydCB7IENhbGxzaXRlUmVjb3JkIH0gZnJvbSAnY2FsbHNpdGUtcmVjb3JkJztcbmltcG9ydCBQcm90b2NvbFByb3h5QXBpIGZyb20gJ2RldnRvb2xzLXByb3RvY29sL3R5cGVzL3Byb3RvY29sLXByb3h5LWFwaSc7XG5pbXBvcnQgUnVudGltZUFwaSA9IFByb3RvY29sUHJveHlBcGkuUnVudGltZUFwaTtcbmltcG9ydCBFdmFsdWF0ZVJlcXVlc3QgPSBQcm90b2NvbC5SdW50aW1lLkV2YWx1YXRlUmVxdWVzdDtcbmltcG9ydCBSZW1vdGVPYmplY3QgPSBQcm90b2NvbC5SdW50aW1lLlJlbW90ZU9iamVjdDtcbmltcG9ydCBFeGNlcHRpb25EZXRhaWxzID0gUHJvdG9jb2wuUnVudGltZS5FeGNlcHRpb25EZXRhaWxzO1xuaW1wb3J0IFByb3BlcnR5UHJldmlldyA9IFByb3RvY29sLlJ1bnRpbWUuUHJvcGVydHlQcmV2aWV3O1xuaW1wb3J0IHtcbiAgICBDYW5ub3RPYnRhaW5JbmZvRm9yRWxlbWVudFNwZWNpZmllZEJ5U2VsZWN0b3JFcnJvcixcbiAgICBDbGllbnRGdW5jdGlvbkV4ZWN1dGlvbkludGVycnVwdGlvbkVycm9yLCBEb21Ob2RlQ2xpZW50RnVuY3Rpb25SZXN1bHRFcnJvcixcbiAgICBJbnZhbGlkU2VsZWN0b3JSZXN1bHRFcnJvciwgVW5jYXVnaHRFcnJvckluQ2xpZW50RnVuY3Rpb25Db2RlLFxuICAgIFVuY2F1Z2h0RXJyb3JJbkN1c3RvbURPTVByb3BlcnR5Q29kZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2Vycm9ycyc7XG5pbXBvcnQge1xuICAgIEV4ZWN1dGVDbGllbnRGdW5jdGlvbkNvbW1hbmQsXG4gICAgRXhlY3V0ZUNsaWVudEZ1bmN0aW9uQ29tbWFuZEJhc2UsXG4gICAgRXhlY3V0ZVNlbGVjdG9yQ29tbWFuZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC1ydW4vY29tbWFuZHMvb2JzZXJ2YXRpb24nO1xuXG5cbmludGVyZmFjZSBFdmFsdWF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgcmVxdWVzdDogRXZhbHVhdGVSZXF1ZXN0O1xuICAgIHJlc3BvbnNlOiB7IGNvZGU6IG51bWJlciB9O1xufVxuXG5pbnRlcmZhY2UgRXZhbHVhdGVTY3JpcHRSZXN1bHQge1xuICAgIHJlc3VsdDogUmVtb3RlT2JqZWN0IHwgbnVsbDtcbiAgICBleGNlcHRpb25EZXRhaWxzOiBFeGNlcHRpb25EZXRhaWxzIHwgbnVsbDtcbiAgICBlcnJvcjogRXZhbHVhdGlvbkVycm9yIHwgbnVsbDtcbn1cblxuXG5jb25zdCBFWEVDVVRJT05fQ1RYX1dBU19ERVNUUk9ZRURfQ09ERSA9IC0zMjAwMDtcbmNvbnN0IFNFTEVDVE9SX01BWF9FWEVDVVRFX0NPVU5UICAgICAgID0gMTA7XG5jb25zdCBQUk9YWUxFU1NfU0NSSVBUICAgICAgICAgICAgICAgICA9ICd3aW5kb3dbXCIlcHJveHlsZXNzJVwiXSc7XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2xpZW50RnVuY3Rpb25FeGVjdXRvciB7XG4gICAgLy8gbmV3IE1hcDxmcmFtZUlkLCBleGVjdXRpb25Db250ZXh0SWQ+XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZnJhbWVFeGVjdXRpb25Db250ZXh0cyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgcHJpdmF0ZSBfY3VycmVudEZyYW1lSWQ6IHN0cmluZyA9ICcnO1xuXG4gICAgcHVibGljIGFzeW5jIGV2YWx1YXRlU2NyaXB0IChSdW50aW1lOiBSdW50aW1lQXBpLCBleHByZXNzaW9uOiBzdHJpbmcpOiBQcm9taXNlPEV2YWx1YXRlU2NyaXB0UmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IHNjcmlwdDogRXZhbHVhdGVSZXF1ZXN0ID0geyBleHByZXNzaW9uLCBhd2FpdFByb21pc2U6IHRydWUgfTtcblxuICAgICAgICBpZiAodGhpcy5fY3VycmVudEZyYW1lSWQgJiYgdGhpcy5fZnJhbWVFeGVjdXRpb25Db250ZXh0cy5oYXModGhpcy5fY3VycmVudEZyYW1lSWQpKVxuICAgICAgICAgICAgc2NyaXB0LmNvbnRleHRJZCA9IHRoaXMuX2ZyYW1lRXhlY3V0aW9uQ29udGV4dHMuZ2V0KHRoaXMuX2N1cnJlbnRGcmFtZUlkKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgeyByZXN1bHQsIGV4Y2VwdGlvbkRldGFpbHMgPSBudWxsIH0gPSBhd2FpdCBSdW50aW1lLmV2YWx1YXRlKHNjcmlwdCk7XG5cbiAgICAgICAgICAgIHJldHVybiB7IHJlc3VsdCwgZXhjZXB0aW9uRGV0YWlscywgZXJyb3I6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHJlc3VsdDogbnVsbCwgZXhjZXB0aW9uRGV0YWlsczogbnVsbCwgZXJyb3IgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2V2YWx1YXRlU2NyaXB0V2l0aFJlbG9hZFBhZ2VJZ25vcmUgKFJ1bnRpbWU6IFJ1bnRpbWVBcGksIGV4cHJlc3Npb246IHN0cmluZyk6IFByb21pc2U8RXZhbHVhdGVTY3JpcHRSZXN1bHQ+IHtcbiAgICAgICAgbGV0IGF0dGVtcHRzID0gMDtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgbGV0IGV4Y2VwdGlvbkRldGFpbHM7XG4gICAgICAgIGxldCBlcnJvcjtcblxuICAgICAgICB3aGlsZSAoYXR0ZW1wdHMrKyA8IFNFTEVDVE9SX01BWF9FWEVDVVRFX0NPVU5UKSB7XG4gICAgICAgICAgICAoeyByZXN1bHQsIGV4Y2VwdGlvbkRldGFpbHMsIGVycm9yIH0gPSBhd2FpdCB0aGlzLmV2YWx1YXRlU2NyaXB0KFJ1bnRpbWUsIGV4cHJlc3Npb24pKTtcblxuICAgICAgICAgICAgaWYgKGVycm9yICYmIGVycm9yLnJlc3BvbnNlLmNvZGUgPT09IEVYRUNVVElPTl9DVFhfV0FTX0RFU1RST1lFRF9DT0RFKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tb2JqZWN0LWxpdGVyYWwtdHlwZS1hc3NlcnRpb25cbiAgICAgICAgcmV0dXJuIHsgcmVzdWx0LCBleGNlcHRpb25EZXRhaWxzLCBlcnJvciB9IGFzIEV2YWx1YXRlU2NyaXB0UmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZXRQcm9wZXJ0eUJ5TmFtZSAocHJvcGVydGllczogUHJvcGVydHlQcmV2aWV3W10sIG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHJldHVybiBwcm9wZXJ0aWVzLmZpbmQocHJvcCA9PiBwcm9wLm5hbWUgPT09IG5hbWUpIS52YWx1ZSE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX3Rocm93RXhjZXB0aW9uIChkZXRhaWxzOiBFeGNlcHRpb25EZXRhaWxzLCBjb21tYW5kOiBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kQmFzZSwgY2FsbHNpdGU6IENhbGxzaXRlUmVjb3JkKTogbmV2ZXIge1xuICAgICAgICBjb25zdCBleGNlcHRpb24gPSBkZXRhaWxzLmV4Y2VwdGlvbjtcblxuICAgICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgID0gZXhjZXB0aW9uLmNsYXNzTmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBleGNlcHRpb24ucHJldmlldz8ucHJvcGVydGllcyBhcyBQcm9wZXJ0eVByZXZpZXdbXTtcblxuICAgICAgICAgICAgaWYgKGNsYXNzTmFtZSA9PT0gVW5jYXVnaHRFcnJvckluQ3VzdG9tRE9NUHJvcGVydHlDb2RlLm5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVW5jYXVnaHRFcnJvckluQ3VzdG9tRE9NUHJvcGVydHlDb2RlKGNvbW1hbmQuaW5zdGFudGlhdGlvbkNhbGxzaXRlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgQ2xpZW50RnVuY3Rpb25FeGVjdXRvci5fZ2V0UHJvcGVydHlCeU5hbWUocHJvcGVydGllcywgJ2Vyck1zZycpLFxuICAgICAgICAgICAgICAgICAgICBDbGllbnRGdW5jdGlvbkV4ZWN1dG9yLl9nZXRQcm9wZXJ0eUJ5TmFtZShwcm9wZXJ0aWVzLCAncHJvcGVydHknKSxcbiAgICAgICAgICAgICAgICAgICAgY2FsbHNpdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2xhc3NOYW1lID09PSBDYW5ub3RPYnRhaW5JbmZvRm9yRWxlbWVudFNwZWNpZmllZEJ5U2VsZWN0b3JFcnJvci5uYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENhbm5vdE9idGFpbkluZm9Gb3JFbGVtZW50U3BlY2lmaWVkQnlTZWxlY3RvckVycm9yKGNhbGxzaXRlLCB7XG4gICAgICAgICAgICAgICAgICAgIGFwaUZuQ2hhaW46IGNvbW1hbmQuYXBpRm5DaGFpbixcbiAgICAgICAgICAgICAgICAgICAgYXBpRm5JbmRleDogcGFyc2VJbnQoQ2xpZW50RnVuY3Rpb25FeGVjdXRvci5fZ2V0UHJvcGVydHlCeU5hbWUocHJvcGVydGllcywgJ2FwaUZuSW5kZXgnKSwgMTApLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2xhc3NOYW1lID09PSBEb21Ob2RlQ2xpZW50RnVuY3Rpb25SZXN1bHRFcnJvci5uYW1lKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBEb21Ob2RlQ2xpZW50RnVuY3Rpb25SZXN1bHRFcnJvcihjb21tYW5kLmluc3RhbnRpYXRpb25DYWxsc2l0ZU5hbWUsIGNhbGxzaXRlKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGNsYXNzTmFtZSA9PT0gSW52YWxpZFNlbGVjdG9yUmVzdWx0RXJyb3IubmFtZSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFNlbGVjdG9yUmVzdWx0RXJyb3IoY2FsbHNpdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IFVuY2F1Z2h0RXJyb3JJbkNsaWVudEZ1bmN0aW9uQ29kZShjb21tYW5kLmluc3RhbnRpYXRpb25DYWxsc2l0ZU5hbWUsIGRldGFpbHMudGV4dCwgY2FsbHNpdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBleGVjdXRlQ2xpZW50RnVuY3Rpb24gKFJ1bnRpbWU6IFJ1bnRpbWVBcGksIGNvbW1hbmQ6IEV4ZWN1dGVDbGllbnRGdW5jdGlvbkNvbW1hbmQsIGNhbGxzaXRlOiBDYWxsc2l0ZVJlY29yZCk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBgJHtQUk9YWUxFU1NfU0NSSVBUfS5leGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kKCR7SlNPTi5zdHJpbmdpZnkoY29tbWFuZCl9KTtgO1xuXG4gICAgICAgIGNvbnN0IHsgcmVzdWx0LCBleGNlcHRpb25EZXRhaWxzLCBlcnJvciB9ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVNjcmlwdChSdW50aW1lLCBleHByZXNzaW9uKTtcblxuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChlcnJvci5yZXNwb25zZS5jb2RlID09PSBFWEVDVVRJT05fQ1RYX1dBU19ERVNUUk9ZRURfQ09ERSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ2xpZW50RnVuY3Rpb25FeGVjdXRpb25JbnRlcnJ1cHRpb25FcnJvcihjb21tYW5kLmluc3RhbnRpYXRpb25DYWxsc2l0ZU5hbWUsIGNhbGxzaXRlKTtcblxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXhjZXB0aW9uRGV0YWlscylcbiAgICAgICAgICAgIENsaWVudEZ1bmN0aW9uRXhlY3V0b3IuX3Rocm93RXhjZXB0aW9uKGV4Y2VwdGlvbkRldGFpbHMsIGNvbW1hbmQsIGNhbGxzaXRlKTtcblxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQhLnZhbHVlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGV4ZWN1dGVTZWxlY3RvciAoUnVudGltZTogUnVudGltZUFwaSwgY29tbWFuZDogRXhlY3V0ZVNlbGVjdG9yQ29tbWFuZCwgY2FsbHNpdGU6IENhbGxzaXRlUmVjb3JkLCBzZWxlY3RvclRpbWVvdXQ6IG51bWJlcik6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBgJHtQUk9YWUxFU1NfU0NSSVBUfS5leGVjdXRlU2VsZWN0b3JDb21tYW5kKCR7SlNPTi5zdHJpbmdpZnkoY29tbWFuZCl9LCAke3NlbGVjdG9yVGltZW91dH0sICR7RGF0ZS5ub3coKX0pO2A7XG5cbiAgICAgICAgY29uc3QgeyByZXN1bHQsIGV4Y2VwdGlvbkRldGFpbHMsIGVycm9yIH0gPSBhd2FpdCB0aGlzLl9ldmFsdWF0ZVNjcmlwdFdpdGhSZWxvYWRQYWdlSWdub3JlKFJ1bnRpbWUsIGV4cHJlc3Npb24pO1xuXG4gICAgICAgIGlmIChlcnJvcilcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuXG4gICAgICAgIGlmIChleGNlcHRpb25EZXRhaWxzKVxuICAgICAgICAgICAgQ2xpZW50RnVuY3Rpb25FeGVjdXRvci5fdGhyb3dFeGNlcHRpb24oZXhjZXB0aW9uRGV0YWlscywgY29tbWFuZCwgY2FsbHNpdGUpO1xuXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJlc3VsdCEudmFsdWUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0dXBGcmFtZXNXYXRjaGluZyAoUnVudGltZTogUnVudGltZUFwaSk6IHZvaWQge1xuICAgICAgICBSdW50aW1lLm9uKCdleGVjdXRpb25Db250ZXh0Q3JlYXRlZCcsIChldmVudDogUHJvdG9jb2wuUnVudGltZS5FeGVjdXRpb25Db250ZXh0Q3JlYXRlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWV2ZW50LmNvbnRleHQuYXV4RGF0YT8uZnJhbWVJZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIHRoaXMuX2ZyYW1lRXhlY3V0aW9uQ29udGV4dHMuc2V0KGV2ZW50LmNvbnRleHQuYXV4RGF0YS5mcmFtZUlkLCBldmVudC5jb250ZXh0LmlkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgUnVudGltZS5vbignZXhlY3V0aW9uQ29udGV4dERlc3Ryb3llZCcsIChldmVudDogUHJvdG9jb2wuUnVudGltZS5FeGVjdXRpb25Db250ZXh0RGVzdHJveWVkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ZyYW1lSWQsIGV4ZWN1dGlvbkNvbnRleHRJZF0gb2YgdGhpcy5fZnJhbWVFeGVjdXRpb25Db250ZXh0cy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXhlY3V0aW9uQ29udGV4dElkID09PSBldmVudC5leGVjdXRpb25Db250ZXh0SWQpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZyYW1lRXhlY3V0aW9uQ29udGV4dHMuZGVsZXRlKGZyYW1lSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBSdW50aW1lLm9uKCdleGVjdXRpb25Db250ZXh0c0NsZWFyZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50RnJhbWVJZCA9ICcnO1xuICAgICAgICAgICAgdGhpcy5fZnJhbWVFeGVjdXRpb25Db250ZXh0cy5jbGVhcigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Q3VycmVudEZyYW1lSWQgKGZyYW1lSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50RnJhbWVJZCA9IGZyYW1lSWQ7XG4gICAgfVxufVxuIl19
|