patchright-core 1.51.3 → 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/browsers.json +15 -13
  2. package/lib/androidServerImpl.js +42 -48
  3. package/lib/browserServerImpl.js +54 -67
  4. package/lib/cli/driver.js +71 -69
  5. package/lib/cli/program.js +312 -328
  6. package/lib/cli/programWithTestStub.js +51 -45
  7. package/lib/client/accessibility.js +31 -32
  8. package/lib/client/android.js +141 -228
  9. package/lib/client/api.js +135 -283
  10. package/lib/client/artifact.js +39 -36
  11. package/lib/client/browser.js +57 -61
  12. package/lib/client/browserContext.js +297 -326
  13. package/lib/client/browserType.js +92 -106
  14. package/lib/client/cdpSession.js +29 -31
  15. package/lib/client/channelOwner.js +82 -95
  16. package/lib/client/clientHelper.js +46 -38
  17. package/lib/client/clientInstrumentation.js +40 -37
  18. package/lib/client/clientStackTrace.js +41 -37
  19. package/lib/client/clock.js +36 -36
  20. package/lib/client/connection.js +190 -212
  21. package/lib/client/consoleMessage.js +31 -28
  22. package/lib/client/coverage.js +25 -22
  23. package/lib/client/dialog.js +30 -31
  24. package/lib/client/download.js +25 -25
  25. package/lib/client/electron.js +73 -75
  26. package/lib/client/elementHandle.js +111 -147
  27. package/lib/client/errors.js +53 -53
  28. package/lib/client/eventEmitter.js +124 -121
  29. package/lib/client/events.js +72 -68
  30. package/lib/client/fetch.js +135 -158
  31. package/lib/client/fileChooser.js +25 -24
  32. package/lib/client/fileUtils.js +31 -28
  33. package/lib/client/frame.js +187 -306
  34. package/lib/client/harRouter.js +42 -52
  35. package/lib/client/input.js +40 -69
  36. package/lib/client/jsHandle.js +54 -69
  37. package/lib/client/jsonPipe.js +27 -23
  38. package/lib/client/localUtils.js +29 -28
  39. package/lib/client/locator.js +161 -245
  40. package/lib/client/network.js +277 -295
  41. package/lib/client/page.js +270 -318
  42. package/lib/client/platform.js +46 -43
  43. package/lib/client/playwright.js +51 -66
  44. package/lib/client/selectors.js +48 -46
  45. package/lib/client/stream.js +29 -25
  46. package/lib/client/timeoutSettings.js +49 -39
  47. package/lib/client/tracing.js +48 -84
  48. package/lib/client/types.js +26 -22
  49. package/lib/client/video.js +35 -27
  50. package/lib/client/waiter.js +69 -88
  51. package/lib/client/webError.js +25 -23
  52. package/lib/client/webSocket.js +61 -56
  53. package/lib/client/worker.js +48 -58
  54. package/lib/client/writableStream.js +27 -23
  55. package/lib/generated/clockSource.js +26 -5
  56. package/lib/generated/consoleApiSource.js +26 -5
  57. package/lib/generated/injectedScriptSource.js +26 -5
  58. package/lib/generated/pollingRecorderSource.js +26 -5
  59. package/lib/generated/utilityScriptSource.js +26 -5
  60. package/lib/generated/webSocketMockSource.js +375 -4
  61. package/lib/inProcessFactory.js +53 -53
  62. package/lib/inprocess.js +2 -19
  63. package/lib/outofprocess.js +53 -46
  64. package/lib/protocol/debug.js +209 -25
  65. package/lib/protocol/serializers.js +153 -134
  66. package/lib/protocol/validator.js +2714 -2714
  67. package/lib/protocol/validatorPrimitives.js +114 -73
  68. package/lib/remote/playwrightConnection.js +140 -157
  69. package/lib/remote/playwrightServer.js +99 -84
  70. package/lib/server/accessibility.js +44 -37
  71. package/lib/server/android/android.js +216 -209
  72. package/lib/server/android/backendAdb.js +89 -82
  73. package/lib/server/artifact.js +78 -55
  74. package/lib/server/bidi/bidiBrowser.js +221 -155
  75. package/lib/server/bidi/bidiChromium.js +106 -79
  76. package/lib/server/bidi/bidiConnection.js +66 -83
  77. package/lib/server/bidi/bidiExecutionContext.js +128 -113
  78. package/lib/server/bidi/bidiFirefox.js +76 -69
  79. package/lib/server/bidi/bidiInput.js +86 -97
  80. package/lib/server/bidi/bidiNetworkManager.js +137 -154
  81. package/lib/server/bidi/bidiOverCdp.js +57 -58
  82. package/lib/server/bidi/bidiPage.js +247 -219
  83. package/lib/server/bidi/bidiPdf.js +52 -86
  84. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  85. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  86. package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
  87. package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
  88. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  89. package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
  90. package/lib/server/browser.js +76 -84
  91. package/lib/server/browserContext.js +321 -346
  92. package/lib/server/browserType.js +169 -182
  93. package/lib/server/callLog.js +47 -44
  94. package/lib/server/chromium/chromium.js +212 -190
  95. package/lib/server/chromium/chromiumSwitches.js +86 -64
  96. package/lib/server/chromium/crAccessibility.js +157 -131
  97. package/lib/server/chromium/crBrowser.js +253 -273
  98. package/lib/server/chromium/crConnection.js +91 -116
  99. package/lib/server/chromium/crCoverage.js +113 -127
  100. package/lib/server/chromium/crDevTools.js +59 -51
  101. package/lib/server/chromium/crDragDrop.js +62 -79
  102. package/lib/server/chromium/crExecutionContext.js +88 -83
  103. package/lib/server/chromium/crInput.js +97 -95
  104. package/lib/server/chromium/crNetworkManager.js +284 -404
  105. package/lib/server/chromium/crPage.js +522 -608
  106. package/lib/server/chromium/crPdf.js +54 -86
  107. package/lib/server/chromium/crProtocolHelper.js +92 -80
  108. package/lib/server/chromium/crServiceWorker.js +82 -67
  109. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  110. package/lib/server/chromium/protocol.d.js +16 -0
  111. package/lib/server/chromium/videoRecorder.js +65 -99
  112. package/lib/server/clock.js +62 -50
  113. package/lib/server/codegen/csharp.js +185 -160
  114. package/lib/server/codegen/java.js +155 -128
  115. package/lib/server/codegen/javascript.js +163 -148
  116. package/lib/server/codegen/jsonl.js +32 -28
  117. package/lib/server/codegen/language.js +75 -52
  118. package/lib/server/codegen/languages.js +65 -27
  119. package/lib/server/codegen/python.js +140 -125
  120. package/lib/server/codegen/types.js +15 -4
  121. package/lib/server/console.js +28 -32
  122. package/lib/server/cookieStore.js +105 -86
  123. package/lib/server/debugController.js +97 -124
  124. package/lib/server/debugger.js +82 -78
  125. package/lib/server/deviceDescriptors.js +37 -24
  126. package/lib/server/deviceDescriptorsSource.json +50 -50
  127. package/lib/server/dialog.js +36 -35
  128. package/lib/server/dispatchers/androidDispatcher.js +196 -107
  129. package/lib/server/dispatchers/artifactDispatcher.js +62 -62
  130. package/lib/server/dispatchers/browserContextDispatcher.js +176 -205
  131. package/lib/server/dispatchers/browserDispatcher.js +78 -97
  132. package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
  133. package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
  134. package/lib/server/dispatchers/debugControllerDispatcher.js +48 -66
  135. package/lib/server/dispatchers/dialogDispatcher.js +30 -27
  136. package/lib/server/dispatchers/dispatcher.js +169 -220
  137. package/lib/server/dispatchers/electronDispatcher.js +54 -57
  138. package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
  139. package/lib/server/dispatchers/frameDispatcher.js +99 -163
  140. package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
  141. package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
  142. package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
  143. package/lib/server/dispatchers/networkDispatchers.js +90 -107
  144. package/lib/server/dispatchers/pageDispatcher.js +128 -169
  145. package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
  146. package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
  147. package/lib/server/dispatchers/streamDispatcher.js +42 -45
  148. package/lib/server/dispatchers/tracingDispatcher.js +36 -41
  149. package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
  150. package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
  151. package/lib/server/dom.js +413 -443
  152. package/lib/server/download.js +45 -35
  153. package/lib/server/electron/electron.js +156 -176
  154. package/lib/server/electron/loader.js +8 -36
  155. package/lib/server/errors.js +47 -46
  156. package/lib/server/fetch.js +289 -323
  157. package/lib/server/fileChooser.js +25 -24
  158. package/lib/server/fileUploadUtils.js +65 -59
  159. package/lib/server/firefox/ffAccessibility.js +153 -131
  160. package/lib/server/firefox/ffBrowser.js +213 -277
  161. package/lib/server/firefox/ffConnection.js +63 -84
  162. package/lib/server/firefox/ffExecutionContext.js +91 -73
  163. package/lib/server/firefox/ffInput.js +67 -69
  164. package/lib/server/firefox/ffNetworkManager.js +131 -110
  165. package/lib/server/firefox/ffPage.js +236 -273
  166. package/lib/server/firefox/firefox.js +76 -67
  167. package/lib/server/firefox/protocol.d.js +16 -0
  168. package/lib/server/formData.js +107 -35
  169. package/lib/server/frameSelectors.js +77 -111
  170. package/lib/server/frames.js +730 -894
  171. package/lib/server/har/harRecorder.js +85 -77
  172. package/lib/server/har/harTracer.js +287 -222
  173. package/lib/server/harBackend.js +80 -80
  174. package/lib/server/helper.js +56 -59
  175. package/lib/server/index.js +59 -99
  176. package/lib/server/input.js +134 -163
  177. package/lib/server/instrumentation.js +49 -44
  178. package/lib/server/javascript.js +143 -134
  179. package/lib/server/launchApp.js +92 -73
  180. package/lib/server/localUtils.js +130 -122
  181. package/lib/server/macEditingCommands.js +141 -137
  182. package/lib/server/network.js +262 -296
  183. package/lib/server/page.js +329 -426
  184. package/lib/server/pageBinding.js +88 -0
  185. package/lib/server/pipeTransport.js +49 -45
  186. package/lib/server/playwright.js +60 -67
  187. package/lib/server/progress.js +56 -51
  188. package/lib/server/protocolError.js +34 -31
  189. package/lib/server/recorder/chat.js +70 -86
  190. package/lib/server/recorder/contextRecorder.js +134 -138
  191. package/lib/server/recorder/recorderApp.js +127 -136
  192. package/lib/server/recorder/recorderCollection.js +56 -44
  193. package/lib/server/recorder/recorderFrontend.js +15 -4
  194. package/lib/server/recorder/recorderRunner.js +79 -103
  195. package/lib/server/recorder/recorderUtils.js +56 -45
  196. package/lib/server/recorder/throttledFile.js +42 -30
  197. package/lib/server/recorder.js +177 -186
  198. package/lib/server/registry/browserFetcher.js +106 -101
  199. package/lib/server/registry/dependencies.js +245 -196
  200. package/lib/server/registry/index.js +904 -792
  201. package/lib/server/registry/nativeDeps.js +1073 -464
  202. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  203. package/lib/server/screenshotter.js +166 -182
  204. package/lib/server/selectors.js +85 -46
  205. package/lib/server/socksClientCertificatesInterceptor.js +166 -185
  206. package/lib/server/socksInterceptor.js +62 -70
  207. package/lib/server/storageScript.js +94 -100
  208. package/lib/server/timeoutSettings.js +58 -43
  209. package/lib/server/trace/recorder/snapshotter.js +70 -89
  210. package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
  211. package/lib/server/trace/recorder/tracing.js +321 -333
  212. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  213. package/lib/server/trace/viewer/traceViewer.js +168 -146
  214. package/lib/server/transport.js +124 -133
  215. package/lib/server/types.js +26 -22
  216. package/lib/server/usKeyboardLayout.js +135 -545
  217. package/lib/server/utils/ascii.js +39 -26
  218. package/lib/server/utils/comparators.js +105 -103
  219. package/lib/server/utils/crypto.js +157 -112
  220. package/lib/server/utils/debug.js +37 -28
  221. package/lib/server/utils/debugLogger.js +69 -48
  222. package/lib/server/utils/env.js +52 -37
  223. package/lib/server/utils/eventsHelper.js +29 -28
  224. package/lib/server/utils/expectUtils.js +31 -26
  225. package/lib/server/utils/fileUtils.js +123 -136
  226. package/lib/server/utils/happyEyeballs.js +138 -123
  227. package/lib/server/utils/hostPlatform.js +84 -120
  228. package/lib/server/utils/httpServer.js +106 -121
  229. package/lib/server/utils/image_tools/colorUtils.js +42 -51
  230. package/lib/server/utils/image_tools/compare.js +44 -43
  231. package/lib/server/utils/image_tools/imageChannel.js +38 -30
  232. package/lib/server/utils/image_tools/stats.js +40 -40
  233. package/lib/server/utils/linuxUtils.js +50 -37
  234. package/lib/server/utils/network.js +143 -86
  235. package/lib/server/utils/nodePlatform.js +87 -79
  236. package/lib/server/utils/pipeTransport.js +44 -42
  237. package/lib/server/utils/processLauncher.js +111 -121
  238. package/lib/server/utils/profiler.js +52 -39
  239. package/lib/server/utils/socksProxy.js +280 -339
  240. package/lib/server/utils/spawnAsync.js +37 -41
  241. package/lib/server/utils/task.js +31 -38
  242. package/lib/server/utils/userAgent.js +73 -66
  243. package/lib/server/utils/wsServer.js +73 -69
  244. package/lib/server/utils/zipFile.js +36 -37
  245. package/lib/server/utils/zones.js +37 -34
  246. package/lib/server/webkit/protocol.d.js +16 -0
  247. package/lib/server/webkit/webkit.js +76 -63
  248. package/lib/server/webkit/wkAccessibility.js +161 -118
  249. package/lib/server/webkit/wkBrowser.js +159 -176
  250. package/lib/server/webkit/wkConnection.js +59 -83
  251. package/lib/server/webkit/wkExecutionContext.js +84 -70
  252. package/lib/server/webkit/wkInput.js +82 -80
  253. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  254. package/lib/server/webkit/wkPage.js +525 -619
  255. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  256. package/lib/server/webkit/wkWorkers.js +77 -77
  257. package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
  258. package/lib/utils/isomorphic/assert.js +28 -22
  259. package/lib/utils/isomorphic/builtins.js +90 -0
  260. package/lib/utils/isomorphic/colors.js +66 -59
  261. package/lib/utils/isomorphic/cssParser.js +121 -125
  262. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  263. package/lib/utils/isomorphic/headers.js +38 -37
  264. package/lib/utils/isomorphic/locatorGenerators.js +340 -357
  265. package/lib/utils/isomorphic/locatorParser.js +96 -105
  266. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  267. package/lib/utils/isomorphic/manualPromise.js +47 -39
  268. package/lib/utils/isomorphic/mimeType.js +448 -25
  269. package/lib/utils/isomorphic/multimap.js +35 -27
  270. package/lib/utils/isomorphic/rtti.js +35 -33
  271. package/lib/utils/isomorphic/selectorParser.js +183 -193
  272. package/lib/utils/isomorphic/semaphore.js +27 -24
  273. package/lib/utils/isomorphic/stackTrace.js +87 -98
  274. package/lib/utils/isomorphic/stringUtils.js +113 -106
  275. package/lib/utils/isomorphic/time.js +41 -22
  276. package/lib/utils/isomorphic/timeoutRunner.js +55 -54
  277. package/lib/utils/isomorphic/traceUtils.js +38 -41
  278. package/lib/utils/isomorphic/types.js +15 -4
  279. package/lib/utils/isomorphic/urlMatch.js +112 -67
  280. package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
  281. package/lib/utils.js +97 -443
  282. package/lib/utilsBundle.js +101 -52
  283. package/lib/vite/htmlReport/index.html +21 -15
  284. package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-DVQi6prl.js} +1 -1
  285. package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
  286. package/lib/vite/recorder/index.html +1 -1
  287. package/lib/vite/traceViewer/assets/{codeMirrorModule-1DiydmYA.js → codeMirrorModule-dvXVzLxY.js} +1 -1
  288. package/lib/vite/traceViewer/assets/defaultSettingsView-BjymbO6M.js +265 -0
  289. package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
  290. package/lib/vite/traceViewer/index.ChIUCJnj.js +2 -0
  291. package/lib/vite/traceViewer/index.html +3 -3
  292. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  293. package/lib/vite/traceViewer/uiMode.html +3 -3
  294. package/lib/vite/traceViewer/uiMode.jUCiCtdp.js +5 -0
  295. package/lib/zipBundle.js +32 -23
  296. package/package.json +1 -1
  297. package/types/protocol.d.ts +436 -17
  298. package/types/types.d.ts +35 -16
  299. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
  300. package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
  301. package/lib/vite/traceViewer/assets/defaultSettingsView-l0TyP_G8.js +0 -259
  302. package/lib/vite/traceViewer/index.BqUZLSro.js +0 -2
  303. package/lib/vite/traceViewer/uiMode.C1d2m5sF.js +0 -5
