testcafe 2.6.0 → 2.6.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.
- package/CHANGELOG.md +21 -0
- package/bin/testcafe-with-v8-flag-filter.js +10 -16
- package/lib/api/exportable-lib/index.js +1 -11
- package/lib/api/structure/test.js +4 -11
- package/lib/api/test-controller/index.js +3 -10
- package/lib/api/test-run-tracker.js +1 -1
- package/lib/assertions/executor.js +2 -11
- package/lib/browser/connection/gateway/index.js +3 -4
- package/lib/cli/argument-parser/index.js +1 -3
- package/lib/cli/cli.js +3 -11
- package/lib/client/automation/index.js +49 -36
- package/lib/client/automation/index.min.js +1 -1
- package/lib/client/browser/idle-page/index.js +13 -5
- package/lib/client/core/index.js +14 -8
- package/lib/client/core/index.min.js +1 -1
- package/lib/client/driver/index.js +19 -20
- package/lib/client/driver/index.min.js +1 -1
- package/lib/compiler/babel/load-libs.js +3 -3
- package/lib/compiler/compilers.js +6 -6
- package/lib/compiler/index.js +3 -3
- package/lib/compiler/interfaces.js +1 -1
- package/lib/compiler/test-file/add-export-api.js +3 -3
- package/lib/compiler/test-file/api-based.js +5 -34
- package/lib/compiler/test-file/formats/es-next/compiler.js +4 -4
- package/lib/compiler/test-file/formats/typescript/compiler.js +5 -5
- package/lib/configuration/option-names.js +1 -2
- package/lib/errors/runtime/templates.js +1 -2
- package/lib/errors/types.js +2 -3
- package/lib/index.js +1 -3
- package/lib/live/bootstrapper.js +3 -3
- package/lib/live/test-runner.js +5 -5
- package/lib/native-automation/add-custom-debug-formatters.js +3 -2
- package/lib/native-automation/client/event-descriptor.js +11 -5
- package/lib/native-automation/client/input.js +3 -7
- package/lib/native-automation/request-hooks/event-provider.js +4 -1
- package/lib/native-automation/request-pipeline/context-info.js +4 -1
- package/lib/native-automation/request-pipeline/index.js +39 -19
- package/lib/native-automation/request-pipeline/safe-api.js +10 -7
- package/lib/native-automation/request-pipeline/special-handlers.js +16 -13
- package/lib/native-automation/resource-injector.js +7 -7
- package/lib/native-automation/types.js +1 -1
- package/lib/native-automation/utils/cdp.js +3 -2
- package/lib/role/role.js +4 -39
- package/lib/runner/bootstrapper.js +4 -11
- package/lib/runner/browser-job.js +4 -5
- package/lib/runner/fixture-hook-controller.js +1 -7
- package/lib/runner/index.js +6 -53
- package/lib/runner/interfaces.js +1 -1
- package/lib/runner/task/index.js +2 -4
- package/lib/runner/test-run-controller.js +2 -4
- package/lib/test-run/bookmark.js +5 -23
- package/lib/test-run/commands/service.js +2 -3
- package/lib/test-run/commands/utils.js +4 -2
- package/lib/test-run/index.js +9 -132
- package/lib/testcafe.js +1 -9
- package/lib/utils/debug-loggers.js +4 -2
- package/lib/utils/parse-user-agent.js +17 -2
- package/package.json +3 -4
- package/lib/compiler/test-file/test-file-temp-variable-name.js +0 -6
- package/lib/dashboard/config-storage.js +0 -26
- package/lib/dashboard/connector.js +0 -84
- package/lib/dashboard/documentation-url.js +0 -6
- package/lib/dashboard/formatting.js +0 -26
- package/lib/dashboard/get-dashboard-url.js +0 -10
- package/lib/dashboard/get-default-project-link.js +0 -23
- package/lib/dashboard/get-env-options.js +0 -26
- package/lib/dashboard/index.js +0 -145
- package/lib/dashboard/interfaces.js +0 -3
- package/lib/dashboard/messages.js +0 -21
- package/lib/services/compiler/esm-runtime-holder-name.js +0 -6
- package/lib/services/compiler/host.js +0 -370
- package/lib/services/compiler/interfaces.js +0 -3
- package/lib/services/compiler/io.js +0 -10
- package/lib/services/compiler/protocol.js +0 -17
- package/lib/services/compiler/service-loader.js +0 -18
- package/lib/services/compiler/service.js +0 -362
- package/lib/services/compiler/test-run-proxy.js +0 -157
- package/lib/services/interfaces.js +0 -3
- package/lib/services/process-title.js +0 -10
- package/lib/services/serialization/prepare-options.js +0 -23
- package/lib/services/serialization/replicator/create-replicator.js +0 -58
- package/lib/services/serialization/replicator/interfaces.js +0 -3
- package/lib/services/serialization/replicator/transforms/base-transform.js +0 -16
- package/lib/services/serialization/replicator/transforms/browser-console-messages-transform.js +0 -23
- package/lib/services/serialization/replicator/transforms/callsite-record-transform.js +0 -24
- package/lib/services/serialization/replicator/transforms/command-base-trasform/assertion-command-constructors.js +0 -28
- package/lib/services/serialization/replicator/transforms/command-base-trasform/command-constructors.js +0 -67
- package/lib/services/serialization/replicator/transforms/command-base-trasform/index.js +0 -49
- package/lib/services/serialization/replicator/transforms/command-base-trasform/types.js +0 -3
- package/lib/services/serialization/replicator/transforms/configure-response-event-option-transform.js +0 -21
- package/lib/services/serialization/replicator/transforms/custom-error-transform.js +0 -29
- package/lib/services/serialization/replicator/transforms/function-marker-transform/index.js +0 -21
- package/lib/services/serialization/replicator/transforms/function-marker-transform/marker.js +0 -9
- package/lib/services/serialization/replicator/transforms/promise-marker-transform/index.js +0 -21
- package/lib/services/serialization/replicator/transforms/promise-marker-transform/marker.js +0 -9
- package/lib/services/serialization/replicator/transforms/raw-command-callsite-record-transform.js +0 -22
- package/lib/services/serialization/replicator/transforms/re-executable-promise-transform/index.js +0 -22
- package/lib/services/serialization/replicator/transforms/re-executable-promise-transform/marker.js +0 -6
- package/lib/services/serialization/replicator/transforms/request-filter-rule-transform.js +0 -23
- package/lib/services/serialization/replicator/transforms/request-hook-event-data-transform.js +0 -41
- package/lib/services/serialization/replicator/transforms/response-mock-transform.js +0 -23
- package/lib/services/serialization/replicator/transforms/role-transform.js +0 -21
- package/lib/services/serialization/replicator/transforms/testcafe-error-list-transform.js +0 -23
- package/lib/services/serialization/replicator/transforms/url-transform.js +0 -23
- package/lib/services/serialization/test-structure.js +0 -91
- package/lib/services/utils/ipc/interfaces.js +0 -29
- package/lib/services/utils/ipc/io.js +0 -109
- package/lib/services/utils/ipc/message.js +0 -84
- package/lib/services/utils/ipc/packet.js +0 -57
- package/lib/services/utils/ipc/proxy.js +0 -94
- package/lib/services/utils/ipc/transport.js +0 -65
- package/lib/services/utils/method-should-not-be-called-error.js +0 -10
|
@@ -11,11 +11,17 @@ const http_status_codes_1 = require("http-status-codes");
|
|
|
11
11
|
const load_assets_1 = __importDefault(require("../../load-assets"));
|
|
12
12
|
const string_1 = require("../utils/string");
|
|
13
13
|
const safe_api_1 = require("./safe-api");
|
|
14
|
+
async function handleRequestPauseEvent(event, client, sessionId) {
|
|
15
|
+
if ((0, cdp_1.isRequest)(event))
|
|
16
|
+
await (0, safe_api_1.safeContinueRequest)(client, event, sessionId);
|
|
17
|
+
else
|
|
18
|
+
await (0, safe_api_1.safeContinueResponse)(client, event, sessionId);
|
|
19
|
+
}
|
|
14
20
|
const internalRequest = {
|
|
15
|
-
condition: (event) => !event.networkId && event.resourceType !== 'Document',
|
|
16
|
-
handler: async (event, client) => {
|
|
21
|
+
condition: (event) => !event.networkId && event.resourceType !== 'Document' && !event.request.url,
|
|
22
|
+
handler: async (event, client, options, sessionId) => {
|
|
17
23
|
(0, debug_loggers_1.requestPipelineInternalRequestLogger)('%r', event);
|
|
18
|
-
await (
|
|
24
|
+
await handleRequestPauseEvent(event, client, sessionId);
|
|
19
25
|
},
|
|
20
26
|
};
|
|
21
27
|
const serviceRequest = {
|
|
@@ -27,12 +33,9 @@ const serviceRequest = {
|
|
|
27
33
|
return false;
|
|
28
34
|
return options.serviceDomains.some(domain => url.startsWith(domain));
|
|
29
35
|
},
|
|
30
|
-
handler: async (event, client) => {
|
|
36
|
+
handler: async (event, client, options, sessionId) => {
|
|
31
37
|
(0, debug_loggers_1.requestPipelineServiceRequestLogger)('%r', event);
|
|
32
|
-
|
|
33
|
-
await (0, safe_api_1.safeContinueRequest)(client, event);
|
|
34
|
-
else
|
|
35
|
-
await (0, safe_api_1.safeContinueResponse)(client, event);
|
|
38
|
+
await handleRequestPauseEvent(event, client, sessionId);
|
|
36
39
|
},
|
|
37
40
|
};
|
|
38
41
|
const defaultFaviconRequest = {
|
|
@@ -40,10 +43,10 @@ const defaultFaviconRequest = {
|
|
|
40
43
|
const parsedUrl = new URL(event.request.url);
|
|
41
44
|
return parsedUrl.pathname === injectables_1.DEFAULT_FAVICON_PATH;
|
|
42
45
|
},
|
|
43
|
-
handler: async (event, client, options) => {
|
|
46
|
+
handler: async (event, client, options, sessionId) => {
|
|
44
47
|
(0, debug_loggers_1.requestPipelineLogger)('%r', event);
|
|
45
48
|
if ((0, cdp_1.isRequest)(event))
|
|
46
|
-
await (0, safe_api_1.safeContinueRequest)(client, event);
|
|
49
|
+
await (0, safe_api_1.safeContinueRequest)(client, event, sessionId);
|
|
47
50
|
else {
|
|
48
51
|
if (event.responseStatusCode === http_status_codes_1.StatusCodes.NOT_FOUND) { // eslint-disable-line no-lonely-if
|
|
49
52
|
const { favIcon } = (0, load_assets_1.default)(options.developmentMode);
|
|
@@ -52,10 +55,10 @@ const defaultFaviconRequest = {
|
|
|
52
55
|
responseCode: http_status_codes_1.StatusCodes.OK,
|
|
53
56
|
responseHeaders: [constants_1.FAVICON_CONTENT_TYPE_HEADER],
|
|
54
57
|
body: (0, string_1.toBase64String)(favIcon),
|
|
55
|
-
});
|
|
58
|
+
}, sessionId);
|
|
56
59
|
}
|
|
57
60
|
else
|
|
58
|
-
await (0, safe_api_1.safeContinueResponse)(client, event);
|
|
61
|
+
await (0, safe_api_1.safeContinueResponse)(client, event, sessionId);
|
|
59
62
|
}
|
|
60
63
|
},
|
|
61
64
|
};
|
|
@@ -70,4 +73,4 @@ function getSpecialRequestHandler(event, options, serviceRoutes) {
|
|
|
70
73
|
}
|
|
71
74
|
exports.default = getSpecialRequestHandler;
|
|
72
75
|
module.exports = exports.default;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uYXRpdmUtYXV0b21hdGlvbi9yZXF1ZXN0LXBpcGVsaW5lL3NwZWNpYWwtaGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSwwREFBZ0U7QUFPaEUsNkRBSW1DO0FBRW5DLHNDQUF5QztBQUN6QywyQ0FBMEQ7QUFDMUQseURBQWdEO0FBQ2hELG9FQUEyQztBQUMzQyw0Q0FBaUQ7QUFDakQseUNBSW9CO0FBRXBCLEtBQUssVUFBVSx1QkFBdUIsQ0FBRSxLQUF5QixFQUFFLE1BQW1CLEVBQUUsU0FBb0I7SUFDeEcsSUFBSSxJQUFBLGVBQVMsRUFBQyxLQUFLLENBQUM7UUFDaEIsTUFBTSxJQUFBLDhCQUFtQixFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7O1FBRXBELE1BQU0sSUFBQSwrQkFBb0IsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFHRCxNQUFNLGVBQWUsR0FBRztJQUNwQixTQUFTLEVBQUUsQ0FBQyxLQUF5QixFQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUc7SUFDOUgsT0FBTyxFQUFJLEtBQUssRUFBRSxLQUF5QixFQUFFLE1BQW1CLEVBQUUsT0FBb0MsRUFBRSxTQUFvQixFQUFpQixFQUFFO1FBQzNJLElBQUEsb0RBQW9DLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxELE1BQU0sdUJBQXVCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ2MsQ0FBQztBQUVwQixNQUFNLGNBQWMsR0FBRztJQUNuQixTQUFTLEVBQUUsQ0FBQyxLQUF5QixFQUFFLE9BQW9DLEVBQUUsYUFBbUMsRUFBVyxFQUFFO1FBQ3pILE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBRTlCLG9EQUFvRDtRQUNwRCxJQUFJLEdBQUcsS0FBSyxhQUFhLENBQUMsVUFBVTtlQUM3QixHQUFHLEtBQUssYUFBYSxDQUFDLFVBQVU7WUFDbkMsT0FBTyxLQUFLLENBQUM7UUFFakIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUF5QixFQUFFLE1BQW1CLEVBQUUsT0FBb0MsRUFBRSxTQUFvQixFQUFpQixFQUFFO1FBQ3pJLElBQUEsbURBQW1DLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWpELE1BQU0sdUJBQXVCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ2MsQ0FBQztBQUVwQixNQUFNLHFCQUFxQixHQUFHO0lBQzFCLFNBQVMsRUFBRSxDQUFDLEtBQXlCLEVBQVcsRUFBRTtRQUM5QyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTdDLE9BQU8sU0FBUyxDQUFDLFFBQVEsS0FBSyxrQ0FBb0IsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUF5QixFQUFFLE1BQW1CLEVBQUUsT0FBb0MsRUFBRSxTQUFvQixFQUFpQixFQUFFO1FBQ3pJLElBQUEscUNBQXFCLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksSUFBQSxlQUFTLEVBQUMsS0FBSyxDQUFDO1lBQ2hCLE1BQU0sSUFBQSw4QkFBbUIsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssK0JBQVcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxtQ0FBbUM7Z0JBQ3pGLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFBLHFCQUFVLEVBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUV4RCxNQUFNLElBQUEsNkJBQWtCLEVBQUMsTUFBTSxFQUFFO29CQUM3QixTQUFTLEVBQVEsS0FBSyxDQUFDLFNBQVM7b0JBQ2hDLFlBQVksRUFBSywrQkFBVyxDQUFDLEVBQUU7b0JBQy9CLGVBQWUsRUFBRSxDQUFFLHVDQUEyQixDQUFFO29CQUNoRCxJQUFJLEVBQWEsSUFBQSx1QkFBYyxFQUFDLE9BQU8sQ0FBQztpQkFDM0MsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNqQjs7Z0JBRUcsTUFBTSxJQUFBLCtCQUFvQixFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDNUQ7SUFDTCxDQUFDO0NBQ2MsQ0FBQztBQUVwQixNQUFNLHdCQUF3QixHQUFHO0lBQzdCLGVBQWU7SUFDZixjQUFjO0lBQ2QscUJBQXFCO0NBQ3hCLENBQUM7QUFFRixTQUF3Qix3QkFBd0IsQ0FBRSxLQUF5QixFQUFFLE9BQXFDLEVBQUUsYUFBb0M7SUFDcEosTUFBTSxxQkFBcUIsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUU3RyxPQUFPLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN4RSxDQUFDO0FBSkQsMkNBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvdG9jb2wgZnJvbSAnZGV2dG9vbHMtcHJvdG9jb2wnO1xuaW1wb3J0IFJlcXVlc3RQYXVzZWRFdmVudCA9IFByb3RvY29sLkZldGNoLlJlcXVlc3RQYXVzZWRFdmVudDtcbmltcG9ydCB7IERFRkFVTFRfRkFWSUNPTl9QQVRIIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2luamVjdGFibGVzJztcbmltcG9ydCB7XG4gICAgUmVxdWVzdEhhbmRsZXIsXG4gICAgU2Vzc2lvbklkLFxuICAgIFNwZWNpYWxTZXJ2aWNlUm91dGVzLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBQcm90b2NvbEFwaSB9IGZyb20gJ2Nocm9tZS1yZW1vdGUtaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gICAgcmVxdWVzdFBpcGVsaW5lSW50ZXJuYWxSZXF1ZXN0TG9nZ2VyLFxuICAgIHJlcXVlc3RQaXBlbGluZUxvZ2dlcixcbiAgICByZXF1ZXN0UGlwZWxpbmVTZXJ2aWNlUmVxdWVzdExvZ2dlcixcbn0gZnJvbSAnLi4vLi4vdXRpbHMvZGVidWctbG9nZ2Vycyc7XG5pbXBvcnQgeyBOYXRpdmVBdXRvbWF0aW9uSW5pdE9wdGlvbnMgfSBmcm9tICcuLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgaXNSZXF1ZXN0IH0gZnJvbSAnLi4vdXRpbHMvY2RwJztcbmltcG9ydCB7IEZBVklDT05fQ09OVEVOVF9UWVBFX0hFQURFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFN0YXR1c0NvZGVzIH0gZnJvbSAnaHR0cC1zdGF0dXMtY29kZXMnO1xuaW1wb3J0IGxvYWRBc3NldHMgZnJvbSAnLi4vLi4vbG9hZC1hc3NldHMnO1xuaW1wb3J0IHsgdG9CYXNlNjRTdHJpbmcgfSBmcm9tICcuLi91dGlscy9zdHJpbmcnO1xuaW1wb3J0IHtcbiAgICBzYWZlQ29udGludWVSZXF1ZXN0LFxuICAgIHNhZmVDb250aW51ZVJlc3BvbnNlLFxuICAgIHNhZmVGdWxmaWxsUmVxdWVzdCxcbn0gZnJvbSAnLi9zYWZlLWFwaSc7XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3RQYXVzZUV2ZW50IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50LCBjbGllbnQ6IFByb3RvY29sQXBpLCBzZXNzaW9uSWQ6IFNlc3Npb25JZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChpc1JlcXVlc3QoZXZlbnQpKVxuICAgICAgICBhd2FpdCBzYWZlQ29udGludWVSZXF1ZXN0KGNsaWVudCwgZXZlbnQsIHNlc3Npb25JZCk7XG4gICAgZWxzZVxuICAgICAgICBhd2FpdCBzYWZlQ29udGludWVSZXNwb25zZShjbGllbnQsIGV2ZW50LCBzZXNzaW9uSWQpO1xufVxuXG5cbmNvbnN0IGludGVybmFsUmVxdWVzdCA9IHtcbiAgICBjb25kaXRpb246IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50KTogYm9vbGVhbiA9PiAhZXZlbnQubmV0d29ya0lkICYmIGV2ZW50LnJlc291cmNlVHlwZSAhPT0gJ0RvY3VtZW50JyAmJiAhZXZlbnQucmVxdWVzdC51cmwsXG4gICAgaGFuZGxlcjogICBhc3luYyAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgY2xpZW50OiBQcm90b2NvbEFwaSwgb3B0aW9uczogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zLCBzZXNzaW9uSWQ6IFNlc3Npb25JZCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICByZXF1ZXN0UGlwZWxpbmVJbnRlcm5hbFJlcXVlc3RMb2dnZXIoJyVyJywgZXZlbnQpO1xuXG4gICAgICAgIGF3YWl0IGhhbmRsZVJlcXVlc3RQYXVzZUV2ZW50KGV2ZW50LCBjbGllbnQsIHNlc3Npb25JZCk7XG4gICAgfSxcbn0gYXMgUmVxdWVzdEhhbmRsZXI7XG5cbmNvbnN0IHNlcnZpY2VSZXF1ZXN0ID0ge1xuICAgIGNvbmRpdGlvbjogKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2VydmljZVJvdXRlczogU3BlY2lhbFNlcnZpY2VSb3V0ZXMpOiBib29sZWFuID0+IHtcbiAgICAgICAgY29uc3QgdXJsID0gZXZlbnQucmVxdWVzdC51cmw7XG5cbiAgICAgICAgLy8gTk9URTogdGhlIHNlcnZpY2UgJ0Vycm9yIHBhZ2UnIHNob3VsZCBiZSBwcm94aWVkLlxuICAgICAgICBpZiAodXJsID09PSBzZXJ2aWNlUm91dGVzLmVycm9yUGFnZTFcbiAgICAgICAgICAgIHx8IHVybCA9PT0gc2VydmljZVJvdXRlcy5lcnJvclBhZ2UyKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25zLnNlcnZpY2VEb21haW5zLnNvbWUoZG9tYWluID0+IHVybC5zdGFydHNXaXRoKGRvbWFpbikpO1xuICAgIH0sXG4gICAgaGFuZGxlcjogYXN5bmMgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIGNsaWVudDogUHJvdG9jb2xBcGksIG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2Vzc2lvbklkOiBTZXNzaW9uSWQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgcmVxdWVzdFBpcGVsaW5lU2VydmljZVJlcXVlc3RMb2dnZXIoJyVyJywgZXZlbnQpO1xuXG4gICAgICAgIGF3YWl0IGhhbmRsZVJlcXVlc3RQYXVzZUV2ZW50KGV2ZW50LCBjbGllbnQsIHNlc3Npb25JZCk7XG4gICAgfSxcbn0gYXMgUmVxdWVzdEhhbmRsZXI7XG5cbmNvbnN0IGRlZmF1bHRGYXZpY29uUmVxdWVzdCA9IHtcbiAgICBjb25kaXRpb246IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50KTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwoZXZlbnQucmVxdWVzdC51cmwpO1xuXG4gICAgICAgIHJldHVybiBwYXJzZWRVcmwucGF0aG5hbWUgPT09IERFRkFVTFRfRkFWSUNPTl9QQVRIO1xuICAgIH0sXG4gICAgaGFuZGxlcjogYXN5bmMgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIGNsaWVudDogUHJvdG9jb2xBcGksIG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2Vzc2lvbklkOiBTZXNzaW9uSWQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgcmVxdWVzdFBpcGVsaW5lTG9nZ2VyKCclcicsIGV2ZW50KTtcblxuICAgICAgICBpZiAoaXNSZXF1ZXN0KGV2ZW50KSlcbiAgICAgICAgICAgIGF3YWl0IHNhZmVDb250aW51ZVJlcXVlc3QoY2xpZW50LCBldmVudCwgc2Vzc2lvbklkKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQucmVzcG9uc2VTdGF0dXNDb2RlID09PSBTdGF0dXNDb2Rlcy5OT1RfRk9VTkQpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1sb25lbHktaWZcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZhdkljb24gfSA9IGxvYWRBc3NldHMob3B0aW9ucy5kZXZlbG9wbWVudE1vZGUpO1xuXG4gICAgICAgICAgICAgICAgYXdhaXQgc2FmZUZ1bGZpbGxSZXF1ZXN0KGNsaWVudCwge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SWQ6ICAgICAgIGV2ZW50LnJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VDb2RlOiAgICBTdGF0dXNDb2Rlcy5PSyxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VIZWFkZXJzOiBbIEZBVklDT05fQ09OVEVOVF9UWVBFX0hFQURFUiBdLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiAgICAgICAgICAgIHRvQmFzZTY0U3RyaW5nKGZhdkljb24pLFxuICAgICAgICAgICAgICAgIH0sIHNlc3Npb25JZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgYXdhaXQgc2FmZUNvbnRpbnVlUmVzcG9uc2UoY2xpZW50LCBldmVudCwgc2Vzc2lvbklkKTtcbiAgICAgICAgfVxuICAgIH0sXG59IGFzIFJlcXVlc3RIYW5kbGVyO1xuXG5jb25zdCBTUEVDSUFMX1JFUVVFU1RfSEFORExFUlMgPSBbXG4gICAgaW50ZXJuYWxSZXF1ZXN0LFxuICAgIHNlcnZpY2VSZXF1ZXN0LFxuICAgIGRlZmF1bHRGYXZpY29uUmVxdWVzdCxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFNwZWNpYWxSZXF1ZXN0SGFuZGxlciAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgb3B0aW9ucz86IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2VydmljZVJvdXRlcz86IFNwZWNpYWxTZXJ2aWNlUm91dGVzKTogYW55IHtcbiAgICBjb25zdCBzcGVjaWFsUmVxdWVzdEhhbmRsZXIgPSBTUEVDSUFMX1JFUVVFU1RfSEFORExFUlMuZmluZChoID0+IGguY29uZGl0aW9uKGV2ZW50LCBvcHRpb25zLCBzZXJ2aWNlUm91dGVzKSk7XG5cbiAgICByZXR1cm4gc3BlY2lhbFJlcXVlc3RIYW5kbGVyID8gc3BlY2lhbFJlcXVlc3RIYW5kbGVyLmhhbmRsZXIgOiBudWxsO1xufVxuXG4iXX0=
|
|
@@ -86,14 +86,14 @@ class ResourceInjector {
|
|
|
86
86
|
headers = headers.filter(header => !RESPONSE_REMOVED_HEADERS.includes(header.name.toLowerCase()));
|
|
87
87
|
return (0, string_1.stringifyHeaderValues)(headers);
|
|
88
88
|
}
|
|
89
|
-
async _fulfillRequest(client, fulfillRequestInfo, body) {
|
|
89
|
+
async _fulfillRequest(client, fulfillRequestInfo, body, sessionId) {
|
|
90
90
|
await (0, safe_api_1.safeFulfillRequest)(client, {
|
|
91
91
|
requestId: fulfillRequestInfo.requestId,
|
|
92
92
|
responseCode: fulfillRequestInfo.responseCode || http_status_codes_1.StatusCodes.OK,
|
|
93
93
|
responsePhrase: fulfillRequestInfo.responsePhrase,
|
|
94
94
|
responseHeaders: this._processResponseHeaders(fulfillRequestInfo.responseHeaders),
|
|
95
95
|
body: (0, string_1.toBase64String)(body),
|
|
96
|
-
});
|
|
96
|
+
}, sessionId);
|
|
97
97
|
}
|
|
98
98
|
async redirectToErrorPage(client, err, url) {
|
|
99
99
|
const currentTestRun = this._testRunBridge.getCurrentTestRun();
|
|
@@ -142,7 +142,7 @@ class ResourceInjector {
|
|
|
142
142
|
html,
|
|
143
143
|
});
|
|
144
144
|
}
|
|
145
|
-
async processHTMLPageContent(fulfillRequestInfo, injectableResourcesOptions, client) {
|
|
145
|
+
async processHTMLPageContent(fulfillRequestInfo, injectableResourcesOptions, client, sessionId) {
|
|
146
146
|
const injectableResources = await this._prepareInjectableResources(injectableResourcesOptions);
|
|
147
147
|
// NOTE: an unhandled exception interrupts the test execution,
|
|
148
148
|
// and we are force to redirect manually to the idle page.
|
|
@@ -150,11 +150,11 @@ class ResourceInjector {
|
|
|
150
150
|
await (0, cdp_1.redirect)(client, fulfillRequestInfo.requestId, this._options.specialServiceRoutes.idlePage);
|
|
151
151
|
else {
|
|
152
152
|
const updatedResponseStr = (0, testcafe_hammerhead_1.injectResources)(fulfillRequestInfo.body, injectableResources, this._getPageInjectableResourcesOptions(injectableResourcesOptions));
|
|
153
|
-
await this._fulfillRequest(client, fulfillRequestInfo, updatedResponseStr);
|
|
153
|
+
await this._fulfillRequest(client, fulfillRequestInfo, updatedResponseStr, sessionId);
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
async processNonProxiedContent(fulfillRequestInfo, client) {
|
|
157
|
-
await this._fulfillRequest(client, fulfillRequestInfo, fulfillRequestInfo.body);
|
|
156
|
+
async processNonProxiedContent(fulfillRequestInfo, client, sessionId) {
|
|
157
|
+
await this._fulfillRequest(client, fulfillRequestInfo, fulfillRequestInfo.body, sessionId);
|
|
158
158
|
}
|
|
159
159
|
_getPageInjectableResourcesOptions(injectableResourcesOptions) {
|
|
160
160
|
const { url, restoringStorages } = injectableResourcesOptions;
|
|
@@ -172,4 +172,4 @@ class ResourceInjector {
|
|
|
172
172
|
}
|
|
173
173
|
exports.default = ResourceInjector;
|
|
174
174
|
module.exports = exports.default;
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vcmVzb3VyY2UtaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSw2REFRNkI7QUFDN0IsdURBQW9FO0FBQ3BFLDRFQUFvRDtBQUNwRCx5REFBZ0Q7QUFDaEQsaURBQW1EO0FBQ25ELHFDQUFtRDtBQVNuRCwwREFBZ0U7QUFDaEUsMkNBSXdCO0FBQ3hCLDBEQUFpRTtBQUVqRSxxQ0FBZ0Q7QUFFaEQsTUFBTSx3QkFBd0IsR0FBRztJQUM3Qiw4QkFBOEI7SUFDOUIsNEJBQTRCO0lBQzVCLDhCQUE4QjtDQUNqQyxDQUFDO0FBT0YsTUFBTSxpQ0FBaUMsR0FBRztJQUN0QyxvQkFBb0IsRUFBRTtRQUNsQixVQUFVLEVBQVcsRUFBRTtRQUN2QixVQUFVLEVBQVcsRUFBRTtRQUN2QixtQkFBbUIsRUFBRSxFQUFFO1FBQ3ZCLFFBQVEsRUFBYSxFQUFFO0tBQzFCO0lBRUQsZUFBZSxFQUFFLEtBQUs7Q0FDekIsQ0FBQztBQUVGLE1BQXFCLGdCQUFnQjtJQUlqQyxZQUFvQixhQUE0QjtRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFTLGlDQUFpQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFTywrQkFBK0IsQ0FBRSxjQUEwQztRQUMvRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUksRUFBRSxDQUFDLENBQUM7UUFFeEUsT0FBTyxrR0FBa0csS0FBSyxNQUFNLENBQUM7SUFDekgsQ0FBQztJQUVPLHlCQUF5QixDQUFFLGlCQUFz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ZXJmYWNlJztcbmltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IEZyYW1lTmF2aWdhdGVkRXZlbnQgPSBQcm90b2NvbC5QYWdlLkZyYW1lTmF2aWdhdGVkRXZlbnQ7XG5pbXBvcnQgRnVsZmlsbFJlcXVlc3RSZXF1ZXN0ID0gUHJvdG9jb2wuRmV0Y2guRnVsZmlsbFJlcXVlc3RSZXF1ZXN0O1xuaW1wb3J0IEhlYWRlckVudHJ5ID0gUHJvdG9jb2wuRmV0Y2guSGVhZGVyRW50cnk7XG5pbXBvcnQge1xuICAgIGluamVjdFJlc291cmNlcyxcbiAgICBQYWdlSW5qZWN0YWJsZVJlc291cmNlcyxcbiAgICBJTkpFQ1RBQkxFX1NDUklQVFMgYXMgSEFNTUVSSEVBRF9JTkpFQ1RBQkxFX1NDUklQVFMsXG4gICAgZ2V0QXNzZXRQYXRoLFxuICAgIFBhZ2VSZXN0b3JlU3RvcmFnZXNPcHRpb25zLFxuICAgIFN0b3JhZ2VzU25hcHNob3QsXG4gICAgUHJveHksXG59IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IHsgU0NSSVBUUywgVEVTVENBRkVfVUlfU1RZTEVTIH0gZnJvbSAnLi4vYXNzZXRzL2luamVjdGFibGVzJztcbmltcG9ydCBFTVBUWV9QQUdFX01BUktVUCBmcm9tICcuL2VtcHR5LXBhZ2UtbWFya3VwJztcbmltcG9ydCB7IFN0YXR1c0NvZGVzIH0gZnJvbSAnaHR0cC1zdGF0dXMtY29kZXMnO1xuaW1wb3J0IHsgUGFnZUxvYWRFcnJvciB9IGZyb20gJy4uL2Vycm9ycy90ZXN0LXJ1bic7XG5pbXBvcnQgeyByZWRpcmVjdCwgbmF2aWdhdGVUbyB9IGZyb20gJy4vdXRpbHMvY2RwJztcblxuaW1wb3J0IHtcbiAgICBEb2N1bWVudFJlc291cmNlSW5mbyxcbiAgICBJbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9ucyxcbiAgICBTZXNzaW9uU3RvcmFnZUluZm8sXG4gICAgU3BlY2lhbFNlcnZpY2VSb3V0ZXMsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5pbXBvcnQgeyByZXNvdXJjZUluamVjdG9yTG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvZGVidWctbG9nZ2Vycyc7XG5pbXBvcnQge1xuICAgIGdldFJlc3BvbnNlQXNTdHJpbmcsXG4gICAgc3RyaW5naWZ5SGVhZGVyVmFsdWVzLFxuICAgIHRvQmFzZTY0U3RyaW5nLFxufSBmcm9tICcuL3V0aWxzL3N0cmluZyc7XG5pbXBvcnQgeyBzYWZlRnVsZmlsbFJlcXVlc3QgfSBmcm9tICcuL3JlcXVlc3QtcGlwZWxpbmUvc2FmZS1hcGknO1xuaW1wb3J0IFRlc3RSdW5CcmlkZ2UgZnJvbSAnLi9yZXF1ZXN0LXBpcGVsaW5lL3Rlc3QtcnVuLWJyaWRnZSc7XG5pbXBvcnQgeyBmYWlsZWRUb0ZpbmRETlNFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuY29uc3QgUkVTUE9OU0VfUkVNT1ZFRF9IRUFERVJTID0gW1xuICAgICdjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5JyxcbiAgICAnY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3knLFxuICAgICdjcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5Jyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJbmplY3Rvck9wdGlvbnMge1xuICAgIHNwZWNpYWxTZXJ2aWNlUm91dGVzOiBTcGVjaWFsU2VydmljZVJvdXRlcztcbiAgICBkZXZlbG9wbWVudE1vZGU6IGJvb2xlYW47XG59XG5cbmNvbnN0IERFRkFVTFRfUkVTT1VSQ0VfSU5KRUNUT1JfT1BUSU9OUyA9IHtcbiAgICBzcGVjaWFsU2VydmljZVJvdXRlczoge1xuICAgICAgICBlcnJvclBhZ2UxOiAgICAgICAgICAnJyxcbiAgICAgICAgZXJyb3JQYWdlMjogICAgICAgICAgJycsXG4gICAgICAgIG9wZW5GaWxlUHJvdG9jb2xVcmw6ICcnLFxuICAgICAgICBpZGxlUGFnZTogICAgICAgICAgICAnJyxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnRNb2RlOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc291cmNlSW5qZWN0b3Ige1xuICAgIHByaXZhdGUgX29wdGlvbnM6IFJlc291cmNlSW5qZWN0b3JPcHRpb25zO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Rlc3RSdW5CcmlkZ2U6IFRlc3RSdW5CcmlkZ2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHRlc3RSdW5CcmlkZ2U6IFRlc3RSdW5CcmlkZ2UpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyAgICAgICA9IERFRkFVTFRfUkVTT1VSQ0VfSU5KRUNUT1JfT1BUSU9OUztcbiAgICAgICAgdGhpcy5fdGVzdFJ1bkJyaWRnZSA9IHRlc3RSdW5CcmlkZ2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0UmVzdG9yZUNvbnRleHRTdG9yYWdlU2NyaXB0IChjb250ZXh0U3RvcmFnZT86IFNlc3Npb25TdG9yYWdlSW5mbyB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjdXJyZW50VGVzdFJ1biA9IHRoaXMuX3Rlc3RSdW5CcmlkZ2UuZ2V0Q3VycmVudFRlc3RSdW4oKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBKU09OLnN0cmluZ2lmeShjb250ZXh0U3RvcmFnZT8uW2N1cnJlbnRUZXN0UnVuLmlkXSB8fCAnJyk7XG5cbiAgICAgICAgcmV0dXJuIGBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnJW5hdGl2ZUF1dG9tYXRpb25Db250ZXh0U3RvcmFnZSUnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6ICR7dmFsdWV9IH0pO2A7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0UmVzdG9yZVN0b3JhZ2VzU2NyaXB0IChyZXN0b3JpbmdTdG9yYWdlczogU3RvcmFnZXNTbmFwc2hvdCB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXJlc3RvcmluZ1N0b3JhZ2VzKVxuICAgICAgICAgICAgcmV0dXJuICcoZnVuY3Rpb24oKSB7fSkoKSc7XG5cbiAgICAgICAgcmV0dXJuIGAoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gICAgICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcblxuICAgICAgICAgICAgY29uc3Qgc25hcHNob3QgPSAke0pTT04uc3RyaW5naWZ5KHJlc3RvcmluZ1N0b3JhZ2VzKX07XG4gICAgICAgICAgICBjb25zdCBscyAgICAgICA9IEpTT04ucGFyc2Uoc25hcHNob3QubG9jYWxTdG9yYWdlKTtcbiAgICAgICAgICAgIGNvbnN0IHNzICAgICAgID0gSlNPTi5wYXJzZShzbmFwc2hvdC5zZXNzaW9uU3RvcmFnZSk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbHNbMF0ubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGxzWzBdW2ldLCBsc1sxXVtpXSk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3NbMF0ubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oc3NbMF1baV0sIHNzWzFdW2ldKTtcbiAgICAgICAgfSkoKTtcbiAgICAgICAgYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXNvbHZlUmVsYXRpdmVVcmxzIChwcm94eTogUHJveHksIHJlbGF0aXZlVXJsczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiByZWxhdGl2ZVVybHMubWFwKHVybCA9PiBwcm94eS5yZXNvbHZlUmVsYXRpdmVTZXJ2aWNlVXJsKHVybCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3ByZXBhcmVJbmplY3RhYmxlUmVzb3VyY2VzICh7IGlzSWZyYW1lLCByZXN0b3JpbmdTdG9yYWdlcywgY29udGV4dFN0b3JhZ2UsIHVzZXJTY3JpcHRzIH06IEluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKTogUHJvbWlzZTxQYWdlSW5qZWN0YWJsZVJlc291cmNlcyB8IG51bGw+IHtcbiAgICAgICAgaWYgKCF0aGlzLl90ZXN0UnVuQnJpZGdlLmdldEN1cnJlbnRUZXN0UnVuKCkpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCB0YXNrU2NyaXB0ID0gYXdhaXQgdGhpcy5fdGVzdFJ1bkJyaWRnZS5nZXRUYXNrU2NyaXB0KHsgaXNJZnJhbWUsIHJlc3RvcmluZ1N0b3JhZ2VzLCBjb250ZXh0U3RvcmFnZSwgdXNlclNjcmlwdHMgfSk7XG4gICAgICAgIGNvbnN0IHByb3h5ICAgICAgPSB0aGlzLl90ZXN0UnVuQnJpZGdlLmdldEJyb3dzZXJDb25uZWN0aW9uKCkuYnJvd3NlckNvbm5lY3Rpb25HYXRld2F5LnByb3h5O1xuXG4gICAgICAgIGNvbnN0IGluamVjdGFibGVSZXNvdXJjZXMgPSB7XG4gICAgICAgICAgICBzdHlsZXNoZWV0czogW1xuICAgICAgICAgICAgICAgIFRFU1RDQUZFX1VJX1NUWUxFUyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBzY3JpcHRzOiBbXG4gICAgICAgICAgICAgICAgLi4uSEFNTUVSSEVBRF9JTkpFQ1RBQkxFX1NDUklQVFMubWFwKGhzID0+IGdldEFzc2V0UGF0aChocywgdGhpcy5fb3B0aW9ucy5kZXZlbG9wbWVudE1vZGUpKSxcbiAgICAgICAgICAgICAgICAuLi5TQ1JJUFRTLm1hcChzID0+IGdldEFzc2V0UGF0aChzLCB0aGlzLl9vcHRpb25zLmRldmVsb3BtZW50TW9kZSkpLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGVtYmVkZGVkU2NyaXB0czogWyB0aGlzLl9nZXRSZXN0b3JlU3RvcmFnZXNTY3JpcHQocmVzdG9yaW5nU3RvcmFnZXMpLCB0aGlzLl9nZXRSZXN0b3JlQ29udGV4dFN0b3JhZ2VTY3JpcHQoY29udGV4dFN0b3JhZ2UpLCB0YXNrU2NyaXB0XSxcbiAgICAgICAgICAgIHVzZXJTY3JpcHRzOiAgICAgdXNlclNjcmlwdHMgfHwgW10sXG4gICAgICAgIH07XG5cbiAgICAgICAgaW5qZWN0YWJsZVJlc291cmNlcy5zY3JpcHRzICAgICA9IHRoaXMuX3Jlc29sdmVSZWxhdGl2ZVVybHMocHJveHksIGluamVjdGFibGVSZXNvdXJjZXMuc2NyaXB0cyk7XG4gICAgICAgIGluamVjdGFibGVSZXNvdXJjZXMudXNlclNjcmlwdHMgPSB0aGlzLl9yZXNvbHZlUmVsYXRpdmVVcmxzKHByb3h5LCBpbmplY3RhYmxlUmVzb3VyY2VzLnVzZXJTY3JpcHRzKTtcbiAgICAgICAgaW5qZWN0YWJsZVJlc291cmNlcy5zdHlsZXNoZWV0cyA9IHRoaXMuX3Jlc29sdmVSZWxhdGl2ZVVybHMocHJveHksIGluamVjdGFibGVSZXNvdXJjZXMuc3R5bGVzaGVldHMpO1xuXG4gICAgICAgIHJldHVybiBpbmplY3RhYmxlUmVzb3VyY2VzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Byb2Nlc3NSZXNwb25zZUhlYWRlcnMgKGhlYWRlcnM6IEhlYWRlckVudHJ5W10gfCB1bmRlZmluZWQpOiBIZWFkZXJFbnRyeVtdIHtcbiAgICAgICAgaWYgKCFoZWFkZXJzKVxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuXG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmZpbHRlcihoZWFkZXIgPT4gIVJFU1BPTlNFX1JFTU9WRURfSEVBREVSUy5pbmNsdWRlcyhoZWFkZXIubmFtZS50b0xvd2VyQ2FzZSgpKSk7XG5cbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeUhlYWRlclZhbHVlcyhoZWFkZXJzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9mdWxmaWxsUmVxdWVzdCAoY2xpZW50OiBQcm90b2NvbEFwaSwgZnVsZmlsbFJlcXVlc3RJbmZvOiBGdWxmaWxsUmVxdWVzdFJlcXVlc3QsIGJvZHk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBzYWZlRnVsZmlsbFJlcXVlc3QoY2xpZW50LCB7XG4gICAgICAgICAgICByZXF1ZXN0SWQ6ICAgICAgIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXF1ZXN0SWQsXG4gICAgICAgICAgICByZXNwb25zZUNvZGU6ICAgIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXNwb25zZUNvZGUgfHwgU3RhdHVzQ29kZXMuT0ssXG4gICAgICAgICAgICByZXNwb25zZVBocmFzZTogIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXNwb25zZVBocmFzZSxcbiAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyczogdGhpcy5fcHJvY2Vzc1Jlc3BvbnNlSGVhZGVycyhmdWxmaWxsUmVxdWVzdEluZm8ucmVzcG9uc2VIZWFkZXJzKSxcbiAgICAgICAgICAgIGJvZHk6ICAgICAgICAgICAgdG9CYXNlNjRTdHJpbmcoYm9keSksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWRpcmVjdFRvRXJyb3JQYWdlIChjbGllbnQ6IFByb3RvY29sQXBpLCBlcnI6IEVycm9yLCB1cmw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjdXJyZW50VGVzdFJ1biA9IHRoaXMuX3Rlc3RSdW5CcmlkZ2UuZ2V0Q3VycmVudFRlc3RSdW4oKTtcblxuICAgICAgICBpZiAoIWN1cnJlbnRUZXN0UnVuKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGN1cnJlbnRUZXN0UnVuLnBlbmRpbmdQYWdlRXJyb3IgPSBuZXcgUGFnZUxvYWRFcnJvcihlcnIsIHVybCk7XG5cbiAgICAgICAgYXdhaXQgbmF2aWdhdGVUbyhjbGllbnQsIHRoaXMuX29wdGlvbnMuc3BlY2lhbFNlcnZpY2VSb3V0ZXMuZXJyb3JQYWdlMSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldERvY3VtZW50UmVzb3VyY2VJbmZvIChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50LCBjbGllbnQ6IFByb3RvY29sQXBpKTogUHJvbWlzZTxEb2N1bWVudFJlc291cmNlSW5mbz4ge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgICAgcmVzcG9uc2VFcnJvclJlYXNvbixcbiAgICAgICAgICAgIHJlc291cmNlVHlwZSxcbiAgICAgICAgfSA9IGV2ZW50O1xuXG4gICAgICAgIGlmIChyZXNvdXJjZVR5cGUgIT09ICdEb2N1bWVudCcpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgYm9keTogIG51bGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZUVycm9yUmVhc29uID09PSAnTmFtZU5vdFJlc29sdmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IGZhaWxlZFRvRmluZEROU0Vycm9yKHJlcXVlc3QudXJsKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnIsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6ICBudWxsLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlT2JqID0gYXdhaXQgY2xpZW50LkZldGNoLmdldFJlc3BvbnNlQm9keSh7IHJlcXVlc3RJZCB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlU3RyID0gZ2V0UmVzcG9uc2VBc1N0cmluZyhyZXNwb25zZU9iaik7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgYm9keTogIEJ1ZmZlci5mcm9tKHJlc3BvbnNlU3RyKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmVzb3VyY2VJbmplY3RvckxvZ2dlcignRmFpbGVkIHRvIHByb2Nlc3MgcmVxdWVzdDogJXMnLCByZXF1ZXN0LnVybCk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycixcbiAgICAgICAgICAgICAgICBib2R5OiAgbnVsbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJvY2Vzc0Fib3V0QmxhbmtQYWdlIChldmVudDogRnJhbWVOYXZpZ2F0ZWRFdmVudCwgdXNlclNjcmlwdHM6IHN0cmluZ1tdLCBjb250ZXh0U3RvcmFnZTogU2Vzc2lvblN0b3JhZ2VJbmZvIHwgbnVsbCwgY2xpZW50OiBQcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXNvdXJjZUluamVjdG9yTG9nZ2VyKCdIYW5kbGUgcGFnZSBhcyBhYm91dDpibGFuay4gT3JpZ2luIHVybDogJXMnLCBldmVudC5mcmFtZS51cmwpO1xuXG4gICAgICAgIGNvbnN0IGluamVjdGFibGVSZXNvdXJjZXMgPSBhd2FpdCB0aGlzLl9wcmVwYXJlSW5qZWN0YWJsZVJlc291cmNlcyh7IGlzSWZyYW1lOiBmYWxzZSwgdXNlclNjcmlwdHMsIGNvbnRleHRTdG9yYWdlIH0pIGFzIFBhZ2VJbmplY3RhYmxlUmVzb3VyY2VzO1xuICAgICAgICBjb25zdCBodG1sICAgICAgICAgICAgICAgID0gaW5qZWN0UmVzb3VyY2VzKEVNUFRZX1BBR0VfTUFSS1VQLCBpbmplY3RhYmxlUmVzb3VyY2VzKTtcblxuICAgICAgICBhd2FpdCBjbGllbnQuUGFnZS5zZXREb2N1bWVudENvbnRlbnQoe1xuICAgICAgICAgICAgZnJhbWVJZDogZXZlbnQuZnJhbWUuaWQsXG4gICAgICAgICAgICBodG1sLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJvY2Vzc0hUTUxQYWdlQ29udGVudCAoZnVsZmlsbFJlcXVlc3RJbmZvOiBGdWxmaWxsUmVxdWVzdFJlcXVlc3QsIGluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zOiBJbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9ucywgY2xpZW50OiBQcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbmplY3RhYmxlUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5fcHJlcGFyZUluamVjdGFibGVSZXNvdXJjZXMoaW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMpO1xuXG4gICAgICAgIC8vIE5PVEU6IGFuIHVuaGFuZGxlZCBleGNlcHRpb24gaW50ZXJydXB0cyB0aGUgdGVzdCBleGVjdXRpb24sXG4gICAgICAgIC8vIGFuZCB3ZSBhcmUgZm9yY2UgdG8gcmVkaXJlY3QgbWFudWFsbHkgdG8gdGhlIGlkbGUgcGFnZS5cbiAgICAgICAgaWYgKCFpbmplY3RhYmxlUmVzb3VyY2VzKVxuICAgICAgICAgICAgYXdhaXQgcmVkaXJlY3QoY2xpZW50LCBmdWxmaWxsUmVxdWVzdEluZm8ucmVxdWVzdElkLCB0aGlzLl9vcHRpb25zLnNwZWNpYWxTZXJ2aWNlUm91dGVzLmlkbGVQYWdlKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkUmVzcG9uc2VTdHIgPSBpbmplY3RSZXNvdXJjZXMoXG4gICAgICAgICAgICAgICAgZnVsZmlsbFJlcXVlc3RJbmZvLmJvZHkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIGluamVjdGFibGVSZXNvdXJjZXMsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2V0UGFnZUluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKGluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2Z1bGZpbGxSZXF1ZXN0KGNsaWVudCwgZnVsZmlsbFJlcXVlc3RJbmZvLCB1cGRhdGVkUmVzcG9uc2VTdHIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHByb2Nlc3NOb25Qcm94aWVkQ29udGVudCAoZnVsZmlsbFJlcXVlc3RJbmZvOiBGdWxmaWxsUmVxdWVzdFJlcXVlc3QsIGNsaWVudDogUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fZnVsZmlsbFJlcXVlc3QoY2xpZW50LCBmdWxmaWxsUmVxdWVzdEluZm8sIGZ1bGZpbGxSZXF1ZXN0SW5mby5ib2R5IGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0UGFnZUluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zIChpbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9uczogSW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMpOiBQYWdlUmVzdG9yZVN0b3JhZ2VzT3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHsgdXJsLCByZXN0b3JpbmdTdG9yYWdlcyB9ID0gaW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnM7XG5cbiAgICAgICAgaWYgKHVybCAmJiByZXN0b3JpbmdTdG9yYWdlcykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBob3N0OiAgICAgIG5ldyBVUkwodXJsKS5ob3N0LFxuICAgICAgICAgICAgICAgIHNlc3Npb25JZDogdGhpcy5fdGVzdFJ1bkJyaWRnZS5nZXRTZXNzaW9uSWQoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRPcHRpb25zIChvcHRpb25zOiBSZXNvdXJjZUluamVjdG9yT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG59XG4iXX0=
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vcmVzb3VyY2UtaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSw2REFRNkI7QUFDN0IsdURBQW9FO0FBQ3BFLDRFQUFvRDtBQUNwRCx5REFBZ0Q7QUFDaEQsaURBQW1EO0FBQ25ELHFDQUFtRDtBQVVuRCwwREFBZ0U7QUFDaEUsMkNBSXdCO0FBQ3hCLDBEQUFpRTtBQUVqRSxxQ0FBZ0Q7QUFFaEQsTUFBTSx3QkFBd0IsR0FBRztJQUM3Qiw4QkFBOEI7SUFDOUIsNEJBQTRCO0lBQzVCLDhCQUE4QjtDQUNqQyxDQUFDO0FBT0YsTUFBTSxpQ0FBaUMsR0FBRztJQUN0QyxvQkFBb0IsRUFBRTtRQUNsQixVQUFVLEVBQVcsRUFBRTtRQUN2QixVQUFVLEVBQVcsRUFBRTtRQUN2QixtQkFBbUIsRUFBRSxFQUFFO1FBQ3ZCLFFBQVEsRUFBYSxFQUFFO0tBQzFCO0lBRUQsZUFBZSxFQUFFLEtBQUs7Q0FDekIsQ0FBQztBQUVGLE1BQXFCLGdCQUFnQjtJQUlqQyxZQUFvQixhQUE0QjtRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFTLGlDQUFpQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFTywrQkFBK0IsQ0FBRSxjQUEwQztRQUMvRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUksRUFBRSxDQUFDLENBQUM7UUFFeEUsT0FBTyxrR0FBa0csS0FBSyxNQUFNLENBQUM7SUFDekgsQ0FBQztJQUVPLHlCQUF5QixDQUFFLGlCQUFz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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgUHJvdG9jb2wgZnJvbSAnZGV2dG9vbHMtcHJvdG9jb2wnO1xuaW1wb3J0IFJlcXVlc3RQYXVzZWRFdmVudCA9IFByb3RvY29sLkZldGNoLlJlcXVlc3RQYXVzZWRFdmVudDtcbmltcG9ydCBGcmFtZU5hdmlnYXRlZEV2ZW50ID0gUHJvdG9jb2wuUGFnZS5GcmFtZU5hdmlnYXRlZEV2ZW50O1xuaW1wb3J0IEZ1bGZpbGxSZXF1ZXN0UmVxdWVzdCA9IFByb3RvY29sLkZldGNoLkZ1bGZpbGxSZXF1ZXN0UmVxdWVzdDtcbmltcG9ydCBIZWFkZXJFbnRyeSA9IFByb3RvY29sLkZldGNoLkhlYWRlckVudHJ5O1xuaW1wb3J0IHtcbiAgICBpbmplY3RSZXNvdXJjZXMsXG4gICAgUGFnZUluamVjdGFibGVSZXNvdXJjZXMsXG4gICAgSU5KRUNUQUJMRV9TQ1JJUFRTIGFzIEhBTU1FUkhFQURfSU5KRUNUQUJMRV9TQ1JJUFRTLFxuICAgIGdldEFzc2V0UGF0aCxcbiAgICBQYWdlUmVzdG9yZVN0b3JhZ2VzT3B0aW9ucyxcbiAgICBTdG9yYWdlc1NuYXBzaG90LFxuICAgIFByb3h5LFxufSBmcm9tICd0ZXN0Y2FmZS1oYW1tZXJoZWFkJztcbmltcG9ydCB7IFNDUklQVFMsIFRFU1RDQUZFX1VJX1NUWUxFUyB9IGZyb20gJy4uL2Fzc2V0cy9pbmplY3RhYmxlcyc7XG5pbXBvcnQgRU1QVFlfUEFHRV9NQVJLVVAgZnJvbSAnLi9lbXB0eS1wYWdlLW1hcmt1cCc7XG5pbXBvcnQgeyBTdGF0dXNDb2RlcyB9IGZyb20gJ2h0dHAtc3RhdHVzLWNvZGVzJztcbmltcG9ydCB7IFBhZ2VMb2FkRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvdGVzdC1ydW4nO1xuaW1wb3J0IHsgcmVkaXJlY3QsIG5hdmlnYXRlVG8gfSBmcm9tICcuL3V0aWxzL2NkcCc7XG5cbmltcG9ydCB7XG4gICAgRG9jdW1lbnRSZXNvdXJjZUluZm8sXG4gICAgSW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMsXG4gICAgU2Vzc2lvbklkLFxuICAgIFNlc3Npb25TdG9yYWdlSW5mbyxcbiAgICBTcGVjaWFsU2VydmljZVJvdXRlcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmltcG9ydCB7IHJlc291cmNlSW5qZWN0b3JMb2dnZXIgfSBmcm9tICcuLi91dGlscy9kZWJ1Zy1sb2dnZXJzJztcbmltcG9ydCB7XG4gICAgZ2V0UmVzcG9uc2VBc1N0cmluZyxcbiAgICBzdHJpbmdpZnlIZWFkZXJWYWx1ZXMsXG4gICAgdG9CYXNlNjRTdHJpbmcsXG59IGZyb20gJy4vdXRpbHMvc3RyaW5nJztcbmltcG9ydCB7IHNhZmVGdWxmaWxsUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdC1waXBlbGluZS9zYWZlLWFwaSc7XG5pbXBvcnQgVGVzdFJ1bkJyaWRnZSBmcm9tICcuL3JlcXVlc3QtcGlwZWxpbmUvdGVzdC1ydW4tYnJpZGdlJztcbmltcG9ydCB7IGZhaWxlZFRvRmluZEROU0Vycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG5jb25zdCBSRVNQT05TRV9SRU1PVkVEX0hFQURFUlMgPSBbXG4gICAgJ2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3knLFxuICAgICdjcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeScsXG4gICAgJ2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3knLFxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUluamVjdG9yT3B0aW9ucyB7XG4gICAgc3BlY2lhbFNlcnZpY2VSb3V0ZXM6IFNwZWNpYWxTZXJ2aWNlUm91dGVzO1xuICAgIGRldmVsb3BtZW50TW9kZTogYm9vbGVhbjtcbn1cblxuY29uc3QgREVGQVVMVF9SRVNPVVJDRV9JTkpFQ1RPUl9PUFRJT05TID0ge1xuICAgIHNwZWNpYWxTZXJ2aWNlUm91dGVzOiB7XG4gICAgICAgIGVycm9yUGFnZTE6ICAgICAgICAgICcnLFxuICAgICAgICBlcnJvclBhZ2UyOiAgICAgICAgICAnJyxcbiAgICAgICAgb3BlbkZpbGVQcm90b2NvbFVybDogJycsXG4gICAgICAgIGlkbGVQYWdlOiAgICAgICAgICAgICcnLFxuICAgIH0sXG5cbiAgICBkZXZlbG9wbWVudE1vZGU6IGZhbHNlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzb3VyY2VJbmplY3RvciB7XG4gICAgcHJpdmF0ZSBfb3B0aW9uczogUmVzb3VyY2VJbmplY3Rvck9wdGlvbnM7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGVzdFJ1bkJyaWRnZTogVGVzdFJ1bkJyaWRnZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAodGVzdFJ1bkJyaWRnZTogVGVzdFJ1bkJyaWRnZSkge1xuICAgICAgICB0aGlzLl9vcHRpb25zICAgICAgID0gREVGQVVMVF9SRVNPVVJDRV9JTkpFQ1RPUl9PUFRJT05TO1xuICAgICAgICB0aGlzLl90ZXN0UnVuQnJpZGdlID0gdGVzdFJ1bkJyaWRnZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRSZXN0b3JlQ29udGV4dFN0b3JhZ2VTY3JpcHQgKGNvbnRleHRTdG9yYWdlPzogU2Vzc2lvblN0b3JhZ2VJbmZvIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUZXN0UnVuID0gdGhpcy5fdGVzdFJ1bkJyaWRnZS5nZXRDdXJyZW50VGVzdFJ1bigpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KGNvbnRleHRTdG9yYWdlPy5bY3VycmVudFRlc3RSdW4uaWRdIHx8ICcnKTtcblxuICAgICAgICByZXR1cm4gYE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICclbmF0aXZlQXV0b21hdGlvbkNvbnRleHRTdG9yYWdlJScsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogJHt2YWx1ZX0gfSk7YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRSZXN0b3JlU3RvcmFnZXNTY3JpcHQgKHJlc3RvcmluZ1N0b3JhZ2VzOiBTdG9yYWdlc1NuYXBzaG90IHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghcmVzdG9yaW5nU3RvcmFnZXMpXG4gICAgICAgICAgICByZXR1cm4gJyhmdW5jdGlvbigpIHt9KSgpJztcblxuICAgICAgICByZXR1cm4gYChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xuXG4gICAgICAgICAgICBjb25zdCBzbmFwc2hvdCA9ICR7SlNPTi5zdHJpbmdpZnkocmVzdG9yaW5nU3RvcmFnZXMpfTtcbiAgICAgICAgICAgIGNvbnN0IGxzICAgICAgID0gSlNPTi5wYXJzZShzbmFwc2hvdC5sb2NhbFN0b3JhZ2UpO1xuICAgICAgICAgICAgY29uc3Qgc3MgICAgICAgPSBKU09OLnBhcnNlKHNuYXBzaG90LnNlc3Npb25TdG9yYWdlKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsc1swXS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0obHNbMF1baV0sIGxzWzFdW2ldKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzc1swXS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShzc1swXVtpXSwgc3NbMV1baV0pO1xuICAgICAgICB9KSgpO1xuICAgICAgICBgO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc29sdmVSZWxhdGl2ZVVybHMgKHByb3h5OiBQcm94eSwgcmVsYXRpdmVVcmxzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHJlbGF0aXZlVXJscy5tYXAodXJsID0+IHByb3h5LnJlc29sdmVSZWxhdGl2ZVNlcnZpY2VVcmwodXJsKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfcHJlcGFyZUluamVjdGFibGVSZXNvdXJjZXMgKHsgaXNJZnJhbWUsIHJlc3RvcmluZ1N0b3JhZ2VzLCBjb250ZXh0U3RvcmFnZSwgdXNlclNjcmlwdHMgfTogSW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMpOiBQcm9taXNlPFBhZ2VJbmplY3RhYmxlUmVzb3VyY2VzIHwgbnVsbD4ge1xuICAgICAgICBpZiAoIXRoaXMuX3Rlc3RSdW5CcmlkZ2UuZ2V0Q3VycmVudFRlc3RSdW4oKSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHRhc2tTY3JpcHQgPSBhd2FpdCB0aGlzLl90ZXN0UnVuQnJpZGdlLmdldFRhc2tTY3JpcHQoeyBpc0lmcmFtZSwgcmVzdG9yaW5nU3RvcmFnZXMsIGNvbnRleHRTdG9yYWdlLCB1c2VyU2NyaXB0cyB9KTtcbiAgICAgICAgY29uc3QgcHJveHkgICAgICA9IHRoaXMuX3Rlc3RSdW5CcmlkZ2UuZ2V0QnJvd3NlckNvbm5lY3Rpb24oKS5icm93c2VyQ29ubmVjdGlvbkdhdGV3YXkucHJveHk7XG5cbiAgICAgICAgY29uc3QgaW5qZWN0YWJsZVJlc291cmNlcyA9IHtcbiAgICAgICAgICAgIHN0eWxlc2hlZXRzOiBbXG4gICAgICAgICAgICAgICAgVEVTVENBRkVfVUlfU1RZTEVTLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHNjcmlwdHM6IFtcbiAgICAgICAgICAgICAgICAuLi5IQU1NRVJIRUFEX0lOSkVDVEFCTEVfU0NSSVBUUy5tYXAoaHMgPT4gZ2V0QXNzZXRQYXRoKGhzLCB0aGlzLl9vcHRpb25zLmRldmVsb3BtZW50TW9kZSkpLFxuICAgICAgICAgICAgICAgIC4uLlNDUklQVFMubWFwKHMgPT4gZ2V0QXNzZXRQYXRoKHMsIHRoaXMuX29wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlKSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZW1iZWRkZWRTY3JpcHRzOiBbIHRoaXMuX2dldFJlc3RvcmVTdG9yYWdlc1NjcmlwdChyZXN0b3JpbmdTdG9yYWdlcyksIHRoaXMuX2dldFJlc3RvcmVDb250ZXh0U3RvcmFnZVNjcmlwdChjb250ZXh0U3RvcmFnZSksIHRhc2tTY3JpcHRdLFxuICAgICAgICAgICAgdXNlclNjcmlwdHM6ICAgICB1c2VyU2NyaXB0cyB8fCBbXSxcbiAgICAgICAgfTtcblxuICAgICAgICBpbmplY3RhYmxlUmVzb3VyY2VzLnNjcmlwdHMgICAgID0gdGhpcy5fcmVzb2x2ZVJlbGF0aXZlVXJscyhwcm94eSwgaW5qZWN0YWJsZVJlc291cmNlcy5zY3JpcHRzKTtcbiAgICAgICAgaW5qZWN0YWJsZVJlc291cmNlcy51c2VyU2NyaXB0cyA9IHRoaXMuX3Jlc29sdmVSZWxhdGl2ZVVybHMocHJveHksIGluamVjdGFibGVSZXNvdXJjZXMudXNlclNjcmlwdHMpO1xuICAgICAgICBpbmplY3RhYmxlUmVzb3VyY2VzLnN0eWxlc2hlZXRzID0gdGhpcy5fcmVzb2x2ZVJlbGF0aXZlVXJscyhwcm94eSwgaW5qZWN0YWJsZVJlc291cmNlcy5zdHlsZXNoZWV0cyk7XG5cbiAgICAgICAgcmV0dXJuIGluamVjdGFibGVSZXNvdXJjZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJvY2Vzc1Jlc3BvbnNlSGVhZGVycyAoaGVhZGVyczogSGVhZGVyRW50cnlbXSB8IHVuZGVmaW5lZCk6IEhlYWRlckVudHJ5W10ge1xuICAgICAgICBpZiAoIWhlYWRlcnMpXG4gICAgICAgICAgICByZXR1cm4gW107XG5cbiAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuZmlsdGVyKGhlYWRlciA9PiAhUkVTUE9OU0VfUkVNT1ZFRF9IRUFERVJTLmluY2x1ZGVzKGhlYWRlci5uYW1lLnRvTG93ZXJDYXNlKCkpKTtcblxuICAgICAgICByZXR1cm4gc3RyaW5naWZ5SGVhZGVyVmFsdWVzKGhlYWRlcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2Z1bGZpbGxSZXF1ZXN0IChjbGllbnQ6IFByb3RvY29sQXBpLCBmdWxmaWxsUmVxdWVzdEluZm86IEZ1bGZpbGxSZXF1ZXN0UmVxdWVzdCwgYm9keTogc3RyaW5nLCBzZXNzaW9uSWQ6IFNlc3Npb25JZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBzYWZlRnVsZmlsbFJlcXVlc3QoY2xpZW50LCB7XG4gICAgICAgICAgICByZXF1ZXN0SWQ6ICAgICAgIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXF1ZXN0SWQsXG4gICAgICAgICAgICByZXNwb25zZUNvZGU6ICAgIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXNwb25zZUNvZGUgfHwgU3RhdHVzQ29kZXMuT0ssXG4gICAgICAgICAgICByZXNwb25zZVBocmFzZTogIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXNwb25zZVBocmFzZSxcbiAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyczogdGhpcy5fcHJvY2Vzc1Jlc3BvbnNlSGVhZGVycyhmdWxmaWxsUmVxdWVzdEluZm8ucmVzcG9uc2VIZWFkZXJzKSxcbiAgICAgICAgICAgIGJvZHk6ICAgICAgICAgICAgdG9CYXNlNjRTdHJpbmcoYm9keSksXG4gICAgICAgIH0sIHNlc3Npb25JZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZGlyZWN0VG9FcnJvclBhZ2UgKGNsaWVudDogUHJvdG9jb2xBcGksIGVycjogRXJyb3IsIHVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUZXN0UnVuID0gdGhpcy5fdGVzdFJ1bkJyaWRnZS5nZXRDdXJyZW50VGVzdFJ1bigpO1xuXG4gICAgICAgIGlmICghY3VycmVudFRlc3RSdW4pXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY3VycmVudFRlc3RSdW4ucGVuZGluZ1BhZ2VFcnJvciA9IG5ldyBQYWdlTG9hZEVycm9yKGVyciwgdXJsKTtcblxuICAgICAgICBhd2FpdCBuYXZpZ2F0ZVRvKGNsaWVudCwgdGhpcy5fb3B0aW9ucy5zcGVjaWFsU2VydmljZVJvdXRlcy5lcnJvclBhZ2UxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RG9jdW1lbnRSZXNvdXJjZUluZm8gKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIGNsaWVudDogUHJvdG9jb2xBcGkpOiBQcm9taXNlPERvY3VtZW50UmVzb3VyY2VJbmZvPiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgICAgICByZXNwb25zZUVycm9yUmVhc29uLFxuICAgICAgICAgICAgcmVzb3VyY2VUeXBlLFxuICAgICAgICB9ID0gZXZlbnQ7XG5cbiAgICAgICAgaWYgKHJlc291cmNlVHlwZSAhPT0gJ0RvY3VtZW50Jykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgICAgICBib2R5OiAgbnVsbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlRXJyb3JSZWFzb24gPT09ICdOYW1lTm90UmVzb2x2ZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyID0gZmFpbGVkVG9GaW5kRE5TRXJyb3IocmVxdWVzdC51cmwpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycixcbiAgICAgICAgICAgICAgICAgICAgYm9keTogIG51bGwsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VPYmogPSBhd2FpdCBjbGllbnQuRmV0Y2guZ2V0UmVzcG9uc2VCb2R5KHsgcmVxdWVzdElkIH0pO1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VTdHIgPSBnZXRSZXNwb25zZUFzU3RyaW5nKHJlc3BvbnNlT2JqKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgICAgICBib2R5OiAgQnVmZmVyLmZyb20ocmVzcG9uc2VTdHIpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICByZXNvdXJjZUluamVjdG9yTG9nZ2VyKCdGYWlsZWQgdG8gcHJvY2VzcyByZXF1ZXN0OiAlcycsIHJlcXVlc3QudXJsKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyLFxuICAgICAgICAgICAgICAgIGJvZHk6ICBudWxsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcm9jZXNzQWJvdXRCbGFua1BhZ2UgKGV2ZW50OiBGcmFtZU5hdmlnYXRlZEV2ZW50LCB1c2VyU2NyaXB0czogc3RyaW5nW10sIGNvbnRleHRTdG9yYWdlOiBTZXNzaW9uU3RvcmFnZUluZm8gfCBudWxsLCBjbGllbnQ6IFByb3RvY29sQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJlc291cmNlSW5qZWN0b3JMb2dnZXIoJ0hhbmRsZSBwYWdlIGFzIGFib3V0OmJsYW5rLiBPcmlnaW4gdXJsOiAlcycsIGV2ZW50LmZyYW1lLnVybCk7XG5cbiAgICAgICAgY29uc3QgaW5qZWN0YWJsZVJlc291cmNlcyA9IGF3YWl0IHRoaXMuX3ByZXBhcmVJbmplY3RhYmxlUmVzb3VyY2VzKHsgaXNJZnJhbWU6IGZhbHNlLCB1c2VyU2NyaXB0cywgY29udGV4dFN0b3JhZ2UgfSkgYXMgUGFnZUluamVjdGFibGVSZXNvdXJjZXM7XG4gICAgICAgIGNvbnN0IGh0bWwgICAgICAgICAgICAgICAgPSBpbmplY3RSZXNvdXJjZXMoRU1QVFlfUEFHRV9NQVJLVVAsIGluamVjdGFibGVSZXNvdXJjZXMpO1xuXG4gICAgICAgIGF3YWl0IGNsaWVudC5QYWdlLnNldERvY3VtZW50Q29udGVudCh7XG4gICAgICAgICAgICBmcmFtZUlkOiBldmVudC5mcmFtZS5pZCxcbiAgICAgICAgICAgIGh0bWwsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcm9jZXNzSFRNTFBhZ2VDb250ZW50IChmdWxmaWxsUmVxdWVzdEluZm86IEZ1bGZpbGxSZXF1ZXN0UmVxdWVzdCwgaW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnM6IEluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zLCBjbGllbnQ6IFByb3RvY29sQXBpLCBzZXNzaW9uSWQ6IFNlc3Npb25JZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbmplY3RhYmxlUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5fcHJlcGFyZUluamVjdGFibGVSZXNvdXJjZXMoaW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMpO1xuXG4gICAgICAgIC8vIE5PVEU6IGFuIHVuaGFuZGxlZCBleGNlcHRpb24gaW50ZXJydXB0cyB0aGUgdGVzdCBleGVjdXRpb24sXG4gICAgICAgIC8vIGFuZCB3ZSBhcmUgZm9yY2UgdG8gcmVkaXJlY3QgbWFudWFsbHkgdG8gdGhlIGlkbGUgcGFnZS5cbiAgICAgICAgaWYgKCFpbmplY3RhYmxlUmVzb3VyY2VzKVxuICAgICAgICAgICAgYXdhaXQgcmVkaXJlY3QoY2xpZW50LCBmdWxmaWxsUmVxdWVzdEluZm8ucmVxdWVzdElkLCB0aGlzLl9vcHRpb25zLnNwZWNpYWxTZXJ2aWNlUm91dGVzLmlkbGVQYWdlKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkUmVzcG9uc2VTdHIgPSBpbmplY3RSZXNvdXJjZXMoXG4gICAgICAgICAgICAgICAgZnVsZmlsbFJlcXVlc3RJbmZvLmJvZHkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIGluamVjdGFibGVSZXNvdXJjZXMsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2V0UGFnZUluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKGluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2Z1bGZpbGxSZXF1ZXN0KGNsaWVudCwgZnVsZmlsbFJlcXVlc3RJbmZvLCB1cGRhdGVkUmVzcG9uc2VTdHIsIHNlc3Npb25JZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJvY2Vzc05vblByb3hpZWRDb250ZW50IChmdWxmaWxsUmVxdWVzdEluZm86IEZ1bGZpbGxSZXF1ZXN0UmVxdWVzdCwgY2xpZW50OiBQcm90b2NvbEFwaSwgc2Vzc2lvbklkOiBTZXNzaW9uSWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fZnVsZmlsbFJlcXVlc3QoY2xpZW50LCBmdWxmaWxsUmVxdWVzdEluZm8sIGZ1bGZpbGxSZXF1ZXN0SW5mby5ib2R5IGFzIHN0cmluZywgc2Vzc2lvbklkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRQYWdlSW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMgKGluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zOiBJbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9ucyk6IFBhZ2VSZXN0b3JlU3RvcmFnZXNPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgeyB1cmwsIHJlc3RvcmluZ1N0b3JhZ2VzIH0gPSBpbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9ucztcblxuICAgICAgICBpZiAodXJsICYmIHJlc3RvcmluZ1N0b3JhZ2VzKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhvc3Q6ICAgICAgbmV3IFVSTCh1cmwpLmhvc3QsXG4gICAgICAgICAgICAgICAgc2Vzc2lvbklkOiB0aGlzLl90ZXN0UnVuQnJpZGdlLmdldFNlc3Npb25JZCgpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9wdGlvbnMgKG9wdGlvbnM6IFJlc291cmNlSW5qZWN0b3JPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -9,4 +9,4 @@ var EventType;
|
|
|
9
9
|
EventType[EventType["Delay"] = 3] = "Delay";
|
|
10
10
|
EventType[EventType["InsertText"] = 4] = "InsertText";
|
|
11
11
|
})(EventType = exports.EventType || (exports.EventType = {}));
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0NBLElBQVksU0FNWDtBQU5ELFdBQVksU0FBUztJQUNqQiwyQ0FBSyxDQUFBO0lBQ0wsaURBQVEsQ0FBQTtJQUNSLDJDQUFLLENBQUE7SUFDTCwyQ0FBSyxDQUFBO0lBQ0wscURBQVUsQ0FBQTtBQUNkLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBOYXRpdmVBdXRvbWF0aW9uSW5pdE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgU3RvcmFnZXNTbmFwc2hvdCB9IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BlY2lhbFNlcnZpY2VSb3V0ZXMge1xuICAgIGVycm9yUGFnZTE6IHN0cmluZztcbiAgICBlcnJvclBhZ2UyOiBzdHJpbmc7XG4gICAgb3BlbkZpbGVQcm90b2NvbFVybDogc3RyaW5nO1xuICAgIGlkbGVQYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRSZXNvdXJjZUluZm8ge1xuICAgIGVycm9yOiBhbnk7XG4gICAgYm9keTogQnVmZmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlciB7XG4gICAgY29uZGl0aW9uOiAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgb3B0aW9ucz86IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2VydmljZVJvdXRlcz86IFNwZWNpYWxTZXJ2aWNlUm91dGVzKSA9PiBib29sZWFuO1xuICAgIGhhbmRsZXI6IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50LCBjbGllbnQ6IFByb3RvY29sQXBpLCBvcHRpb25zPzogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zIHtcbiAgICBpc0lmcmFtZTogYm9vbGVhbjtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgcmVzdG9yaW5nU3RvcmFnZXM/OiBTdG9yYWdlc1NuYXBzaG90IHwgbnVsbDtcbiAgICBjb250ZXh0U3RvcmFnZT86IFNlc3Npb25TdG9yYWdlSW5mbztcbiAgICB1c2VyU2NyaXB0cz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uU3RvcmFnZUluZm8gPSBEaWN0aW9uYXJ5PERpY3Rpb25hcnk8c3RyaW5nPj4gfCBudWxsO1xuXG5leHBvcnQgZW51bSBFdmVudFR5cGUge1xuICAgIE1vdXNlLFxuICAgIEtleWJvYXJkLFxuICAgIFRvdWNoLFxuICAgIERlbGF5LFxuICAgIEluc2VydFRleHQsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGludWVSZXF1ZXN0QXJncyB7XG4gICAgcG9zdERhdGE/
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0NBLElBQVksU0FNWDtBQU5ELFdBQVksU0FBUztJQUNqQiwyQ0FBSyxDQUFBO0lBQ0wsaURBQVEsQ0FBQTtJQUNSLDJDQUFLLENBQUE7SUFDTCwyQ0FBSyxDQUFBO0lBQ0wscURBQVUsQ0FBQTtBQUNkLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBOYXRpdmVBdXRvbWF0aW9uSW5pdE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgU3RvcmFnZXNTbmFwc2hvdCB9IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BlY2lhbFNlcnZpY2VSb3V0ZXMge1xuICAgIGVycm9yUGFnZTE6IHN0cmluZztcbiAgICBlcnJvclBhZ2UyOiBzdHJpbmc7XG4gICAgb3BlbkZpbGVQcm90b2NvbFVybDogc3RyaW5nO1xuICAgIGlkbGVQYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRSZXNvdXJjZUluZm8ge1xuICAgIGVycm9yOiBhbnk7XG4gICAgYm9keTogQnVmZmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlciB7XG4gICAgY29uZGl0aW9uOiAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgb3B0aW9ucz86IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2VydmljZVJvdXRlcz86IFNwZWNpYWxTZXJ2aWNlUm91dGVzKSA9PiBib29sZWFuO1xuICAgIGhhbmRsZXI6IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50LCBjbGllbnQ6IFByb3RvY29sQXBpLCBvcHRpb25zPzogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zIHtcbiAgICBpc0lmcmFtZTogYm9vbGVhbjtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgcmVzdG9yaW5nU3RvcmFnZXM/OiBTdG9yYWdlc1NuYXBzaG90IHwgbnVsbDtcbiAgICBjb250ZXh0U3RvcmFnZT86IFNlc3Npb25TdG9yYWdlSW5mbztcbiAgICB1c2VyU2NyaXB0cz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uU3RvcmFnZUluZm8gPSBEaWN0aW9uYXJ5PERpY3Rpb25hcnk8c3RyaW5nPj4gfCBudWxsO1xuXG5leHBvcnQgZW51bSBFdmVudFR5cGUge1xuICAgIE1vdXNlLFxuICAgIEtleWJvYXJkLFxuICAgIFRvdWNoLFxuICAgIERlbGF5LFxuICAgIEluc2VydFRleHQsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGludWVSZXF1ZXN0QXJncyB7XG4gICAgcG9zdERhdGE/OiBzdHJpbmc7XG4gICAgbWV0aG9kPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgU2Vzc2lvbklkID0gc3RyaW5nIHwgdW5kZWZpbmVkO1xuIl19
|
|
@@ -63,8 +63,9 @@ function createRequestPausedEventForResponse(mockedResponse, requestEvent) {
|
|
|
63
63
|
exports.createRequestPausedEventForResponse = createRequestPausedEventForResponse;
|
|
64
64
|
function getRequestId(event) {
|
|
65
65
|
if (isRequestPausedEvent(event))
|
|
66
|
-
|
|
66
|
+
// NOTE: the `networkId` field can be missing
|
|
67
|
+
return event.networkId || event.requestId;
|
|
67
68
|
return event.frame.loaderId;
|
|
68
69
|
}
|
|
69
70
|
exports.getRequestId = getRequestId;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hdGl2ZS1hdXRvbWF0aW9uL3V0aWxzL2NkcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5REFBZ0Q7QUFLaEQsdUNBQW1EO0FBQ25ELG9DQUFxQztBQUNyQyxzQ0FBZ0Q7QUFHekMsS0FBSyxVQUFVLFFBQVEsQ0FBRSxNQUFtQixFQUFFLFNBQWlCLEVBQUUsR0FBVztJQUMvRSxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzlCLFNBQVM7UUFDVCxZQUFZLEVBQUssK0JBQVcsQ0FBQyxpQkFBaUI7UUFDOUMsZUFBZSxFQUFFO1lBQ2IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7U0FDbkM7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDO0FBUkQsNEJBUUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUFFLE1BQW1CLEVBQUUsR0FBVztJQUM5RCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsZ0NBRUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFFLE1BQW1CLEVBQUUsSUFBZSxFQUFFLE9BQVk7SUFDbkYsUUFBUSxDQUFDLElBQUksRUFBRTtRQUNYLEtBQUssaUJBQVMsQ0FBQyxLQUFLO1lBQ2hCLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNO1FBQ1YsS0FBSyxpQkFBUyxDQUFDLFFBQVE7WUFDbkIsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLE1BQU07UUFDVixLQUFLLGlCQUFTLENBQUMsVUFBVTtZQUNyQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU07UUFDVixLQUFLLGlCQUFTLENBQUMsS0FBSztZQUNoQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsTUFBTTtRQUNWO1lBQ0ksTUFBTSxJQUFBLDRCQUFtQixFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQztBQUNMLENBQUM7QUFqQkQsc0NBaUJDO0FBRUQsU0FBZ0IsU0FBUyxDQUFFLEtBQXlCO0lBQ2hELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFGRCw4QkFFQztBQUVELFNBQWdCLGNBQWMsQ0FBRSxVQUFrQjtJQUM5QyxPQUFPLFVBQVUsS0FBSyxHQUFHLENBQUM7QUFDOUIsQ0FBQztBQUZELHdDQUVDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUUsR0FBUTtJQUMxQyxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUM7QUFDakUsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUUsS0FBeUI7SUFDekQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUM7QUFDOUMsQ0FBQztBQUZELGdEQUVDO0FBRUQsU0FBZ0IsbUNBQW1DLENBQUUsY0FBbUMsRUFBRSxZQUFnQztJQUN0SCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRTtRQUNuQyxrQkFBa0IsRUFBRSxjQUFjLENBQUMsVUFBVTtRQUM3QyxlQUFlLEVBQUssSUFBQSxnQ0FBc0IsRUFBQyxjQUFjLENBQUMsT0FBTyxDQUFDO0tBQ3JFLENBQUMsQ0FBQztBQUNQLENBQUM7QUFMRCxrRkFLQztBQUVELFNBQWdCLFlBQVksQ0FBRSxLQUErQztJQUN6RSxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQztRQUMzQiw2Q0FBNkM7UUFDN0MsT0FBTyxLQUFLLENBQUMsU0FBbUIsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO0lBRXhELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7QUFDaEMsQ0FBQztBQU5ELG9DQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXNDb2RlcyB9IGZyb20gJ2h0dHAtc3RhdHVzLWNvZGVzJztcbmltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IEZyYW1lTmF2aWdhdGVkRXZlbnQgPSBQcm90b2NvbC5QYWdlLkZyYW1lTmF2aWdhdGVkRXZlbnQ7XG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2VMaWtlIH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5pbXBvcnQgeyBjb252ZXJ0VG9IZWFkZXJFbnRyaWVzIH0gZnJvbSAnLi9oZWFkZXJzJztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHVua25vd25DRFBFdmVudFR5cGUgfSBmcm9tICcuLi9lcnJvcnMnO1xuXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWRpcmVjdCAoY2xpZW50OiBQcm90b2NvbEFwaSwgcmVxdWVzdElkOiBzdHJpbmcsIHVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgY2xpZW50LkZldGNoLmZ1bGZpbGxSZXF1ZXN0KHtcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICByZXNwb25zZUNvZGU6ICAgIFN0YXR1c0NvZGVzLk1PVkVEX1BFUk1BTkVOVExZLFxuICAgICAgICByZXNwb25zZUhlYWRlcnM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2xvY2F0aW9uJywgdmFsdWU6IHVybCB9LFxuICAgICAgICBdLFxuICAgIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGVUbyAoY2xpZW50OiBQcm90b2NvbEFwaSwgdXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBjbGllbnQuUGFnZS5uYXZpZ2F0ZSh7IHVybCB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnQgKGNsaWVudDogUHJvdG9jb2xBcGksIHR5cGU6IEV2ZW50VHlwZSwgb3B0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3dpdGNoICgrdHlwZSkge1xuICAgICAgICBjYXNlIEV2ZW50VHlwZS5Nb3VzZTpcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5JbnB1dC5kaXNwYXRjaE1vdXNlRXZlbnQob3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFdmVudFR5cGUuS2V5Ym9hcmQ6XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuSW5wdXQuZGlzcGF0Y2hLZXlFdmVudChvcHRpb25zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEV2ZW50VHlwZS5JbnNlcnRUZXh0OlxuICAgICAgICAgICAgYXdhaXQgY2xpZW50LklucHV0Lmluc2VydFRleHQoeyB0ZXh0OiBvcHRpb25zLnRleHQgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFdmVudFR5cGUuVG91Y2g6XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuSW5wdXQuZGlzcGF0Y2hUb3VjaEV2ZW50KG9wdGlvbnMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyB1bmtub3duQ0RQRXZlbnRUeXBlKG9wdGlvbnMudHlwZSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXF1ZXN0IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZW50LnJlc3BvbnNlU3RhdHVzQ29kZSA9PT0gdm9pZCAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmF1dGhvcml6ZWQgKHN0YXR1c0NvZGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0dXNDb2RlID09PSA0MDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RQYXVzZWRFdmVudCAodmFsOiBhbnkpOiB2YWwgaXMgUmVxdWVzdFBhdXNlZEV2ZW50IHtcbiAgICByZXR1cm4gdmFsICYmIHZhbC5mcmFtZUlkICYmIHR5cGVvZiB2YWwucmVxdWVzdCA9PT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZWZsaWdodFJlcXVlc3QgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZXZlbnQucmVxdWVzdC5tZXRob2QgPT09ICdPUFRJT05TJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlcXVlc3RQYXVzZWRFdmVudEZvclJlc3BvbnNlIChtb2NrZWRSZXNwb25zZTogSW5jb21pbmdNZXNzYWdlTGlrZSwgcmVxdWVzdEV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBSZXF1ZXN0UGF1c2VkRXZlbnQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZXF1ZXN0RXZlbnQsIHtcbiAgICAgICAgcmVzcG9uc2VTdGF0dXNDb2RlOiBtb2NrZWRSZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgICByZXNwb25zZUhlYWRlcnM6ICAgIGNvbnZlcnRUb0hlYWRlckVudHJpZXMobW9ja2VkUmVzcG9uc2UuaGVhZGVycyksXG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0SWQgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQgfCBGcmFtZU5hdmlnYXRlZEV2ZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaXNSZXF1ZXN0UGF1c2VkRXZlbnQoZXZlbnQpKVxuICAgICAgICAvLyBOT1RFOiB0aGUgYG5ldHdvcmtJZGAgZmllbGQgY2FuIGJlIG1pc3NpbmdcbiAgICAgICAgcmV0dXJuIGV2ZW50Lm5ldHdvcmtJZCBhcyBzdHJpbmcgfHwgZXZlbnQucmVxdWVzdElkO1xuXG4gICAgcmV0dXJuIGV2ZW50LmZyYW1lLmxvYWRlcklkO1xufVxuIl19
|
package/lib/role/role.js
CHANGED
|
@@ -22,47 +22,24 @@ class Role extends events_1.EventEmitter {
|
|
|
22
22
|
this.initErr = null;
|
|
23
23
|
}
|
|
24
24
|
async _storeStateSnapshot(testRun) {
|
|
25
|
-
var _a;
|
|
26
25
|
if (this.initErr)
|
|
27
26
|
return;
|
|
28
27
|
this.stateSnapshot = await testRun.getStateSnapshot();
|
|
29
|
-
await ((_a = testRun === null || testRun === void 0 ? void 0 : testRun.compilerService) === null || _a === void 0 ? void 0 : _a.updateRoleProperty({
|
|
30
|
-
roleId: this.id,
|
|
31
|
-
name: 'stateSnapshot',
|
|
32
|
-
value: this.stateSnapshot,
|
|
33
|
-
}));
|
|
34
28
|
}
|
|
35
|
-
|
|
36
|
-
this._initFn = () => {
|
|
37
|
-
var _a;
|
|
38
|
-
return (_a = testRun.compilerService) === null || _a === void 0 ? void 0 : _a.executeRoleInitFn({
|
|
39
|
-
testRunId: testRun.id,
|
|
40
|
-
roleId: this.id,
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
async _setInitError(err, testRun) {
|
|
45
|
-
var _a;
|
|
29
|
+
async _setInitError(err) {
|
|
46
30
|
this.initErr = err;
|
|
47
|
-
await ((_a = testRun === null || testRun === void 0 ? void 0 : testRun.compilerService) === null || _a === void 0 ? void 0 : _a.updateRoleProperty({
|
|
48
|
-
roleId: this.id,
|
|
49
|
-
name: 'initErr',
|
|
50
|
-
value: this.initErr,
|
|
51
|
-
}));
|
|
52
31
|
}
|
|
53
32
|
async _executeInitFn(testRun) {
|
|
54
33
|
if (this.initErr)
|
|
55
34
|
return;
|
|
56
35
|
try {
|
|
57
|
-
if (testRun.compilerService)
|
|
58
|
-
this._wrapTestFn(testRun);
|
|
59
36
|
let fn = () => this._initFn(testRun);
|
|
60
37
|
fn = testRun.decoratePreventEmitActionEvents(fn, { prevent: false });
|
|
61
38
|
fn = testRun.decorateDisableDebugBreakpoints(fn, { disable: false });
|
|
62
39
|
await fn();
|
|
63
40
|
}
|
|
64
41
|
catch (err) {
|
|
65
|
-
await this._setInitError(err
|
|
42
|
+
await this._setInitError(err);
|
|
66
43
|
}
|
|
67
44
|
}
|
|
68
45
|
async _switchToCleanRun(testRun) {
|
|
@@ -70,11 +47,10 @@ class Role extends events_1.EventEmitter {
|
|
|
70
47
|
await testRun.switchToCleanRun(this.loginUrl);
|
|
71
48
|
}
|
|
72
49
|
catch (err) {
|
|
73
|
-
await this._setInitError(err
|
|
50
|
+
await this._setInitError(err);
|
|
74
51
|
}
|
|
75
52
|
}
|
|
76
53
|
async initialize(testRun) {
|
|
77
|
-
var _a;
|
|
78
54
|
this.phase = phase_1.default.pendingInitialization;
|
|
79
55
|
await this._switchToCleanRun(testRun);
|
|
80
56
|
await this._executeInitFn(testRun);
|
|
@@ -82,15 +58,9 @@ class Role extends events_1.EventEmitter {
|
|
|
82
58
|
if (this.opts.preserveUrl)
|
|
83
59
|
await this.setCurrentUrlAsRedirectUrl(testRun);
|
|
84
60
|
this.phase = phase_1.default.initialized;
|
|
85
|
-
await ((_a = testRun.compilerService) === null || _a === void 0 ? void 0 : _a.updateRoleProperty({
|
|
86
|
-
roleId: this.id,
|
|
87
|
-
name: 'phase',
|
|
88
|
-
value: this.phase,
|
|
89
|
-
}));
|
|
90
61
|
this.emit('initialized');
|
|
91
62
|
}
|
|
92
63
|
async setCurrentUrlAsRedirectUrl(testRun) {
|
|
93
|
-
var _a;
|
|
94
64
|
const currentUrl = await testRun.getCurrentUrl();
|
|
95
65
|
if (this.opts.preserveUrl)
|
|
96
66
|
this.redirectUrl = currentUrl;
|
|
@@ -98,11 +68,6 @@ class Role extends events_1.EventEmitter {
|
|
|
98
68
|
this.redirectUrl = this.redirectUrl || {};
|
|
99
69
|
this.redirectUrl[testRun.test.id] = currentUrl;
|
|
100
70
|
}
|
|
101
|
-
await ((_a = testRun.compilerService) === null || _a === void 0 ? void 0 : _a.updateRoleProperty({
|
|
102
|
-
roleId: this.id,
|
|
103
|
-
name: 'redirectUrl',
|
|
104
|
-
value: this.redirectUrl,
|
|
105
|
-
}));
|
|
106
71
|
}
|
|
107
72
|
static from(init) {
|
|
108
73
|
if (!init)
|
|
@@ -119,4 +84,4 @@ class Role extends events_1.EventEmitter {
|
|
|
119
84
|
}
|
|
120
85
|
exports.default = Role;
|
|
121
86
|
module.exports = exports.default;
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xlL3JvbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBc0M7QUFDdEMsb0RBQWdDO0FBQ2hDLDZEQUFvRDtBQUNwRCxvRUFBeUM7QUFDekMsbUNBQWdDO0FBUWhDLE1BQXFCLElBQUssU0FBUSxxQkFBWTtJQVcxQyxZQUFvQixRQUF1QixFQUFFLE1BQXVCLEVBQUUsT0FBTyxHQUFHLEVBQUU7UUFDOUUsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsdUJBQVUsQ0FBQyxHQUFLLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsRUFBRSxHQUFjLElBQUEsZUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQVcsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFTLENBQUMsV0FBVyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQVEsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQVMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQVksT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUssSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsbUNBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFTLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU8sS0FBSyxDQUFDLG1CQUFtQixDQUFFLE9BQWdCOztRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQ1osT0FBTztRQUVYLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV0RCxNQUFNLENBQUEsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZUFBZSwwQ0FBRSxr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QUFDLGFBQWEsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFTLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFFNUMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBNUlELHVCQTRJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgUm9sZVBoYXNlIGZyb20gJy4vcGhhc2UnO1xuaW1wb3J0IHsgU3RhdGVTbmFwc2hvdCB9IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IHJvbGVNYXJrZXIgZnJvbSAnLi9tYXJrZXItc3ltYm9sJztcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gJ25hbm9pZCc7XG5pbXBvcnQgVGVzdFJ1biBmcm9tICcuLi90ZXN0LXJ1bic7XG5pbXBvcnQgVGVzdENhZmVFcnJvckxpc3QgZnJvbSAnLi4vZXJyb3JzL2Vycm9yLWxpc3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZGlyZWN0VXJsIHtcbiAgICBbdGVzdElkOiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvbGUgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuICAgIHB1YmxpYyBwaGFzZTogUm9sZVBoYXNlO1xuICAgIHB1YmxpYyBsb2dpblVybDogc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgcmVkaXJlY3RVcmw6IFJlZGlyZWN0VXJsIHwgc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgX2luaXRGbjogRnVuY3Rpb24gfCBudWxsO1xuICAgIHB1YmxpYyBvcHRzOiBSb2xlT3B0aW9ucztcbiAgICBwdWJsaWMgaW5pdEVycjogbnVsbCB8IEVycm9yIHwgVGVzdENhZmVFcnJvckxpc3Q7XG4gICAgcHVibGljIHN0YXRlU25hcHNob3Q6IFN0YXRlU25hcHNob3Q7XG4gICAgcHJpdmF0ZSBbcm9sZU1hcmtlcl06IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGxvZ2luVXJsOiBzdHJpbmcgfCBudWxsLCBpbml0Rm46IEZ1bmN0aW9uIHwgbnVsbCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpc1tyb2xlTWFya2VyXSAgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pZCAgICAgICAgICAgID0gbmFub2lkKDcpO1xuICAgICAgICB0aGlzLnBoYXNlICAgICAgICAgPSBsb2dpblVybCA/IFJvbGVQaGFzZS51bmluaXRpYWxpemVkIDogUm9sZVBoYXNlLmluaXRpYWxpemVkO1xuICAgICAgICB0aGlzLmxvZ2luVXJsICAgICAgPSBsb2dpblVybDtcbiAgICAgICAgdGhpcy5faW5pdEZuICAgICAgID0gaW5pdEZuO1xuICAgICAgICB0aGlzLm9wdHMgICAgICAgICAgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlZGlyZWN0VXJsICAgPSBudWxsO1xuICAgICAgICB0aGlzLnN0YXRlU25hcHNob3QgPSBTdGF0ZVNuYXBzaG90LmVtcHR5KCk7XG4gICAgICAgIHRoaXMuaW5pdEVyciAgICAgICA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc3RvcmVTdGF0ZVNuYXBzaG90ICh0ZXN0UnVuOiBUZXN0UnVuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmluaXRFcnIpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdGhpcy5zdGF0ZVNuYXBzaG90ID0gYXdhaXQgdGVzdFJ1bi5nZXRTdGF0ZVNuYXBzaG90KCk7XG5cbiAgICAgICAgYXdhaXQgdGVzdFJ1bj8uY29tcGlsZXJTZXJ2aWNlPy51cGRhdGVSb2xlUHJvcGVydHkoe1xuICAgICAgICAgICAgcm9sZUlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgbmFtZTogICAnc3RhdGVTbmFwc2hvdCcsXG4gICAgICAgICAgICB2YWx1ZTogIHRoaXMuc3RhdGVTbmFwc2hvdCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfd3JhcFRlc3RGbiAodGVzdFJ1bjogVGVzdFJ1bik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0Rm4gPSAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGVzdFJ1bi5jb21waWxlclNlcnZpY2U/LmV4ZWN1dGVSb2xlSW5pdEZuKHtcbiAgICAgICAgICAgICAgICB0ZXN0UnVuSWQ6IHRlc3RSdW4uaWQsXG4gICAgICAgICAgICAgICAgcm9sZUlkOiAgICB0aGlzLmlkLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0SW5pdEVycm9yIChlcnI6IEVycm9yLCB0ZXN0UnVuOiBUZXN0UnVuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuaW5pdEVyciA9IGVycjtcblxuICAgICAgICBhd2FpdCB0ZXN0UnVuPy5jb21waWxlclNlcnZpY2U/LnVwZGF0ZVJvbGVQcm9wZXJ0eSh7XG4gICAgICAgICAgICByb2xlSWQ6IHRoaXMuaWQsXG4gICAgICAgICAgICBuYW1lOiAgICdpbml0RXJyJyxcbiAgICAgICAgICAgIHZhbHVlOiAgdGhpcy5pbml0RXJyLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9leGVjdXRlSW5pdEZuICh0ZXN0UnVuOiBUZXN0UnVuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmluaXRFcnIpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh0ZXN0UnVuLmNvbXBpbGVyU2VydmljZSlcbiAgICAgICAgICAgICAgICB0aGlzLl93cmFwVGVzdEZuKHRlc3RSdW4pO1xuXG4gICAgICAgICAgICBsZXQgZm4gPSAoKTogUHJvbWlzZTx2b2lkPiA9PiAodGhpcy5faW5pdEZuIGFzIEZ1bmN0aW9uKSh0ZXN0UnVuKTtcblxuICAgICAgICAgICAgZm4gPSB0ZXN0UnVuLmRlY29yYXRlUHJldmVudEVtaXRBY3Rpb25FdmVudHMoZm4sIHsgcHJldmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICBmbiA9IHRlc3RSdW4uZGVjb3JhdGVEaXNhYmxlRGVidWdCcmVha3BvaW50cyhmbiwgeyBkaXNhYmxlOiBmYWxzZSB9KTtcblxuICAgICAgICAgICAgYXdhaXQgZm4oKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEluaXRFcnJvcihlcnIsIHRlc3RSdW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc3dpdGNoVG9DbGVhblJ1biAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGVzdFJ1bi5zd2l0Y2hUb0NsZWFuUnVuKHRoaXMubG9naW5VcmwgYXMgc3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEluaXRFcnJvcihlcnIsIHRlc3RSdW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXRpYWxpemUgKHRlc3RSdW46IFRlc3RSdW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5waGFzZSA9IFJvbGVQaGFzZS5wZW5kaW5nSW5pdGlhbGl6YXRpb247XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fc3dpdGNoVG9DbGVhblJ1bih0ZXN0UnVuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fZXhlY3V0ZUluaXRGbih0ZXN0UnVuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fc3RvcmVTdGF0ZVNuYXBzaG90KHRlc3RSdW4pO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdHMucHJlc2VydmVVcmwpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNldEN1cnJlbnRVcmxBc1JlZGlyZWN0VXJsKHRlc3RSdW4pO1xuXG4gICAgICAgIHRoaXMucGhhc2UgPSBSb2xlUGhhc2UuaW5pdGlhbGl6ZWQ7XG5cbiAgICAgICAgYXdhaXQgdGVzdFJ1bi5jb21waWxlclNlcnZpY2U/LnVwZGF0ZVJvbGVQcm9wZXJ0eSh7XG4gICAgICAgICAgICByb2xlSWQ6IHRoaXMuaWQsXG4gICAgICAgICAgICBuYW1lOiAgICdwaGFzZScsXG4gICAgICAgICAgICB2YWx1ZTogIHRoaXMucGhhc2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZW1pdCgnaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2V0Q3VycmVudFVybEFzUmVkaXJlY3RVcmwgKHRlc3RSdW46IFRlc3RSdW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IHRlc3RSdW4uZ2V0Q3VycmVudFVybCgpO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdHMucHJlc2VydmVVcmwpXG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0VXJsID0gY3VycmVudFVybDtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0VXJsID0gdGhpcy5yZWRpcmVjdFVybCB8fCB7fTtcbiAgICAgICAgICAgICh0aGlzLnJlZGlyZWN0VXJsIGFzIFJlZGlyZWN0VXJsKVt0ZXN0UnVuLnRlc3QuaWRdID0gY3VycmVudFVybDtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRlc3RSdW4uY29tcGlsZXJTZXJ2aWNlPy51cGRhdGVSb2xlUHJvcGVydHkoe1xuICAgICAgICAgICAgcm9sZUlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgbmFtZTogICAncmVkaXJlY3RVcmwnLFxuICAgICAgICAgICAgdmFsdWU6ICB0aGlzLnJlZGlyZWN0VXJsLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb20gKGluaXQ6IHVua25vd24pOiBSb2xlIHwgbnVsbCB7XG4gICAgICAgIGlmICghaW5pdClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRSb2xlID0gaW5pdCBhcyBSb2xlO1xuXG4gICAgICAgIGNvbnN0IHJvbGUgPSBuZXcgUm9sZShzZXJpYWxpemVkUm9sZS5sb2dpblVybCwgc2VyaWFsaXplZFJvbGUuX2luaXRGbiwgc2VyaWFsaXplZFJvbGUub3B0cyk7XG5cbiAgICAgICAgcm9sZS5pZCAgICAgICAgICAgID0gc2VyaWFsaXplZFJvbGUuaWQ7XG4gICAgICAgIHJvbGUucGhhc2UgICAgICAgICA9IHNlcmlhbGl6ZWRSb2xlLnBoYXNlO1xuICAgICAgICByb2xlLnJlZGlyZWN0VXJsICAgPSBzZXJpYWxpemVkUm9sZS5yZWRpcmVjdFVybDtcbiAgICAgICAgcm9sZS5zdGF0ZVNuYXBzaG90ID0gc2VyaWFsaXplZFJvbGUuc3RhdGVTbmFwc2hvdDtcbiAgICAgICAgcm9sZS5pbml0RXJyICAgICAgID0gc2VyaWFsaXplZFJvbGUuaW5pdEVycjtcblxuICAgICAgICByZXR1cm4gcm9sZTtcbiAgICB9XG59XG4iXX0=
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xlL3JvbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBc0M7QUFDdEMsb0RBQWdDO0FBQ2hDLDZEQUFvRDtBQUNwRCxvRUFBeUM7QUFDekMsbUNBQWdDO0FBUWhDLE1BQXFCLElBQUssU0FBUSxxQkFBWTtJQVcxQyxZQUFvQixRQUF1QixFQUFFLE1BQXVCLEVBQUUsT0FBTyxHQUFHLEVBQUU7UUFDOUUsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsdUJBQVUsQ0FBQyxHQUFLLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsRUFBRSxHQUFjLElBQUEsZUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQVcsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFTLENBQUMsV0FBVyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQVEsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQVMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQVksT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUssSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsbUNBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFTLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU8sS0FBSyxDQUFDLG1CQUFtQixDQUFFLE9BQWdCO1FBQy9DLElBQUksSUFBSSxDQUFDLE9BQU87WUFDWixPQUFPO1FBRVgsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUFFLEdBQVU7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDdkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxjQUFjLENBQUUsT0FBZ0I7UUFDMUMsSUFBSSxJQUFJLENBQUMsT0FBTztZQUNaLE9BQU87UUFFWCxJQUFJO1lBQ0EsSUFBSSxFQUFFLEdBQUcsR0FBa0IsRUFBRSxDQUFFLElBQUksQ0FBQyxPQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWxFLEVBQUUsR0FBRyxPQUFPLENBQUMsK0JBQStCLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDckUsRUFBRSxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUVyRSxNQUFNLEVBQUUsRUFBRSxDQUFDO1NBQ2Q7UUFDRCxPQUFPLEdBQVEsRUFBRTtZQUNiLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNqQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUUsT0FBZ0I7UUFDN0MsSUFBSTtZQUNBLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFrQixDQUFDLENBQUM7U0FDM0Q7UUFDRCxPQUFPLEdBQVEsRUFBRTtZQUNiLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNqQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFFLE9BQWdCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBUyxDQUFDLHFCQUFxQixDQUFDO1FBRTdDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUNyQixNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQVMsQ0FBQyxXQUFXLENBQUM7UUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLDBCQUEwQixDQUFFLE9BQWdCO1FBQ3JELE1BQU0sVUFBVSxHQUFHLE1BQU0sT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRWpELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsV0FBMkIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztTQUNuRTtJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSSxDQUFFLElBQWE7UUFDN0IsSUFBSSxDQUFDLElBQUk7WUFDTCxPQUFPLElBQUksQ0FBQztRQUVoQixNQUFNLGNBQWMsR0FBRyxJQUFZLENBQUM7UUFFcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1RixJQUFJLENBQUMsRUFBRSxHQUFjLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBVyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUssY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBUyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBRTVDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSjtBQXhHRCx1QkF3R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IFJvbGVQaGFzZSBmcm9tICcuL3BoYXNlJztcbmltcG9ydCB7IFN0YXRlU25hcHNob3QgfSBmcm9tICd0ZXN0Y2FmZS1oYW1tZXJoZWFkJztcbmltcG9ydCByb2xlTWFya2VyIGZyb20gJy4vbWFya2VyLXN5bWJvbCc7XG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tICduYW5vaWQnO1xuaW1wb3J0IFRlc3RSdW4gZnJvbSAnLi4vdGVzdC1ydW4nO1xuaW1wb3J0IFRlc3RDYWZlRXJyb3JMaXN0IGZyb20gJy4uL2Vycm9ycy9lcnJvci1saXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdFVybCB7XG4gICAgW3Rlc3RJZDogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSb2xlIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgICBwdWJsaWMgcGhhc2U6IFJvbGVQaGFzZTtcbiAgICBwdWJsaWMgbG9naW5Vcmw6IHN0cmluZyB8IG51bGw7XG4gICAgcHVibGljIHJlZGlyZWN0VXJsOiBSZWRpcmVjdFVybCB8IHN0cmluZyB8IG51bGw7XG4gICAgcHVibGljIF9pbml0Rm46IEZ1bmN0aW9uIHwgbnVsbDtcbiAgICBwdWJsaWMgb3B0czogUm9sZU9wdGlvbnM7XG4gICAgcHVibGljIGluaXRFcnI6IG51bGwgfCBFcnJvciB8IFRlc3RDYWZlRXJyb3JMaXN0O1xuICAgIHB1YmxpYyBzdGF0ZVNuYXBzaG90OiBTdGF0ZVNuYXBzaG90O1xuICAgIHByaXZhdGUgW3JvbGVNYXJrZXJdOiBib29sZWFuO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChsb2dpblVybDogc3RyaW5nIHwgbnVsbCwgaW5pdEZuOiBGdW5jdGlvbiB8IG51bGwsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXNbcm9sZU1hcmtlcl0gICA9IHRydWU7XG4gICAgICAgIHRoaXMuaWQgICAgICAgICAgICA9IG5hbm9pZCg3KTtcbiAgICAgICAgdGhpcy5waGFzZSAgICAgICAgID0gbG9naW5VcmwgPyBSb2xlUGhhc2UudW5pbml0aWFsaXplZCA6IFJvbGVQaGFzZS5pbml0aWFsaXplZDtcbiAgICAgICAgdGhpcy5sb2dpblVybCAgICAgID0gbG9naW5Vcmw7XG4gICAgICAgIHRoaXMuX2luaXRGbiAgICAgICA9IGluaXRGbjtcbiAgICAgICAgdGhpcy5vcHRzICAgICAgICAgID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5yZWRpcmVjdFVybCAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5zdGF0ZVNuYXBzaG90ID0gU3RhdGVTbmFwc2hvdC5lbXB0eSgpO1xuICAgICAgICB0aGlzLmluaXRFcnIgICAgICAgPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3N0b3JlU3RhdGVTbmFwc2hvdCAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pbml0RXJyKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTbmFwc2hvdCA9IGF3YWl0IHRlc3RSdW4uZ2V0U3RhdGVTbmFwc2hvdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldEluaXRFcnJvciAoZXJyOiBFcnJvcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmluaXRFcnIgPSBlcnI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfZXhlY3V0ZUluaXRGbiAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pbml0RXJyKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgZm4gPSAoKTogUHJvbWlzZTx2b2lkPiA9PiAodGhpcy5faW5pdEZuIGFzIEZ1bmN0aW9uKSh0ZXN0UnVuKTtcblxuICAgICAgICAgICAgZm4gPSB0ZXN0UnVuLmRlY29yYXRlUHJldmVudEVtaXRBY3Rpb25FdmVudHMoZm4sIHsgcHJldmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICBmbiA9IHRlc3RSdW4uZGVjb3JhdGVEaXNhYmxlRGVidWdCcmVha3BvaW50cyhmbiwgeyBkaXNhYmxlOiBmYWxzZSB9KTtcblxuICAgICAgICAgICAgYXdhaXQgZm4oKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEluaXRFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc3dpdGNoVG9DbGVhblJ1biAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGVzdFJ1bi5zd2l0Y2hUb0NsZWFuUnVuKHRoaXMubG9naW5VcmwgYXMgc3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEluaXRFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXRpYWxpemUgKHRlc3RSdW46IFRlc3RSdW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5waGFzZSA9IFJvbGVQaGFzZS5wZW5kaW5nSW5pdGlhbGl6YXRpb247XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fc3dpdGNoVG9DbGVhblJ1bih0ZXN0UnVuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fZXhlY3V0ZUluaXRGbih0ZXN0UnVuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fc3RvcmVTdGF0ZVNuYXBzaG90KHRlc3RSdW4pO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdHMucHJlc2VydmVVcmwpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNldEN1cnJlbnRVcmxBc1JlZGlyZWN0VXJsKHRlc3RSdW4pO1xuXG4gICAgICAgIHRoaXMucGhhc2UgPSBSb2xlUGhhc2UuaW5pdGlhbGl6ZWQ7XG5cbiAgICAgICAgdGhpcy5lbWl0KCdpbml0aWFsaXplZCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDdXJyZW50VXJsQXNSZWRpcmVjdFVybCAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gYXdhaXQgdGVzdFJ1bi5nZXRDdXJyZW50VXJsKCk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0cy5wcmVzZXJ2ZVVybClcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RVcmwgPSBjdXJyZW50VXJsO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RVcmwgPSB0aGlzLnJlZGlyZWN0VXJsIHx8IHt9O1xuICAgICAgICAgICAgKHRoaXMucmVkaXJlY3RVcmwgYXMgUmVkaXJlY3RVcmwpW3Rlc3RSdW4udGVzdC5pZF0gPSBjdXJyZW50VXJsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tIChpbml0OiB1bmtub3duKTogUm9sZSB8IG51bGwge1xuICAgICAgICBpZiAoIWluaXQpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCBzZXJpYWxpemVkUm9sZSA9IGluaXQgYXMgUm9sZTtcblxuICAgICAgICBjb25zdCByb2xlID0gbmV3IFJvbGUoc2VyaWFsaXplZFJvbGUubG9naW5VcmwsIHNlcmlhbGl6ZWRSb2xlLl9pbml0Rm4sIHNlcmlhbGl6ZWRSb2xlLm9wdHMpO1xuXG4gICAgICAgIHJvbGUuaWQgICAgICAgICAgICA9IHNlcmlhbGl6ZWRSb2xlLmlkO1xuICAgICAgICByb2xlLnBoYXNlICAgICAgICAgPSBzZXJpYWxpemVkUm9sZS5waGFzZTtcbiAgICAgICAgcm9sZS5yZWRpcmVjdFVybCAgID0gc2VyaWFsaXplZFJvbGUucmVkaXJlY3RVcmw7XG4gICAgICAgIHJvbGUuc3RhdGVTbmFwc2hvdCA9IHNlcmlhbGl6ZWRSb2xlLnN0YXRlU25hcHNob3Q7XG4gICAgICAgIHJvbGUuaW5pdEVyciAgICAgICA9IHNlcmlhbGl6ZWRSb2xlLmluaXRFcnI7XG5cbiAgICAgICAgcmV0dXJuIHJvbGU7XG4gICAgfVxufVxuIl19
|