patchright-core 1.49.2 → 1.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +380 -12
- package/bin/reinstall_msedge_beta_linux.sh +6 -0
- package/bin/reinstall_msedge_dev_linux.sh +6 -0
- package/bin/reinstall_msedge_stable_linux.sh +6 -0
- package/browsers.json +17 -16
- package/lib/androidServerImpl.js +1 -1
- package/lib/cli/program.js +6 -30
- package/lib/client/channelOwner.js +35 -55
- package/lib/client/clientInstrumentation.js +2 -0
- package/lib/client/connection.js +3 -3
- package/lib/client/network.js +3 -1
- package/lib/client/waiter.js +1 -1
- package/lib/generated/consoleApiSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/inProcessFactory.js +2 -0
- package/lib/protocol/debug.js +1 -1
- package/lib/protocol/validator.js +2 -2
- package/lib/remote/playwrightConnection.js +4 -3
- package/lib/remote/playwrightServer.js +2 -1
- package/lib/server/bidi/bidiBrowser.js +9 -6
- package/lib/server/bidi/bidiExecutionContext.js +20 -1
- package/lib/server/bidi/bidiInput.js +7 -5
- package/lib/server/bidi/bidiNetworkManager.js +8 -9
- package/lib/server/bidi/bidiPage.js +9 -20
- package/lib/server/bidi/third_party/bidiKeyboard.js +9 -7
- package/lib/server/browserContext.js +24 -16
- package/lib/server/chromium/crBrowser.js +10 -10
- package/lib/server/chromium/crExecutionContext.js +1 -5
- package/lib/server/chromium/crInput.js +15 -4
- package/lib/server/chromium/crPage.js +17 -31
- package/lib/server/codegen/csharp.js +12 -2
- package/lib/server/codegen/java.js +14 -3
- package/lib/server/codegen/javascript.js +10 -2
- package/lib/server/codegen/jsonl.js +1 -1
- package/lib/server/codegen/python.js +5 -4
- package/lib/server/debugController.js +15 -40
- package/lib/server/debugger.js +1 -1
- package/lib/server/deviceDescriptorsSource.json +50 -50
- package/lib/server/dispatchers/browserContextDispatcher.js +2 -13
- package/lib/server/dispatchers/debugControllerDispatcher.js +4 -2
- package/lib/server/dispatchers/frameDispatcher.js +3 -2
- package/lib/server/dispatchers/pageDispatcher.js +1 -1
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +10 -11
- package/lib/server/dom.js +7 -2
- package/lib/server/fetch.js +14 -20
- package/lib/server/firefox/ffBrowser.js +9 -7
- package/lib/server/firefox/ffInput.js +15 -4
- package/lib/server/firefox/ffPage.js +13 -28
- package/lib/server/frames.js +25 -30
- package/lib/server/har/harTracer.js +1 -1
- package/lib/server/input.js +2 -3
- package/lib/server/network.js +2 -2
- package/lib/server/page.js +23 -16
- package/lib/server/recorder/chat.js +177 -0
- package/lib/server/recorder/contextRecorder.js +6 -15
- package/lib/server/recorder/recorderApp.js +1 -1
- package/lib/server/recorder/recorderCollection.js +5 -17
- package/lib/server/recorder/recorderRunner.js +7 -3
- package/lib/server/recorder/recorderUtils.js +5 -29
- package/lib/server/recorder.js +12 -9
- package/lib/server/registry/browserFetcher.js +1 -1
- package/lib/server/registry/dependencies.js +5 -5
- package/lib/server/registry/index.js +118 -5
- package/lib/server/registry/nativeDeps.js +7 -4
- package/lib/server/socksClientCertificatesInterceptor.js +1 -1
- package/lib/server/trace/recorder/snapshotterInjected.js +12 -5
- package/lib/server/trace/viewer/traceViewer.js +6 -1
- package/lib/server/transport.js +1 -0
- package/lib/server/webkit/webkit.js +1 -1
- package/lib/server/webkit/wkBrowser.js +6 -6
- package/lib/server/webkit/wkExecutionContext.js +1 -0
- package/lib/server/webkit/wkInput.js +15 -5
- package/lib/server/webkit/wkPage.js +7 -25
- package/lib/utils/comparators.js +16 -10
- package/lib/utils/debugLogger.js +3 -1
- package/lib/utils/hostPlatform.js +14 -8
- package/lib/utils/httpServer.js +0 -4
- package/lib/utils/isomorphic/ariaSnapshot.js +176 -52
- package/lib/utils/isomorphic/cssParser.js +4 -4
- package/lib/utils/isomorphic/locatorGenerators.js +2 -2
- package/lib/utils/isomorphic/locatorParser.js +18 -12
- package/lib/utils/isomorphic/urlMatch.js +2 -4
- package/lib/utils/network.js +1 -1
- package/lib/utils/processLauncher.js +1 -1
- package/lib/utils/wsServer.js +1 -0
- package/lib/utils/zones.js +18 -20
- package/lib/utilsBundleImpl/index.js +104 -104
- package/lib/vite/htmlReport/index.html +14 -14
- package/lib/vite/{traceViewer/assets/codeMirrorModule-VZNWuWvU.js → recorder/assets/codeMirrorModule-CNAqJrkA.js} +1 -1
- package/lib/vite/recorder/assets/{index-CqeZmzx8.js → index-DGS0JLxS.js} +78 -78
- package/lib/vite/recorder/assets/{index-iA1aAGZg.css → index-eHBmevrY.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/{recorder/assets/codeMirrorModule-DUzBrnvO.js → traceViewer/assets/codeMirrorModule-D55P_UuL.js} +10 -10
- package/lib/vite/traceViewer/assets/defaultSettingsView-B-uNoFsX.js +243 -0
- package/lib/vite/traceViewer/defaultSettingsView.2xeEXCXv.css +1 -0
- package/lib/vite/traceViewer/index.BfvuujqP.js +2 -0
- package/lib/vite/traceViewer/index.html +4 -7
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/{uiMode.voC1ZiOQ.css → uiMode.BatfzHMG.css} +1 -1
- package/lib/vite/traceViewer/uiMode.CStJu6jo.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +4 -7
- package/package.json +1 -1
- package/types/protocol.d.ts +269 -20
- package/types/types.d.ts +69 -30
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +0 -2
- package/lib/server/ariaSnapshot.js +0 -33
- package/lib/server/recorder/recorderInTraceViewer.js +0 -144
- package/lib/utils/isomorphic/recorderUtils.js +0 -227
- package/lib/vite/traceViewer/assets/inspectorTab-BV-Uf3j9.js +0 -68
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-B4WPcYi9.js +0 -9
- package/lib/vite/traceViewer/embedded.BLPSqdbm.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
- package/lib/vite/traceViewer/index.BGZfFXXF.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
- package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
- package/lib/vite/traceViewer/recorder.eWs2vuTG.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/uiMode.CW2d9h0S.js +0 -5
- package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
- /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-c-SNdYZy.js} +0 -0
- /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
package/ThirdPartyNotices.txt
CHANGED
|
@@ -6,7 +6,7 @@ This project incorporates components from the projects listed below. The origina
|
|
|
6
6
|
|
|
7
7
|
- @types/node@17.0.24 (https://github.com/DefinitelyTyped/DefinitelyTyped)
|
|
8
8
|
- @types/yauzl@2.10.0 (https://github.com/DefinitelyTyped/DefinitelyTyped)
|
|
9
|
-
- agent-base@
|
|
9
|
+
- agent-base@6.0.2 (https://github.com/TooTallNate/node-agent-base)
|
|
10
10
|
- balanced-match@1.0.2 (https://github.com/juliangruber/balanced-match)
|
|
11
11
|
- brace-expansion@1.1.11 (https://github.com/juliangruber/brace-expansion)
|
|
12
12
|
- buffer-crc32@0.2.13 (https://github.com/brianloveswords/buffer-crc32)
|
|
@@ -24,7 +24,7 @@ This project incorporates components from the projects listed below. The origina
|
|
|
24
24
|
- fd-slicer@1.1.0 (https://github.com/andrewrk/node-fd-slicer)
|
|
25
25
|
- get-stream@5.2.0 (https://github.com/sindresorhus/get-stream)
|
|
26
26
|
- graceful-fs@4.2.10 (https://github.com/isaacs/node-graceful-fs)
|
|
27
|
-
- https-proxy-agent@
|
|
27
|
+
- https-proxy-agent@5.0.1 (https://github.com/TooTallNate/node-https-proxy-agent)
|
|
28
28
|
- ip-address@9.0.5 (https://github.com/beaugunderson/ip-address)
|
|
29
29
|
- is-docker@2.2.1 (https://github.com/sindresorhus/is-docker)
|
|
30
30
|
- is-wsl@2.2.0 (https://github.com/sindresorhus/is-wsl)
|
|
@@ -43,7 +43,7 @@ This project incorporates components from the projects listed below. The origina
|
|
|
43
43
|
- retry@0.12.0 (https://github.com/tim-kos/node-retry)
|
|
44
44
|
- signal-exit@3.0.7 (https://github.com/tapjs/signal-exit)
|
|
45
45
|
- smart-buffer@4.2.0 (https://github.com/JoshGlazebrook/smart-buffer)
|
|
46
|
-
- socks-proxy-agent@
|
|
46
|
+
- socks-proxy-agent@6.1.1 (https://github.com/TooTallNate/node-socks-proxy-agent)
|
|
47
47
|
- socks@2.8.3 (https://github.com/JoshGlazebrook/socks)
|
|
48
48
|
- sprintf-js@1.1.3 (https://github.com/alexei/sprintf.js)
|
|
49
49
|
- stack-utils@2.0.5 (https://github.com/tapjs/stack-utils)
|
|
@@ -105,11 +105,128 @@ MIT License
|
|
|
105
105
|
=========================================
|
|
106
106
|
END OF @types/yauzl@2.10.0 AND INFORMATION
|
|
107
107
|
|
|
108
|
-
%% agent-base@
|
|
108
|
+
%% agent-base@6.0.2 NOTICES AND INFORMATION BEGIN HERE
|
|
109
109
|
=========================================
|
|
110
|
+
agent-base
|
|
111
|
+
==========
|
|
112
|
+
### Turn a function into an [`http.Agent`][http.Agent] instance
|
|
113
|
+
[](https://github.com/TooTallNate/node-agent-base/actions?workflow=Node+CI)
|
|
114
|
+
|
|
115
|
+
This module provides an `http.Agent` generator. That is, you pass it an async
|
|
116
|
+
callback function, and it returns a new `http.Agent` instance that will invoke the
|
|
117
|
+
given callback function when sending outbound HTTP requests.
|
|
118
|
+
|
|
119
|
+
#### Some subclasses:
|
|
120
|
+
|
|
121
|
+
Here's some more interesting uses of `agent-base`.
|
|
122
|
+
Send a pull request to list yours!
|
|
123
|
+
|
|
124
|
+
* [`http-proxy-agent`][http-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTP endpoints
|
|
125
|
+
* [`https-proxy-agent`][https-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTPS endpoints
|
|
126
|
+
* [`pac-proxy-agent`][pac-proxy-agent]: A PAC file proxy `http.Agent` implementation for HTTP and HTTPS
|
|
127
|
+
* [`socks-proxy-agent`][socks-proxy-agent]: A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
Installation
|
|
131
|
+
------------
|
|
132
|
+
|
|
133
|
+
Install with `npm`:
|
|
134
|
+
|
|
135
|
+
``` bash
|
|
136
|
+
$ npm install agent-base
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
Example
|
|
141
|
+
-------
|
|
142
|
+
|
|
143
|
+
Here's a minimal example that creates a new `net.Socket` connection to the server
|
|
144
|
+
for every HTTP request (i.e. the equivalent of `agent: false` option):
|
|
145
|
+
|
|
146
|
+
```js
|
|
147
|
+
var net = require('net');
|
|
148
|
+
var tls = require('tls');
|
|
149
|
+
var url = require('url');
|
|
150
|
+
var http = require('http');
|
|
151
|
+
var agent = require('agent-base');
|
|
152
|
+
|
|
153
|
+
var endpoint = 'http://nodejs.org/api/';
|
|
154
|
+
var parsed = url.parse(endpoint);
|
|
155
|
+
|
|
156
|
+
// This is the important part!
|
|
157
|
+
parsed.agent = agent(function (req, opts) {
|
|
158
|
+
var socket;
|
|
159
|
+
// `secureEndpoint` is true when using the https module
|
|
160
|
+
if (opts.secureEndpoint) {
|
|
161
|
+
socket = tls.connect(opts);
|
|
162
|
+
} else {
|
|
163
|
+
socket = net.connect(opts);
|
|
164
|
+
}
|
|
165
|
+
return socket;
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
// Everything else works just like normal...
|
|
169
|
+
http.get(parsed, function (res) {
|
|
170
|
+
console.log('"response" event!', res.headers);
|
|
171
|
+
res.pipe(process.stdout);
|
|
172
|
+
});
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Returning a Promise or using an `async` function is also supported:
|
|
176
|
+
|
|
177
|
+
```js
|
|
178
|
+
agent(async function (req, opts) {
|
|
179
|
+
await sleep(1000);
|
|
180
|
+
// etc…
|
|
181
|
+
});
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Return another `http.Agent` instance to "pass through" the responsibility
|
|
185
|
+
for that HTTP request to that agent:
|
|
186
|
+
|
|
187
|
+
```js
|
|
188
|
+
agent(function (req, opts) {
|
|
189
|
+
return opts.secureEndpoint ? https.globalAgent : http.globalAgent;
|
|
190
|
+
});
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
API
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Agent(Function callback[, Object options]) → [http.Agent][]
|
|
198
|
+
|
|
199
|
+
Creates a base `http.Agent` that will execute the callback function `callback`
|
|
200
|
+
for every HTTP request that it is used as the `agent` for. The callback function
|
|
201
|
+
is responsible for creating a `stream.Duplex` instance of some kind that will be
|
|
202
|
+
used as the underlying socket in the HTTP request.
|
|
203
|
+
|
|
204
|
+
The `options` object accepts the following properties:
|
|
205
|
+
|
|
206
|
+
* `timeout` - Number - Timeout for the `callback()` function in milliseconds. Defaults to Infinity (optional).
|
|
207
|
+
|
|
208
|
+
The callback function should have the following signature:
|
|
209
|
+
|
|
210
|
+
### callback(http.ClientRequest req, Object options, Function cb) → undefined
|
|
211
|
+
|
|
212
|
+
The ClientRequest `req` can be accessed to read request headers and
|
|
213
|
+
and the path, etc. The `options` object contains the options passed
|
|
214
|
+
to the `http.request()`/`https.request()` function call, and is formatted
|
|
215
|
+
to be directly passed to `net.connect()`/`tls.connect()`, or however
|
|
216
|
+
else you want a Socket to be created. Pass the created socket to
|
|
217
|
+
the callback function `cb` once created, and the HTTP request will
|
|
218
|
+
continue to proceed.
|
|
219
|
+
|
|
220
|
+
If the `https` module is used to invoke the HTTP request, then the
|
|
221
|
+
`secureEndpoint` property on `options` _will be set to `true`_.
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
License
|
|
225
|
+
-------
|
|
226
|
+
|
|
110
227
|
(The MIT License)
|
|
111
228
|
|
|
112
|
-
Copyright (c) 2013 Nathan Rajlich
|
|
229
|
+
Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
|
|
113
230
|
|
|
114
231
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
115
232
|
a copy of this software and associated documentation files (the
|
|
@@ -129,8 +246,14 @@ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
|
129
246
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
130
247
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
131
248
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
249
|
+
|
|
250
|
+
[http-proxy-agent]: https://github.com/TooTallNate/node-http-proxy-agent
|
|
251
|
+
[https-proxy-agent]: https://github.com/TooTallNate/node-https-proxy-agent
|
|
252
|
+
[pac-proxy-agent]: https://github.com/TooTallNate/node-pac-proxy-agent
|
|
253
|
+
[socks-proxy-agent]: https://github.com/TooTallNate/node-socks-proxy-agent
|
|
254
|
+
[http.Agent]: https://nodejs.org/api/http.html#http_class_http_agent
|
|
132
255
|
=========================================
|
|
133
|
-
END OF agent-base@
|
|
256
|
+
END OF agent-base@6.0.2 AND INFORMATION
|
|
134
257
|
|
|
135
258
|
%% balanced-match@1.0.2 NOTICES AND INFORMATION BEGIN HERE
|
|
136
259
|
=========================================
|
|
@@ -542,11 +665,124 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
542
665
|
=========================================
|
|
543
666
|
END OF graceful-fs@4.2.10 AND INFORMATION
|
|
544
667
|
|
|
545
|
-
%% https-proxy-agent@
|
|
668
|
+
%% https-proxy-agent@5.0.1 NOTICES AND INFORMATION BEGIN HERE
|
|
546
669
|
=========================================
|
|
670
|
+
https-proxy-agent
|
|
671
|
+
================
|
|
672
|
+
### An HTTP(s) proxy `http.Agent` implementation for HTTPS
|
|
673
|
+
[](https://github.com/TooTallNate/node-https-proxy-agent/actions?workflow=Node+CI)
|
|
674
|
+
|
|
675
|
+
This module provides an `http.Agent` implementation that connects to a specified
|
|
676
|
+
HTTP or HTTPS proxy server, and can be used with the built-in `https` module.
|
|
677
|
+
|
|
678
|
+
Specifically, this `Agent` implementation connects to an intermediary "proxy"
|
|
679
|
+
server and issues the [CONNECT HTTP method][CONNECT], which tells the proxy to
|
|
680
|
+
open a direct TCP connection to the destination server.
|
|
681
|
+
|
|
682
|
+
Since this agent implements the CONNECT HTTP method, it also works with other
|
|
683
|
+
protocols that use this method when connecting over proxies (i.e. WebSockets).
|
|
684
|
+
See the "Examples" section below for more.
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
Installation
|
|
688
|
+
------------
|
|
689
|
+
|
|
690
|
+
Install with `npm`:
|
|
691
|
+
|
|
692
|
+
``` bash
|
|
693
|
+
$ npm install https-proxy-agent
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
|
|
697
|
+
Examples
|
|
698
|
+
--------
|
|
699
|
+
|
|
700
|
+
#### `https` module example
|
|
701
|
+
|
|
702
|
+
``` js
|
|
703
|
+
var url = require('url');
|
|
704
|
+
var https = require('https');
|
|
705
|
+
var HttpsProxyAgent = require('https-proxy-agent');
|
|
706
|
+
|
|
707
|
+
// HTTP/HTTPS proxy to connect to
|
|
708
|
+
var proxy = process.env.http_proxy || 'http://168.63.76.32:3128';
|
|
709
|
+
console.log('using proxy server %j', proxy);
|
|
710
|
+
|
|
711
|
+
// HTTPS endpoint for the proxy to connect to
|
|
712
|
+
var endpoint = process.argv[2] || 'https://graph.facebook.com/tootallnate';
|
|
713
|
+
console.log('attempting to GET %j', endpoint);
|
|
714
|
+
var options = url.parse(endpoint);
|
|
715
|
+
|
|
716
|
+
// create an instance of the `HttpsProxyAgent` class with the proxy server information
|
|
717
|
+
var agent = new HttpsProxyAgent(proxy);
|
|
718
|
+
options.agent = agent;
|
|
719
|
+
|
|
720
|
+
https.get(options, function (res) {
|
|
721
|
+
console.log('"response" event!', res.headers);
|
|
722
|
+
res.pipe(process.stdout);
|
|
723
|
+
});
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
#### `ws` WebSocket connection example
|
|
727
|
+
|
|
728
|
+
``` js
|
|
729
|
+
var url = require('url');
|
|
730
|
+
var WebSocket = require('ws');
|
|
731
|
+
var HttpsProxyAgent = require('https-proxy-agent');
|
|
732
|
+
|
|
733
|
+
// HTTP/HTTPS proxy to connect to
|
|
734
|
+
var proxy = process.env.http_proxy || 'http://168.63.76.32:3128';
|
|
735
|
+
console.log('using proxy server %j', proxy);
|
|
736
|
+
|
|
737
|
+
// WebSocket endpoint for the proxy to connect to
|
|
738
|
+
var endpoint = process.argv[2] || 'ws://echo.websocket.org';
|
|
739
|
+
var parsed = url.parse(endpoint);
|
|
740
|
+
console.log('attempting to connect to WebSocket %j', endpoint);
|
|
741
|
+
|
|
742
|
+
// create an instance of the `HttpsProxyAgent` class with the proxy server information
|
|
743
|
+
var options = url.parse(proxy);
|
|
744
|
+
|
|
745
|
+
var agent = new HttpsProxyAgent(options);
|
|
746
|
+
|
|
747
|
+
// finally, initiate the WebSocket connection
|
|
748
|
+
var socket = new WebSocket(endpoint, { agent: agent });
|
|
749
|
+
|
|
750
|
+
socket.on('open', function () {
|
|
751
|
+
console.log('"open" event!');
|
|
752
|
+
socket.send('hello world');
|
|
753
|
+
});
|
|
754
|
+
|
|
755
|
+
socket.on('message', function (data, flags) {
|
|
756
|
+
console.log('"message" event! %j %j', data, flags);
|
|
757
|
+
socket.close();
|
|
758
|
+
});
|
|
759
|
+
```
|
|
760
|
+
|
|
761
|
+
API
|
|
762
|
+
---
|
|
763
|
+
|
|
764
|
+
### new HttpsProxyAgent(Object options)
|
|
765
|
+
|
|
766
|
+
The `HttpsProxyAgent` class implements an `http.Agent` subclass that connects
|
|
767
|
+
to the specified "HTTP(s) proxy server" in order to proxy HTTPS and/or WebSocket
|
|
768
|
+
requests. This is achieved by using the [HTTP `CONNECT` method][CONNECT].
|
|
769
|
+
|
|
770
|
+
The `options` argument may either be a string URI of the proxy server to use, or an
|
|
771
|
+
"options" object with more specific properties:
|
|
772
|
+
|
|
773
|
+
* `host` - String - Proxy host to connect to (may use `hostname` as well). Required.
|
|
774
|
+
* `port` - Number - Proxy port to connect to. Required.
|
|
775
|
+
* `protocol` - String - If `https:`, then use TLS to connect to the proxy.
|
|
776
|
+
* `headers` - Object - Additional HTTP headers to be sent on the HTTP CONNECT method.
|
|
777
|
+
* Any other options given are passed to the `net.connect()`/`tls.connect()` functions.
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
License
|
|
781
|
+
-------
|
|
782
|
+
|
|
547
783
|
(The MIT License)
|
|
548
784
|
|
|
549
|
-
Copyright (c) 2013 Nathan Rajlich
|
|
785
|
+
Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
|
|
550
786
|
|
|
551
787
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
552
788
|
a copy of this software and associated documentation files (the
|
|
@@ -566,8 +802,10 @@ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
|
566
802
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
567
803
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
568
804
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
805
|
+
|
|
806
|
+
[CONNECT]: http://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_Tunneling
|
|
569
807
|
=========================================
|
|
570
|
-
END OF https-proxy-agent@
|
|
808
|
+
END OF https-proxy-agent@5.0.1 AND INFORMATION
|
|
571
809
|
|
|
572
810
|
%% ip-address@9.0.5 NOTICES AND INFORMATION BEGIN HERE
|
|
573
811
|
=========================================
|
|
@@ -1005,11 +1243,141 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
1005
1243
|
=========================================
|
|
1006
1244
|
END OF smart-buffer@4.2.0 AND INFORMATION
|
|
1007
1245
|
|
|
1008
|
-
%% socks-proxy-agent@
|
|
1246
|
+
%% socks-proxy-agent@6.1.1 NOTICES AND INFORMATION BEGIN HERE
|
|
1009
1247
|
=========================================
|
|
1248
|
+
socks-proxy-agent
|
|
1249
|
+
================
|
|
1250
|
+
### A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS
|
|
1251
|
+
[](https://github.com/TooTallNate/node-socks-proxy-agent/actions?workflow=Node+CI)
|
|
1252
|
+
|
|
1253
|
+
This module provides an `http.Agent` implementation that connects to a
|
|
1254
|
+
specified SOCKS proxy server, and can be used with the built-in `http`
|
|
1255
|
+
and `https` modules.
|
|
1256
|
+
|
|
1257
|
+
It can also be used in conjunction with the `ws` module to establish a WebSocket
|
|
1258
|
+
connection over a SOCKS proxy. See the "Examples" section below.
|
|
1259
|
+
|
|
1260
|
+
Installation
|
|
1261
|
+
------------
|
|
1262
|
+
|
|
1263
|
+
Install with `npm`:
|
|
1264
|
+
|
|
1265
|
+
``` bash
|
|
1266
|
+
$ npm install socks-proxy-agent
|
|
1267
|
+
```
|
|
1268
|
+
|
|
1269
|
+
|
|
1270
|
+
Examples
|
|
1271
|
+
--------
|
|
1272
|
+
|
|
1273
|
+
#### TypeScript example
|
|
1274
|
+
|
|
1275
|
+
```ts
|
|
1276
|
+
import https from 'https';
|
|
1277
|
+
import { SocksProxyAgent } from 'socks-proxy-agent';
|
|
1278
|
+
|
|
1279
|
+
const info = {
|
|
1280
|
+
host: 'br41.nordvpn.com',
|
|
1281
|
+
userId: 'your-name@gmail.com',
|
|
1282
|
+
password: 'abcdef12345124'
|
|
1283
|
+
};
|
|
1284
|
+
const agent = new SocksProxyAgent(info);
|
|
1285
|
+
|
|
1286
|
+
https.get('https://jsonip.org', { agent }, (res) => {
|
|
1287
|
+
console.log(res.headers);
|
|
1288
|
+
res.pipe(process.stdout);
|
|
1289
|
+
});
|
|
1290
|
+
```
|
|
1291
|
+
|
|
1292
|
+
#### `http` module example
|
|
1293
|
+
|
|
1294
|
+
```js
|
|
1295
|
+
var url = require('url');
|
|
1296
|
+
var http = require('http');
|
|
1297
|
+
var SocksProxyAgent = require('socks-proxy-agent');
|
|
1298
|
+
|
|
1299
|
+
// SOCKS proxy to connect to
|
|
1300
|
+
var proxy = process.env.socks_proxy || 'socks://127.0.0.1:1080';
|
|
1301
|
+
console.log('using proxy server %j', proxy);
|
|
1302
|
+
|
|
1303
|
+
// HTTP endpoint for the proxy to connect to
|
|
1304
|
+
var endpoint = process.argv[2] || 'http://nodejs.org/api/';
|
|
1305
|
+
console.log('attempting to GET %j', endpoint);
|
|
1306
|
+
var opts = url.parse(endpoint);
|
|
1307
|
+
|
|
1308
|
+
// create an instance of the `SocksProxyAgent` class with the proxy server information
|
|
1309
|
+
var agent = new SocksProxyAgent(proxy);
|
|
1310
|
+
opts.agent = agent;
|
|
1311
|
+
|
|
1312
|
+
http.get(opts, function (res) {
|
|
1313
|
+
console.log('"response" event!', res.headers);
|
|
1314
|
+
res.pipe(process.stdout);
|
|
1315
|
+
});
|
|
1316
|
+
```
|
|
1317
|
+
|
|
1318
|
+
#### `https` module example
|
|
1319
|
+
|
|
1320
|
+
```js
|
|
1321
|
+
var url = require('url');
|
|
1322
|
+
var https = require('https');
|
|
1323
|
+
var SocksProxyAgent = require('socks-proxy-agent');
|
|
1324
|
+
|
|
1325
|
+
// SOCKS proxy to connect to
|
|
1326
|
+
var proxy = process.env.socks_proxy || 'socks://127.0.0.1:1080';
|
|
1327
|
+
console.log('using proxy server %j', proxy);
|
|
1328
|
+
|
|
1329
|
+
// HTTP endpoint for the proxy to connect to
|
|
1330
|
+
var endpoint = process.argv[2] || 'https://encrypted.google.com/';
|
|
1331
|
+
console.log('attempting to GET %j', endpoint);
|
|
1332
|
+
var opts = url.parse(endpoint);
|
|
1333
|
+
|
|
1334
|
+
// create an instance of the `SocksProxyAgent` class with the proxy server information
|
|
1335
|
+
var agent = new SocksProxyAgent(proxy);
|
|
1336
|
+
opts.agent = agent;
|
|
1337
|
+
|
|
1338
|
+
https.get(opts, function (res) {
|
|
1339
|
+
console.log('"response" event!', res.headers);
|
|
1340
|
+
res.pipe(process.stdout);
|
|
1341
|
+
});
|
|
1342
|
+
```
|
|
1343
|
+
|
|
1344
|
+
#### `ws` WebSocket connection example
|
|
1345
|
+
|
|
1346
|
+
``` js
|
|
1347
|
+
var WebSocket = require('ws');
|
|
1348
|
+
var SocksProxyAgent = require('socks-proxy-agent');
|
|
1349
|
+
|
|
1350
|
+
// SOCKS proxy to connect to
|
|
1351
|
+
var proxy = process.env.socks_proxy || 'socks://127.0.0.1:1080';
|
|
1352
|
+
console.log('using proxy server %j', proxy);
|
|
1353
|
+
|
|
1354
|
+
// WebSocket endpoint for the proxy to connect to
|
|
1355
|
+
var endpoint = process.argv[2] || 'ws://echo.websocket.org';
|
|
1356
|
+
console.log('attempting to connect to WebSocket %j', endpoint);
|
|
1357
|
+
|
|
1358
|
+
// create an instance of the `SocksProxyAgent` class with the proxy server information
|
|
1359
|
+
var agent = new SocksProxyAgent(proxy);
|
|
1360
|
+
|
|
1361
|
+
// initiate the WebSocket connection
|
|
1362
|
+
var socket = new WebSocket(endpoint, { agent: agent });
|
|
1363
|
+
|
|
1364
|
+
socket.on('open', function () {
|
|
1365
|
+
console.log('"open" event!');
|
|
1366
|
+
socket.send('hello world');
|
|
1367
|
+
});
|
|
1368
|
+
|
|
1369
|
+
socket.on('message', function (data, flags) {
|
|
1370
|
+
console.log('"message" event! %j %j', data, flags);
|
|
1371
|
+
socket.close();
|
|
1372
|
+
});
|
|
1373
|
+
```
|
|
1374
|
+
|
|
1375
|
+
License
|
|
1376
|
+
-------
|
|
1377
|
+
|
|
1010
1378
|
(The MIT License)
|
|
1011
1379
|
|
|
1012
|
-
Copyright (c) 2013 Nathan Rajlich
|
|
1380
|
+
Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net>
|
|
1013
1381
|
|
|
1014
1382
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
1015
1383
|
a copy of this software and associated documentation files (the
|
|
@@ -1030,7 +1398,7 @@ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
|
1030
1398
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
1031
1399
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
1032
1400
|
=========================================
|
|
1033
|
-
END OF socks-proxy-agent@
|
|
1401
|
+
END OF socks-proxy-agent@6.1.1 AND INFORMATION
|
|
1034
1402
|
|
|
1035
1403
|
%% socks@2.8.3 NOTICES AND INFORMATION BEGIN HERE
|
|
1036
1404
|
=========================================
|
|
@@ -32,6 +32,12 @@ if ! command -v curl >/dev/null; then
|
|
|
32
32
|
apt-get install -y curl
|
|
33
33
|
fi
|
|
34
34
|
|
|
35
|
+
# GnuPG is not preinstalled in slim images
|
|
36
|
+
if ! command -v gpg >/dev/null; then
|
|
37
|
+
apt-get update
|
|
38
|
+
apt-get install -y gpg
|
|
39
|
+
fi
|
|
40
|
+
|
|
35
41
|
# 3. Add the GPG key, the apt repo, update the apt cache, and install the package
|
|
36
42
|
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /tmp/microsoft.gpg
|
|
37
43
|
install -o root -g root -m 644 /tmp/microsoft.gpg /etc/apt/trusted.gpg.d/
|
|
@@ -32,6 +32,12 @@ if ! command -v curl >/dev/null; then
|
|
|
32
32
|
apt-get install -y curl
|
|
33
33
|
fi
|
|
34
34
|
|
|
35
|
+
# GnuPG is not preinstalled in slim images
|
|
36
|
+
if ! command -v gpg >/dev/null; then
|
|
37
|
+
apt-get update
|
|
38
|
+
apt-get install -y gpg
|
|
39
|
+
fi
|
|
40
|
+
|
|
35
41
|
# 3. Add the GPG key, the apt repo, update the apt cache, and install the package
|
|
36
42
|
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /tmp/microsoft.gpg
|
|
37
43
|
install -o root -g root -m 644 /tmp/microsoft.gpg /etc/apt/trusted.gpg.d/
|
|
@@ -32,6 +32,12 @@ if ! command -v curl >/dev/null; then
|
|
|
32
32
|
apt-get install -y curl
|
|
33
33
|
fi
|
|
34
34
|
|
|
35
|
+
# GnuPG is not preinstalled in slim images
|
|
36
|
+
if ! command -v gpg >/dev/null; then
|
|
37
|
+
apt-get update
|
|
38
|
+
apt-get install -y gpg
|
|
39
|
+
fi
|
|
40
|
+
|
|
35
41
|
# 3. Add the GPG key, the apt repo, update the apt cache, and install the package
|
|
36
42
|
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /tmp/microsoft.gpg
|
|
37
43
|
install -o root -g root -m 644 /tmp/microsoft.gpg /etc/apt/trusted.gpg.d/
|
package/browsers.json
CHANGED
|
@@ -3,39 +3,35 @@
|
|
|
3
3
|
"browsers": [
|
|
4
4
|
{
|
|
5
5
|
"name": "chromium",
|
|
6
|
-
"revision": "
|
|
6
|
+
"revision": "1155",
|
|
7
7
|
"installByDefault": true,
|
|
8
|
-
"browserVersion": "
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"name": "chromium-headless-shell",
|
|
12
|
-
"revision": "1148",
|
|
13
|
-
"installByDefault": true,
|
|
14
|
-
"browserVersion": "131.0.6778.33"
|
|
8
|
+
"browserVersion": "133.0.6943.16"
|
|
15
9
|
},
|
|
16
10
|
{
|
|
17
11
|
"name": "chromium-tip-of-tree",
|
|
18
|
-
"revision": "
|
|
12
|
+
"revision": "1293",
|
|
19
13
|
"installByDefault": false,
|
|
20
|
-
"browserVersion": "
|
|
14
|
+
"browserVersion": "133.0.6943.0"
|
|
21
15
|
},
|
|
22
16
|
{
|
|
23
17
|
"name": "firefox",
|
|
24
|
-
"revision": "
|
|
18
|
+
"revision": "1471",
|
|
25
19
|
"installByDefault": true,
|
|
26
|
-
"browserVersion": "
|
|
20
|
+
"browserVersion": "134.0"
|
|
27
21
|
},
|
|
28
22
|
{
|
|
29
23
|
"name": "firefox-beta",
|
|
30
|
-
"revision": "
|
|
24
|
+
"revision": "1467",
|
|
31
25
|
"installByDefault": false,
|
|
32
|
-
"browserVersion": "
|
|
26
|
+
"browserVersion": "133.0b9"
|
|
33
27
|
},
|
|
34
28
|
{
|
|
35
29
|
"name": "webkit",
|
|
36
|
-
"revision": "
|
|
30
|
+
"revision": "2123",
|
|
37
31
|
"installByDefault": true,
|
|
38
32
|
"revisionOverrides": {
|
|
33
|
+
"debian11-x64": "2105",
|
|
34
|
+
"debian11-arm64": "2105",
|
|
39
35
|
"mac10.14": "1446",
|
|
40
36
|
"mac10.15": "1616",
|
|
41
37
|
"mac11": "1816",
|
|
@@ -49,13 +45,18 @@
|
|
|
49
45
|
},
|
|
50
46
|
{
|
|
51
47
|
"name": "ffmpeg",
|
|
52
|
-
"revision": "
|
|
48
|
+
"revision": "1011",
|
|
53
49
|
"installByDefault": true,
|
|
54
50
|
"revisionOverrides": {
|
|
55
51
|
"mac12": "1010",
|
|
56
52
|
"mac12-arm64": "1010"
|
|
57
53
|
}
|
|
58
54
|
},
|
|
55
|
+
{
|
|
56
|
+
"name": "winldd",
|
|
57
|
+
"revision": "1007",
|
|
58
|
+
"installByDefault": false
|
|
59
|
+
},
|
|
59
60
|
{
|
|
60
61
|
"name": "android",
|
|
61
62
|
"revision": "1001",
|
package/lib/androidServerImpl.js
CHANGED
|
@@ -39,7 +39,7 @@ class AndroidServerLauncherImpl {
|
|
|
39
39
|
if (devices.length === 0) throw new Error('No devices found');
|
|
40
40
|
if (options.deviceSerialNumber) {
|
|
41
41
|
devices = devices.filter(d => d.serial === options.deviceSerialNumber);
|
|
42
|
-
if (devices.length === 0) throw new Error(`No device with serial number '${options.deviceSerialNumber}'
|
|
42
|
+
if (devices.length === 0) throw new Error(`No device with serial number '${options.deviceSerialNumber}' was found`);
|
|
43
43
|
}
|
|
44
44
|
if (devices.length > 1) throw new Error(`More than one device found. Please specify deviceSerialNumber`);
|
|
45
45
|
const device = devices[0];
|
package/lib/cli/program.js
CHANGED
|
@@ -16,7 +16,6 @@ var _utilsBundle = require("../utilsBundle");
|
|
|
16
16
|
var _driver = require("./driver");
|
|
17
17
|
var _traceViewer = require("../server/trace/viewer/traceViewer");
|
|
18
18
|
var playwright = _interopRequireWildcard(require("../.."));
|
|
19
|
-
var _child_process = require("child_process");
|
|
20
19
|
var _utils = require("../utils");
|
|
21
20
|
var _server = require("../server");
|
|
22
21
|
var _errors = require("../client/errors");
|
|
@@ -56,7 +55,7 @@ Examples:
|
|
|
56
55
|
|
|
57
56
|
$ open
|
|
58
57
|
$ open -b webkit https://example.com`);
|
|
59
|
-
commandWithOpenOptions('codegen [url]', 'open page and generate code for user actions', [['-o, --output <file name>', 'saves the generated script to a file'], ['--target <language>', `language to generate, one of javascript, playwright-test, python, python-async, python-pytest, csharp, csharp-mstest, csharp-nunit, java, java-junit`, codegenId()], ['--
|
|
58
|
+
commandWithOpenOptions('codegen [url]', 'open page and generate code for user actions', [['-o, --output <file name>', 'saves the generated script to a file'], ['--target <language>', `language to generate, one of javascript, playwright-test, python, python-async, python-pytest, csharp, csharp-mstest, csharp-nunit, java, java-junit`, codegenId()], ['--test-id-attribute <attributeName>', 'use the specified attribute to generate data test ID selectors']]).action(function (url, options) {
|
|
60
59
|
codegen(options, url).catch(logErrorAndExit);
|
|
61
60
|
}).addHelpText('afterAll', `
|
|
62
61
|
Examples:
|
|
@@ -64,21 +63,6 @@ Examples:
|
|
|
64
63
|
$ codegen
|
|
65
64
|
$ codegen --target=python
|
|
66
65
|
$ codegen -b webkit https://example.com`);
|
|
67
|
-
_utilsBundle.program.command('debug <app> [args...]', {
|
|
68
|
-
hidden: true
|
|
69
|
-
}).description('run command in debug mode: disable timeout, open inspector').allowUnknownOption(true).action(function (app, options) {
|
|
70
|
-
(0, _child_process.spawn)(app, options, {
|
|
71
|
-
env: {
|
|
72
|
-
...process.env,
|
|
73
|
-
PWDEBUG: '1'
|
|
74
|
-
},
|
|
75
|
-
stdio: 'inherit'
|
|
76
|
-
});
|
|
77
|
-
}).addHelpText('afterAll', `
|
|
78
|
-
Examples:
|
|
79
|
-
|
|
80
|
-
$ debug node test.js
|
|
81
|
-
$ debug npm run test`);
|
|
82
66
|
function suggestedBrowsersToInstall() {
|
|
83
67
|
return _server.registry.executables().filter(e => e.installType !== 'none' && e.type !== 'tool').map(e => e.name).join(', ');
|
|
84
68
|
}
|
|
@@ -105,6 +89,7 @@ function checkBrowsersToInstall(args, options) {
|
|
|
105
89
|
handleArgument(arg);
|
|
106
90
|
}
|
|
107
91
|
}
|
|
92
|
+
if (process.platform === 'win32') executables.push(_server.registry.findExecutable('winldd'));
|
|
108
93
|
if (faultyArguments.length) throw new Error(`Invalid installation targets: ${faultyArguments.map(name => `'${name}'`).join(', ')}. Expecting one of: ${suggestedBrowsersToInstall()}`);
|
|
109
94
|
return executables;
|
|
110
95
|
}
|
|
@@ -221,9 +206,7 @@ _utilsBundle.program.command('run-driver', {
|
|
|
221
206
|
}).action(function (options) {
|
|
222
207
|
(0, _driver.runDriver)();
|
|
223
208
|
});
|
|
224
|
-
_utilsBundle.program.command('run-server', {
|
|
225
|
-
hidden: true
|
|
226
|
-
}).option('--port <port>', 'Server port').option('--host <host>', 'Server host').option('--path <path>', 'Endpoint Path', '/').option('--max-clients <maxClients>', 'Maximum clients').option('--mode <mode>', 'Server mode, either "default" or "extension"').action(function (options) {
|
|
209
|
+
_utilsBundle.program.command('run-server').option('--port <port>', 'Server port').option('--host <host>', 'Server host').option('--path <path>', 'Endpoint Path', '/').option('--max-clients <maxClients>', 'Maximum clients').option('--mode <mode>', 'Server mode, either "default" or "extension"').action(function (options) {
|
|
227
210
|
(0, _driver.runServer)({
|
|
228
211
|
port: options.port ? +options.port : undefined,
|
|
229
212
|
host: options.host,
|
|
@@ -317,13 +300,14 @@ async function launchContext(options, extraOptions) {
|
|
|
317
300
|
// Viewport size
|
|
318
301
|
if (options.viewportSize) {
|
|
319
302
|
try {
|
|
320
|
-
const [width, height] = options.viewportSize.split(',').map(n =>
|
|
303
|
+
const [width, height] = options.viewportSize.split(',').map(n => +n);
|
|
304
|
+
if (isNaN(width) || isNaN(height)) throw new Error('bad values');
|
|
321
305
|
contextOptions.viewport = {
|
|
322
306
|
width,
|
|
323
307
|
height
|
|
324
308
|
};
|
|
325
309
|
} catch (e) {
|
|
326
|
-
throw new Error('Invalid viewport size format: use "width,
|
|
310
|
+
throw new Error('Invalid viewport size format: use "width,height", for example --viewport-size="800,600"');
|
|
327
311
|
}
|
|
328
312
|
}
|
|
329
313
|
|
|
@@ -383,9 +367,6 @@ async function launchContext(options, extraOptions) {
|
|
|
383
367
|
// a temporary page and we call closeBrowser again when that page closes.
|
|
384
368
|
if (closingBrowser) return;
|
|
385
369
|
closingBrowser = true;
|
|
386
|
-
if (options.saveTrace) await context.tracing.stop({
|
|
387
|
-
path: options.saveTrace
|
|
388
|
-
});
|
|
389
370
|
if (options.saveStorage) await context.storageState({
|
|
390
371
|
path: options.saveStorage
|
|
391
372
|
}).catch(e => null);
|
|
@@ -408,10 +389,6 @@ async function launchContext(options, extraOptions) {
|
|
|
408
389
|
const timeout = options.timeout ? parseInt(options.timeout, 10) : 0;
|
|
409
390
|
context.setDefaultTimeout(timeout);
|
|
410
391
|
context.setDefaultNavigationTimeout(timeout);
|
|
411
|
-
if (options.saveTrace) await context.tracing.start({
|
|
412
|
-
screenshots: true,
|
|
413
|
-
snapshots: true
|
|
414
|
-
});
|
|
415
392
|
|
|
416
393
|
// Omit options that we add automatically for presentation purpose.
|
|
417
394
|
delete launchOptions.headless;
|
|
@@ -486,7 +463,6 @@ async function codegen(options, url) {
|
|
|
486
463
|
device: options.device,
|
|
487
464
|
saveStorage: options.saveStorage,
|
|
488
465
|
mode: 'recording',
|
|
489
|
-
codegenMode: process.env.PW_RECORDER_IS_TRACE_VIEWER ? 'trace-events' : 'actions',
|
|
490
466
|
testIdAttributeName,
|
|
491
467
|
outputFile: outputFile ? _path.default.resolve(outputFile) : undefined,
|
|
492
468
|
handleSIGINT: false
|