testcafe 2.3.1 → 2.6.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 +129 -0
- package/LICENSE +1 -1
- package/README.md +40 -46
- package/bin/testcafe-with-v8-flag-filter.js +2 -2
- package/lib/api/test-controller/execution-context.js +4 -2
- package/lib/api/test-controller/index.js +6 -1
- package/lib/api/test-run-tracker.js +1 -1
- package/lib/browser/connection/gateway/index.js +273 -0
- package/lib/browser/connection/gateway/status.js +10 -0
- package/lib/browser/connection/index.js +60 -47
- package/lib/browser/connection/service-routes.js +4 -2
- package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/index.js +3 -2
- package/lib/browser/provider/built-in/dedicated/chrome/index.js +48 -23
- package/lib/browser/provider/built-in/dedicated/edge/index.js +4 -1
- package/lib/browser/provider/index.js +13 -4
- package/lib/browser/provider/plugin-host.js +7 -1
- package/lib/cli/argument-parser/index.js +10 -14
- package/lib/cli/cli.js +3 -4
- package/lib/cli/remotes-wizard.js +2 -1
- package/lib/cli/utils/should-move-option-to-end.js +17 -0
- package/lib/client/automation/deps/hammerhead.js +24 -0
- package/lib/client/automation/deps/testcafe-core.js +24 -0
- package/lib/client/automation/index.js +528 -161
- package/lib/client/automation/index.min.js +1 -1
- package/lib/client/automation/playback/press/get-key-info.js +44 -0
- package/lib/client/automation/playback/press/utils.js +142 -0
- package/lib/client/automation/utils/get-key-code.js +15 -0
- package/lib/client/automation/utils/get-key-identifier.js +14 -0
- package/lib/client/automation/utils/is-letter.js +7 -0
- package/lib/client/automation/utils/key-identifier-maps.js +93 -0
- package/lib/client/browser/idle-page/index.html.mustache +2 -2
- package/lib/client/browser/idle-page/index.js +13 -8
- package/lib/client/core/index.js +58 -10
- package/lib/client/core/index.min.js +1 -1
- package/lib/client/core/utils/array.js +77 -0
- package/lib/client/core/utils/dom.js +459 -0
- package/lib/client/core/utils/send-request-to-frame.js +22 -0
- package/lib/client/core/utils/style.js +102 -0
- package/lib/client/core/utils/values/boundary-values.js +41 -0
- package/lib/client/driver/index.js +253 -224
- package/lib/client/driver/index.min.js +1 -1
- package/lib/client/test-run/iframe.js.mustache +6 -6
- package/lib/client/test-run/index.js.mustache +37 -33
- package/lib/client/ui/index.js +3238 -54
- package/lib/client/ui/index.min.js +1 -1
- package/lib/client/ui/sprite.svg +15 -0
- package/lib/client/ui/styles.css +184 -41
- package/lib/compiler/babel/load-libs.js +6 -6
- package/lib/compiler/compilers.js +7 -7
- package/lib/compiler/index.js +6 -6
- package/lib/compiler/interfaces.js +1 -1
- package/lib/compiler/test-file/api-based.js +5 -5
- package/lib/compiler/test-file/formats/es-next/compiler.js +5 -5
- package/lib/compiler/test-file/formats/typescript/compiler.js +9 -9
- package/lib/compiler/test-file/get-exportable-lib-path.js +3 -3
- package/lib/configuration/configuration-base.js +9 -6
- package/lib/configuration/default-values.js +3 -3
- package/lib/configuration/formats.js +9 -5
- package/lib/configuration/interfaces.js +1 -1
- package/lib/configuration/option-names.js +3 -3
- package/lib/configuration/run-option-names.js +2 -2
- package/lib/configuration/testcafe-configuration.js +41 -24
- package/lib/configuration/types.js +1 -1
- package/lib/configuration/utils.js +32 -0
- package/lib/custom-client-scripts/client-script.js +2 -2
- package/lib/custom-client-scripts/get-code.js +3 -3
- package/lib/custom-client-scripts/routing.js +10 -12
- package/lib/errors/runtime/templates.js +4 -2
- package/lib/errors/test-run/templates.js +4 -1
- package/lib/errors/types.js +4 -1
- package/lib/index.js +6 -29
- package/lib/live/test-runner.js +5 -3
- package/lib/native-automation/add-custom-debug-formatters.js +22 -0
- package/lib/native-automation/api-base.js +27 -0
- package/lib/native-automation/client/event-descriptor.js +112 -0
- package/lib/native-automation/client/input.js +50 -0
- package/lib/native-automation/client/key-press/utils.js +31 -0
- package/lib/native-automation/client/types.js +11 -0
- package/lib/native-automation/client/utils.js +54 -0
- package/lib/native-automation/cookie-provider.js +115 -0
- package/lib/native-automation/empty-page-markup.js +11 -0
- package/lib/native-automation/error-route.js +7 -0
- package/lib/native-automation/errors.js +20 -0
- package/lib/native-automation/index.js +53 -0
- package/lib/native-automation/request-hooks/event-factory/frame-navigated-event-based.js +40 -0
- package/lib/native-automation/request-hooks/event-factory/request-paused-event-based.js +94 -0
- package/lib/native-automation/request-hooks/event-provider.js +52 -0
- package/lib/native-automation/request-hooks/pipeline-context.js +11 -0
- package/lib/{proxyless → native-automation}/request-pipeline/constants.js +1 -1
- package/lib/native-automation/request-pipeline/context-info.js +55 -0
- package/lib/native-automation/request-pipeline/index.js +309 -0
- package/lib/native-automation/request-pipeline/resendAuthRequest.js +23 -0
- package/lib/native-automation/request-pipeline/safe-api.js +63 -0
- package/lib/native-automation/request-pipeline/special-handlers.js +73 -0
- package/lib/native-automation/request-pipeline/test-run-bridge.js +45 -0
- package/lib/native-automation/resource-injector.js +175 -0
- package/lib/native-automation/session-storage/index.js +43 -0
- package/lib/native-automation/storages-provider.js +17 -0
- package/lib/native-automation/types.js +12 -0
- package/lib/native-automation/utils/cdp.js +70 -0
- package/lib/native-automation/utils/convert.js +11 -0
- package/lib/native-automation/utils/get-active-client.js +8 -0
- package/lib/native-automation/utils/headers.js +30 -0
- package/lib/native-automation/utils/string.js +32 -0
- package/lib/reporter/index.js +52 -4
- package/lib/reporter/interfaces.js +1 -1
- package/lib/reporter/plugin-host.js +44 -4
- package/lib/reporter/plugin-methods.js +2 -1
- package/lib/reporter/report-data-log.js +25 -0
- package/lib/runner/bootstrapper.js +38 -6
- package/lib/runner/index.js +87 -47
- package/lib/runner/interfaces.js +1 -1
- package/lib/runner/task/index.js +1 -29
- package/lib/runner/test-run-controller.js +45 -1
- package/lib/services/compiler/host.js +3 -3
- package/lib/services/compiler/interfaces.js +1 -1
- package/lib/services/compiler/service.js +6 -5
- package/lib/services/compiler/test-run-proxy.js +3 -2
- package/lib/services/interfaces.js +1 -1
- package/lib/services/serialization/replicator/transforms/command-base-trasform/command-constructors.js +2 -1
- package/lib/shared/errors/index.js +8 -2
- package/lib/shared/utils/is-file-protocol.js +2 -2
- package/lib/test-run/commands/actions.js +16 -4
- package/lib/test-run/commands/type.js +2 -1
- package/lib/test-run/cookies/base.js +4 -1
- package/lib/test-run/cookies/factory.js +4 -4
- package/lib/test-run/cookies/provider.js +9 -2
- package/lib/test-run/execute-js-expression/index.js +4 -2
- package/lib/test-run/index.js +29 -22
- package/lib/test-run/request/create-request-options.js +37 -24
- package/lib/test-run/request/send.js +2 -3
- package/lib/test-run/role-provider.js +5 -5
- package/lib/test-run/session-controller.js +5 -5
- package/lib/test-run/storages/factory.js +4 -4
- package/lib/testcafe.js +17 -10
- package/lib/utils/check-is-vm.js +58 -0
- package/lib/utils/debug-loggers.js +7 -7
- package/lib/utils/get-browser.js +5 -2
- package/lib/utils/get-options/boolean-or-object-option.js +18 -0
- package/lib/utils/get-options/quarantine.js +10 -13
- package/lib/utils/get-options/skip-js-errors.js +12 -16
- package/lib/utils/parse-user-agent.js +4 -12
- package/lib/utils/string.js +1 -1
- package/package.json +13 -9
- package/ts-defs/index.d.ts +12 -2
- package/ts-defs/selectors.d.ts +8 -1
- package/ts-defs/testcafe-scripts.d.ts +8 -1
- package/lib/browser/connection/gateway.js +0 -205
- package/lib/proxyless/add-custom-debug-formatters.js +0 -22
- package/lib/proxyless/api-base.js +0 -25
- package/lib/proxyless/client/event-simulator.js +0 -40
- package/lib/proxyless/client/types.js +0 -11
- package/lib/proxyless/client/utils.js +0 -24
- package/lib/proxyless/cookie-provider.js +0 -87
- package/lib/proxyless/default-setup-options.js +0 -9
- package/lib/proxyless/empty-page-markup.js +0 -11
- package/lib/proxyless/error-route.js +0 -7
- package/lib/proxyless/index.js +0 -53
- package/lib/proxyless/request-hooks/event-factory/frame-navigated-event-based.js +0 -40
- package/lib/proxyless/request-hooks/event-factory/request-paused-event-based.js +0 -95
- package/lib/proxyless/request-hooks/event-provider.js +0 -52
- package/lib/proxyless/request-hooks/pipeline-context.js +0 -11
- package/lib/proxyless/request-pipeline/context-info.js +0 -55
- package/lib/proxyless/request-pipeline/index.js +0 -230
- package/lib/proxyless/request-pipeline/resendAuthRequest.js +0 -23
- package/lib/proxyless/request-pipeline/safe-api.js +0 -62
- package/lib/proxyless/request-pipeline/special-handlers.js +0 -73
- package/lib/proxyless/request-pipeline/test-run-bridge.js +0 -45
- package/lib/proxyless/resource-injector.js +0 -162
- package/lib/proxyless/session-storage/index.js +0 -39
- package/lib/proxyless/storages-provider.js +0 -17
- package/lib/proxyless/types.js +0 -10
- package/lib/proxyless/utils/cdp.js +0 -66
- package/lib/proxyless/utils/get-active-client.js +0 -8
- package/lib/proxyless/utils/headers.js +0 -30
- package/lib/proxyless/utils/string.js +0 -32
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unknownCDPEventType = exports.sslCertificateError = exports.failedToFindDNSError = exports.notImplementedError = void 0;
|
|
4
|
+
function notImplementedError() {
|
|
5
|
+
return new Error('Not implemented');
|
|
6
|
+
}
|
|
7
|
+
exports.notImplementedError = notImplementedError;
|
|
8
|
+
function failedToFindDNSError(url) {
|
|
9
|
+
return new Error(`Failed to find a DNS-record for the resource at "${url}"`);
|
|
10
|
+
}
|
|
11
|
+
exports.failedToFindDNSError = failedToFindDNSError;
|
|
12
|
+
function sslCertificateError(type) {
|
|
13
|
+
return new Error(`SSL certificate error (${type})`);
|
|
14
|
+
}
|
|
15
|
+
exports.sslCertificateError = sslCertificateError;
|
|
16
|
+
function unknownCDPEventType(type) {
|
|
17
|
+
return new Error(`Unknown CDP event type: ${type}`);
|
|
18
|
+
}
|
|
19
|
+
exports.unknownCDPEventType = unknownCDPEventType;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25hdGl2ZS1hdXRvbWF0aW9uL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixtQkFBbUI7SUFDL0IsT0FBTyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFGRCxrREFFQztBQUVELFNBQWdCLG9CQUFvQixDQUFFLEdBQVc7SUFDN0MsT0FBTyxJQUFJLEtBQUssQ0FBQyxvREFBb0QsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBRSxJQUFZO0lBQzdDLE9BQU8sSUFBSSxLQUFLLENBQUMsMEJBQTBCLElBQUksR0FBRyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUZELGtEQUVDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUUsSUFBWTtJQUM3QyxPQUFPLElBQUksS0FBSyxDQUFDLDJCQUEyQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFGRCxrREFFQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub3RJbXBsZW1lbnRlZEVycm9yICgpOiBFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmYWlsZWRUb0ZpbmRETlNFcnJvciAodXJsOiBzdHJpbmcpOiBFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBFcnJvcihgRmFpbGVkIHRvIGZpbmQgYSBETlMtcmVjb3JkIGZvciB0aGUgcmVzb3VyY2UgYXQgXCIke3VybH1cImApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3NsQ2VydGlmaWNhdGVFcnJvciAodHlwZTogc3RyaW5nKTogRXJyb3Ige1xuICAgIHJldHVybiBuZXcgRXJyb3IoYFNTTCBjZXJ0aWZpY2F0ZSBlcnJvciAoJHt0eXBlfSlgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVua25vd25DRFBFdmVudFR5cGUgKHR5cGU6IHN0cmluZyk6IEVycm9yIHtcbiAgICByZXR1cm4gbmV3IEVycm9yKGBVbmtub3duIENEUCBldmVudCB0eXBlOiAke3R5cGV9YCk7XG59XG5cbiJdfQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const request_pipeline_1 = __importDefault(require("./request-pipeline"));
|
|
7
|
+
const add_custom_debug_formatters_1 = __importDefault(require("./add-custom-debug-formatters"));
|
|
8
|
+
const debug_loggers_1 = require("../utils/debug-loggers");
|
|
9
|
+
const session_storage_1 = __importDefault(require("./session-storage"));
|
|
10
|
+
class NativeAutomation {
|
|
11
|
+
constructor(browserId, client, options) {
|
|
12
|
+
this._client = client;
|
|
13
|
+
this.options = options;
|
|
14
|
+
this.requestPipeline = new request_pipeline_1.default(browserId, client, options);
|
|
15
|
+
this.sessionStorage = new session_storage_1.default(browserId, client, options);
|
|
16
|
+
(0, add_custom_debug_formatters_1.default)();
|
|
17
|
+
}
|
|
18
|
+
_onContextStorageSynHandler({ sessionStorage, testRunId, frameDriverId }) {
|
|
19
|
+
if (sessionStorage) {
|
|
20
|
+
this.requestPipeline.contextStorage = this.requestPipeline.contextStorage || {};
|
|
21
|
+
this.requestPipeline.contextStorage[testRunId] = this.requestPipeline.contextStorage[testRunId] || {};
|
|
22
|
+
this.requestPipeline.contextStorage[testRunId][frameDriverId] = sessionStorage;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
_onContextStorageTestRunDoneHandler({ testRunId }) {
|
|
26
|
+
if (this.requestPipeline.contextStorage)
|
|
27
|
+
delete this.requestPipeline.contextStorage[testRunId];
|
|
28
|
+
}
|
|
29
|
+
_addEventListeners() {
|
|
30
|
+
this.sessionStorage.on('contextStorageSync', this._onContextStorageSynHandler.bind(this));
|
|
31
|
+
this.sessionStorage.on('contextStorageTestRunDone', this._onContextStorageTestRunDoneHandler.bind(this));
|
|
32
|
+
}
|
|
33
|
+
async start() {
|
|
34
|
+
for (const apiSystem of this.apiSystems)
|
|
35
|
+
await apiSystem.start();
|
|
36
|
+
this._addEventListeners();
|
|
37
|
+
(0, debug_loggers_1.nativeAutomationLogger)('nativeAutomation initialized');
|
|
38
|
+
}
|
|
39
|
+
async dispose() {
|
|
40
|
+
this.requestPipeline.stop();
|
|
41
|
+
await this.requestPipeline.dispose();
|
|
42
|
+
(0, debug_loggers_1.nativeAutomationLogger)('nativeAutomation disposed');
|
|
43
|
+
}
|
|
44
|
+
get apiSystems() {
|
|
45
|
+
return [
|
|
46
|
+
this.requestPipeline,
|
|
47
|
+
this.sessionStorage,
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.default = NativeAutomation;
|
|
52
|
+
module.exports = exports.default;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwwRUFBaUU7QUFDakUsZ0dBQXFFO0FBRXJFLDBEQUFnRTtBQUNoRSx3RUFBK0M7QUFHL0MsTUFBcUIsZ0JBQWdCO0lBTWpDLFlBQW9CLFNBQWlCLEVBQUUsTUFBbUIsRUFBRSxPQUFvQztRQUM1RixJQUFJLENBQUMsT0FBTyxHQUFXLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFXLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksMEJBQStCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsY0FBYyxHQUFJLElBQUkseUJBQWMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXRFLElBQUEscUNBQXdCLEdBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sMkJBQTJCLENBQUUsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBTztRQUNsRixJQUFJLGNBQWMsRUFBRTtZQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsR0FBNkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1lBQzFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFrQixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsY0FBYyxDQUFDO1NBQ2xGO0lBQ0wsQ0FBQztJQUVPLG1DQUFtQyxDQUFFLEVBQUUsU0FBUyxFQUFPO1FBQzNELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjO1lBQ25DLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNkLEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLFVBQVU7WUFDbkMsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFMUIsSUFBQSxzQ0FBc0IsRUFBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTVCLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVyQyxJQUFBLHNDQUFzQixFQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPO1lBQ0gsSUFBSSxDQUFDLGVBQWU7WUFDcEIsSUFBSSxDQUFDLGNBQWM7U0FDdEIsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQXhERCxtQ0F3REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm90b2NvbEFwaSB9IGZyb20gJ2Nocm9tZS1yZW1vdGUtaW50ZXJmYWNlJztcbmltcG9ydCBOYXRpdmVBdXRvbWF0aW9uUmVxdWVzdFBpcGVsaW5lIGZyb20gJy4vcmVxdWVzdC1waXBlbGluZSc7XG5pbXBvcnQgYWRkQ3VzdG9tRGVidWdGb3JtYXR0ZXJzIGZyb20gJy4vYWRkLWN1c3RvbS1kZWJ1Zy1mb3JtYXR0ZXJzJztcbmltcG9ydCB7IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC90eXBlcyc7XG5pbXBvcnQgeyBuYXRpdmVBdXRvbWF0aW9uTG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvZGVidWctbG9nZ2Vycyc7XG5pbXBvcnQgU2Vzc2lvblN0b3JhZ2UgZnJvbSAnLi9zZXNzaW9uLXN0b3JhZ2UnO1xuaW1wb3J0IE5hdGl2ZUF1dG9tYXRpb25BcGlCYXNlIGZyb20gJy4vYXBpLWJhc2UnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOYXRpdmVBdXRvbWF0aW9uIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jbGllbnQ6IFByb3RvY29sQXBpO1xuICAgIHB1YmxpYyByZWFkb25seSByZXF1ZXN0UGlwZWxpbmU7XG4gICAgcHVibGljIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlOiBTZXNzaW9uU3RvcmFnZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoYnJvd3NlcklkOiBzdHJpbmcsIGNsaWVudDogUHJvdG9jb2xBcGksIG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucykge1xuICAgICAgICB0aGlzLl9jbGllbnQgICAgICAgICA9IGNsaWVudDtcbiAgICAgICAgdGhpcy5vcHRpb25zICAgICAgICAgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlcXVlc3RQaXBlbGluZSA9IG5ldyBOYXRpdmVBdXRvbWF0aW9uUmVxdWVzdFBpcGVsaW5lKGJyb3dzZXJJZCwgY2xpZW50LCBvcHRpb25zKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZSAgPSBuZXcgU2Vzc2lvblN0b3JhZ2UoYnJvd3NlcklkLCBjbGllbnQsIG9wdGlvbnMpO1xuXG4gICAgICAgIGFkZEN1c3RvbURlYnVnRm9ybWF0dGVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29uQ29udGV4dFN0b3JhZ2VTeW5IYW5kbGVyICh7IHNlc3Npb25TdG9yYWdlLCB0ZXN0UnVuSWQsIGZyYW1lRHJpdmVySWQgfTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChzZXNzaW9uU3RvcmFnZSkge1xuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0UGlwZWxpbmUuY29udGV4dFN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHRoaXMucmVxdWVzdFBpcGVsaW5lLmNvbnRleHRTdG9yYWdlIHx8IHt9O1xuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0UGlwZWxpbmUuY29udGV4dFN0b3JhZ2VbdGVzdFJ1bklkXSAgICAgICAgICAgICAgICA9IHRoaXMucmVxdWVzdFBpcGVsaW5lLmNvbnRleHRTdG9yYWdlW3Rlc3RSdW5JZF0gfHwge307XG4gICAgICAgICAgICB0aGlzLnJlcXVlc3RQaXBlbGluZS5jb250ZXh0U3RvcmFnZVt0ZXN0UnVuSWRdW2ZyYW1lRHJpdmVySWRdID0gc2Vzc2lvblN0b3JhZ2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9vbkNvbnRleHRTdG9yYWdlVGVzdFJ1bkRvbmVIYW5kbGVyICh7IHRlc3RSdW5JZCB9OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVxdWVzdFBpcGVsaW5lLmNvbnRleHRTdG9yYWdlKVxuICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVxdWVzdFBpcGVsaW5lLmNvbnRleHRTdG9yYWdlW3Rlc3RSdW5JZF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWRkRXZlbnRMaXN0ZW5lcnMgKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlLm9uKCdjb250ZXh0U3RvcmFnZVN5bmMnLCB0aGlzLl9vbkNvbnRleHRTdG9yYWdlU3luSGFuZGxlci5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5vbignY29udGV4dFN0b3JhZ2VUZXN0UnVuRG9uZScsIHRoaXMuX29uQ29udGV4dFN0b3JhZ2VUZXN0UnVuRG9uZUhhbmRsZXIuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHN0YXJ0ICgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBhcGlTeXN0ZW0gb2YgdGhpcy5hcGlTeXN0ZW1zKVxuICAgICAgICAgICAgYXdhaXQgYXBpU3lzdGVtLnN0YXJ0KCk7XG5cbiAgICAgICAgdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKTtcblxuICAgICAgICBuYXRpdmVBdXRvbWF0aW9uTG9nZ2VyKCduYXRpdmVBdXRvbWF0aW9uIGluaXRpYWxpemVkJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGRpc3Bvc2UgKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnJlcXVlc3RQaXBlbGluZS5zdG9wKCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0UGlwZWxpbmUuZGlzcG9zZSgpO1xuXG4gICAgICAgIG5hdGl2ZUF1dG9tYXRpb25Mb2dnZXIoJ25hdGl2ZUF1dG9tYXRpb24gZGlzcG9zZWQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFwaVN5c3RlbXMgKCk6IE5hdGl2ZUF1dG9tYXRpb25BcGlCYXNlIFtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMucmVxdWVzdFBpcGVsaW5lLFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZSxcbiAgICAgICAgXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const testcafe_hammerhead_1 = require("testcafe-hammerhead");
|
|
4
|
+
const cdp_1 = require("../../utils/cdp");
|
|
5
|
+
class FrameNavigatedEventBasedEventFactory extends testcafe_hammerhead_1.BaseRequestHookEventFactory {
|
|
6
|
+
constructor(event, sessionId) {
|
|
7
|
+
super();
|
|
8
|
+
this._event = event;
|
|
9
|
+
this._sessionId = sessionId;
|
|
10
|
+
}
|
|
11
|
+
createRequestInfo() {
|
|
12
|
+
// NOTE: We can't get some request information from the FrameNavigated event.
|
|
13
|
+
// So, we initialize the RequestInfo object with empty or default values.
|
|
14
|
+
return new testcafe_hammerhead_1.RequestInfo({
|
|
15
|
+
requestId: (0, cdp_1.getRequestId)(this._event),
|
|
16
|
+
sessionId: this._sessionId,
|
|
17
|
+
userAgent: '',
|
|
18
|
+
url: this._event.frame.url,
|
|
19
|
+
method: '',
|
|
20
|
+
headers: {},
|
|
21
|
+
body: Buffer.alloc(0),
|
|
22
|
+
isAjax: false,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
createConfigureResponseEvent(rule) {
|
|
26
|
+
// NOTE: Used as a stub
|
|
27
|
+
return new testcafe_hammerhead_1.ConfigureResponseEvent(rule, {});
|
|
28
|
+
}
|
|
29
|
+
createRequestOptions() {
|
|
30
|
+
// NOTE: Used as a stub
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
createResponseInfo() {
|
|
34
|
+
// NOTE: Used as a stub
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = FrameNavigatedEventBasedEventFactory;
|
|
39
|
+
module.exports = exports.default;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWUtbmF2aWdhdGVkLWV2ZW50LWJhc2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25hdGl2ZS1hdXRvbWF0aW9uL3JlcXVlc3QtaG9va3MvZXZlbnQtZmFjdG9yeS9mcmFtZS1uYXZpZ2F0ZWQtZXZlbnQtYmFzZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2REFRNkI7QUFHN0IseUNBQStDO0FBRS9DLE1BQXFCLG9DQUFxQyxTQUFRLGlEQUEyQjtJQUd6RixZQUFvQixLQUEwQixFQUFFLFNBQWlCO1FBQzdELEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLE1BQU0sR0FBTyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQiw2RUFBNkU7UUFDN0UseUVBQXlFO1FBQ3pFLE9BQU8sSUFBSSxpQ0FBVyxDQUFDO1lBQ25CLFNBQVMsRUFBRSxJQUFBLGtCQUFZLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDMUIsU0FBUyxFQUFFLEVBQUU7WUFDYixHQUFHLEVBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNoQyxNQUFNLEVBQUssRUFBRTtZQUNiLE9BQU8sRUFBSSxFQUFFO1lBQ2IsSUFBSSxFQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sRUFBSyxLQUFLO1NBQ25CLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSw0QkFBNEIsQ0FBRSxJQUF1QjtRQUN4RCx1QkFBdUI7UUFDdkIsT0FBTyxJQUFJLDRDQUFzQixDQUFDLElBQUksRUFBRSxFQUE2QixDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLG9CQUFvQjtRQUN2Qix1QkFBdUI7UUFDdkIsT0FBTyxFQUFvQixDQUFDO0lBQ2hDLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsdUJBQXVCO1FBQ3ZCLE9BQU8sRUFBa0IsQ0FBQztJQUM5QixDQUFDO0NBQ0o7QUF2Q0QsdURBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCYXNlUmVxdWVzdEhvb2tFdmVudEZhY3RvcnksXG4gICAgQ29uZmlndXJlUmVzcG9uc2VFdmVudCxcbiAgICBNb2RpZnlSZXNwb25zZUZ1bmN0aW9ucyxcbiAgICBSZXF1ZXN0RmlsdGVyUnVsZSxcbiAgICBSZXF1ZXN0SW5mbyxcbiAgICBSZXF1ZXN0T3B0aW9ucyxcbiAgICBSZXNwb25zZUluZm8sXG59IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sJztcbmltcG9ydCBGcmFtZU5hdmlnYXRlZEV2ZW50ID0gUHJvdG9jb2wuUGFnZS5GcmFtZU5hdmlnYXRlZEV2ZW50O1xuaW1wb3J0IHsgZ2V0UmVxdWVzdElkIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2RwJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnJhbWVOYXZpZ2F0ZWRFdmVudEJhc2VkRXZlbnRGYWN0b3J5IGV4dGVuZHMgQmFzZVJlcXVlc3RIb29rRXZlbnRGYWN0b3J5IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudDogRnJhbWVOYXZpZ2F0ZWRFdmVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zZXNzaW9uSWQ6IHN0cmluZztcbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGV2ZW50OiBGcmFtZU5hdmlnYXRlZEV2ZW50LCBzZXNzaW9uSWQ6IHN0cmluZykge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuX2V2ZW50ICAgICA9IGV2ZW50O1xuICAgICAgICB0aGlzLl9zZXNzaW9uSWQgPSBzZXNzaW9uSWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVJlcXVlc3RJbmZvICgpOiBSZXF1ZXN0SW5mbyB7XG4gICAgICAgIC8vIE5PVEU6IFdlIGNhbid0IGdldCBzb21lIHJlcXVlc3QgaW5mb3JtYXRpb24gZnJvbSB0aGUgRnJhbWVOYXZpZ2F0ZWQgZXZlbnQuXG4gICAgICAgIC8vIFNvLCB3ZSBpbml0aWFsaXplIHRoZSBSZXF1ZXN0SW5mbyBvYmplY3Qgd2l0aCBlbXB0eSBvciBkZWZhdWx0IHZhbHVlcy5cbiAgICAgICAgcmV0dXJuIG5ldyBSZXF1ZXN0SW5mbyh7XG4gICAgICAgICAgICByZXF1ZXN0SWQ6IGdldFJlcXVlc3RJZCh0aGlzLl9ldmVudCksXG4gICAgICAgICAgICBzZXNzaW9uSWQ6IHRoaXMuX3Nlc3Npb25JZCxcbiAgICAgICAgICAgIHVzZXJBZ2VudDogJycsXG4gICAgICAgICAgICB1cmw6ICAgICAgIHRoaXMuX2V2ZW50LmZyYW1lLnVybCxcbiAgICAgICAgICAgIG1ldGhvZDogICAgJycsXG4gICAgICAgICAgICBoZWFkZXJzOiAgIHt9LFxuICAgICAgICAgICAgYm9keTogICAgICBCdWZmZXIuYWxsb2MoMCksXG4gICAgICAgICAgICBpc0FqYXg6ICAgIGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlQ29uZmlndXJlUmVzcG9uc2VFdmVudCAocnVsZTogUmVxdWVzdEZpbHRlclJ1bGUpOiBDb25maWd1cmVSZXNwb25zZUV2ZW50IHtcbiAgICAgICAgLy8gTk9URTogVXNlZCBhcyBhIHN0dWJcbiAgICAgICAgcmV0dXJuIG5ldyBDb25maWd1cmVSZXNwb25zZUV2ZW50KHJ1bGUsIHt9IGFzIE1vZGlmeVJlc3BvbnNlRnVuY3Rpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlUmVxdWVzdE9wdGlvbnMgKCk6IFJlcXVlc3RPcHRpb25zIHtcbiAgICAgICAgLy8gTk9URTogVXNlZCBhcyBhIHN0dWJcbiAgICAgICAgcmV0dXJuIHt9IGFzIFJlcXVlc3RPcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVSZXNwb25zZUluZm8gKCk6IFJlc3BvbnNlSW5mbyB7XG4gICAgICAgIC8vIE5PVEU6IFVzZWQgYXMgYSBzdHViXG4gICAgICAgIHJldHVybiB7fSBhcyBSZXNwb25zZUluZm87XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const testcafe_hammerhead_1 = require("testcafe-hammerhead");
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
const http_status_codes_1 = require("http-status-codes");
|
|
6
|
+
const headers_1 = require("../../utils/headers");
|
|
7
|
+
class RequestPausedEventBasedEventFactory extends testcafe_hammerhead_1.BaseRequestHookEventFactory {
|
|
8
|
+
constructor(event, sessionId) {
|
|
9
|
+
super();
|
|
10
|
+
this._event = event;
|
|
11
|
+
this._responseBody = Buffer.alloc(0);
|
|
12
|
+
this._sessionId = sessionId;
|
|
13
|
+
this._modifyResponseFunction = this._createModifyResponseFunctions();
|
|
14
|
+
this.headersModified = false;
|
|
15
|
+
}
|
|
16
|
+
_createModifyResponseFunctions() {
|
|
17
|
+
return {
|
|
18
|
+
setHeader: (name, value) => {
|
|
19
|
+
const header = this._event.responseHeaders.find(h => h.name.toLowerCase() === name.toLowerCase());
|
|
20
|
+
if (!header)
|
|
21
|
+
this._event.responseHeaders.push({ name, value });
|
|
22
|
+
else
|
|
23
|
+
header.value = value;
|
|
24
|
+
this.headersModified = true;
|
|
25
|
+
},
|
|
26
|
+
removeHeader: (name) => {
|
|
27
|
+
(0, lodash_1.remove)(this._event.responseHeaders, header => header.name.toLowerCase() === name.toLowerCase());
|
|
28
|
+
this.headersModified = true;
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
static _getRequestData(request) {
|
|
33
|
+
if (request.postData)
|
|
34
|
+
return Buffer.from(request.postData);
|
|
35
|
+
return Buffer.alloc(0);
|
|
36
|
+
}
|
|
37
|
+
static _getIsAjaxRequest(event) {
|
|
38
|
+
return event.resourceType === 'XHR'
|
|
39
|
+
|| event.resourceType === 'Fetch';
|
|
40
|
+
}
|
|
41
|
+
update(event) {
|
|
42
|
+
this._event = event;
|
|
43
|
+
}
|
|
44
|
+
setResponseBody(body) {
|
|
45
|
+
this._responseBody = body;
|
|
46
|
+
}
|
|
47
|
+
createRequestInfo() {
|
|
48
|
+
const { requestId, request } = this._event;
|
|
49
|
+
return new testcafe_hammerhead_1.RequestInfo({
|
|
50
|
+
requestId,
|
|
51
|
+
sessionId: this._sessionId,
|
|
52
|
+
userAgent: testcafe_hammerhead_1.RequestInfo.getUserAgent(request.headers),
|
|
53
|
+
url: request.url,
|
|
54
|
+
method: request.method.toLowerCase(),
|
|
55
|
+
headers: (0, headers_1.lowerCaseHeaderNames)(request.headers),
|
|
56
|
+
body: RequestPausedEventBasedEventFactory._getRequestData(request),
|
|
57
|
+
isAjax: RequestPausedEventBasedEventFactory._getIsAjaxRequest(this._event),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
createRequestOptions() {
|
|
61
|
+
const parsedUrl = new URL(this._event.request.url);
|
|
62
|
+
const requestParams = {
|
|
63
|
+
method: this._event.request.method,
|
|
64
|
+
url: this._event.request.url,
|
|
65
|
+
protocol: parsedUrl.protocol,
|
|
66
|
+
hostname: parsedUrl.hostname,
|
|
67
|
+
host: parsedUrl.host,
|
|
68
|
+
port: parsedUrl.port,
|
|
69
|
+
path: parsedUrl.pathname,
|
|
70
|
+
headers: this._event.request.headers,
|
|
71
|
+
body: RequestPausedEventBasedEventFactory._getRequestData(this._event.request),
|
|
72
|
+
isAjax: RequestPausedEventBasedEventFactory._getIsAjaxRequest(this._event),
|
|
73
|
+
};
|
|
74
|
+
if (parsedUrl.username)
|
|
75
|
+
requestParams.auth = parsedUrl.username + ':' + parsedUrl.password;
|
|
76
|
+
return new testcafe_hammerhead_1.RequestOptions(requestParams);
|
|
77
|
+
}
|
|
78
|
+
createConfigureResponseEvent(rule) {
|
|
79
|
+
return new testcafe_hammerhead_1.ConfigureResponseEvent(rule, this._modifyResponseFunction);
|
|
80
|
+
}
|
|
81
|
+
createResponseInfo() {
|
|
82
|
+
return new testcafe_hammerhead_1.ResponseInfo({
|
|
83
|
+
statusCode: this._event.responseStatusCode || http_status_codes_1.StatusCodes.OK,
|
|
84
|
+
headers: (0, headers_1.convertToOutgoingHttpHeaders)(this._event.responseHeaders),
|
|
85
|
+
body: this._responseBody,
|
|
86
|
+
sessionId: '',
|
|
87
|
+
requestId: this._event.requestId,
|
|
88
|
+
isSameOriginPolicyFailed: false,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.default = RequestPausedEventBasedEventFactory;
|
|
93
|
+
module.exports = exports.default;
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1wYXVzZWQtZXZlbnQtYmFzZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vcmVxdWVzdC1ob29rcy9ldmVudC1mYWN0b3J5L3JlcXVlc3QtcGF1c2VkLWV2ZW50LWJhc2VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkRBUzZCO0FBQzdCLG1DQUFnQztBQUtoQyx5REFBZ0Q7QUFDaEQsaURBQXlGO0FBR3pGLE1BQXFCLG1DQUFvQyxTQUFRLGlEQUEyQjtJQU94RixZQUFvQixLQUF5QixFQUFFLFNBQWlCO1FBQzVELEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLE1BQU0sR0FBb0IsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQWEsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFnQixTQUFTLENBQUM7UUFDekMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxlQUFlLEdBQVcsS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFFTyw4QkFBOEI7UUFDbEMsT0FBTztZQUNILFNBQVMsRUFBRSxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDdkMsTUFBTSxNQUFNLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFpQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBRXJILElBQUksQ0FBQyxNQUFNO29CQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBaUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzs7b0JBRXJFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUV6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUNoQyxDQUFDO1lBQ0QsWUFBWSxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7Z0JBQzNCLElBQUEsZUFBTSxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZ0MsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBRWpILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLENBQUM7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLE1BQU0sQ0FBQyxlQUFlLENBQUUsT0FBZ0I7UUFDNUMsSUFBSSxPQUFPLENBQUMsUUFBUTtZQUNoQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU8sTUFBTSxDQUFDLGlCQUFpQixDQUFFLEtBQXlCO1FBQ3ZELE9BQU8sS0FBSyxDQUFDLFlBQVksS0FBSyxLQUFLO2VBQzVCLEtBQUssQ0FBQyxZQUFZLEtBQUssT0FBTyxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNLENBQUUsS0FBeUI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLGVBQWUsQ0FBRSxJQUFZO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTNDLE9BQU8sSUFBSSxpQ0FBVyxDQUFDO1lBQ25CLFNBQVM7WUFDVCxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDMUIsU0FBUyxFQUFFLGlDQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDcEQsR0FBRyxFQUFRLE9BQU8sQ0FBQyxHQUFHO1lBQ3RCLE1BQU0sRUFBSyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUN2QyxPQUFPLEVBQUksSUFBQSw4QkFBb0IsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ2hELElBQUksRUFBTyxtQ0FBbUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1lBQ3ZFLE1BQU0sRUFBSyxtQ0FBbUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ2hGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxvQkFBb0I7UUFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbkQsTUFBTSxhQUFhLEdBQXlCO1lBQ3hDLE1BQU0sRUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ3BDLEdBQUcsRUFBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHO1lBQ2pDLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtZQUM1QixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDNUIsSUFBSSxFQUFNLFNBQVMsQ0FBQyxJQUFJO1lBQ3hCLElBQUksRUFBTSxTQUFTLENBQUMsSUFBSTtZQUN4QixJQUFJLEVBQU0sU0FBUyxDQUFDLFFBQVE7WUFDNUIsT0FBTyxFQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87WUFDckMsSUFBSSxFQUFNLG1DQUFtQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNsRixNQUFNLEVBQUksbUNBQW1DLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUMvRSxDQUFDO1FBRUYsSUFBSSxTQUFTLENBQUMsUUFBUTtZQUNsQixhQUFhLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFFdkUsT0FBTyxJQUFJLG9DQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLDRCQUE0QixDQUFFLElBQXVCO1FBQ3hELE9BQU8sSUFBSSw0Q0FBc0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixPQUFPLElBQUksa0NBQVksQ0FBQztZQUNwQixVQUFVLEVBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLElBQUksK0JBQVcsQ0FBQyxFQUFFO1lBQzFFLE9BQU8sRUFBbUIsSUFBQSxzQ0FBNEIsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztZQUNuRixJQUFJLEVBQXNCLElBQUksQ0FBQyxhQUFhO1lBQzVDLFNBQVMsRUFBaUIsRUFBRTtZQUM1QixTQUFTLEVBQWlCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztZQUMvQyx3QkFBd0IsRUFBRSxLQUFLO1NBQ2xDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQTVHRCxzREE0R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEJhc2VSZXF1ZXN0SG9va0V2ZW50RmFjdG9yeSxcbiAgICBDb25maWd1cmVSZXNwb25zZUV2ZW50LFxuICAgIE1vZGlmeVJlc3BvbnNlRnVuY3Rpb25zLFxuICAgIFJlcXVlc3RGaWx0ZXJSdWxlLFxuICAgIFJlcXVlc3RJbmZvLFxuICAgIFJlcXVlc3RPcHRpb25zLFxuICAgIFJlcXVlc3RPcHRpb25zUGFyYW1zLFxuICAgIFJlc3BvbnNlSW5mbyxcbn0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5pbXBvcnQgeyByZW1vdmUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sJztcbmltcG9ydCBSZXF1ZXN0UGF1c2VkRXZlbnQgPSBQcm90b2NvbC5GZXRjaC5SZXF1ZXN0UGF1c2VkRXZlbnQ7XG5pbXBvcnQgUmVxdWVzdCA9IFByb3RvY29sLk5ldHdvcmsuUmVxdWVzdDtcbmltcG9ydCBIZWFkZXJFbnRyeSA9IFByb3RvY29sLkZldGNoLkhlYWRlckVudHJ5O1xuaW1wb3J0IHsgU3RhdHVzQ29kZXMgfSBmcm9tICdodHRwLXN0YXR1cy1jb2Rlcyc7XG5pbXBvcnQgeyBjb252ZXJ0VG9PdXRnb2luZ0h0dHBIZWFkZXJzLCBsb3dlckNhc2VIZWFkZXJOYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2hlYWRlcnMnO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlcXVlc3RQYXVzZWRFdmVudEJhc2VkRXZlbnRGYWN0b3J5IGV4dGVuZHMgQmFzZVJlcXVlc3RIb29rRXZlbnRGYWN0b3J5IHtcbiAgICBwcml2YXRlIF9ldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50O1xuICAgIHByaXZhdGUgX3Jlc3BvbnNlQm9keTogQnVmZmVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Nlc3Npb25JZDogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX21vZGlmeVJlc3BvbnNlRnVuY3Rpb246IE1vZGlmeVJlc3BvbnNlRnVuY3Rpb25zO1xuICAgIHB1YmxpYyBoZWFkZXJzTW9kaWZpZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIHNlc3Npb25JZDogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5fZXZlbnQgICAgICAgICAgICAgICAgICA9IGV2ZW50O1xuICAgICAgICB0aGlzLl9yZXNwb25zZUJvZHkgICAgICAgICAgID0gQnVmZmVyLmFsbG9jKDApO1xuICAgICAgICB0aGlzLl9zZXNzaW9uSWQgICAgICAgICAgICAgID0gc2Vzc2lvbklkO1xuICAgICAgICB0aGlzLl9tb2RpZnlSZXNwb25zZUZ1bmN0aW9uID0gdGhpcy5fY3JlYXRlTW9kaWZ5UmVzcG9uc2VGdW5jdGlvbnMoKTtcbiAgICAgICAgdGhpcy5oZWFkZXJzTW9kaWZpZWQgICAgICAgICA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZU1vZGlmeVJlc3BvbnNlRnVuY3Rpb25zICgpOiBNb2RpZnlSZXNwb25zZUZ1bmN0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZXRIZWFkZXI6IChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXIgPSAodGhpcy5fZXZlbnQucmVzcG9uc2VIZWFkZXJzIGFzIEhlYWRlckVudHJ5W10pLmZpbmQoaCA9PiBoLm5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbmFtZS50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgICAgIGlmICghaGVhZGVyKVxuICAgICAgICAgICAgICAgICAgICAodGhpcy5fZXZlbnQucmVzcG9uc2VIZWFkZXJzIGFzIEhlYWRlckVudHJ5W10pLnB1c2goeyBuYW1lLCB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlci52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJzTW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlbW92ZUhlYWRlcjogKG5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHJlbW92ZSh0aGlzLl9ldmVudC5yZXNwb25zZUhlYWRlcnMgYXMgSGVhZGVyRW50cnlbXSwgaGVhZGVyID0+IGhlYWRlci5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlcnNNb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIF9nZXRSZXF1ZXN0RGF0YSAocmVxdWVzdDogUmVxdWVzdCk6IEJ1ZmZlciB7XG4gICAgICAgIGlmIChyZXF1ZXN0LnBvc3REYXRhKVxuICAgICAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHJlcXVlc3QucG9zdERhdGEpO1xuXG4gICAgICAgIHJldHVybiBCdWZmZXIuYWxsb2MoMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2dldElzQWpheFJlcXVlc3QgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LnJlc291cmNlVHlwZSA9PT0gJ1hIUidcbiAgICAgICAgICAgIHx8IGV2ZW50LnJlc291cmNlVHlwZSA9PT0gJ0ZldGNoJztcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlIChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2V2ZW50ID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFJlc3BvbnNlQm9keSAoYm9keTogQnVmZmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNlQm9keSA9IGJvZHk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVJlcXVlc3RJbmZvICgpOiBSZXF1ZXN0SW5mbyB7XG4gICAgICAgIGNvbnN0IHsgcmVxdWVzdElkLCByZXF1ZXN0IH0gPSB0aGlzLl9ldmVudDtcblxuICAgICAgICByZXR1cm4gbmV3IFJlcXVlc3RJbmZvKHtcbiAgICAgICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgICAgIHNlc3Npb25JZDogdGhpcy5fc2Vzc2lvbklkLFxuICAgICAgICAgICAgdXNlckFnZW50OiBSZXF1ZXN0SW5mby5nZXRVc2VyQWdlbnQocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIHVybDogICAgICAgcmVxdWVzdC51cmwsXG4gICAgICAgICAgICBtZXRob2Q6ICAgIHJlcXVlc3QubWV0aG9kLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICBoZWFkZXJzOiAgIGxvd2VyQ2FzZUhlYWRlck5hbWVzKHJlcXVlc3QuaGVhZGVycyksXG4gICAgICAgICAgICBib2R5OiAgICAgIFJlcXVlc3RQYXVzZWRFdmVudEJhc2VkRXZlbnRGYWN0b3J5Ll9nZXRSZXF1ZXN0RGF0YShyZXF1ZXN0KSxcbiAgICAgICAgICAgIGlzQWpheDogICAgUmVxdWVzdFBhdXNlZEV2ZW50QmFzZWRFdmVudEZhY3RvcnkuX2dldElzQWpheFJlcXVlc3QodGhpcy5fZXZlbnQpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlUmVxdWVzdE9wdGlvbnMgKCk6IFJlcXVlc3RPcHRpb25zIHtcbiAgICAgICAgY29uc3QgcGFyc2VkVXJsID0gbmV3IFVSTCh0aGlzLl9ldmVudC5yZXF1ZXN0LnVybCk7XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdFBhcmFtczogUmVxdWVzdE9wdGlvbnNQYXJhbXMgPSB7XG4gICAgICAgICAgICBtZXRob2Q6ICAgdGhpcy5fZXZlbnQucmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICB1cmw6ICAgICAgdGhpcy5fZXZlbnQucmVxdWVzdC51cmwsXG4gICAgICAgICAgICBwcm90b2NvbDogcGFyc2VkVXJsLnByb3RvY29sLFxuICAgICAgICAgICAgaG9zdG5hbWU6IHBhcnNlZFVybC5ob3N0bmFtZSxcbiAgICAgICAgICAgIGhvc3Q6ICAgICBwYXJzZWRVcmwuaG9zdCxcbiAgICAgICAgICAgIHBvcnQ6ICAgICBwYXJzZWRVcmwucG9ydCxcbiAgICAgICAgICAgIHBhdGg6ICAgICBwYXJzZWRVcmwucGF0aG5hbWUsXG4gICAgICAgICAgICBoZWFkZXJzOiAgdGhpcy5fZXZlbnQucmVxdWVzdC5oZWFkZXJzLFxuICAgICAgICAgICAgYm9keTogICAgIFJlcXVlc3RQYXVzZWRFdmVudEJhc2VkRXZlbnRGYWN0b3J5Ll9nZXRSZXF1ZXN0RGF0YSh0aGlzLl9ldmVudC5yZXF1ZXN0KSxcbiAgICAgICAgICAgIGlzQWpheDogICBSZXF1ZXN0UGF1c2VkRXZlbnRCYXNlZEV2ZW50RmFjdG9yeS5fZ2V0SXNBamF4UmVxdWVzdCh0aGlzLl9ldmVudCksXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHBhcnNlZFVybC51c2VybmFtZSlcbiAgICAgICAgICAgIHJlcXVlc3RQYXJhbXMuYXV0aCA9IHBhcnNlZFVybC51c2VybmFtZSArICc6JyArIHBhcnNlZFVybC5wYXNzd29yZDtcblxuICAgICAgICByZXR1cm4gbmV3IFJlcXVlc3RPcHRpb25zKHJlcXVlc3RQYXJhbXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVDb25maWd1cmVSZXNwb25zZUV2ZW50IChydWxlOiBSZXF1ZXN0RmlsdGVyUnVsZSk6IENvbmZpZ3VyZVJlc3BvbnNlRXZlbnQge1xuICAgICAgICByZXR1cm4gbmV3IENvbmZpZ3VyZVJlc3BvbnNlRXZlbnQocnVsZSwgdGhpcy5fbW9kaWZ5UmVzcG9uc2VGdW5jdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVJlc3BvbnNlSW5mbyAoKTogUmVzcG9uc2VJbmZvIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZUluZm8oe1xuICAgICAgICAgICAgc3RhdHVzQ29kZTogICAgICAgICAgICAgICB0aGlzLl9ldmVudC5yZXNwb25zZVN0YXR1c0NvZGUgfHwgU3RhdHVzQ29kZXMuT0ssXG4gICAgICAgICAgICBoZWFkZXJzOiAgICAgICAgICAgICAgICAgIGNvbnZlcnRUb091dGdvaW5nSHR0cEhlYWRlcnModGhpcy5fZXZlbnQucmVzcG9uc2VIZWFkZXJzKSxcbiAgICAgICAgICAgIGJvZHk6ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVzcG9uc2VCb2R5LFxuICAgICAgICAgICAgc2Vzc2lvbklkOiAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgIHJlcXVlc3RJZDogICAgICAgICAgICAgICAgdGhpcy5fZXZlbnQucmVxdWVzdElkLFxuICAgICAgICAgICAgaXNTYW1lT3JpZ2luUG9saWN5RmFpbGVkOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const testcafe_hammerhead_1 = require("testcafe-hammerhead");
|
|
4
|
+
const string_1 = require("../utils/string");
|
|
5
|
+
const cdp_1 = require("../utils/cdp");
|
|
6
|
+
class NativeAutomationRequestHookEventProvider extends testcafe_hammerhead_1.RequestHookEventProvider {
|
|
7
|
+
static _hasResponseWithBody(context) {
|
|
8
|
+
return context.onResponseEventData.some((eventData) => eventData.opts.includeBody);
|
|
9
|
+
}
|
|
10
|
+
static async _setResponseBody({ pipelineContext, resourceBody, eventFactory, event, client }) {
|
|
11
|
+
if ((resourceBody === null || resourceBody === void 0 ? void 0 : resourceBody.length) || (0, cdp_1.isPreflightRequest)(event)) {
|
|
12
|
+
eventFactory.setResponseBody(resourceBody);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const hasOnResponseWithBody = NativeAutomationRequestHookEventProvider._hasResponseWithBody(pipelineContext);
|
|
16
|
+
if (!hasOnResponseWithBody)
|
|
17
|
+
return;
|
|
18
|
+
const responseObj = await client.Fetch.getResponseBody({ requestId: event.requestId });
|
|
19
|
+
const responseBody = (0, string_1.getResponseAsBuffer)(responseObj);
|
|
20
|
+
eventFactory.setResponseBody(responseBody);
|
|
21
|
+
}
|
|
22
|
+
async onRequest(event, contextInfo) {
|
|
23
|
+
if (!this.hasRequestEventListeners())
|
|
24
|
+
return;
|
|
25
|
+
const { pipelineContext, eventFactory } = contextInfo.getContextData(event);
|
|
26
|
+
await pipelineContext.onRequestHookRequest(this, eventFactory);
|
|
27
|
+
}
|
|
28
|
+
async onResponse(event, resourceBody, contextInfo, client) {
|
|
29
|
+
let modified = false;
|
|
30
|
+
if (!this.hasRequestEventListeners())
|
|
31
|
+
return false;
|
|
32
|
+
const { pipelineContext, eventFactory } = contextInfo.getContextData(event);
|
|
33
|
+
eventFactory.update(event);
|
|
34
|
+
await pipelineContext.onRequestHookConfigureResponse(this, eventFactory);
|
|
35
|
+
if (eventFactory.headersModified)
|
|
36
|
+
modified = true;
|
|
37
|
+
await NativeAutomationRequestHookEventProvider._setResponseBody({
|
|
38
|
+
pipelineContext,
|
|
39
|
+
resourceBody,
|
|
40
|
+
eventFactory,
|
|
41
|
+
event,
|
|
42
|
+
client,
|
|
43
|
+
});
|
|
44
|
+
await Promise.all(pipelineContext.onResponseEventData.map(async (eventData) => {
|
|
45
|
+
await pipelineContext.onRequestHookResponse(this, eventFactory, eventData.rule, eventData.opts);
|
|
46
|
+
}));
|
|
47
|
+
return modified;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.default = NativeAutomationRequestHookEventProvider;
|
|
51
|
+
module.exports = exports.default;
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vcmVxdWVzdC1ob29rcy9ldmVudC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUk2QjtBQUk3Qiw0Q0FBc0Q7QUFDdEQsc0NBQWtEO0FBS2xELE1BQXFCLHdDQUF5QyxTQUFRLDhDQUF3QjtJQUNsRixNQUFNLENBQUMsb0JBQW9CLENBQUUsT0FBd0M7UUFDekUsT0FBTyxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBOEIsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBRSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWdMO1FBQy9RLElBQUksQ0FBQSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsTUFBTSxLQUFJLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEQsWUFBb0QsQ0FBQyxlQUFlLENBQUMsWUFBc0IsQ0FBQyxDQUFDO1lBRTlGLE9BQU87U0FDVjtRQUdELE1BQU0scUJBQXFCLEdBQUcsd0NBQXdDLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFN0csSUFBSSxDQUFDLHFCQUFxQjtZQUN0QixPQUFPO1FBRVgsTUFBTSxXQUFXLEdBQUksTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN4RixNQUFNLFlBQVksR0FBRyxJQUFBLDRCQUFtQixFQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXJELFlBQW9ELENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUyxDQUFFLEtBQXlCLEVBQUUsV0FBK0M7UUFDOUYsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxPQUFPO1FBRVgsTUFBTSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVFLE1BQU0sZUFBZSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBRSxLQUF5QixFQUFFLFlBQTJCLEVBQUUsV0FBK0MsRUFBRSxNQUFtQjtRQUNqSixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFckIsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxPQUFPLEtBQUssQ0FBQztRQUVqQixNQUFNLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0UsWUFBb0QsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEUsTUFBTSxlQUFlLENBQUMsOEJBQThCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXpFLElBQUssWUFBb0QsQ0FBQyxlQUFlO1lBQ3JFLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFcEIsTUFBTSx3Q0FBd0MsQ0FBQyxnQkFBZ0IsQ0FBQztZQUM1RCxlQUFlO1lBQ2YsWUFBWTtZQUNaLFlBQVk7WUFDWixLQUFLO1lBQ0wsTUFBTTtTQUNULENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsRUFBRTtZQUN4RSxNQUFNLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUE5REQsMkRBOERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCYXNlUmVxdWVzdEhvb2tFdmVudEZhY3RvcnksXG4gICAgT25SZXNwb25zZUV2ZW50RGF0YSxcbiAgICBSZXF1ZXN0SG9va0V2ZW50UHJvdmlkZXIsXG59IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IE5hdGl2ZUF1dG9tYXRpb25QaXBlbGluZUNvbnRleHQgZnJvbSAnLi9waXBlbGluZS1jb250ZXh0JztcbmltcG9ydCBSZXF1ZXN0UGF1c2VkRXZlbnRCYXNlZEV2ZW50RmFjdG9yeSBmcm9tICcuL2V2ZW50LWZhY3RvcnkvcmVxdWVzdC1wYXVzZWQtZXZlbnQtYmFzZWQnO1xuaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRSZXNwb25zZUFzQnVmZmVyIH0gZnJvbSAnLi4vdXRpbHMvc3RyaW5nJztcbmltcG9ydCB7IGlzUHJlZmxpZ2h0UmVxdWVzdCB9IGZyb20gJy4uL3V0aWxzL2NkcCc7XG5pbXBvcnQgUHJvdG9jb2wgZnJvbSAnZGV2dG9vbHMtcHJvdG9jb2wnO1xuaW1wb3J0IFJlcXVlc3RQYXVzZWRFdmVudCA9IFByb3RvY29sLkZldGNoLlJlcXVlc3RQYXVzZWRFdmVudDtcbmltcG9ydCBOYXRpdmVBdXRvbWF0aW9uUmVxdWVzdENvbnRleHRJbmZvIGZyb20gJy4uL3JlcXVlc3QtcGlwZWxpbmUvY29udGV4dC1pbmZvJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmF0aXZlQXV0b21hdGlvblJlcXVlc3RIb29rRXZlbnRQcm92aWRlciBleHRlbmRzIFJlcXVlc3RIb29rRXZlbnRQcm92aWRlciB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2hhc1Jlc3BvbnNlV2l0aEJvZHkgKGNvbnRleHQ6IE5hdGl2ZUF1dG9tYXRpb25QaXBlbGluZUNvbnRleHQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQub25SZXNwb25zZUV2ZW50RGF0YS5zb21lKChldmVudERhdGE6IE9uUmVzcG9uc2VFdmVudERhdGEpID0+IGV2ZW50RGF0YS5vcHRzLmluY2x1ZGVCb2R5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBhc3luYyBfc2V0UmVzcG9uc2VCb2R5ICh7IHBpcGVsaW5lQ29udGV4dCwgcmVzb3VyY2VCb2R5LCBldmVudEZhY3RvcnksIGV2ZW50LCBjbGllbnQgfTogeyBwaXBlbGluZUNvbnRleHQ6IE5hdGl2ZUF1dG9tYXRpb25QaXBlbGluZUNvbnRleHQsIHJlc291cmNlQm9keTogQnVmZmVyIHwgbnVsbCwgZXZlbnRGYWN0b3J5OiBCYXNlUmVxdWVzdEhvb2tFdmVudEZhY3RvcnksIGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIGNsaWVudDogUHJvdG9jb2xBcGkgfSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAocmVzb3VyY2VCb2R5Py5sZW5ndGggfHwgaXNQcmVmbGlnaHRSZXF1ZXN0KGV2ZW50KSkge1xuICAgICAgICAgICAgKGV2ZW50RmFjdG9yeSBhcyBSZXF1ZXN0UGF1c2VkRXZlbnRCYXNlZEV2ZW50RmFjdG9yeSkuc2V0UmVzcG9uc2VCb2R5KHJlc291cmNlQm9keSBhcyBCdWZmZXIpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuXG4gICAgICAgIGNvbnN0IGhhc09uUmVzcG9uc2VXaXRoQm9keSA9IE5hdGl2ZUF1dG9tYXRpb25SZXF1ZXN0SG9va0V2ZW50UHJvdmlkZXIuX2hhc1Jlc3BvbnNlV2l0aEJvZHkocGlwZWxpbmVDb250ZXh0KTtcblxuICAgICAgICBpZiAoIWhhc09uUmVzcG9uc2VXaXRoQm9keSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCByZXNwb25zZU9iaiAgPSBhd2FpdCBjbGllbnQuRmV0Y2guZ2V0UmVzcG9uc2VCb2R5KHsgcmVxdWVzdElkOiBldmVudC5yZXF1ZXN0SWQgfSk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IGdldFJlc3BvbnNlQXNCdWZmZXIocmVzcG9uc2VPYmopO1xuXG4gICAgICAgIChldmVudEZhY3RvcnkgYXMgUmVxdWVzdFBhdXNlZEV2ZW50QmFzZWRFdmVudEZhY3RvcnkpLnNldFJlc3BvbnNlQm9keShyZXNwb25zZUJvZHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvblJlcXVlc3QgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIGNvbnRleHRJbmZvOiBOYXRpdmVBdXRvbWF0aW9uUmVxdWVzdENvbnRleHRJbmZvKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNSZXF1ZXN0RXZlbnRMaXN0ZW5lcnMoKSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCB7IHBpcGVsaW5lQ29udGV4dCwgZXZlbnRGYWN0b3J5IH0gPSBjb250ZXh0SW5mby5nZXRDb250ZXh0RGF0YShldmVudCk7XG5cbiAgICAgICAgYXdhaXQgcGlwZWxpbmVDb250ZXh0Lm9uUmVxdWVzdEhvb2tSZXF1ZXN0KHRoaXMsIGV2ZW50RmFjdG9yeSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG9uUmVzcG9uc2UgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIHJlc291cmNlQm9keTogQnVmZmVyIHwgbnVsbCwgY29udGV4dEluZm86IE5hdGl2ZUF1dG9tYXRpb25SZXF1ZXN0Q29udGV4dEluZm8sIGNsaWVudDogUHJvdG9jb2xBcGkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc1JlcXVlc3RFdmVudExpc3RlbmVycygpKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHsgcGlwZWxpbmVDb250ZXh0LCBldmVudEZhY3RvcnkgfSA9IGNvbnRleHRJbmZvLmdldENvbnRleHREYXRhKGV2ZW50KTtcblxuICAgICAgICAoZXZlbnRGYWN0b3J5IGFzIFJlcXVlc3RQYXVzZWRFdmVudEJhc2VkRXZlbnRGYWN0b3J5KS51cGRhdGUoZXZlbnQpO1xuXG4gICAgICAgIGF3YWl0IHBpcGVsaW5lQ29udGV4dC5vblJlcXVlc3RIb29rQ29uZmlndXJlUmVzcG9uc2UodGhpcywgZXZlbnRGYWN0b3J5KTtcblxuICAgICAgICBpZiAoKGV2ZW50RmFjdG9yeSBhcyBSZXF1ZXN0UGF1c2VkRXZlbnRCYXNlZEV2ZW50RmFjdG9yeSkuaGVhZGVyc01vZGlmaWVkKVxuICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuXG4gICAgICAgIGF3YWl0IE5hdGl2ZUF1dG9tYXRpb25SZXF1ZXN0SG9va0V2ZW50UHJvdmlkZXIuX3NldFJlc3BvbnNlQm9keSh7XG4gICAgICAgICAgICBwaXBlbGluZUNvbnRleHQsXG4gICAgICAgICAgICByZXNvdXJjZUJvZHksXG4gICAgICAgICAgICBldmVudEZhY3RvcnksXG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIGNsaWVudCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocGlwZWxpbmVDb250ZXh0Lm9uUmVzcG9uc2VFdmVudERhdGEubWFwKGFzeW5jIGV2ZW50RGF0YSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBwaXBlbGluZUNvbnRleHQub25SZXF1ZXN0SG9va1Jlc3BvbnNlKHRoaXMsIGV2ZW50RmFjdG9yeSwgZXZlbnREYXRhLnJ1bGUsIGV2ZW50RGF0YS5vcHRzKTtcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHJldHVybiBtb2RpZmllZDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const testcafe_hammerhead_1 = require("testcafe-hammerhead");
|
|
4
|
+
class NativeAutomationPipelineContext extends testcafe_hammerhead_1.BaseRequestPipelineContext {
|
|
5
|
+
constructor(requestId) {
|
|
6
|
+
super(requestId);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.default = NativeAutomationPipelineContext;
|
|
10
|
+
module.exports = exports.default;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uYXRpdmUtYXV0b21hdGlvbi9yZXF1ZXN0LWhvb2tzL3BpcGVsaW5lLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2REFBaUU7QUFFakUsTUFBcUIsK0JBQWdDLFNBQVEsZ0RBQTBCO0lBQ25GLFlBQW9CLFNBQWlCO1FBQ2pDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUFKRCxrREFJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VSZXF1ZXN0UGlwZWxpbmVDb250ZXh0IH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5hdGl2ZUF1dG9tYXRpb25QaXBlbGluZUNvbnRleHQgZXh0ZW5kcyBCYXNlUmVxdWVzdFBpcGVsaW5lQ29udGV4dCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChyZXF1ZXN0SWQ6IHN0cmluZykge1xuICAgICAgICBzdXBlcihyZXF1ZXN0SWQpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -10,4 +10,4 @@ const FAVICON_CONTENT_TYPE_HEADER = {
|
|
|
10
10
|
value: content_types_1.default.icon,
|
|
11
11
|
};
|
|
12
12
|
exports.FAVICON_CONTENT_TYPE_HEADER = FAVICON_CONTENT_TYPE_HEADER;
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hdGl2ZS1hdXRvbWF0aW9uL3JlcXVlc3QtcGlwZWxpbmUvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtFQUF1RDtBQUV2RCxNQUFNLDJCQUEyQixHQUFHO0lBQ2hDLElBQUksRUFBRyxjQUFjO0lBQ3JCLEtBQUssRUFBRSx1QkFBYSxDQUFDLElBQUk7Q0FDNUIsQ0FBQztBQUdFLGtFQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDT05URU5UX1RZUEVTIGZyb20gJy4uLy4uL2Fzc2V0cy9jb250ZW50LXR5cGVzJztcblxuY29uc3QgRkFWSUNPTl9DT05URU5UX1RZUEVfSEVBREVSID0ge1xuICAgIG5hbWU6ICAnY29udGVudC10eXBlJyxcbiAgICB2YWx1ZTogQ09OVEVOVF9UWVBFUy5pY29uLFxufTtcblxuZXhwb3J0IHtcbiAgICBGQVZJQ09OX0NPTlRFTlRfVFlQRV9IRUFERVIsXG59O1xuIl19
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const pipeline_context_1 = __importDefault(require("../request-hooks/pipeline-context"));
|
|
7
|
+
const request_paused_event_based_1 = __importDefault(require("../request-hooks/event-factory/request-paused-event-based"));
|
|
8
|
+
const cdp_1 = require("../utils/cdp");
|
|
9
|
+
const frame_navigated_event_based_1 = __importDefault(require("../request-hooks/event-factory/frame-navigated-event-based"));
|
|
10
|
+
class NativeAutomationRequestContextInfo {
|
|
11
|
+
constructor(testRunBridge) {
|
|
12
|
+
this._pipelineContexts = {};
|
|
13
|
+
this._eventFactories = {};
|
|
14
|
+
this._testRunBridge = testRunBridge;
|
|
15
|
+
}
|
|
16
|
+
_createPipelineContext(requestId) {
|
|
17
|
+
const pipelineContext = new pipeline_context_1.default(requestId);
|
|
18
|
+
this._pipelineContexts[requestId] = pipelineContext;
|
|
19
|
+
return pipelineContext;
|
|
20
|
+
}
|
|
21
|
+
_createEventFactory(event) {
|
|
22
|
+
const sessionId = this._testRunBridge.getSessionId();
|
|
23
|
+
const requestId = (0, cdp_1.getRequestId)(event);
|
|
24
|
+
const eventFactory = (0, cdp_1.isRequestPausedEvent)(event) ? new request_paused_event_based_1.default(event, sessionId) : new frame_navigated_event_based_1.default(event, sessionId);
|
|
25
|
+
this._eventFactories[requestId] = eventFactory;
|
|
26
|
+
return eventFactory;
|
|
27
|
+
}
|
|
28
|
+
_getEventFactory(requestId) {
|
|
29
|
+
return this._eventFactories[requestId];
|
|
30
|
+
}
|
|
31
|
+
init(event) {
|
|
32
|
+
const requestId = (0, cdp_1.getRequestId)(event);
|
|
33
|
+
const pipelineContext = this._createPipelineContext(requestId);
|
|
34
|
+
const eventFactory = this._createEventFactory(event);
|
|
35
|
+
pipelineContext.setRequestOptions(eventFactory);
|
|
36
|
+
}
|
|
37
|
+
dispose(requestId) {
|
|
38
|
+
if (!requestId)
|
|
39
|
+
return;
|
|
40
|
+
delete this._pipelineContexts[requestId];
|
|
41
|
+
delete this._eventFactories[requestId];
|
|
42
|
+
}
|
|
43
|
+
getPipelineContext(requestId) {
|
|
44
|
+
return this._pipelineContexts[requestId];
|
|
45
|
+
}
|
|
46
|
+
getContextData(event) {
|
|
47
|
+
const requestId = (0, cdp_1.getRequestId)(event);
|
|
48
|
+
const pipelineContext = this.getPipelineContext(requestId);
|
|
49
|
+
const eventFactory = this._getEventFactory(requestId);
|
|
50
|
+
return { pipelineContext, eventFactory };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.default = NativeAutomationRequestContextInfo;
|
|
54
|
+
module.exports = exports.default;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hdGl2ZS1hdXRvbWF0aW9uL3JlcXVlc3QtcGlwZWxpbmUvY29udGV4dC1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EseUZBQWdGO0FBQ2hGLDJIQUE0RztBQUs1RyxzQ0FBa0U7QUFFbEUsNkhBQThHO0FBTzlHLE1BQXFCLGtDQUFrQztJQUtuRCxZQUFvQixhQUE0QjtRQUM1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUssRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQU0sYUFBYSxDQUFDO0lBQzNDLENBQUM7SUFFTyxzQkFBc0IsQ0FBRSxTQUFpQjtRQUM3QyxNQUFNLGVBQWUsR0FBRyxJQUFJLDBCQUErQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxlQUFlLENBQUM7UUFFcEQsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQztJQUVPLG1CQUFtQixDQUFFLEtBQStDO1FBQ3hFLE1BQU0sU0FBUyxHQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEQsTUFBTSxTQUFTLEdBQU0sSUFBQSxrQkFBWSxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLElBQUEsMEJBQW9CLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksb0NBQW1DLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLHFDQUFvQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUxSyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUUvQyxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRU8sZ0JBQWdCLENBQUUsU0FBaUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxJQUFJLENBQUUsS0FBK0M7UUFDeEQsTUFBTSxTQUFTLEdBQVMsSUFBQSxrQkFBWSxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLFlBQVksR0FBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEQsZUFBZSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDTSxPQUFPLENBQUUsU0FBa0I7UUFDOUIsSUFBSSxDQUFDLFNBQVM7WUFDVixPQUFPO1FBRVgsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxrQkFBa0IsQ0FBRSxTQUFpQjtRQUN4QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sY0FBYyxDQUFFLEtBQStDO1FBQ2xFLE1BQU0sU0FBUyxHQUFTLElBQUEsa0JBQVksRUFBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsTUFBTSxZQUFZLEdBQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQztDQUNKO0FBM0RELHFEQTJEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uL2ludGVyZmFjZXMnO1xuaW1wb3J0IE5hdGl2ZUF1dG9tYXRpb25QaXBlbGluZUNvbnRleHQgZnJvbSAnLi4vcmVxdWVzdC1ob29rcy9waXBlbGluZS1jb250ZXh0JztcbmltcG9ydCBSZXF1ZXN0UGF1c2VkRXZlbnRCYXNlZEV2ZW50RmFjdG9yeSBmcm9tICcuLi9yZXF1ZXN0LWhvb2tzL2V2ZW50LWZhY3RvcnkvcmVxdWVzdC1wYXVzZWQtZXZlbnQtYmFzZWQnO1xuaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sJztcbmltcG9ydCBSZXF1ZXN0UGF1c2VkRXZlbnQgPSBQcm90b2NvbC5GZXRjaC5SZXF1ZXN0UGF1c2VkRXZlbnQ7XG5pbXBvcnQgRnJhbWVOYXZpZ2F0ZWRFdmVudCA9IFByb3RvY29sLlBhZ2UuRnJhbWVOYXZpZ2F0ZWRFdmVudDtcbmltcG9ydCBUZXN0UnVuQnJpZGdlIGZyb20gJy4vdGVzdC1ydW4tYnJpZGdlJztcbmltcG9ydCB7IGdldFJlcXVlc3RJZCwgaXNSZXF1ZXN0UGF1c2VkRXZlbnQgfSBmcm9tICcuLi91dGlscy9jZHAnO1xuaW1wb3J0IHsgQmFzZVJlcXVlc3RIb29rRXZlbnRGYWN0b3J5IH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5pbXBvcnQgRnJhbWVOYXZpZ2F0ZWRFdmVudEJhc2VkRXZlbnRGYWN0b3J5IGZyb20gJy4uL3JlcXVlc3QtaG9va3MvZXZlbnQtZmFjdG9yeS9mcmFtZS1uYXZpZ2F0ZWQtZXZlbnQtYmFzZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHREYXRhIHtcbiAgICBwaXBlbGluZUNvbnRleHQ6IE5hdGl2ZUF1dG9tYXRpb25QaXBlbGluZUNvbnRleHQ7XG4gICAgZXZlbnRGYWN0b3J5OiBCYXNlUmVxdWVzdEhvb2tFdmVudEZhY3Rvcnk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5hdGl2ZUF1dG9tYXRpb25SZXF1ZXN0Q29udGV4dEluZm8ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BpcGVsaW5lQ29udGV4dHM6IERpY3Rpb25hcnk8TmF0aXZlQXV0b21hdGlvblBpcGVsaW5lQ29udGV4dD47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRGYWN0b3JpZXM6IERpY3Rpb25hcnk8QmFzZVJlcXVlc3RIb29rRXZlbnRGYWN0b3J5PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90ZXN0UnVuQnJpZGdlOiBUZXN0UnVuQnJpZGdlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yICh0ZXN0UnVuQnJpZGdlOiBUZXN0UnVuQnJpZGdlKSB7XG4gICAgICAgIHRoaXMuX3BpcGVsaW5lQ29udGV4dHMgPSB7fTtcbiAgICAgICAgdGhpcy5fZXZlbnRGYWN0b3JpZXMgICA9IHt9O1xuICAgICAgICB0aGlzLl90ZXN0UnVuQnJpZGdlICAgID0gdGVzdFJ1bkJyaWRnZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVQaXBlbGluZUNvbnRleHQgKHJlcXVlc3RJZDogc3RyaW5nKTogTmF0aXZlQXV0b21hdGlvblBpcGVsaW5lQ29udGV4dCB7XG4gICAgICAgIGNvbnN0IHBpcGVsaW5lQ29udGV4dCA9IG5ldyBOYXRpdmVBdXRvbWF0aW9uUGlwZWxpbmVDb250ZXh0KHJlcXVlc3RJZCk7XG5cbiAgICAgICAgdGhpcy5fcGlwZWxpbmVDb250ZXh0c1tyZXF1ZXN0SWRdID0gcGlwZWxpbmVDb250ZXh0O1xuXG4gICAgICAgIHJldHVybiBwaXBlbGluZUNvbnRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlRXZlbnRGYWN0b3J5IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50IHwgRnJhbWVOYXZpZ2F0ZWRFdmVudCk6IEJhc2VSZXF1ZXN0SG9va0V2ZW50RmFjdG9yeSB7XG4gICAgICAgIGNvbnN0IHNlc3Npb25JZCAgICA9IHRoaXMuX3Rlc3RSdW5CcmlkZ2UuZ2V0U2Vzc2lvbklkKCk7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RJZCAgICA9IGdldFJlcXVlc3RJZChldmVudCk7XG4gICAgICAgIGNvbnN0IGV2ZW50RmFjdG9yeSA9IGlzUmVxdWVzdFBhdXNlZEV2ZW50KGV2ZW50KSA/IG5ldyBSZXF1ZXN0UGF1c2VkRXZlbnRCYXNlZEV2ZW50RmFjdG9yeShldmVudCwgc2Vzc2lvbklkKSA6IG5ldyBGcmFtZU5hdmlnYXRlZEV2ZW50QmFzZWRFdmVudEZhY3RvcnkoZXZlbnQsIHNlc3Npb25JZCk7XG5cbiAgICAgICAgdGhpcy5fZXZlbnRGYWN0b3JpZXNbcmVxdWVzdElkXSA9IGV2ZW50RmFjdG9yeTtcblxuICAgICAgICByZXR1cm4gZXZlbnRGYWN0b3J5O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEV2ZW50RmFjdG9yeSAocmVxdWVzdElkOiBzdHJpbmcpOiBCYXNlUmVxdWVzdEhvb2tFdmVudEZhY3Rvcnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXZlbnRGYWN0b3JpZXNbcmVxdWVzdElkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdCAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCB8IEZyYW1lTmF2aWdhdGVkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdElkICAgICAgID0gZ2V0UmVxdWVzdElkKGV2ZW50KTtcbiAgICAgICAgY29uc3QgcGlwZWxpbmVDb250ZXh0ID0gdGhpcy5fY3JlYXRlUGlwZWxpbmVDb250ZXh0KHJlcXVlc3RJZCk7XG4gICAgICAgIGNvbnN0IGV2ZW50RmFjdG9yeSAgICA9IHRoaXMuX2NyZWF0ZUV2ZW50RmFjdG9yeShldmVudCk7XG5cbiAgICAgICAgcGlwZWxpbmVDb250ZXh0LnNldFJlcXVlc3RPcHRpb25zKGV2ZW50RmFjdG9yeSk7XG4gICAgfVxuICAgIHB1YmxpYyBkaXNwb3NlIChyZXF1ZXN0SWQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFyZXF1ZXN0SWQpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgZGVsZXRlIHRoaXMuX3BpcGVsaW5lQ29udGV4dHNbcmVxdWVzdElkXTtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2V2ZW50RmFjdG9yaWVzW3JlcXVlc3RJZF07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBpcGVsaW5lQ29udGV4dCAocmVxdWVzdElkOiBzdHJpbmcpOiBOYXRpdmVBdXRvbWF0aW9uUGlwZWxpbmVDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BpcGVsaW5lQ29udGV4dHNbcmVxdWVzdElkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29udGV4dERhdGEgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQgfCBGcmFtZU5hdmlnYXRlZEV2ZW50KTogQ29udGV4dERhdGEge1xuICAgICAgICBjb25zdCByZXF1ZXN0SWQgICAgICAgPSBnZXRSZXF1ZXN0SWQoZXZlbnQpO1xuICAgICAgICBjb25zdCBwaXBlbGluZUNvbnRleHQgPSB0aGlzLmdldFBpcGVsaW5lQ29udGV4dChyZXF1ZXN0SWQpO1xuICAgICAgICBjb25zdCBldmVudEZhY3RvcnkgICAgPSB0aGlzLl9nZXRFdmVudEZhY3RvcnkocmVxdWVzdElkKTtcblxuICAgICAgICByZXR1cm4geyBwaXBlbGluZUNvbnRleHQsIGV2ZW50RmFjdG9yeSB9O1xuICAgIH1cbn1cbiJdfQ==
|