@@ -1,64 +1,73 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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
5
37
  });
6
- exports.keypadLocation = exports.Touchscreen = exports.Mouse = exports.Keyboard = void 0;
7
- exports.resolveSmartModifier = resolveSmartModifier;
8
- exports.resolveSmartModifierString = resolveSmartModifierString;
9
- var _utils = require("../utils");
10
- var keyboardLayout = _interopRequireWildcard(require("./usKeyboardLayout"));
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
- /**
14
- * Copyright (c) Microsoft Corporation.
15
- *
16
- * Licensed under the Apache License, Version 2.0 (the "License");
17
- * you may not use this file except in compliance with the License.
18
- * You may obtain a copy of the License at
19
- *
20
- * http://www.apache.org/licenses/LICENSE-2.0
21
- *
22
- * Unless required by applicable law or agreed to in writing, software
23
- * distributed under the License is distributed on an "AS IS" BASIS,
24
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25
- * See the License for the specific language governing permissions and
26
- * limitations under the License.
27
- */
28
-
29
- const keypadLocation = exports.keypadLocation = keyboardLayout.keypadLocation;
30
- const kModifiers = ['Alt', 'Control', 'Meta', 'Shift'];
38
+ module.exports = __toCommonJS(input_exports);
39
+ var import_utils = require("../utils");
40
+ var keyboardLayout = __toESM(require("./usKeyboardLayout"));
41
+ const keypadLocation = keyboardLayout.keypadLocation;
42
+ const kModifiers = ["Alt", "Control", "Meta", "Shift"];
31
43
  class Keyboard {
32
44
  constructor(raw) {
33
- this._pressedModifiers = new Set();
34
- this._pressedKeys = new Set();
35
- this._raw = void 0;
45
+ this._pressedModifiers = /* @__PURE__ */ new Set();
46
+ this._pressedKeys = /* @__PURE__ */ new Set();
36
47
  this._raw = raw;
37
48
  }
38
49
  async down(key) {
39
50
  const description = this._keyDescriptionForString(key);
40
51
  const autoRepeat = this._pressedKeys.has(description.code);
41
52
  this._pressedKeys.add(description.code);
42
- if (kModifiers.includes(description.key)) this._pressedModifiers.add(description.key);
53
+ if (kModifiers.includes(description.key))
54
+ this._pressedModifiers.add(description.key);
43
55
  await this._raw.keydown(this._pressedModifiers, key, description, autoRepeat);
44
56
  }
45
57
  _keyDescriptionForString(str) {
46
58
  const keyString = resolveSmartModifierString(str);
47
59
  let description = usKeyboardLayout.get(keyString);
48
- (0, _utils.assert)(description, `Unknown key: "${keyString}"`);
49
- const shift = this._pressedModifiers.has('Shift');
60
+ (0, import_utils.assert)(description, `Unknown key: "${keyString}"`);
61
+ const shift = this._pressedModifiers.has("Shift");
50
62
  description = shift && description.shifted ? description.shifted : description;
51
-
52
- // if any modifiers besides shift are pressed, no text should be sent
53
- if (this._pressedModifiers.size > 1 || !this._pressedModifiers.has('Shift') && this._pressedModifiers.size === 1) return {
54
- ...description,
55
- text: ''
56
- };
63
+ if (this._pressedModifiers.size > 1 || !this._pressedModifiers.has("Shift") && this._pressedModifiers.size === 1)
64
+ return { ...description, text: "" };
57
65
  return description;
58
66
  }
59
67
  async up(key) {
60
68
  const description = this._keyDescriptionForString(key);
61
- if (kModifiers.includes(description.key)) this._pressedModifiers.delete(description.key);
69
+ if (kModifiers.includes(description.key))
70
+ this._pressedModifiers.delete(description.key);
62
71
  this._pressedKeys.delete(description.code);
63
72
  await this._raw.keyup(this._pressedModifiers, key, description);
64
73
  }
@@ -66,14 +75,13 @@ class Keyboard {
66
75
  await this._raw.sendText(text);
67
76
  }
68
77
  async type(text, options) {
69
- const delay = options && options.delay || undefined;
78
+ const delay = options && options.delay || void 0;
70
79
  for (const char of text) {
71
80
  if (usKeyboardLayout.has(char)) {
72
- await this.press(char, {
73
- delay
74
- });
81
+ await this.press(char, { delay });
75
82
  } else {
76
- if (delay) await new Promise(f => setTimeout(f, delay));
83
+ if (delay)
84
+ await new Promise((f) => setTimeout(f, delay));
77
85
  await this.insertText(char);
78
86
  }
79
87
  }
@@ -81,11 +89,11 @@ class Keyboard {
81
89
  async press(key, options = {}) {
82
90
  function split(keyString) {
83
91
  const keys = [];
84
- let building = '';
92
+ let building = "";
85
93
  for (const char of keyString) {
86
- if (char === '+' && building) {
94
+ if (char === "+" && building) {
87
95
  keys.push(building);
88
- building = '';
96
+ building = "";
89
97
  } else {
90
98
  building += char;
91
99
  }
@@ -95,22 +103,29 @@ class Keyboard {
95
103
  }
96
104
  const tokens = split(key);
97
105
  key = tokens[tokens.length - 1];
98
- for (let i = 0; i < tokens.length - 1; ++i) await this.down(tokens[i]);
106
+ for (let i = 0; i < tokens.length - 1; ++i)
107
+ await this.down(tokens[i]);
99
108
  await this.down(key);
100
- if (options.delay) await new Promise(f => setTimeout(f, options.delay));
109
+ if (options.delay)
110
+ await new Promise((f) => setTimeout(f, options.delay));
101
111
  await this.up(key);
102
- for (let i = tokens.length - 2; i >= 0; --i) await this.up(tokens[i]);
112
+ for (let i = tokens.length - 2; i >= 0; --i)
113
+ await this.up(tokens[i]);
103
114
  }
104
115
  async ensureModifiers(mm) {
105
116
  const modifiers = mm.map(resolveSmartModifier);
106
117
  for (const modifier of modifiers) {
107
- if (!kModifiers.includes(modifier)) throw new Error('Unknown modifier ' + modifier);
118
+ if (!kModifiers.includes(modifier))
119
+ throw new Error("Unknown modifier " + modifier);
108
120
  }
109
121
  const restore = Array.from(this._pressedModifiers);
110
122
  for (const key of kModifiers) {
111
123
  const needDown = modifiers.includes(key);
112
124
  const isDown = this._pressedModifiers.has(key);
113
- if (needDown && !isDown) await this.down(key);else if (!needDown && isDown) await this.up(key);
125
+ if (needDown && !isDown)
126
+ await this.down(key);
127
+ else if (!needDown && isDown)
128
+ await this.up(key);
114
129
  }
115
130
  return restore;
116
131
  }
@@ -118,9 +133,9 @@ class Keyboard {
118
133
  return this._pressedModifiers;
119
134
  }
120
135
  }
121
- exports.Keyboard = Keyboard;
122
136
  function resolveSmartModifierString(key) {
123
- if (key === 'ControlOrMeta') return process.platform === 'darwin' ? 'Meta' : 'Control';
137
+ if (key === "ControlOrMeta")
138
+ return process.platform === "darwin" ? "Meta" : "Control";
124
139
  return key;
125
140
  }
126
141
  function resolveSmartModifier(m) {
@@ -128,25 +143,18 @@ function resolveSmartModifier(m) {
128
143
  }
129
144
  class Mouse {
130
145
  constructor(raw, page) {
131
- this._keyboard = void 0;
132
146
  this._x = 0;
133
147
  this._y = 0;
134
- this._lastButton = 'none';
135
- this._buttons = new Set();
136
- this._raw = void 0;
137
- this._page = void 0;
148
+ this._lastButton = "none";
149
+ this._buttons = /* @__PURE__ */ new Set();
138
150
  this._raw = raw;
139
151
  this._page = page;
140
152
  this._keyboard = this._page.keyboard;
141
153
  }
142
154
  async move(x, y, options = {}, metadata) {
143
- if (metadata) metadata.point = {
144
- x,
145
- y
146
- };
147
- const {
148
- steps = 1
149
- } = options;
155
+ if (metadata)
156
+ metadata.point = { x, y };
157
+ const { steps = 1 } = options;
150
158
  const fromX = this._x;
151
159
  const fromY = this._y;
152
160
  this._x = x;
@@ -158,152 +166,115 @@ class Mouse {
158
166
  }
159
167
  }
160
168
  async down(options = {}, metadata) {
161
- if (metadata) metadata.point = {
162
- x: this._x,
163
- y: this._y
164
- };
165
- const {
166
- button = 'left',
167
- clickCount = 1
168
- } = options;
169
+ if (metadata)
170
+ metadata.point = { x: this._x, y: this._y };
171
+ const { button = "left", clickCount = 1 } = options;
169
172
  this._lastButton = button;
170
173
  this._buttons.add(button);
171
174
  await this._raw.down(this._x, this._y, this._lastButton, this._buttons, this._keyboard._modifiers(), clickCount);
172
175
  }
173
176
  async up(options = {}, metadata) {
174
- if (metadata) metadata.point = {
175
- x: this._x,
176
- y: this._y
177
- };
178
- const {
179
- button = 'left',
180
- clickCount = 1
181
- } = options;
182
- this._lastButton = 'none';
177
+ if (metadata)
178
+ metadata.point = { x: this._x, y: this._y };
179
+ const { button = "left", clickCount = 1 } = options;
180
+ this._lastButton = "none";
183
181
  this._buttons.delete(button);
184
182
  await this._raw.up(this._x, this._y, button, this._buttons, this._keyboard._modifiers(), clickCount);
185
183
  }
186
184
  async click(x, y, options = {}, metadata) {
187
- if (metadata) metadata.point = {
188
- x,
189
- y
190
- };
191
- const {
192
- delay = null,
193
- clickCount = 1
194
- } = options;
185
+ if (metadata)
186
+ metadata.point = { x, y };
187
+ const { delay = null, clickCount = 1 } = options;
195
188
  if (delay) {
196
- this.move(x, y, {
197
- forClick: true
198
- });
189
+ this.move(x, y, { forClick: true });
199
190
  for (let cc = 1; cc <= clickCount; ++cc) {
200
- await this.down({
201
- ...options,
202
- clickCount: cc
203
- });
204
- await new Promise(f => setTimeout(f, delay));
205
- await this.up({
206
- ...options,
207
- clickCount: cc
208
- });
209
- if (cc < clickCount) await new Promise(f => setTimeout(f, delay));
191
+ await this.down({ ...options, clickCount: cc });
192
+ await new Promise((f) => setTimeout(f, delay));
193
+ await this.up({ ...options, clickCount: cc });
194
+ if (cc < clickCount)
195
+ await new Promise((f) => setTimeout(f, delay));
210
196
  }
211
197
  } else {
212
198
  const promises = [];
213
- promises.push(this.move(x, y, {
214
- forClick: true
215
- }));
199
+ promises.push(this.move(x, y, { forClick: true }));
216
200
  for (let cc = 1; cc <= clickCount; ++cc) {
217
- promises.push(this.down({
218
- ...options,
219
- clickCount: cc
220
- }));
221
- promises.push(this.up({
222
- ...options,
223
- clickCount: cc
224
- }));
201
+ promises.push(this.down({ ...options, clickCount: cc }));
202
+ promises.push(this.up({ ...options, clickCount: cc }));
225
203
  }
226
204
  await Promise.all(promises);
227
205
  }
228
206
  }
229
207
  async dblclick(x, y, options = {}) {
230
- await this.click(x, y, {
231
- ...options,
232
- clickCount: 2
233
- });
208
+ await this.click(x, y, { ...options, clickCount: 2 });
234
209
  }
235
210
  async wheel(deltaX, deltaY) {
236
211
  await this._raw.wheel(this._x, this._y, this._buttons, this._keyboard._modifiers(), deltaX, deltaY);
237
212
  }
238
213
  }
239
- exports.Mouse = Mouse;
240
- const aliases = new Map([['ShiftLeft', ['Shift']], ['ControlLeft', ['Control']], ['AltLeft', ['Alt']], ['MetaLeft', ['Meta']], ['Enter', ['\n', '\r']]]);
214
+ const aliases = /* @__PURE__ */ new Map([
215
+ ["ShiftLeft", ["Shift"]],
216
+ ["ControlLeft", ["Control"]],
217
+ ["AltLeft", ["Alt"]],
218
+ ["MetaLeft", ["Meta"]],
219
+ ["Enter", ["\n", "\r"]]
220
+ ]);
241
221
  const usKeyboardLayout = buildLayoutClosure(keyboardLayout.USKeyboardLayout);
242
222
  function buildLayoutClosure(layout) {
243
- const result = new Map();
223
+ const result = /* @__PURE__ */ new Map();
244
224
  for (const code in layout) {
245
225
  const definition = layout[code];
246
226
  const description = {
247
- key: definition.key || '',
227
+ key: definition.key || "",
248
228
  keyCode: definition.keyCode || 0,
249
229
  keyCodeWithoutLocation: definition.keyCodeWithoutLocation || definition.keyCode || 0,
250
230
  code,
251
- text: definition.text || '',
231
+ text: definition.text || "",
252
232
  location: definition.location || 0
253
233
  };
254
- if (definition.key.length === 1) description.text = description.key;
255
-
256
- // Generate shifted definition.
234
+ if (definition.key.length === 1)
235
+ description.text = description.key;
257
236
  let shiftedDescription;
258
237
  if (definition.shiftKey) {
259
- (0, _utils.assert)(definition.shiftKey.length === 1);
260
- shiftedDescription = {
261
- ...description
262
- };
238
+ (0, import_utils.assert)(definition.shiftKey.length === 1);
239
+ shiftedDescription = { ...description };
263
240
  shiftedDescription.key = definition.shiftKey;
264
241
  shiftedDescription.text = definition.shiftKey;
265
- if (definition.shiftKeyCode) shiftedDescription.keyCode = definition.shiftKeyCode;
242
+ if (definition.shiftKeyCode)
243
+ shiftedDescription.keyCode = definition.shiftKeyCode;
266
244
  }
267
-
268
- // Map from code: Digit3 -> { ... description, shifted }
269
- result.set(code, {
270
- ...description,
271
- shifted: shiftedDescription
272
- });
273
-
274
- // Map from aliases: Shift -> non-shiftable definition
245
+ result.set(code, { ...description, shifted: shiftedDescription });
275
246
  if (aliases.has(code)) {
276
- for (const alias of aliases.get(code)) result.set(alias, description);
247
+ for (const alias of aliases.get(code))
248
+ result.set(alias, description);
277
249
  }
278
-
279
- // Do not use numpad when converting keys to codes.
280
- if (definition.location) continue;
281
-
282
- // Map from key, no shifted
283
- if (description.key.length === 1) result.set(description.key, description);
284
-
285
- // Map from shiftKey, no shifted
286
- if (shiftedDescription) result.set(shiftedDescription.key, {
287
- ...shiftedDescription,
288
- shifted: undefined
289
- });
250
+ if (definition.location)
251
+ continue;
252
+ if (description.key.length === 1)
253
+ result.set(description.key, description);
254
+ if (shiftedDescription)
255
+ result.set(shiftedDescription.key, { ...shiftedDescription, shifted: void 0 });
290
256
  }
291
257
  return result;
292
258
  }
293
259
  class Touchscreen {
294
260
  constructor(raw, page) {
295
- this._raw = void 0;
296
- this._page = void 0;
297
261
  this._raw = raw;
298
262
  this._page = page;
299
263
  }
300
264
  async tap(x, y, metadata) {
301
- if (metadata) metadata.point = {
302
- x,
303
- y
304
- };
305
- if (!this._page._browserContext._options.hasTouch) throw new Error('hasTouch must be enabled on the browser context before using the touchscreen.');
265
+ if (metadata)
266
+ metadata.point = { x, y };
267
+ if (!this._page._browserContext._options.hasTouch)
268
+ throw new Error("hasTouch must be enabled on the browser context before using the touchscreen.");
306
269
  await this._raw.tap(x, y, this._page.keyboard._modifiers());
307
270
  }
308
271
  }
309
- exports.Touchscreen = Touchscreen;
272
+ // Annotate the CommonJS export names for ESM import in node:
273
+ 0 && (module.exports = {
274
+ Keyboard,
275
+ Mouse,
276
+ Touchscreen,
277
+ keypadLocation,
278
+ resolveSmartModifier,
279
+ resolveSmartModifierString
280
+ });
@@ -1,56 +1,55 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 instrumentation_exports = {};
20
+ __export(instrumentation_exports, {
21
+ SdkObject: () => SdkObject,
22
+ createInstrumentation: () => createInstrumentation,
23
+ serverSideCallMetadata: () => serverSideCallMetadata
5
24
  });
6
- exports.SdkObject = void 0;
7
- exports.createInstrumentation = createInstrumentation;
8
- exports.serverSideCallMetadata = serverSideCallMetadata;
9
- var _events = require("events");
10
- var _crypto = require("./utils/crypto");
11
- /**
12
- * Copyright (c) Microsoft Corporation. All rights reserved.
13
- *
14
- * Licensed under the Apache License, Version 2.0 (the "License");
15
- * you may not use this file except in compliance with the License.
16
- * You may obtain a copy of the License at
17
- *
18
- * http://www.apache.org/licenses/LICENSE-2.0
19
- *
20
- * Unless required by applicable law or agreed to in writing, software
21
- * distributed under the License is distributed on an "AS IS" BASIS,
22
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23
- * See the License for the specific language governing permissions and
24
- * limitations under the License.
25
- */
26
-
27
- class SdkObject extends _events.EventEmitter {
25
+ module.exports = __toCommonJS(instrumentation_exports);
26
+ var import_events = require("events");
27
+ var import_crypto = require("./utils/crypto");
28
+ class SdkObject extends import_events.EventEmitter {
28
29
  constructor(parent, guidPrefix, guid) {
29
30
  super();
30
- this.guid = void 0;
31
- this.attribution = void 0;
32
- this.instrumentation = void 0;
33
- this.guid = guid || `${guidPrefix || ''}@${(0, _crypto.createGuid)()}`;
31
+ this.guid = guid || `${guidPrefix || ""}@${(0, import_crypto.createGuid)()}`;
34
32
  this.setMaxListeners(0);
35
- this.attribution = {
36
- ...parent.attribution
37
- };
33
+ this.attribution = { ...parent.attribution };
38
34
  this.instrumentation = parent.instrumentation;
39
35
  }
40
36
  }
41
- exports.SdkObject = SdkObject;
42
37
  function createInstrumentation() {
43
- const listeners = new Map();
38
+ const listeners = /* @__PURE__ */ new Map();
44
39
  return new Proxy({}, {
45
40
  get: (obj, prop) => {
46
- if (typeof prop !== 'string') return obj[prop];
47
- if (prop === 'addListener') return (listener, context) => listeners.set(listener, context);
48
- if (prop === 'removeListener') return listener => listeners.delete(listener);
49
- if (!prop.startsWith('on')) return obj[prop];
41
+ if (typeof prop !== "string")
42
+ return obj[prop];
43
+ if (prop === "addListener")
44
+ return (listener, context) => listeners.set(listener, context);
45
+ if (prop === "removeListener")
46
+ return (listener) => listeners.delete(listener);
47
+ if (!prop.startsWith("on"))
48
+ return obj[prop];
50
49
  return async (sdkObject, ...params) => {
51
50
  for (const [listener, context] of listeners) {
52
- var _prop, _ref;
53
- if (!context || sdkObject.attribution.context === context) await ((_prop = (_ref = listener)[prop]) === null || _prop === void 0 ? void 0 : _prop.call(_ref, sdkObject, ...params));
51
+ if (!context || sdkObject.attribution.context === context)
52
+ await listener[prop]?.(sdkObject, ...params);
54
53
  }
55
54
  };
56
55
  }
@@ -58,13 +57,19 @@ function createInstrumentation() {
58
57
  }
59
58
  function serverSideCallMetadata() {
60
59
  return {
61
- id: '',
60
+ id: "",
62
61
  startTime: 0,
63
62
  endTime: 0,
64
- type: 'Internal',
65
- method: '',
63
+ type: "Internal",
64
+ method: "",
66
65
  params: {},
67
66
  log: [],
68
67
  isServerSide: true
69
68
  };
70
- }
69
+ }
70
+ // Annotate the CommonJS export names for ESM import in node:
71
+ 0 && (module.exports = {
72
+ SdkObject,
73
+ createInstrumentation,
74
+ serverSideCallMetadata
75
+ });