@checkly/playwright-core 1.51.17-beta.3 → 1.51.17
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/lib/server/har/harRecorder.js +1 -1
- package/lib/vite/traceViewer/sw.bundle.js +7888 -3
- package/package.json +1 -1
- package/lib/checkly/checklyFileSystem.js +0 -44
- package/lib/escapeRegExp.js +0 -30
- package/lib/secretsFilter.js +0 -131
- package/lib/server/bidi/third_party/bidiCommands.d.js +0 -22
- package/lib/server/bidi/third_party/bidiProtocolCore.js +0 -152
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +0 -42
- package/lib/server/chromium/protocol.d.js +0 -16
- package/lib/server/firefox/protocol.d.js +0 -16
- package/lib/server/pageBinding.js +0 -88
- package/lib/server/recorder/recorderSignalProcessor.js +0 -83
- package/lib/server/registry/index.d.ts +0 -86
- package/lib/server/webkit/protocol.d.js +0 -16
- package/lib/utils/isomorphic/builtins.js +0 -90
- package/lib/utils/isomorphic/protocolFormatter.js +0 -68
- package/lib/utils/isomorphic/protocolMetainfo.js +0 -321
- package/lib/utils/isomorphic/utilityScriptSerializers.js +0 -251
package/package.json
CHANGED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var checklyFileSystem_exports = {};
|
|
20
|
-
__export(checklyFileSystem_exports, {
|
|
21
|
-
ChecklyFileSystem: () => ChecklyFileSystem
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(checklyFileSystem_exports);
|
|
24
|
-
var import_zipBundle = require("playwright-core/lib/zipBundle");
|
|
25
|
-
var import_fileUtils = require("../server/utils/fileUtils");
|
|
26
|
-
var import_secretsFilter = require("./secretsFilter");
|
|
27
|
-
const isSecretScrubbingEnabled = () => process.env["CHECKLY_INTERNAL_ENABLE_PATCHED_TRACING"] === "true";
|
|
28
|
-
class ChecklyFileSystem {
|
|
29
|
-
static create() {
|
|
30
|
-
return isSecretScrubbingEnabled() ? new import_fileUtils.SecretSerializedFS((0, import_secretsFilter.secretsFilter)()) : new import_fileUtils.SerializedFS();
|
|
31
|
-
}
|
|
32
|
-
static createZipFile() {
|
|
33
|
-
if (isSecretScrubbingEnabled()) {
|
|
34
|
-
const secretFS = new import_fileUtils.SecretSerializedFS((0, import_secretsFilter.secretsFilter)());
|
|
35
|
-
const ScrubbingZipFile = secretFS.createScrubbingZipFile(import_zipBundle.yazl.ZipFile);
|
|
36
|
-
return new ScrubbingZipFile();
|
|
37
|
-
}
|
|
38
|
-
return new import_zipBundle.yazl.ZipFile();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
42
|
-
0 && (module.exports = {
|
|
43
|
-
ChecklyFileSystem
|
|
44
|
-
});
|
package/lib/escapeRegExp.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/**
|
|
4
|
-
* Copyright (c) 2009-2020 Lodash.
|
|
5
|
-
* Taken from: https://github.com/lodash/lodash/blob/main/src/escapeRegExp.ts
|
|
6
|
-
* Used to match `RegExp`
|
|
7
|
-
* [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
|
|
8
|
-
*/
|
|
9
|
-
const reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
|
|
10
|
-
const reHasRegExpChar = RegExp(reRegExpChar.source);
|
|
11
|
-
/**
|
|
12
|
-
* Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+",
|
|
13
|
-
* "?", "(", ")", "[", "]", "{", "}", and "|" in `string`.
|
|
14
|
-
*
|
|
15
|
-
* @since 3.0.0
|
|
16
|
-
* @category String
|
|
17
|
-
* @param {string} [string=''] The string to escape.
|
|
18
|
-
* @returns {string} Returns the escaped string.
|
|
19
|
-
* @see escape, escapeRegExp, unescape
|
|
20
|
-
* @example
|
|
21
|
-
*
|
|
22
|
-
* escapeRegExp('[lodash](https://lodash.com/)')
|
|
23
|
-
* // => '\[lodash\]\(https://lodash\.com/\)'
|
|
24
|
-
*/
|
|
25
|
-
function escapeRegExp(string) {
|
|
26
|
-
return string && reHasRegExpChar.test(string)
|
|
27
|
-
? string.replace(reRegExpChar, '\\$&')
|
|
28
|
-
: string || '';
|
|
29
|
-
}
|
|
30
|
-
exports.default = escapeRegExp;
|
package/lib/secretsFilter.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.secretsFilter = void 0;
|
|
4
|
-
/* Copyright Checkly
|
|
5
|
-
*/
|
|
6
|
-
const escapeRegExp_1 = require("./escapeRegExp");
|
|
7
|
-
const IdentityFunction = (s) => s;
|
|
8
|
-
// Keys that may contain request/response body data that should be scrubbed
|
|
9
|
-
const REQUEST_BODY_KEYS = ['postData', 'body', 'requestBody', 'responseBody', 'payload', 'data'];
|
|
10
|
-
// Helper function to detect if a string might be base64 encoded
|
|
11
|
-
const isLikelyBase64 = (str) => {
|
|
12
|
-
if (typeof str !== 'string' || str.length === 0)
|
|
13
|
-
return false;
|
|
14
|
-
// Simple heuristic: base64 strings are typically longer and contain base64 characters
|
|
15
|
-
return str.length > 20 && /^[A-Za-z0-9+/=]+$/.test(str) && str.length % 4 === 0;
|
|
16
|
-
};
|
|
17
|
-
// Helper function to recursively scrub secrets from objects
|
|
18
|
-
const scrubObjectSecrets = (obj, secretsFilterFn) => {
|
|
19
|
-
if (obj === null || obj === undefined)
|
|
20
|
-
return obj;
|
|
21
|
-
if (Array.isArray(obj))
|
|
22
|
-
return obj.map(item => scrubObjectSecrets(item, secretsFilterFn));
|
|
23
|
-
if (typeof obj === 'object') {
|
|
24
|
-
const result = {};
|
|
25
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
26
|
-
if (typeof value === 'string')
|
|
27
|
-
result[key] = secretsFilterFn(value);
|
|
28
|
-
else
|
|
29
|
-
result[key] = scrubObjectSecrets(value, secretsFilterFn);
|
|
30
|
-
}
|
|
31
|
-
return result;
|
|
32
|
-
}
|
|
33
|
-
if (typeof obj === 'string')
|
|
34
|
-
return secretsFilterFn(obj);
|
|
35
|
-
return obj;
|
|
36
|
-
};
|
|
37
|
-
// Helper function to scrub request body content
|
|
38
|
-
const scrubRequestBody = (value, secretsFilterFn) => {
|
|
39
|
-
if (typeof value === 'string') {
|
|
40
|
-
// Try to detect if it's base64 encoded
|
|
41
|
-
if (isLikelyBase64(value)) {
|
|
42
|
-
try {
|
|
43
|
-
const decoded = Buffer.from(value, 'base64').toString('utf8');
|
|
44
|
-
// Try to parse as JSON first
|
|
45
|
-
try {
|
|
46
|
-
const parsedJson = JSON.parse(decoded);
|
|
47
|
-
const scrubbedJson = scrubObjectSecrets(parsedJson, secretsFilterFn);
|
|
48
|
-
const scrubbedString = JSON.stringify(scrubbedJson);
|
|
49
|
-
return Buffer.from(scrubbedString, 'utf8').toString('base64');
|
|
50
|
-
}
|
|
51
|
-
catch (jsonError) {
|
|
52
|
-
// Not JSON, scrub as regular text
|
|
53
|
-
const scrubbed = secretsFilterFn(decoded);
|
|
54
|
-
return Buffer.from(scrubbed, 'utf8').toString('base64');
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
// If decoding fails, treat as regular string
|
|
59
|
-
return secretsFilterFn(value);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
// Try to parse as JSON first
|
|
64
|
-
try {
|
|
65
|
-
const parsedJson = JSON.parse(value);
|
|
66
|
-
const scrubbedJson = scrubObjectSecrets(parsedJson, secretsFilterFn);
|
|
67
|
-
return JSON.stringify(scrubbedJson);
|
|
68
|
-
}
|
|
69
|
-
catch (jsonError) {
|
|
70
|
-
// Not JSON, scrub as regular text
|
|
71
|
-
return secretsFilterFn(value);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else if (Buffer.isBuffer(value)) {
|
|
76
|
-
// Handle Buffer objects
|
|
77
|
-
const decoded = value.toString('utf8');
|
|
78
|
-
try {
|
|
79
|
-
const parsedJson = JSON.parse(decoded);
|
|
80
|
-
const scrubbedJson = scrubObjectSecrets(parsedJson, secretsFilterFn);
|
|
81
|
-
const scrubbedString = JSON.stringify(scrubbedJson);
|
|
82
|
-
return Buffer.from(scrubbedString, 'utf8');
|
|
83
|
-
}
|
|
84
|
-
catch (jsonError) {
|
|
85
|
-
// Not JSON, scrub as regular text
|
|
86
|
-
const scrubbed = secretsFilterFn(decoded);
|
|
87
|
-
return Buffer.from(scrubbed, 'utf8');
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else if (typeof value === 'object' && value !== null) {
|
|
91
|
-
// Handle JSON objects directly
|
|
92
|
-
return scrubObjectSecrets(value, secretsFilterFn);
|
|
93
|
-
}
|
|
94
|
-
return value;
|
|
95
|
-
};
|
|
96
|
-
const secretsFilter = () => {
|
|
97
|
-
const disabled = process.env['CHECKLY_INTERNAL_ENABLE_PATCHED_TRACING'] !== 'true';
|
|
98
|
-
if (disabled)
|
|
99
|
-
return IdentityFunction;
|
|
100
|
-
// Cache for regex to avoid recompiling on every call
|
|
101
|
-
let cachedRegex = null;
|
|
102
|
-
let cachedKeys = '';
|
|
103
|
-
// Regex to filter out console markers
|
|
104
|
-
const consoleMarkerRegex = /\[CHECKLY_RUNTIME_SECRET\].*?\[\/CHECKLY_RUNTIME_SECRET\]/g;
|
|
105
|
-
const filterFn = (s) => {
|
|
106
|
-
const keys = process.env['CHECKLY_INTERNAL_REPLACE_TRACE_KEYS'] || '[]';
|
|
107
|
-
// Only recompile regex if keys have changed (handles runtime CHECKLY_SECRET_ variables)
|
|
108
|
-
if (keys !== cachedKeys) {
|
|
109
|
-
const keylist = JSON.parse(keys);
|
|
110
|
-
if (keylist.length === 0) {
|
|
111
|
-
cachedRegex = null;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
const escapedList = keylist.map(escapeRegExp_1.default);
|
|
115
|
-
cachedRegex = new RegExp(escapedList.join('|'), 'g');
|
|
116
|
-
}
|
|
117
|
-
cachedKeys = keys;
|
|
118
|
-
}
|
|
119
|
-
// First filter out console markers entirely
|
|
120
|
-
let filtered = s.replace(consoleMarkerRegex, '');
|
|
121
|
-
// Scrub secrets
|
|
122
|
-
if (cachedRegex)
|
|
123
|
-
filtered = filtered.replace(cachedRegex, '*********');
|
|
124
|
-
return filtered;
|
|
125
|
-
};
|
|
126
|
-
// Extend the filter function with a method to scrub request bodies
|
|
127
|
-
filterFn.scrubRequestBody = (value) => scrubRequestBody(value, filterFn);
|
|
128
|
-
filterFn.isRequestBodyKey = (key) => REQUEST_BODY_KEYS.includes(key);
|
|
129
|
-
return filterFn;
|
|
130
|
-
};
|
|
131
|
-
exports.secretsFilter = secretsFilter;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
var bidiCommands_d_exports = {};
|
|
16
|
-
module.exports = __toCommonJS(bidiCommands_d_exports);
|
|
17
|
-
/**
|
|
18
|
-
* @license
|
|
19
|
-
* Copyright 2024 Google Inc.
|
|
20
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
21
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
22
|
-
*/
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var bidiProtocolCore_exports = {};
|
|
20
|
-
__export(bidiProtocolCore_exports, {
|
|
21
|
-
BrowsingContext: () => BrowsingContext,
|
|
22
|
-
ErrorCode: () => ErrorCode,
|
|
23
|
-
Input: () => Input,
|
|
24
|
-
Log: () => Log,
|
|
25
|
-
Network: () => Network,
|
|
26
|
-
Script: () => Script,
|
|
27
|
-
Session: () => Session
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(bidiProtocolCore_exports);
|
|
30
|
-
/**
|
|
31
|
-
* @license
|
|
32
|
-
* Copyright 2024 Google Inc.
|
|
33
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
34
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
35
|
-
*/
|
|
36
|
-
var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
|
|
37
|
-
ErrorCode2["InvalidArgument"] = "invalid argument";
|
|
38
|
-
ErrorCode2["InvalidSelector"] = "invalid selector";
|
|
39
|
-
ErrorCode2["InvalidSessionId"] = "invalid session id";
|
|
40
|
-
ErrorCode2["InvalidWebExtension"] = "invalid web extension";
|
|
41
|
-
ErrorCode2["MoveTargetOutOfBounds"] = "move target out of bounds";
|
|
42
|
-
ErrorCode2["NoSuchAlert"] = "no such alert";
|
|
43
|
-
ErrorCode2["NoSuchElement"] = "no such element";
|
|
44
|
-
ErrorCode2["NoSuchFrame"] = "no such frame";
|
|
45
|
-
ErrorCode2["NoSuchHandle"] = "no such handle";
|
|
46
|
-
ErrorCode2["NoSuchHistoryEntry"] = "no such history entry";
|
|
47
|
-
ErrorCode2["NoSuchIntercept"] = "no such intercept";
|
|
48
|
-
ErrorCode2["NoSuchNode"] = "no such node";
|
|
49
|
-
ErrorCode2["NoSuchRequest"] = "no such request";
|
|
50
|
-
ErrorCode2["NoSuchScript"] = "no such script";
|
|
51
|
-
ErrorCode2["NoSuchStoragePartition"] = "no such storage partition";
|
|
52
|
-
ErrorCode2["NoSuchUserContext"] = "no such user context";
|
|
53
|
-
ErrorCode2["NoSuchWebExtension"] = "no such web extension";
|
|
54
|
-
ErrorCode2["SessionNotCreated"] = "session not created";
|
|
55
|
-
ErrorCode2["UnableToCaptureScreen"] = "unable to capture screen";
|
|
56
|
-
ErrorCode2["UnableToCloseBrowser"] = "unable to close browser";
|
|
57
|
-
ErrorCode2["UnableToSetCookie"] = "unable to set cookie";
|
|
58
|
-
ErrorCode2["UnableToSetFileInput"] = "unable to set file input";
|
|
59
|
-
ErrorCode2["UnderspecifiedStoragePartition"] = "underspecified storage partition";
|
|
60
|
-
ErrorCode2["UnknownCommand"] = "unknown command";
|
|
61
|
-
ErrorCode2["UnknownError"] = "unknown error";
|
|
62
|
-
ErrorCode2["UnsupportedOperation"] = "unsupported operation";
|
|
63
|
-
return ErrorCode2;
|
|
64
|
-
})(ErrorCode || {});
|
|
65
|
-
var Session;
|
|
66
|
-
((Session2) => {
|
|
67
|
-
let UserPromptHandlerType;
|
|
68
|
-
((UserPromptHandlerType2) => {
|
|
69
|
-
UserPromptHandlerType2["Accept"] = "accept";
|
|
70
|
-
UserPromptHandlerType2["Dismiss"] = "dismiss";
|
|
71
|
-
UserPromptHandlerType2["Ignore"] = "ignore";
|
|
72
|
-
})(UserPromptHandlerType = Session2.UserPromptHandlerType || (Session2.UserPromptHandlerType = {}));
|
|
73
|
-
})(Session || (Session = {}));
|
|
74
|
-
var BrowsingContext;
|
|
75
|
-
((BrowsingContext2) => {
|
|
76
|
-
let ReadinessState;
|
|
77
|
-
((ReadinessState2) => {
|
|
78
|
-
ReadinessState2["None"] = "none";
|
|
79
|
-
ReadinessState2["Interactive"] = "interactive";
|
|
80
|
-
ReadinessState2["Complete"] = "complete";
|
|
81
|
-
})(ReadinessState = BrowsingContext2.ReadinessState || (BrowsingContext2.ReadinessState = {}));
|
|
82
|
-
})(BrowsingContext || (BrowsingContext = {}));
|
|
83
|
-
((BrowsingContext2) => {
|
|
84
|
-
let UserPromptType;
|
|
85
|
-
((UserPromptType2) => {
|
|
86
|
-
UserPromptType2["Alert"] = "alert";
|
|
87
|
-
UserPromptType2["Beforeunload"] = "beforeunload";
|
|
88
|
-
UserPromptType2["Confirm"] = "confirm";
|
|
89
|
-
UserPromptType2["Prompt"] = "prompt";
|
|
90
|
-
})(UserPromptType = BrowsingContext2.UserPromptType || (BrowsingContext2.UserPromptType = {}));
|
|
91
|
-
})(BrowsingContext || (BrowsingContext = {}));
|
|
92
|
-
((BrowsingContext2) => {
|
|
93
|
-
let CreateType;
|
|
94
|
-
((CreateType2) => {
|
|
95
|
-
CreateType2["Tab"] = "tab";
|
|
96
|
-
CreateType2["Window"] = "window";
|
|
97
|
-
})(CreateType = BrowsingContext2.CreateType || (BrowsingContext2.CreateType = {}));
|
|
98
|
-
})(BrowsingContext || (BrowsingContext = {}));
|
|
99
|
-
var Network;
|
|
100
|
-
((Network2) => {
|
|
101
|
-
let SameSite;
|
|
102
|
-
((SameSite2) => {
|
|
103
|
-
SameSite2["Strict"] = "strict";
|
|
104
|
-
SameSite2["Lax"] = "lax";
|
|
105
|
-
SameSite2["None"] = "none";
|
|
106
|
-
})(SameSite = Network2.SameSite || (Network2.SameSite = {}));
|
|
107
|
-
})(Network || (Network = {}));
|
|
108
|
-
((Network2) => {
|
|
109
|
-
let InterceptPhase;
|
|
110
|
-
((InterceptPhase2) => {
|
|
111
|
-
InterceptPhase2["BeforeRequestSent"] = "beforeRequestSent";
|
|
112
|
-
InterceptPhase2["ResponseStarted"] = "responseStarted";
|
|
113
|
-
InterceptPhase2["AuthRequired"] = "authRequired";
|
|
114
|
-
})(InterceptPhase = Network2.InterceptPhase || (Network2.InterceptPhase = {}));
|
|
115
|
-
})(Network || (Network = {}));
|
|
116
|
-
var Script;
|
|
117
|
-
((Script2) => {
|
|
118
|
-
let ResultOwnership;
|
|
119
|
-
((ResultOwnership2) => {
|
|
120
|
-
ResultOwnership2["Root"] = "root";
|
|
121
|
-
ResultOwnership2["None"] = "none";
|
|
122
|
-
})(ResultOwnership = Script2.ResultOwnership || (Script2.ResultOwnership = {}));
|
|
123
|
-
})(Script || (Script = {}));
|
|
124
|
-
var Log;
|
|
125
|
-
((Log2) => {
|
|
126
|
-
let Level;
|
|
127
|
-
((Level2) => {
|
|
128
|
-
Level2["Debug"] = "debug";
|
|
129
|
-
Level2["Info"] = "info";
|
|
130
|
-
Level2["Warn"] = "warn";
|
|
131
|
-
Level2["Error"] = "error";
|
|
132
|
-
})(Level = Log2.Level || (Log2.Level = {}));
|
|
133
|
-
})(Log || (Log = {}));
|
|
134
|
-
var Input;
|
|
135
|
-
((Input2) => {
|
|
136
|
-
let PointerType;
|
|
137
|
-
((PointerType2) => {
|
|
138
|
-
PointerType2["Mouse"] = "mouse";
|
|
139
|
-
PointerType2["Pen"] = "pen";
|
|
140
|
-
PointerType2["Touch"] = "touch";
|
|
141
|
-
})(PointerType = Input2.PointerType || (Input2.PointerType = {}));
|
|
142
|
-
})(Input || (Input = {}));
|
|
143
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
144
|
-
0 && (module.exports = {
|
|
145
|
-
BrowsingContext,
|
|
146
|
-
ErrorCode,
|
|
147
|
-
Input,
|
|
148
|
-
Log,
|
|
149
|
-
Network,
|
|
150
|
-
Script,
|
|
151
|
-
Session
|
|
152
|
-
});
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var bidiProtocolPermissions_exports = {};
|
|
20
|
-
__export(bidiProtocolPermissions_exports, {
|
|
21
|
-
Permissions: () => Permissions
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(bidiProtocolPermissions_exports);
|
|
24
|
-
/**
|
|
25
|
-
* @license
|
|
26
|
-
* Copyright 2024 Google Inc.
|
|
27
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
28
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
29
|
-
*/
|
|
30
|
-
var Permissions;
|
|
31
|
-
((Permissions2) => {
|
|
32
|
-
let PermissionState;
|
|
33
|
-
((PermissionState2) => {
|
|
34
|
-
PermissionState2["Granted"] = "granted";
|
|
35
|
-
PermissionState2["Denied"] = "denied";
|
|
36
|
-
PermissionState2["Prompt"] = "prompt";
|
|
37
|
-
})(PermissionState = Permissions2.PermissionState || (Permissions2.PermissionState = {}));
|
|
38
|
-
})(Permissions || (Permissions = {}));
|
|
39
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
40
|
-
0 && (module.exports = {
|
|
41
|
-
Permissions
|
|
42
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
var protocol_d_exports = {};
|
|
16
|
-
module.exports = __toCommonJS(protocol_d_exports);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
var protocol_d_exports = {};
|
|
16
|
-
module.exports = __toCommonJS(protocol_d_exports);
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var pageBinding_exports = {};
|
|
20
|
-
__export(pageBinding_exports, {
|
|
21
|
-
createPageBindingScript: () => createPageBindingScript,
|
|
22
|
-
deliverBindingResult: () => deliverBindingResult,
|
|
23
|
-
takeBindingHandle: () => takeBindingHandle
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(pageBinding_exports);
|
|
26
|
-
var import_builtins = require("../utils/isomorphic/builtins");
|
|
27
|
-
var import_utilityScriptSerializers = require("../utils/isomorphic/utilityScriptSerializers");
|
|
28
|
-
function addPageBinding(playwrightBinding, bindingName, needsHandle, utilityScriptSerializersFactory, builtins2) {
|
|
29
|
-
const { serializeAsCallArgument } = utilityScriptSerializersFactory(builtins2);
|
|
30
|
-
const binding = globalThis[playwrightBinding];
|
|
31
|
-
globalThis[bindingName] = (...args) => {
|
|
32
|
-
const me = globalThis[bindingName];
|
|
33
|
-
if (needsHandle && args.slice(1).some((arg) => arg !== void 0))
|
|
34
|
-
throw new Error(`exposeBindingHandle supports a single argument, ${args.length} received`);
|
|
35
|
-
let callbacks = me["callbacks"];
|
|
36
|
-
if (!callbacks) {
|
|
37
|
-
callbacks = new builtins2.Map();
|
|
38
|
-
me["callbacks"] = callbacks;
|
|
39
|
-
}
|
|
40
|
-
const seq = (me["lastSeq"] || 0) + 1;
|
|
41
|
-
me["lastSeq"] = seq;
|
|
42
|
-
let handles = me["handles"];
|
|
43
|
-
if (!handles) {
|
|
44
|
-
handles = new builtins2.Map();
|
|
45
|
-
me["handles"] = handles;
|
|
46
|
-
}
|
|
47
|
-
const promise = new Promise((resolve, reject) => callbacks.set(seq, { resolve, reject }));
|
|
48
|
-
let payload;
|
|
49
|
-
if (needsHandle) {
|
|
50
|
-
handles.set(seq, args[0]);
|
|
51
|
-
payload = { name: bindingName, seq };
|
|
52
|
-
} else {
|
|
53
|
-
const serializedArgs = [];
|
|
54
|
-
for (let i = 0; i < args.length; i++) {
|
|
55
|
-
serializedArgs[i] = serializeAsCallArgument(args[i], (v) => {
|
|
56
|
-
return { fallThrough: v };
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
payload = { name: bindingName, seq, serializedArgs };
|
|
60
|
-
}
|
|
61
|
-
binding(JSON.stringify(payload));
|
|
62
|
-
return promise;
|
|
63
|
-
};
|
|
64
|
-
globalThis[bindingName].__installed = true;
|
|
65
|
-
}
|
|
66
|
-
function takeBindingHandle(arg) {
|
|
67
|
-
const handles = globalThis[arg.name]["handles"];
|
|
68
|
-
const handle = handles.get(arg.seq);
|
|
69
|
-
handles.delete(arg.seq);
|
|
70
|
-
return handle;
|
|
71
|
-
}
|
|
72
|
-
function deliverBindingResult(arg) {
|
|
73
|
-
const callbacks = globalThis[arg.name]["callbacks"];
|
|
74
|
-
if ("error" in arg)
|
|
75
|
-
callbacks.get(arg.seq).reject(arg.error);
|
|
76
|
-
else
|
|
77
|
-
callbacks.get(arg.seq).resolve(arg.result);
|
|
78
|
-
callbacks.delete(arg.seq);
|
|
79
|
-
}
|
|
80
|
-
function createPageBindingScript(playwrightBinding, name, needsHandle) {
|
|
81
|
-
return `(${addPageBinding.toString()})(${JSON.stringify(playwrightBinding)}, ${JSON.stringify(name)}, ${needsHandle}, (${import_utilityScriptSerializers.source}), (${import_builtins.builtins})())`;
|
|
82
|
-
}
|
|
83
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
84
|
-
0 && (module.exports = {
|
|
85
|
-
createPageBindingScript,
|
|
86
|
-
deliverBindingResult,
|
|
87
|
-
takeBindingHandle
|
|
88
|
-
});
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var recorderSignalProcessor_exports = {};
|
|
20
|
-
__export(recorderSignalProcessor_exports, {
|
|
21
|
-
RecorderSignalProcessor: () => RecorderSignalProcessor
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(recorderSignalProcessor_exports);
|
|
24
|
-
var import_debug = require("../utils/debug");
|
|
25
|
-
var import_time = require("../../utils/isomorphic/time");
|
|
26
|
-
var import_recorderUtils = require("./recorderUtils");
|
|
27
|
-
class RecorderSignalProcessor {
|
|
28
|
-
constructor(actionSink) {
|
|
29
|
-
this._lastAction = null;
|
|
30
|
-
this._delegate = actionSink;
|
|
31
|
-
}
|
|
32
|
-
addAction(actionInContext) {
|
|
33
|
-
this._lastAction = actionInContext;
|
|
34
|
-
this._delegate.addAction(actionInContext);
|
|
35
|
-
}
|
|
36
|
-
signal(pageAlias, frame, signal) {
|
|
37
|
-
const timestamp = (0, import_time.monotonicTime)();
|
|
38
|
-
if (signal.name === "navigation" && frame._page.mainFrame() === frame) {
|
|
39
|
-
const lastAction = this._lastAction;
|
|
40
|
-
const signalThreshold = (0, import_debug.isUnderTest)() ? 500 : 5e3;
|
|
41
|
-
let generateGoto = false;
|
|
42
|
-
if (!lastAction)
|
|
43
|
-
generateGoto = true;
|
|
44
|
-
else if (lastAction.action.name !== "click" && lastAction.action.name !== "press" && lastAction.action.name !== "fill")
|
|
45
|
-
generateGoto = true;
|
|
46
|
-
else if (timestamp - lastAction.startTime > signalThreshold)
|
|
47
|
-
generateGoto = true;
|
|
48
|
-
if (generateGoto) {
|
|
49
|
-
this.addAction({
|
|
50
|
-
frame: {
|
|
51
|
-
pageGuid: frame._page.guid,
|
|
52
|
-
pageAlias,
|
|
53
|
-
framePath: []
|
|
54
|
-
},
|
|
55
|
-
action: {
|
|
56
|
-
name: "navigate",
|
|
57
|
-
url: frame.url(),
|
|
58
|
-
signals: []
|
|
59
|
-
},
|
|
60
|
-
startTime: timestamp,
|
|
61
|
-
endTime: timestamp
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
(0, import_recorderUtils.generateFrameSelector)(frame).then((framePath) => {
|
|
67
|
-
const signalInContext = {
|
|
68
|
-
frame: {
|
|
69
|
-
pageGuid: frame._page.guid,
|
|
70
|
-
pageAlias,
|
|
71
|
-
framePath
|
|
72
|
-
},
|
|
73
|
-
signal,
|
|
74
|
-
timestamp
|
|
75
|
-
};
|
|
76
|
-
this._delegate.addSignal(signalInContext);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
81
|
-
0 && (module.exports = {
|
|
82
|
-
RecorderSignalProcessor
|
|
83
|
-
});
|