patchright-bun-core 1.58.0 → 1.58.2
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/README.md +2 -2
- package/ThirdPartyNotices.txt +4075 -4075
- package/bin/install_media_pack.ps1 +5 -5
- package/bin/install_webkit_wsl.ps1 +32 -32
- package/bin/reinstall_chrome_beta_linux.sh +42 -42
- package/bin/reinstall_chrome_beta_mac.sh +13 -13
- package/bin/reinstall_chrome_beta_win.ps1 +24 -24
- package/bin/reinstall_chrome_stable_linux.sh +42 -42
- package/bin/reinstall_chrome_stable_mac.sh +12 -12
- package/bin/reinstall_chrome_stable_win.ps1 +24 -24
- package/bin/reinstall_msedge_beta_linux.sh +48 -48
- package/bin/reinstall_msedge_beta_mac.sh +11 -11
- package/bin/reinstall_msedge_beta_win.ps1 +23 -23
- package/bin/reinstall_msedge_dev_linux.sh +48 -48
- package/bin/reinstall_msedge_dev_mac.sh +11 -11
- package/bin/reinstall_msedge_dev_win.ps1 +23 -23
- package/bin/reinstall_msedge_stable_linux.sh +48 -48
- package/bin/reinstall_msedge_stable_mac.sh +11 -11
- package/bin/reinstall_msedge_stable_win.ps1 +23 -23
- package/browsers.json +79 -79
- package/cli.js +18 -18
- package/index.d.ts +17 -17
- package/index.js +32 -32
- package/index.mjs +28 -28
- package/lib/androidServerImpl.js +65 -65
- package/lib/browserServerImpl.js +120 -120
- package/lib/cli/driver.js +97 -97
- package/lib/cli/program.js +589 -589
- package/lib/cli/programWithTestStub.js +74 -74
- package/lib/client/android.js +361 -361
- package/lib/client/api.js +137 -137
- package/lib/client/artifact.js +79 -79
- package/lib/client/browser.js +161 -161
- package/lib/client/browserContext.js +582 -582
- package/lib/client/browserType.js +185 -185
- package/lib/client/cdpSession.js +51 -51
- package/lib/client/channelOwner.js +194 -194
- package/lib/client/clientHelper.js +64 -64
- package/lib/client/clientInstrumentation.js +55 -55
- package/lib/client/clientStackTrace.js +69 -69
- package/lib/client/clock.js +68 -68
- package/lib/client/connection.js +318 -318
- package/lib/client/consoleMessage.js +58 -58
- package/lib/client/coverage.js +44 -44
- package/lib/client/dialog.js +56 -56
- package/lib/client/download.js +62 -62
- package/lib/client/electron.js +138 -138
- package/lib/client/elementHandle.js +284 -284
- package/lib/client/errors.js +77 -77
- package/lib/client/eventEmitter.js +314 -314
- package/lib/client/events.js +103 -103
- package/lib/client/fetch.js +368 -368
- package/lib/client/fileChooser.js +46 -46
- package/lib/client/fileUtils.js +34 -34
- package/lib/client/frame.js +409 -409
- package/lib/client/harRouter.js +87 -87
- package/lib/client/input.js +84 -84
- package/lib/client/jsHandle.js +109 -109
- package/lib/client/jsonPipe.js +39 -39
- package/lib/client/localUtils.js +60 -60
- package/lib/client/locator.js +369 -369
- package/lib/client/network.js +747 -747
- package/lib/client/page.js +745 -745
- package/lib/client/pageAgent.js +64 -64
- package/lib/client/platform.js +77 -77
- package/lib/client/playwright.js +71 -71
- package/lib/client/selectors.js +55 -55
- package/lib/client/stream.js +39 -39
- package/lib/client/timeoutSettings.js +79 -79
- package/lib/client/tracing.js +119 -119
- package/lib/client/types.js +28 -28
- package/lib/client/video.js +59 -59
- package/lib/client/waiter.js +142 -142
- package/lib/client/webError.js +39 -39
- package/lib/client/webSocket.js +93 -93
- package/lib/client/worker.js +85 -85
- package/lib/client/writableStream.js +39 -39
- package/lib/generated/bindingsControllerSource.js +28 -28
- package/lib/generated/clockSource.js +28 -28
- package/lib/generated/injectedScriptSource.js +28 -28
- package/lib/generated/pollingRecorderSource.js +28 -28
- package/lib/generated/storageScriptSource.js +28 -28
- package/lib/generated/utilityScriptSource.js +28 -28
- package/lib/generated/webSocketMockSource.js +336 -336
- package/lib/inProcessFactory.js +60 -60
- package/lib/inprocess.js +3 -3
- package/lib/mcpBundle.js +84 -84
- package/lib/mcpBundleImpl/index.js +147 -147
- package/lib/outofprocess.js +76 -76
- package/lib/protocol/serializers.js +197 -197
- package/lib/protocol/validator.js +2969 -2969
- package/lib/protocol/validatorPrimitives.js +193 -193
- package/lib/remote/playwrightConnection.js +129 -129
- package/lib/remote/playwrightServer.js +334 -334
- package/lib/server/agent/actionRunner.js +335 -335
- package/lib/server/agent/actions.js +128 -128
- package/lib/server/agent/codegen.js +111 -111
- package/lib/server/agent/context.js +150 -150
- package/lib/server/agent/expectTools.js +156 -156
- package/lib/server/agent/pageAgent.js +204 -204
- package/lib/server/agent/performTools.js +262 -262
- package/lib/server/agent/tool.js +109 -109
- package/lib/server/android/android.js +465 -465
- package/lib/server/android/backendAdb.js +177 -177
- package/lib/server/artifact.js +127 -127
- package/lib/server/bidi/bidiBrowser.js +549 -549
- package/lib/server/bidi/bidiChromium.js +149 -148
- package/lib/server/bidi/bidiConnection.js +213 -213
- package/lib/server/bidi/bidiDeserializer.js +116 -116
- package/lib/server/bidi/bidiExecutionContext.js +267 -267
- package/lib/server/bidi/bidiFirefox.js +128 -128
- package/lib/server/bidi/bidiInput.js +146 -146
- package/lib/server/bidi/bidiNetworkManager.js +383 -383
- package/lib/server/bidi/bidiOverCdp.js +102 -102
- package/lib/server/bidi/bidiPage.js +583 -583
- package/lib/server/bidi/bidiPdf.js +106 -106
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -22
- package/lib/server/bidi/third_party/bidiKeyboard.js +256 -256
- package/lib/server/bidi/third_party/bidiProtocol.js +24 -24
- package/lib/server/bidi/third_party/bidiProtocolCore.js +180 -180
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -42
- package/lib/server/bidi/third_party/bidiSerializer.js +148 -148
- package/lib/server/bidi/third_party/firefoxPrefs.js +259 -259
- package/lib/server/browser.js +149 -149
- package/lib/server/browserContext.js +702 -702
- package/lib/server/browserType.js +336 -336
- package/lib/server/callLog.js +82 -82
- package/lib/server/chromium/chromium.js +397 -395
- package/lib/server/chromium/chromiumSwitches.js +104 -104
- package/lib/server/chromium/crBrowser.js +520 -511
- package/lib/server/chromium/crConnection.js +197 -197
- package/lib/server/chromium/crCoverage.js +235 -235
- package/lib/server/chromium/crDevTools.js +111 -111
- package/lib/server/chromium/crDragDrop.js +131 -131
- package/lib/server/chromium/crExecutionContext.js +146 -146
- package/lib/server/chromium/crInput.js +187 -187
- package/lib/server/chromium/crNetworkManager.js +707 -707
- package/lib/server/chromium/crPage.js +1001 -1001
- package/lib/server/chromium/crPdf.js +121 -121
- package/lib/server/chromium/crProtocolHelper.js +145 -145
- package/lib/server/chromium/crServiceWorker.js +136 -136
- package/lib/server/chromium/defaultFontFamilies.js +162 -162
- package/lib/server/chromium/protocol.d.js +16 -16
- package/lib/server/clock.js +149 -149
- package/lib/server/codegen/csharp.js +327 -327
- package/lib/server/codegen/java.js +274 -274
- package/lib/server/codegen/javascript.js +247 -247
- package/lib/server/codegen/jsonl.js +52 -52
- package/lib/server/codegen/language.js +132 -132
- package/lib/server/codegen/languages.js +68 -68
- package/lib/server/codegen/python.js +279 -279
- package/lib/server/codegen/types.js +16 -16
- package/lib/server/console.js +57 -57
- package/lib/server/cookieStore.js +206 -206
- package/lib/server/debugController.js +191 -191
- package/lib/server/debugger.js +119 -119
- package/lib/server/deviceDescriptors.js +39 -39
- package/lib/server/deviceDescriptorsSource.json +1778 -1778
- package/lib/server/dialog.js +116 -116
- package/lib/server/dispatchers/androidDispatcher.js +325 -325
- package/lib/server/dispatchers/artifactDispatcher.js +118 -118
- package/lib/server/dispatchers/browserContextDispatcher.js +384 -384
- package/lib/server/dispatchers/browserDispatcher.js +118 -118
- package/lib/server/dispatchers/browserTypeDispatcher.js +64 -64
- package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -44
- package/lib/server/dispatchers/debugControllerDispatcher.js +78 -78
- package/lib/server/dispatchers/dialogDispatcher.js +47 -47
- package/lib/server/dispatchers/dispatcher.js +364 -364
- package/lib/server/dispatchers/electronDispatcher.js +89 -89
- package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -181
- package/lib/server/dispatchers/frameDispatcher.js +227 -227
- package/lib/server/dispatchers/jsHandleDispatcher.js +85 -85
- package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -58
- package/lib/server/dispatchers/localUtilsDispatcher.js +149 -149
- package/lib/server/dispatchers/networkDispatchers.js +213 -213
- package/lib/server/dispatchers/pageAgentDispatcher.js +96 -96
- package/lib/server/dispatchers/pageDispatcher.js +393 -393
- package/lib/server/dispatchers/playwrightDispatcher.js +108 -108
- package/lib/server/dispatchers/streamDispatcher.js +67 -67
- package/lib/server/dispatchers/tracingDispatcher.js +68 -68
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -165
- package/lib/server/dispatchers/writableStreamDispatcher.js +79 -79
- package/lib/server/dom.js +815 -815
- package/lib/server/download.js +70 -70
- package/lib/server/electron/electron.js +273 -273
- package/lib/server/electron/loader.js +29 -29
- package/lib/server/errors.js +69 -69
- package/lib/server/fetch.js +621 -621
- package/lib/server/fileChooser.js +43 -43
- package/lib/server/fileUploadUtils.js +84 -84
- package/lib/server/firefox/ffBrowser.js +418 -418
- package/lib/server/firefox/ffConnection.js +142 -142
- package/lib/server/firefox/ffExecutionContext.js +150 -150
- package/lib/server/firefox/ffInput.js +159 -159
- package/lib/server/firefox/ffNetworkManager.js +256 -256
- package/lib/server/firefox/ffPage.js +497 -497
- package/lib/server/firefox/firefox.js +114 -114
- package/lib/server/firefox/protocol.d.js +16 -16
- package/lib/server/formData.js +147 -147
- package/lib/server/frameSelectors.js +160 -160
- package/lib/server/frames.js +1471 -1471
- package/lib/server/har/harRecorder.js +147 -147
- package/lib/server/har/harTracer.js +607 -607
- package/lib/server/harBackend.js +157 -157
- package/lib/server/helper.js +96 -96
- package/lib/server/index.js +58 -58
- package/lib/server/input.js +277 -277
- package/lib/server/instrumentation.js +72 -72
- package/lib/server/javascript.js +291 -291
- package/lib/server/launchApp.js +128 -128
- package/lib/server/localUtils.js +214 -214
- package/lib/server/macEditingCommands.js +143 -143
- package/lib/server/network.js +667 -667
- package/lib/server/page.js +830 -830
- package/lib/server/pipeTransport.js +89 -89
- package/lib/server/playwright.js +69 -69
- package/lib/server/progress.js +132 -132
- package/lib/server/protocolError.js +52 -52
- package/lib/server/recorder/chat.js +161 -161
- package/lib/server/recorder/recorderApp.js +366 -366
- package/lib/server/recorder/recorderRunner.js +138 -138
- package/lib/server/recorder/recorderSignalProcessor.js +83 -83
- package/lib/server/recorder/recorderUtils.js +157 -157
- package/lib/server/recorder/throttledFile.js +57 -57
- package/lib/server/recorder.js +499 -499
- package/lib/server/registry/browserFetcher.js +177 -177
- package/lib/server/registry/dependencies.js +371 -371
- package/lib/server/registry/index.js +1422 -1422
- package/lib/server/registry/nativeDeps.js +1280 -1280
- package/lib/server/registry/oopDownloadBrowserMain.js +127 -127
- package/lib/server/screencast.js +190 -190
- package/lib/server/screenshotter.js +333 -333
- package/lib/server/selectors.js +112 -112
- package/lib/server/socksClientCertificatesInterceptor.js +383 -383
- package/lib/server/socksInterceptor.js +95 -95
- package/lib/server/trace/recorder/snapshotter.js +147 -147
- package/lib/server/trace/recorder/snapshotterInjected.js +561 -561
- package/lib/server/trace/recorder/tracing.js +604 -604
- package/lib/server/trace/viewer/traceParser.js +72 -72
- package/lib/server/trace/viewer/traceViewer.js +245 -245
- package/lib/server/transport.js +254 -254
- package/lib/server/types.js +28 -28
- package/lib/server/usKeyboardLayout.js +145 -145
- package/lib/server/utils/ascii.js +44 -44
- package/lib/server/utils/comparators.js +139 -139
- package/lib/server/utils/crypto.js +216 -216
- package/lib/server/utils/debug.js +42 -42
- package/lib/server/utils/debugLogger.js +122 -122
- package/lib/server/utils/env.js +73 -73
- package/lib/server/utils/eventsHelper.js +39 -39
- package/lib/server/utils/expectUtils.js +123 -123
- package/lib/server/utils/fileUtils.js +191 -191
- package/lib/server/utils/happyEyeballs.js +207 -207
- package/lib/server/utils/hostPlatform.js +138 -123
- package/lib/server/utils/httpServer.js +203 -203
- package/lib/server/utils/imageUtils.js +141 -141
- package/lib/server/utils/image_tools/colorUtils.js +89 -89
- package/lib/server/utils/image_tools/compare.js +109 -109
- package/lib/server/utils/image_tools/imageChannel.js +78 -78
- package/lib/server/utils/image_tools/stats.js +102 -102
- package/lib/server/utils/linuxUtils.js +71 -71
- package/lib/server/utils/network.js +242 -242
- package/lib/server/utils/nodePlatform.js +154 -154
- package/lib/server/utils/pipeTransport.js +84 -84
- package/lib/server/utils/processLauncher.js +241 -241
- package/lib/server/utils/profiler.js +65 -65
- package/lib/server/utils/socksProxy.js +511 -511
- package/lib/server/utils/spawnAsync.js +41 -41
- package/lib/server/utils/task.js +51 -51
- package/lib/server/utils/userAgent.js +98 -98
- package/lib/server/utils/wsServer.js +121 -121
- package/lib/server/utils/zipFile.js +74 -74
- package/lib/server/utils/zones.js +57 -57
- package/lib/server/videoRecorder.js +124 -124
- package/lib/server/webkit/protocol.d.js +16 -16
- package/lib/server/webkit/webkit.js +108 -108
- package/lib/server/webkit/wkBrowser.js +335 -335
- package/lib/server/webkit/wkConnection.js +144 -144
- package/lib/server/webkit/wkExecutionContext.js +154 -154
- package/lib/server/webkit/wkInput.js +181 -181
- package/lib/server/webkit/wkInterceptableRequest.js +197 -197
- package/lib/server/webkit/wkPage.js +1159 -1158
- package/lib/server/webkit/wkProvisionalPage.js +83 -83
- package/lib/server/webkit/wkWorkers.js +105 -105
- package/lib/third_party/pixelmatch.js +255 -255
- package/lib/utils/isomorphic/ariaSnapshot.js +455 -455
- package/lib/utils/isomorphic/assert.js +31 -31
- package/lib/utils/isomorphic/colors.js +72 -72
- package/lib/utils/isomorphic/cssParser.js +245 -245
- package/lib/utils/isomorphic/cssTokenizer.js +1051 -1051
- package/lib/utils/isomorphic/headers.js +53 -53
- package/lib/utils/isomorphic/locatorGenerators.js +689 -689
- package/lib/utils/isomorphic/locatorParser.js +176 -176
- package/lib/utils/isomorphic/locatorUtils.js +81 -81
- package/lib/utils/isomorphic/lruCache.js +51 -51
- package/lib/utils/isomorphic/manualPromise.js +114 -114
- package/lib/utils/isomorphic/mimeType.js +459 -459
- package/lib/utils/isomorphic/multimap.js +80 -80
- package/lib/utils/isomorphic/protocolFormatter.js +81 -81
- package/lib/utils/isomorphic/protocolMetainfo.js +330 -330
- package/lib/utils/isomorphic/rtti.js +43 -43
- package/lib/utils/isomorphic/selectorParser.js +386 -386
- package/lib/utils/isomorphic/semaphore.js +54 -54
- package/lib/utils/isomorphic/stackTrace.js +158 -158
- package/lib/utils/isomorphic/stringUtils.js +204 -204
- package/lib/utils/isomorphic/time.js +49 -49
- package/lib/utils/isomorphic/timeoutRunner.js +66 -66
- package/lib/utils/isomorphic/trace/entries.js +16 -16
- package/lib/utils/isomorphic/trace/snapshotRenderer.js +499 -499
- package/lib/utils/isomorphic/trace/snapshotServer.js +120 -120
- package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -89
- package/lib/utils/isomorphic/trace/traceLoader.js +131 -131
- package/lib/utils/isomorphic/trace/traceModel.js +365 -365
- package/lib/utils/isomorphic/trace/traceModernizer.js +400 -400
- package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -16
- package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -16
- package/lib/utils/isomorphic/traceUtils.js +58 -58
- package/lib/utils/isomorphic/types.js +16 -16
- package/lib/utils/isomorphic/urlMatch.js +190 -190
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -251
- package/lib/utils/isomorphic/yaml.js +84 -84
- package/lib/utils.js +111 -111
- package/lib/utilsBundle.js +109 -109
- package/lib/utilsBundleImpl/index.js +218 -218
- package/lib/utilsBundleImpl/xdg-open +1066 -1066
- package/lib/vite/htmlReport/index.html +84 -84
- package/lib/vite/recorder/assets/codeMirrorModule-DYBRYzYX.css +1 -1
- package/lib/vite/recorder/assets/codeMirrorModule-DadYNm1I.js +32 -32
- package/lib/vite/recorder/assets/index-BSjZa4pk.css +1 -1
- package/lib/vite/recorder/assets/index-BhTWtUlo.js +193 -193
- package/lib/vite/recorder/index.html +29 -29
- package/lib/vite/recorder/playwright-logo.svg +9 -9
- package/lib/vite/traceViewer/assets/codeMirrorModule-a5XoALAZ.js +32 -32
- package/lib/vite/traceViewer/assets/defaultSettingsView-CJSZINFr.js +266 -266
- package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -9
- package/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +1 -1
- package/lib/vite/traceViewer/defaultSettingsView.7ch9cixO.css +1 -1
- package/lib/vite/traceViewer/{index.Bk2uYQRV.js → index.BDwrLSGN.js} +2 -2
- package/lib/vite/traceViewer/index.BVu7tZDe.css +1 -1
- package/lib/vite/traceViewer/index.html +43 -43
- package/lib/vite/traceViewer/manifest.webmanifest +16 -16
- package/lib/vite/traceViewer/playwright-logo.svg +9 -9
- package/lib/vite/traceViewer/snapshot.html +21 -21
- package/lib/vite/traceViewer/sw.bundle.js +5 -5
- package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -1
- package/lib/vite/traceViewer/uiMode.CQJ9SCIQ.js +5 -5
- package/lib/vite/traceViewer/uiMode.html +17 -17
- package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -32
- package/lib/zipBundle.js +34 -34
- package/lib/zipBundleImpl.js +5 -5
- package/package.json +1 -1
- package/types/protocol.d.ts +23824 -23824
- package/types/structs.d.ts +45 -45
- package/types/types.d.ts +22843 -22843
package/lib/server/input.js
CHANGED
|
@@ -1,277 +1,277 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var input_exports = {};
|
|
30
|
-
__export(input_exports, {
|
|
31
|
-
Keyboard: () => Keyboard,
|
|
32
|
-
Mouse: () => Mouse,
|
|
33
|
-
Touchscreen: () => Touchscreen,
|
|
34
|
-
keypadLocation: () => keypadLocation,
|
|
35
|
-
resolveSmartModifier: () => resolveSmartModifier,
|
|
36
|
-
resolveSmartModifierString: () => resolveSmartModifierString
|
|
37
|
-
});
|
|
38
|
-
module.exports = __toCommonJS(input_exports);
|
|
39
|
-
var import_utils = require("../utils");
|
|
40
|
-
var keyboardLayout = __toESM(require("./usKeyboardLayout"));
|
|
41
|
-
var import_dom = require("./dom");
|
|
42
|
-
const keypadLocation = keyboardLayout.keypadLocation;
|
|
43
|
-
const kModifiers = ["Alt", "Control", "Meta", "Shift"];
|
|
44
|
-
class Keyboard {
|
|
45
|
-
constructor(raw, page) {
|
|
46
|
-
this._pressedModifiers = /* @__PURE__ */ new Set();
|
|
47
|
-
this._pressedKeys = /* @__PURE__ */ new Set();
|
|
48
|
-
this._raw = raw;
|
|
49
|
-
this._page = page;
|
|
50
|
-
}
|
|
51
|
-
async down(progress, key) {
|
|
52
|
-
const description = this._keyDescriptionForString(key);
|
|
53
|
-
const autoRepeat = this._pressedKeys.has(description.code);
|
|
54
|
-
this._pressedKeys.add(description.code);
|
|
55
|
-
if (kModifiers.includes(description.key))
|
|
56
|
-
this._pressedModifiers.add(description.key);
|
|
57
|
-
await this._raw.keydown(progress, this._pressedModifiers, key, description, autoRepeat);
|
|
58
|
-
}
|
|
59
|
-
_keyDescriptionForString(str) {
|
|
60
|
-
const keyString = resolveSmartModifierString(str);
|
|
61
|
-
let description = usKeyboardLayout.get(keyString);
|
|
62
|
-
if (!description)
|
|
63
|
-
throw new import_dom.NonRecoverableDOMError(`Unknown key: "${keyString}"`);
|
|
64
|
-
const shift = this._pressedModifiers.has("Shift");
|
|
65
|
-
description = shift && description.shifted ? description.shifted : description;
|
|
66
|
-
if (this._pressedModifiers.size > 1 || !this._pressedModifiers.has("Shift") && this._pressedModifiers.size === 1)
|
|
67
|
-
return { ...description, text: "" };
|
|
68
|
-
return description;
|
|
69
|
-
}
|
|
70
|
-
async up(progress, key) {
|
|
71
|
-
const description = this._keyDescriptionForString(key);
|
|
72
|
-
if (kModifiers.includes(description.key))
|
|
73
|
-
this._pressedModifiers.delete(description.key);
|
|
74
|
-
this._pressedKeys.delete(description.code);
|
|
75
|
-
await this._raw.keyup(progress, this._pressedModifiers, key, description);
|
|
76
|
-
}
|
|
77
|
-
async insertText(progress, text) {
|
|
78
|
-
await this._raw.sendText(progress, text);
|
|
79
|
-
}
|
|
80
|
-
async type(progress, text, options) {
|
|
81
|
-
const delay = options && options.delay || void 0;
|
|
82
|
-
for (const char of text) {
|
|
83
|
-
if (usKeyboardLayout.has(char)) {
|
|
84
|
-
await this.press(progress, char, { delay });
|
|
85
|
-
} else {
|
|
86
|
-
if (delay)
|
|
87
|
-
await progress.wait(delay);
|
|
88
|
-
await this.insertText(progress, char);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
async press(progress, key, options = {}) {
|
|
93
|
-
function split(keyString) {
|
|
94
|
-
const keys = [];
|
|
95
|
-
let building = "";
|
|
96
|
-
for (const char of keyString) {
|
|
97
|
-
if (char === "+" && building) {
|
|
98
|
-
keys.push(building);
|
|
99
|
-
building = "";
|
|
100
|
-
} else {
|
|
101
|
-
building += char;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
keys.push(building);
|
|
105
|
-
return keys;
|
|
106
|
-
}
|
|
107
|
-
const tokens = split(key);
|
|
108
|
-
key = tokens[tokens.length - 1];
|
|
109
|
-
for (let i = 0; i < tokens.length - 1; ++i)
|
|
110
|
-
await this.down(progress, tokens[i]);
|
|
111
|
-
await this.down(progress, key);
|
|
112
|
-
if (options.delay)
|
|
113
|
-
await progress.wait(options.delay);
|
|
114
|
-
await this.up(progress, key);
|
|
115
|
-
for (let i = tokens.length - 2; i >= 0; --i)
|
|
116
|
-
await this.up(progress, tokens[i]);
|
|
117
|
-
}
|
|
118
|
-
async ensureModifiers(progress, mm) {
|
|
119
|
-
const modifiers = mm.map(resolveSmartModifier);
|
|
120
|
-
for (const modifier of modifiers) {
|
|
121
|
-
if (!kModifiers.includes(modifier))
|
|
122
|
-
throw new Error("Unknown modifier " + modifier);
|
|
123
|
-
}
|
|
124
|
-
const restore = Array.from(this._pressedModifiers);
|
|
125
|
-
for (const key of kModifiers) {
|
|
126
|
-
const needDown = modifiers.includes(key);
|
|
127
|
-
const isDown = this._pressedModifiers.has(key);
|
|
128
|
-
if (needDown && !isDown)
|
|
129
|
-
await this.down(progress, key);
|
|
130
|
-
else if (!needDown && isDown)
|
|
131
|
-
await this.up(progress, key);
|
|
132
|
-
}
|
|
133
|
-
return restore;
|
|
134
|
-
}
|
|
135
|
-
_modifiers() {
|
|
136
|
-
return this._pressedModifiers;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
function resolveSmartModifierString(key) {
|
|
140
|
-
if (key === "ControlOrMeta")
|
|
141
|
-
return process.platform === "darwin" ? "Meta" : "Control";
|
|
142
|
-
return key;
|
|
143
|
-
}
|
|
144
|
-
function resolveSmartModifier(m) {
|
|
145
|
-
return resolveSmartModifierString(m);
|
|
146
|
-
}
|
|
147
|
-
class Mouse {
|
|
148
|
-
constructor(raw, page) {
|
|
149
|
-
this._x = 0;
|
|
150
|
-
this._y = 0;
|
|
151
|
-
this._lastButton = "none";
|
|
152
|
-
this._buttons = /* @__PURE__ */ new Set();
|
|
153
|
-
this._raw = raw;
|
|
154
|
-
this._page = page;
|
|
155
|
-
this._keyboard = this._page.keyboard;
|
|
156
|
-
}
|
|
157
|
-
currentPoint() {
|
|
158
|
-
return { x: this._x, y: this._y };
|
|
159
|
-
}
|
|
160
|
-
async move(progress, x, y, options = {}) {
|
|
161
|
-
const { steps = 1 } = options;
|
|
162
|
-
const fromX = this._x;
|
|
163
|
-
const fromY = this._y;
|
|
164
|
-
this._x = x;
|
|
165
|
-
this._y = y;
|
|
166
|
-
for (let i = 1; i <= steps; i++) {
|
|
167
|
-
const middleX = fromX + (x - fromX) * (i / steps);
|
|
168
|
-
const middleY = fromY + (y - fromY) * (i / steps);
|
|
169
|
-
await this._raw.move(progress, middleX, middleY, this._lastButton, this._buttons, this._keyboard._modifiers(), !!options.forClick);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
async down(progress, options = {}) {
|
|
173
|
-
const { button = "left", clickCount = 1 } = options;
|
|
174
|
-
this._lastButton = button;
|
|
175
|
-
this._buttons.add(button);
|
|
176
|
-
await this._raw.down(progress, this._x, this._y, this._lastButton, this._buttons, this._keyboard._modifiers(), clickCount);
|
|
177
|
-
}
|
|
178
|
-
async up(progress, options = {}) {
|
|
179
|
-
const { button = "left", clickCount = 1 } = options;
|
|
180
|
-
this._lastButton = "none";
|
|
181
|
-
this._buttons.delete(button);
|
|
182
|
-
await this._raw.up(progress, this._x, this._y, button, this._buttons, this._keyboard._modifiers(), clickCount);
|
|
183
|
-
}
|
|
184
|
-
async click(progress, x, y, options = {}) {
|
|
185
|
-
const { delay = null, clickCount = 1, steps } = options;
|
|
186
|
-
if (delay) {
|
|
187
|
-
await this.move(progress, x, y, { forClick: true, steps });
|
|
188
|
-
for (let cc = 1; cc <= clickCount; ++cc) {
|
|
189
|
-
await this.down(progress, { ...options, clickCount: cc });
|
|
190
|
-
await progress.wait(delay);
|
|
191
|
-
await this.up(progress, { ...options, clickCount: cc });
|
|
192
|
-
if (cc < clickCount)
|
|
193
|
-
await progress.wait(delay);
|
|
194
|
-
}
|
|
195
|
-
} else {
|
|
196
|
-
const promises = [];
|
|
197
|
-
const movePromise = this.move(progress, x, y, { forClick: true, steps });
|
|
198
|
-
if (steps !== void 0 && steps > 1)
|
|
199
|
-
await movePromise;
|
|
200
|
-
else
|
|
201
|
-
promises.push(movePromise);
|
|
202
|
-
for (let cc = 1; cc <= clickCount; ++cc) {
|
|
203
|
-
promises.push(this.down(progress, { ...options, clickCount: cc }));
|
|
204
|
-
promises.push(this.up(progress, { ...options, clickCount: cc }));
|
|
205
|
-
}
|
|
206
|
-
await Promise.all(promises);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
async wheel(progress, deltaX, deltaY) {
|
|
210
|
-
await this._raw.wheel(progress, this._x, this._y, this._buttons, this._keyboard._modifiers(), deltaX, deltaY);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
const aliases = /* @__PURE__ */ new Map([
|
|
214
|
-
["ShiftLeft", ["Shift"]],
|
|
215
|
-
["ControlLeft", ["Control"]],
|
|
216
|
-
["AltLeft", ["Alt"]],
|
|
217
|
-
["MetaLeft", ["Meta"]],
|
|
218
|
-
["Enter", ["\n", "\r"]]
|
|
219
|
-
]);
|
|
220
|
-
const usKeyboardLayout = buildLayoutClosure(keyboardLayout.USKeyboardLayout);
|
|
221
|
-
function buildLayoutClosure(layout) {
|
|
222
|
-
const result = /* @__PURE__ */ new Map();
|
|
223
|
-
for (const code in layout) {
|
|
224
|
-
const definition = layout[code];
|
|
225
|
-
const description = {
|
|
226
|
-
key: definition.key || "",
|
|
227
|
-
keyCode: definition.keyCode || 0,
|
|
228
|
-
keyCodeWithoutLocation: definition.keyCodeWithoutLocation || definition.keyCode || 0,
|
|
229
|
-
code,
|
|
230
|
-
text: definition.text || "",
|
|
231
|
-
location: definition.location || 0
|
|
232
|
-
};
|
|
233
|
-
if (definition.key.length === 1)
|
|
234
|
-
description.text = description.key;
|
|
235
|
-
let shiftedDescription;
|
|
236
|
-
if (definition.shiftKey) {
|
|
237
|
-
(0, import_utils.assert)(definition.shiftKey.length === 1);
|
|
238
|
-
shiftedDescription = { ...description };
|
|
239
|
-
shiftedDescription.key = definition.shiftKey;
|
|
240
|
-
shiftedDescription.text = definition.shiftKey;
|
|
241
|
-
if (definition.shiftKeyCode)
|
|
242
|
-
shiftedDescription.keyCode = definition.shiftKeyCode;
|
|
243
|
-
}
|
|
244
|
-
result.set(code, { ...description, shifted: shiftedDescription });
|
|
245
|
-
if (aliases.has(code)) {
|
|
246
|
-
for (const alias of aliases.get(code))
|
|
247
|
-
result.set(alias, description);
|
|
248
|
-
}
|
|
249
|
-
if (definition.location)
|
|
250
|
-
continue;
|
|
251
|
-
if (description.key.length === 1)
|
|
252
|
-
result.set(description.key, description);
|
|
253
|
-
if (shiftedDescription)
|
|
254
|
-
result.set(shiftedDescription.key, { ...shiftedDescription, shifted: void 0 });
|
|
255
|
-
}
|
|
256
|
-
return result;
|
|
257
|
-
}
|
|
258
|
-
class Touchscreen {
|
|
259
|
-
constructor(raw, page) {
|
|
260
|
-
this._raw = raw;
|
|
261
|
-
this._page = page;
|
|
262
|
-
}
|
|
263
|
-
async tap(progress, x, y) {
|
|
264
|
-
if (!this._page.browserContext._options.hasTouch)
|
|
265
|
-
throw new Error("hasTouch must be enabled on the browser context before using the touchscreen.");
|
|
266
|
-
await this._raw.tap(progress, x, y, this._page.keyboard._modifiers());
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
270
|
-
0 && (module.exports = {
|
|
271
|
-
Keyboard,
|
|
272
|
-
Mouse,
|
|
273
|
-
Touchscreen,
|
|
274
|
-
keypadLocation,
|
|
275
|
-
resolveSmartModifier,
|
|
276
|
-
resolveSmartModifierString
|
|
277
|
-
});
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var input_exports = {};
|
|
30
|
+
__export(input_exports, {
|
|
31
|
+
Keyboard: () => Keyboard,
|
|
32
|
+
Mouse: () => Mouse,
|
|
33
|
+
Touchscreen: () => Touchscreen,
|
|
34
|
+
keypadLocation: () => keypadLocation,
|
|
35
|
+
resolveSmartModifier: () => resolveSmartModifier,
|
|
36
|
+
resolveSmartModifierString: () => resolveSmartModifierString
|
|
37
|
+
});
|
|
38
|
+
module.exports = __toCommonJS(input_exports);
|
|
39
|
+
var import_utils = require("../utils");
|
|
40
|
+
var keyboardLayout = __toESM(require("./usKeyboardLayout"));
|
|
41
|
+
var import_dom = require("./dom");
|
|
42
|
+
const keypadLocation = keyboardLayout.keypadLocation;
|
|
43
|
+
const kModifiers = ["Alt", "Control", "Meta", "Shift"];
|
|
44
|
+
class Keyboard {
|
|
45
|
+
constructor(raw, page) {
|
|
46
|
+
this._pressedModifiers = /* @__PURE__ */ new Set();
|
|
47
|
+
this._pressedKeys = /* @__PURE__ */ new Set();
|
|
48
|
+
this._raw = raw;
|
|
49
|
+
this._page = page;
|
|
50
|
+
}
|
|
51
|
+
async down(progress, key) {
|
|
52
|
+
const description = this._keyDescriptionForString(key);
|
|
53
|
+
const autoRepeat = this._pressedKeys.has(description.code);
|
|
54
|
+
this._pressedKeys.add(description.code);
|
|
55
|
+
if (kModifiers.includes(description.key))
|
|
56
|
+
this._pressedModifiers.add(description.key);
|
|
57
|
+
await this._raw.keydown(progress, this._pressedModifiers, key, description, autoRepeat);
|
|
58
|
+
}
|
|
59
|
+
_keyDescriptionForString(str) {
|
|
60
|
+
const keyString = resolveSmartModifierString(str);
|
|
61
|
+
let description = usKeyboardLayout.get(keyString);
|
|
62
|
+
if (!description)
|
|
63
|
+
throw new import_dom.NonRecoverableDOMError(`Unknown key: "${keyString}"`);
|
|
64
|
+
const shift = this._pressedModifiers.has("Shift");
|
|
65
|
+
description = shift && description.shifted ? description.shifted : description;
|
|
66
|
+
if (this._pressedModifiers.size > 1 || !this._pressedModifiers.has("Shift") && this._pressedModifiers.size === 1)
|
|
67
|
+
return { ...description, text: "" };
|
|
68
|
+
return description;
|
|
69
|
+
}
|
|
70
|
+
async up(progress, key) {
|
|
71
|
+
const description = this._keyDescriptionForString(key);
|
|
72
|
+
if (kModifiers.includes(description.key))
|
|
73
|
+
this._pressedModifiers.delete(description.key);
|
|
74
|
+
this._pressedKeys.delete(description.code);
|
|
75
|
+
await this._raw.keyup(progress, this._pressedModifiers, key, description);
|
|
76
|
+
}
|
|
77
|
+
async insertText(progress, text) {
|
|
78
|
+
await this._raw.sendText(progress, text);
|
|
79
|
+
}
|
|
80
|
+
async type(progress, text, options) {
|
|
81
|
+
const delay = options && options.delay || void 0;
|
|
82
|
+
for (const char of text) {
|
|
83
|
+
if (usKeyboardLayout.has(char)) {
|
|
84
|
+
await this.press(progress, char, { delay });
|
|
85
|
+
} else {
|
|
86
|
+
if (delay)
|
|
87
|
+
await progress.wait(delay);
|
|
88
|
+
await this.insertText(progress, char);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async press(progress, key, options = {}) {
|
|
93
|
+
function split(keyString) {
|
|
94
|
+
const keys = [];
|
|
95
|
+
let building = "";
|
|
96
|
+
for (const char of keyString) {
|
|
97
|
+
if (char === "+" && building) {
|
|
98
|
+
keys.push(building);
|
|
99
|
+
building = "";
|
|
100
|
+
} else {
|
|
101
|
+
building += char;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
keys.push(building);
|
|
105
|
+
return keys;
|
|
106
|
+
}
|
|
107
|
+
const tokens = split(key);
|
|
108
|
+
key = tokens[tokens.length - 1];
|
|
109
|
+
for (let i = 0; i < tokens.length - 1; ++i)
|
|
110
|
+
await this.down(progress, tokens[i]);
|
|
111
|
+
await this.down(progress, key);
|
|
112
|
+
if (options.delay)
|
|
113
|
+
await progress.wait(options.delay);
|
|
114
|
+
await this.up(progress, key);
|
|
115
|
+
for (let i = tokens.length - 2; i >= 0; --i)
|
|
116
|
+
await this.up(progress, tokens[i]);
|
|
117
|
+
}
|
|
118
|
+
async ensureModifiers(progress, mm) {
|
|
119
|
+
const modifiers = mm.map(resolveSmartModifier);
|
|
120
|
+
for (const modifier of modifiers) {
|
|
121
|
+
if (!kModifiers.includes(modifier))
|
|
122
|
+
throw new Error("Unknown modifier " + modifier);
|
|
123
|
+
}
|
|
124
|
+
const restore = Array.from(this._pressedModifiers);
|
|
125
|
+
for (const key of kModifiers) {
|
|
126
|
+
const needDown = modifiers.includes(key);
|
|
127
|
+
const isDown = this._pressedModifiers.has(key);
|
|
128
|
+
if (needDown && !isDown)
|
|
129
|
+
await this.down(progress, key);
|
|
130
|
+
else if (!needDown && isDown)
|
|
131
|
+
await this.up(progress, key);
|
|
132
|
+
}
|
|
133
|
+
return restore;
|
|
134
|
+
}
|
|
135
|
+
_modifiers() {
|
|
136
|
+
return this._pressedModifiers;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function resolveSmartModifierString(key) {
|
|
140
|
+
if (key === "ControlOrMeta")
|
|
141
|
+
return process.platform === "darwin" ? "Meta" : "Control";
|
|
142
|
+
return key;
|
|
143
|
+
}
|
|
144
|
+
function resolveSmartModifier(m) {
|
|
145
|
+
return resolveSmartModifierString(m);
|
|
146
|
+
}
|
|
147
|
+
class Mouse {
|
|
148
|
+
constructor(raw, page) {
|
|
149
|
+
this._x = 0;
|
|
150
|
+
this._y = 0;
|
|
151
|
+
this._lastButton = "none";
|
|
152
|
+
this._buttons = /* @__PURE__ */ new Set();
|
|
153
|
+
this._raw = raw;
|
|
154
|
+
this._page = page;
|
|
155
|
+
this._keyboard = this._page.keyboard;
|
|
156
|
+
}
|
|
157
|
+
currentPoint() {
|
|
158
|
+
return { x: this._x, y: this._y };
|
|
159
|
+
}
|
|
160
|
+
async move(progress, x, y, options = {}) {
|
|
161
|
+
const { steps = 1 } = options;
|
|
162
|
+
const fromX = this._x;
|
|
163
|
+
const fromY = this._y;
|
|
164
|
+
this._x = x;
|
|
165
|
+
this._y = y;
|
|
166
|
+
for (let i = 1; i <= steps; i++) {
|
|
167
|
+
const middleX = fromX + (x - fromX) * (i / steps);
|
|
168
|
+
const middleY = fromY + (y - fromY) * (i / steps);
|
|
169
|
+
await this._raw.move(progress, middleX, middleY, this._lastButton, this._buttons, this._keyboard._modifiers(), !!options.forClick);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async down(progress, options = {}) {
|
|
173
|
+
const { button = "left", clickCount = 1 } = options;
|
|
174
|
+
this._lastButton = button;
|
|
175
|
+
this._buttons.add(button);
|
|
176
|
+
await this._raw.down(progress, this._x, this._y, this._lastButton, this._buttons, this._keyboard._modifiers(), clickCount);
|
|
177
|
+
}
|
|
178
|
+
async up(progress, options = {}) {
|
|
179
|
+
const { button = "left", clickCount = 1 } = options;
|
|
180
|
+
this._lastButton = "none";
|
|
181
|
+
this._buttons.delete(button);
|
|
182
|
+
await this._raw.up(progress, this._x, this._y, button, this._buttons, this._keyboard._modifiers(), clickCount);
|
|
183
|
+
}
|
|
184
|
+
async click(progress, x, y, options = {}) {
|
|
185
|
+
const { delay = null, clickCount = 1, steps } = options;
|
|
186
|
+
if (delay) {
|
|
187
|
+
await this.move(progress, x, y, { forClick: true, steps });
|
|
188
|
+
for (let cc = 1; cc <= clickCount; ++cc) {
|
|
189
|
+
await this.down(progress, { ...options, clickCount: cc });
|
|
190
|
+
await progress.wait(delay);
|
|
191
|
+
await this.up(progress, { ...options, clickCount: cc });
|
|
192
|
+
if (cc < clickCount)
|
|
193
|
+
await progress.wait(delay);
|
|
194
|
+
}
|
|
195
|
+
} else {
|
|
196
|
+
const promises = [];
|
|
197
|
+
const movePromise = this.move(progress, x, y, { forClick: true, steps });
|
|
198
|
+
if (steps !== void 0 && steps > 1)
|
|
199
|
+
await movePromise;
|
|
200
|
+
else
|
|
201
|
+
promises.push(movePromise);
|
|
202
|
+
for (let cc = 1; cc <= clickCount; ++cc) {
|
|
203
|
+
promises.push(this.down(progress, { ...options, clickCount: cc }));
|
|
204
|
+
promises.push(this.up(progress, { ...options, clickCount: cc }));
|
|
205
|
+
}
|
|
206
|
+
await Promise.all(promises);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
async wheel(progress, deltaX, deltaY) {
|
|
210
|
+
await this._raw.wheel(progress, this._x, this._y, this._buttons, this._keyboard._modifiers(), deltaX, deltaY);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
const aliases = /* @__PURE__ */ new Map([
|
|
214
|
+
["ShiftLeft", ["Shift"]],
|
|
215
|
+
["ControlLeft", ["Control"]],
|
|
216
|
+
["AltLeft", ["Alt"]],
|
|
217
|
+
["MetaLeft", ["Meta"]],
|
|
218
|
+
["Enter", ["\n", "\r"]]
|
|
219
|
+
]);
|
|
220
|
+
const usKeyboardLayout = buildLayoutClosure(keyboardLayout.USKeyboardLayout);
|
|
221
|
+
function buildLayoutClosure(layout) {
|
|
222
|
+
const result = /* @__PURE__ */ new Map();
|
|
223
|
+
for (const code in layout) {
|
|
224
|
+
const definition = layout[code];
|
|
225
|
+
const description = {
|
|
226
|
+
key: definition.key || "",
|
|
227
|
+
keyCode: definition.keyCode || 0,
|
|
228
|
+
keyCodeWithoutLocation: definition.keyCodeWithoutLocation || definition.keyCode || 0,
|
|
229
|
+
code,
|
|
230
|
+
text: definition.text || "",
|
|
231
|
+
location: definition.location || 0
|
|
232
|
+
};
|
|
233
|
+
if (definition.key.length === 1)
|
|
234
|
+
description.text = description.key;
|
|
235
|
+
let shiftedDescription;
|
|
236
|
+
if (definition.shiftKey) {
|
|
237
|
+
(0, import_utils.assert)(definition.shiftKey.length === 1);
|
|
238
|
+
shiftedDescription = { ...description };
|
|
239
|
+
shiftedDescription.key = definition.shiftKey;
|
|
240
|
+
shiftedDescription.text = definition.shiftKey;
|
|
241
|
+
if (definition.shiftKeyCode)
|
|
242
|
+
shiftedDescription.keyCode = definition.shiftKeyCode;
|
|
243
|
+
}
|
|
244
|
+
result.set(code, { ...description, shifted: shiftedDescription });
|
|
245
|
+
if (aliases.has(code)) {
|
|
246
|
+
for (const alias of aliases.get(code))
|
|
247
|
+
result.set(alias, description);
|
|
248
|
+
}
|
|
249
|
+
if (definition.location)
|
|
250
|
+
continue;
|
|
251
|
+
if (description.key.length === 1)
|
|
252
|
+
result.set(description.key, description);
|
|
253
|
+
if (shiftedDescription)
|
|
254
|
+
result.set(shiftedDescription.key, { ...shiftedDescription, shifted: void 0 });
|
|
255
|
+
}
|
|
256
|
+
return result;
|
|
257
|
+
}
|
|
258
|
+
class Touchscreen {
|
|
259
|
+
constructor(raw, page) {
|
|
260
|
+
this._raw = raw;
|
|
261
|
+
this._page = page;
|
|
262
|
+
}
|
|
263
|
+
async tap(progress, x, y) {
|
|
264
|
+
if (!this._page.browserContext._options.hasTouch)
|
|
265
|
+
throw new Error("hasTouch must be enabled on the browser context before using the touchscreen.");
|
|
266
|
+
await this._raw.tap(progress, x, y, this._page.keyboard._modifiers());
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
270
|
+
0 && (module.exports = {
|
|
271
|
+
Keyboard,
|
|
272
|
+
Mouse,
|
|
273
|
+
Touchscreen,
|
|
274
|
+
keypadLocation,
|
|
275
|
+
resolveSmartModifier,
|
|
276
|
+
resolveSmartModifierString
|
|
277
|
+
});
|