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,42 +1,40 @@
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 java_exports = {};
20
+ __export(java_exports, {
21
+ JavaLanguageGenerator: () => JavaLanguageGenerator
5
22
  });
6
- exports.JavaLanguageGenerator = void 0;
7
- var _language = require("./language");
8
- var _deviceDescriptors = require("../deviceDescriptors");
9
- var _javascript = require("./javascript");
10
- var _utils = require("../../utils");
11
- /**
12
- * Copyright (c) Microsoft Corporation.
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
-
23
+ module.exports = __toCommonJS(java_exports);
24
+ var import_language = require("./language");
25
+ var import_deviceDescriptors = require("../deviceDescriptors");
26
+ var import_javascript = require("./javascript");
27
+ var import_utils = require("../../utils");
27
28
  class JavaLanguageGenerator {
28
29
  constructor(mode) {
29
- this.id = void 0;
30
- this.groupName = 'Java';
31
- this.name = void 0;
32
- this.highlighter = 'java';
33
- this._mode = void 0;
34
- if (mode === 'library') {
35
- this.name = 'Library';
36
- this.id = 'java';
37
- } else if (mode === 'junit') {
38
- this.name = 'JUnit';
39
- this.id = 'java-junit';
30
+ this.groupName = "Java";
31
+ this.highlighter = "java";
32
+ if (mode === "library") {
33
+ this.name = "Library";
34
+ this.id = "java";
35
+ } else if (mode === "junit") {
36
+ this.name = "JUnit";
37
+ this.id = "java-junit";
40
38
  } else {
41
39
  throw new Error(`Unknown Java language mode: ${mode}`);
42
40
  }
@@ -45,17 +43,19 @@ class JavaLanguageGenerator {
45
43
  generateAction(actionInContext) {
46
44
  const action = actionInContext.action;
47
45
  const pageAlias = actionInContext.frame.pageAlias;
48
- const offset = this._mode === 'junit' ? 4 : 6;
49
- const formatter = new _javascript.JavaScriptFormatter(offset);
50
- if (this._mode !== 'library' && (action.name === 'openPage' || action.name === 'closePage')) return '';
51
- if (action.name === 'openPage') {
46
+ const offset = this._mode === "junit" ? 4 : 6;
47
+ const formatter = new import_javascript.JavaScriptFormatter(offset);
48
+ if (this._mode !== "library" && (action.name === "openPage" || action.name === "closePage"))
49
+ return "";
50
+ if (action.name === "openPage") {
52
51
  formatter.add(`Page ${pageAlias} = context.newPage();`);
53
- if (action.url && action.url !== 'about:blank' && action.url !== 'chrome://newtab/') formatter.add(`${pageAlias}.navigate(${quote(action.url)});`);
52
+ if (action.url && action.url !== "about:blank" && action.url !== "chrome://newtab/")
53
+ formatter.add(`${pageAlias}.navigate(${quote(action.url)});`);
54
54
  return formatter.format();
55
55
  }
56
- const locators = actionInContext.frame.framePath.map(selector => `.${this._asLocator(selector, false)}.contentFrame()`);
57
- const subject = `${pageAlias}${locators.join('')}`;
58
- const signals = (0, _language.toSignalMap)(action);
56
+ const locators = actionInContext.frame.framePath.map((selector) => `.${this._asLocator(selector, false)}.contentFrame()`);
57
+ const subject = `${pageAlias}${locators.join("")}`;
58
+ const signals = (0, import_language.toSignalMap)(action);
59
59
  if (signals.dialog) {
60
60
  formatter.add(` ${pageAlias}.onceDialog(dialog -> {
61
61
  System.out.println(String.format("Dialog message: %s", dialog.message()));
@@ -79,63 +79,62 @@ class JavaLanguageGenerator {
79
79
  _generateActionCall(subject, actionInContext, inFrameLocator) {
80
80
  const action = actionInContext.action;
81
81
  switch (action.name) {
82
- case 'openPage':
83
- throw Error('Not reached');
84
- case 'closePage':
82
+ case "openPage":
83
+ throw Error("Not reached");
84
+ case "closePage":
85
85
  return `${subject}.close();`;
86
- case 'click':
87
- {
88
- let method = 'click';
89
- if (action.clickCount === 2) method = 'dblclick';
90
- const options = (0, _language.toClickOptionsForSourceCode)(action);
91
- const optionsText = formatClickOptions(options);
92
- return `${subject}.${this._asLocator(action.selector, inFrameLocator)}.${method}(${optionsText});`;
93
- }
94
- case 'check':
86
+ case "click": {
87
+ let method = "click";
88
+ if (action.clickCount === 2)
89
+ method = "dblclick";
90
+ const options = (0, import_language.toClickOptionsForSourceCode)(action);
91
+ const optionsText = formatClickOptions(options);
92
+ return `${subject}.${this._asLocator(action.selector, inFrameLocator)}.${method}(${optionsText});`;
93
+ }
94
+ case "check":
95
95
  return `${subject}.${this._asLocator(action.selector, inFrameLocator)}.check();`;
96
- case 'uncheck':
96
+ case "uncheck":
97
97
  return `${subject}.${this._asLocator(action.selector, inFrameLocator)}.uncheck();`;
98
- case 'fill':
98
+ case "fill":
99
99
  return `${subject}.${this._asLocator(action.selector, inFrameLocator)}.fill(${quote(action.text)});`;
100
- case 'setInputFiles':
100
+ case "setInputFiles":
101
101
  return `${subject}.${this._asLocator(action.selector, inFrameLocator)}.setInputFiles(${formatPath(action.files.length === 1 ? action.files[0] : action.files)});`;
102
- case 'press':
103
- {
104
- const modifiers = (0, _language.toKeyboardModifiers)(action.modifiers);
105
- const shortcut = [...modifiers, action.key].join('+');
106
- return `${subject}.${this._asLocator(action.selector, inFrameLocator)}.press(${quote(shortcut)});`;
107
- }
108
- case 'navigate':
102
+ case "press": {
103
+ const modifiers = (0, import_language.toKeyboardModifiers)(action.modifiers);
104
+ const shortcut = [...modifiers, action.key].join("+");
105
+ return `${subject}.${this._asLocator(action.selector, inFrameLocator)}.press(${quote(shortcut)});`;
106
+ }
107
+ case "navigate":
109
108
  return `${subject}.navigate(${quote(action.url)});`;
110
- case 'select':
109
+ case "select":
111
110
  return `${subject}.${this._asLocator(action.selector, inFrameLocator)}.selectOption(${formatSelectOption(action.options.length === 1 ? action.options[0] : action.options)});`;
112
- case 'assertText':
113
- return `assertThat(${subject}.${this._asLocator(action.selector, inFrameLocator)}).${action.substring ? 'containsText' : 'hasText'}(${quote(action.text)});`;
114
- case 'assertChecked':
115
- return `assertThat(${subject}.${this._asLocator(action.selector, inFrameLocator)})${action.checked ? '' : '.not()'}.isChecked();`;
116
- case 'assertVisible':
111
+ case "assertText":
112
+ return `assertThat(${subject}.${this._asLocator(action.selector, inFrameLocator)}).${action.substring ? "containsText" : "hasText"}(${quote(action.text)});`;
113
+ case "assertChecked":
114
+ return `assertThat(${subject}.${this._asLocator(action.selector, inFrameLocator)})${action.checked ? "" : ".not()"}.isChecked();`;
115
+ case "assertVisible":
117
116
  return `assertThat(${subject}.${this._asLocator(action.selector, inFrameLocator)}).isVisible();`;
118
- case 'assertValue':
119
- {
120
- const assertion = action.value ? `hasValue(${quote(action.value)})` : `isEmpty()`;
121
- return `assertThat(${subject}.${this._asLocator(action.selector, inFrameLocator)}).${assertion};`;
122
- }
123
- case 'assertSnapshot':
117
+ case "assertValue": {
118
+ const assertion = action.value ? `hasValue(${quote(action.value)})` : `isEmpty()`;
119
+ return `assertThat(${subject}.${this._asLocator(action.selector, inFrameLocator)}).${assertion};`;
120
+ }
121
+ case "assertSnapshot":
124
122
  return `assertThat(${subject}.${this._asLocator(action.selector, inFrameLocator)}).matchesAriaSnapshot(${quote(action.snapshot)});`;
125
123
  }
126
124
  }
127
125
  _asLocator(selector, inFrameLocator) {
128
- return (0, _utils.asLocator)('java', selector, inFrameLocator);
126
+ return (0, import_utils.asLocator)("java", selector, inFrameLocator);
129
127
  }
130
128
  generateHeader(options) {
131
- const formatter = new _javascript.JavaScriptFormatter();
132
- if (this._mode === 'junit') {
129
+ const formatter = new import_javascript.JavaScriptFormatter();
130
+ if (this._mode === "junit") {
133
131
  formatter.add(`
134
132
  import com.microsoft.playwright.junit.UsePlaywright;
135
133
  import com.microsoft.playwright.Page;
136
134
  import com.microsoft.playwright.options.*;
137
135
 
138
- ${options.contextOptions.recordHar ? `import java.nio.file.Paths;\n` : ''}import org.junit.jupiter.api.*;
136
+ ${options.contextOptions.recordHar ? `import java.nio.file.Paths;
137
+ ` : ""}import org.junit.jupiter.api.*;
139
138
  import static com.microsoft.playwright.assertions.PlaywrightAssertions.*;
140
139
 
141
140
  @UsePlaywright
@@ -144,8 +143,8 @@ class JavaLanguageGenerator {
144
143
  void test(Page page) {`);
145
144
  if (options.contextOptions.recordHar) {
146
145
  const url = options.contextOptions.recordHar.urlFilter;
147
- const recordHarOptions = typeof url === 'string' ? `, new Page.RouteFromHAROptions()
148
- .setUrl(${quote(url)})` : '';
146
+ const recordHarOptions = typeof url === "string" ? `, new Page.RouteFromHAROptions()
147
+ .setUrl(${quote(url)})` : "";
149
148
  formatter.add(` page.routeFromHAR(Paths.get(${quote(options.contextOptions.recordHar.path)})${recordHarOptions});`);
150
149
  }
151
150
  return formatter.format();
@@ -154,7 +153,8 @@ class JavaLanguageGenerator {
154
153
  import com.microsoft.playwright.*;
155
154
  import com.microsoft.playwright.options.*;
156
155
  import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
157
- ${options.contextOptions.recordHar ? `import java.nio.file.Paths;\n` : ''}import java.util.*;
156
+ ${options.contextOptions.recordHar ? `import java.nio.file.Paths;
157
+ ` : ""}import java.util.*;
158
158
 
159
159
  public class Example {
160
160
  public static void main(String[] args) {
@@ -163,15 +163,17 @@ class JavaLanguageGenerator {
163
163
  BrowserContext context = browser.newContext(${formatContextOptions(options.contextOptions, options.deviceName)});`);
164
164
  if (options.contextOptions.recordHar) {
165
165
  const url = options.contextOptions.recordHar.urlFilter;
166
- const recordHarOptions = typeof url === 'string' ? `, new BrowserContext.RouteFromHAROptions()
167
- .setUrl(${quote(url)})` : '';
166
+ const recordHarOptions = typeof url === "string" ? `, new BrowserContext.RouteFromHAROptions()
167
+ .setUrl(${quote(url)})` : "";
168
168
  formatter.add(` context.routeFromHAR(Paths.get(${quote(options.contextOptions.recordHar.path)})${recordHarOptions});`);
169
169
  }
170
170
  return formatter.format();
171
171
  }
172
172
  generateFooter(saveStorage) {
173
- const storageStateLine = saveStorage ? `\n context.storageState(new BrowserContext.StorageStateOptions().setPath(${quote(saveStorage)}));\n` : '';
174
- if (this._mode === 'junit') {
173
+ const storageStateLine = saveStorage ? `
174
+ context.storageState(new BrowserContext.StorageStateOptions().setPath(${quote(saveStorage)}));
175
+ ` : "";
176
+ if (this._mode === "junit") {
175
177
  return `${storageStateLine} }
176
178
  }`;
177
179
  }
@@ -180,64 +182,89 @@ class JavaLanguageGenerator {
180
182
  }`;
181
183
  }
182
184
  }
183
- exports.JavaLanguageGenerator = JavaLanguageGenerator;
184
185
  function formatPath(files) {
185
186
  if (Array.isArray(files)) {
186
- if (files.length === 0) return 'new Path[0]';
187
- return `new Path[] {${files.map(s => 'Paths.get(' + quote(s) + ')').join(', ')}}`;
187
+ if (files.length === 0)
188
+ return "new Path[0]";
189
+ return `new Path[] {${files.map((s) => "Paths.get(" + quote(s) + ")").join(", ")}}`;
188
190
  }
189
191
  return `Paths.get(${quote(files)})`;
190
192
  }
191
193
  function formatSelectOption(options) {
192
194
  if (Array.isArray(options)) {
193
- if (options.length === 0) return 'new String[0]';
194
- return `new String[] {${options.map(s => quote(s)).join(', ')}}`;
195
+ if (options.length === 0)
196
+ return "new String[0]";
197
+ return `new String[] {${options.map((s) => quote(s)).join(", ")}}`;
195
198
  }
196
199
  return quote(options);
197
200
  }
198
201
  function formatLaunchOptions(options) {
199
202
  const lines = [];
200
- if (!Object.keys(options).filter(key => options[key] !== undefined).length) return '';
201
- lines.push('new BrowserType.LaunchOptions()');
202
- if (options.channel) lines.push(` .setChannel(${quote(options.channel)})`);
203
- if (typeof options.headless === 'boolean') lines.push(` .setHeadless(false)`);
204
- return lines.join('\n');
203
+ if (!Object.keys(options).filter((key) => options[key] !== void 0).length)
204
+ return "";
205
+ lines.push("new BrowserType.LaunchOptions()");
206
+ if (options.channel)
207
+ lines.push(` .setChannel(${quote(options.channel)})`);
208
+ if (typeof options.headless === "boolean")
209
+ lines.push(` .setHeadless(false)`);
210
+ return lines.join("\n");
205
211
  }
206
212
  function formatContextOptions(contextOptions, deviceName) {
207
213
  const lines = [];
208
- if (!Object.keys(contextOptions).length && !deviceName) return '';
209
- const device = deviceName ? _deviceDescriptors.deviceDescriptors[deviceName] : {};
210
- const options = {
211
- ...device,
212
- ...contextOptions
213
- };
214
- lines.push('new Browser.NewContextOptions()');
215
- if (options.acceptDownloads) lines.push(` .setAcceptDownloads(true)`);
216
- if (options.bypassCSP) lines.push(` .setBypassCSP(true)`);
217
- if (options.colorScheme) lines.push(` .setColorScheme(ColorScheme.${options.colorScheme.toUpperCase()})`);
218
- if (options.deviceScaleFactor) lines.push(` .setDeviceScaleFactor(${options.deviceScaleFactor})`);
219
- if (options.geolocation) lines.push(` .setGeolocation(${options.geolocation.latitude}, ${options.geolocation.longitude})`);
220
- if (options.hasTouch) lines.push(` .setHasTouch(${options.hasTouch})`);
221
- if (options.isMobile) lines.push(` .setIsMobile(${options.isMobile})`);
222
- if (options.locale) lines.push(` .setLocale(${quote(options.locale)})`);
223
- if (options.proxy) lines.push(` .setProxy(new Proxy(${quote(options.proxy.server)}))`);
224
- if (options.serviceWorkers) lines.push(` .setServiceWorkers(ServiceWorkerPolicy.${options.serviceWorkers.toUpperCase()})`);
225
- if (options.storageState) lines.push(` .setStorageStatePath(Paths.get(${quote(options.storageState)}))`);
226
- if (options.timezoneId) lines.push(` .setTimezoneId(${quote(options.timezoneId)})`);
227
- if (options.userAgent) lines.push(` .setUserAgent(${quote(options.userAgent)})`);
228
- if (options.viewport) lines.push(` .setViewportSize(${options.viewport.width}, ${options.viewport.height})`);
229
- return lines.join('\n');
214
+ if (!Object.keys(contextOptions).length && !deviceName)
215
+ return "";
216
+ const device = deviceName ? import_deviceDescriptors.deviceDescriptors[deviceName] : {};
217
+ const options = { ...device, ...contextOptions };
218
+ lines.push("new Browser.NewContextOptions()");
219
+ if (options.acceptDownloads)
220
+ lines.push(` .setAcceptDownloads(true)`);
221
+ if (options.bypassCSP)
222
+ lines.push(` .setBypassCSP(true)`);
223
+ if (options.colorScheme)
224
+ lines.push(` .setColorScheme(ColorScheme.${options.colorScheme.toUpperCase()})`);
225
+ if (options.deviceScaleFactor)
226
+ lines.push(` .setDeviceScaleFactor(${options.deviceScaleFactor})`);
227
+ if (options.geolocation)
228
+ lines.push(` .setGeolocation(${options.geolocation.latitude}, ${options.geolocation.longitude})`);
229
+ if (options.hasTouch)
230
+ lines.push(` .setHasTouch(${options.hasTouch})`);
231
+ if (options.isMobile)
232
+ lines.push(` .setIsMobile(${options.isMobile})`);
233
+ if (options.locale)
234
+ lines.push(` .setLocale(${quote(options.locale)})`);
235
+ if (options.proxy)
236
+ lines.push(` .setProxy(new Proxy(${quote(options.proxy.server)}))`);
237
+ if (options.serviceWorkers)
238
+ lines.push(` .setServiceWorkers(ServiceWorkerPolicy.${options.serviceWorkers.toUpperCase()})`);
239
+ if (options.storageState)
240
+ lines.push(` .setStorageStatePath(Paths.get(${quote(options.storageState)}))`);
241
+ if (options.timezoneId)
242
+ lines.push(` .setTimezoneId(${quote(options.timezoneId)})`);
243
+ if (options.userAgent)
244
+ lines.push(` .setUserAgent(${quote(options.userAgent)})`);
245
+ if (options.viewport)
246
+ lines.push(` .setViewportSize(${options.viewport.width}, ${options.viewport.height})`);
247
+ return lines.join("\n");
230
248
  }
231
249
  function formatClickOptions(options) {
232
250
  const lines = [];
233
- if (options.button) lines.push(` .setButton(MouseButton.${options.button.toUpperCase()})`);
234
- if (options.modifiers) lines.push(` .setModifiers(Arrays.asList(${options.modifiers.map(m => `KeyboardModifier.${m.toUpperCase()}`).join(', ')}))`);
235
- if (options.clickCount) lines.push(` .setClickCount(${options.clickCount})`);
236
- if (options.position) lines.push(` .setPosition(${options.position.x}, ${options.position.y})`);
237
- if (!lines.length) return '';
251
+ if (options.button)
252
+ lines.push(` .setButton(MouseButton.${options.button.toUpperCase()})`);
253
+ if (options.modifiers)
254
+ lines.push(` .setModifiers(Arrays.asList(${options.modifiers.map((m) => `KeyboardModifier.${m.toUpperCase()}`).join(", ")}))`);
255
+ if (options.clickCount)
256
+ lines.push(` .setClickCount(${options.clickCount})`);
257
+ if (options.position)
258
+ lines.push(` .setPosition(${options.position.x}, ${options.position.y})`);
259
+ if (!lines.length)
260
+ return "";
238
261
  lines.unshift(`new Locator.ClickOptions()`);
239
- return lines.join('\n');
262
+ return lines.join("\n");
240
263
  }
241
264
  function quote(text) {
242
- return (0, _utils.escapeWithQuotes)(text, '\"');
243
- }
265
+ return (0, import_utils.escapeWithQuotes)(text, '"');
266
+ }
267
+ // Annotate the CommonJS export names for ESM import in node:
268
+ 0 && (module.exports = {
269
+ JavaLanguageGenerator
270
+ });