patchright-core 1.51.3 → 1.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +56 -71
  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 +371 -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 +221 -112
  170. package/lib/server/frames.js +731 -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 +326 -423
  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 +86 -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-CXVeovup.js} +1 -1
  285. package/lib/vite/recorder/assets/index-BsWQsSGl.js +184 -0
  286. package/lib/vite/recorder/index.html +1 -1
  287. package/lib/vite/traceViewer/assets/{codeMirrorModule-1DiydmYA.js → codeMirrorModule-_GLjJL-7.js} +1 -1
  288. package/lib/vite/traceViewer/assets/defaultSettingsView-DtCQiGHe.js +265 -0
  289. package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
  290. package/lib/vite/traceViewer/index.cFZzK9RN.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.XVPIqBeS.js +5 -0
  294. package/lib/vite/traceViewer/uiMode.html +3 -3
  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,41 +1,33 @@
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 console_exports = {};
20
+ __export(console_exports, {
21
+ ConsoleMessage: () => ConsoleMessage
5
22
  });
6
- exports.ConsoleMessage = void 0;
7
- /**
8
- * Copyright (c) Microsoft Corporation.
9
- *
10
- * Licensed under the Apache License, Version 2.0 (the "License");
11
- * you may not use this file except in compliance with the License.
12
- * You may obtain a copy of the License at
13
- *
14
- * http://www.apache.org/licenses/LICENSE-2.0
15
- *
16
- * Unless required by applicable law or agreed to in writing, software
17
- * distributed under the License is distributed on an "AS IS" BASIS,
18
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
- * See the License for the specific language governing permissions and
20
- * limitations under the License.
21
- */
22
-
23
+ module.exports = __toCommonJS(console_exports);
23
24
  class ConsoleMessage {
24
25
  constructor(page, type, text, args, location) {
25
- this._type = void 0;
26
- this._text = void 0;
27
- this._args = void 0;
28
- this._location = void 0;
29
- this._page = void 0;
30
26
  this._page = page;
31
27
  this._type = type;
32
28
  this._text = text;
33
29
  this._args = args;
34
- this._location = location || {
35
- url: '',
36
- lineNumber: 0,
37
- columnNumber: 0
38
- };
30
+ this._location = location || { url: "", lineNumber: 0, columnNumber: 0 };
39
31
  }
40
32
  page() {
41
33
  return this._page;
@@ -44,7 +36,8 @@ class ConsoleMessage {
44
36
  return this._type;
45
37
  }
46
38
  text() {
47
- if (this._text === undefined) this._text = this._args.map(arg => arg.preview()).join(' ');
39
+ if (this._text === void 0)
40
+ this._text = this._args.map((arg) => arg.preview()).join(" ");
48
41
  return this._text;
49
42
  }
50
43
  args() {
@@ -54,4 +47,7 @@ class ConsoleMessage {
54
47
  return this._location;
55
48
  }
56
49
  }
57
- exports.ConsoleMessage = ConsoleMessage;
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ ConsoleMessage
53
+ });
@@ -1,42 +1,44 @@
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 cookieStore_exports = {};
20
+ __export(cookieStore_exports, {
21
+ CookieStore: () => CookieStore,
22
+ domainMatches: () => domainMatches,
23
+ parseRawCookie: () => parseRawCookie
5
24
  });
6
- exports.CookieStore = void 0;
7
- exports.domainMatches = domainMatches;
8
- exports.parseRawCookie = parseRawCookie;
9
- var _network = require("./network");
10
- /**
11
- * Copyright (c) Microsoft Corporation.
12
- *
13
- * Licensed under the Apache License, Version 2.0 (the "License");
14
- * you may not use this file except in compliance with the License.
15
- * You may obtain a copy of the License at
16
- *
17
- * http://www.apache.org/licenses/LICENSE-2.0
18
- *
19
- * Unless required by applicable law or agreed to in writing, software
20
- * distributed under the License is distributed on an "AS IS" BASIS,
21
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
- * See the License for the specific language governing permissions and
23
- * limitations under the License.
24
- */
25
-
25
+ module.exports = __toCommonJS(cookieStore_exports);
26
+ var import_network = require("./network");
26
27
  class Cookie {
27
28
  constructor(data) {
28
- this._raw = void 0;
29
29
  this._raw = data;
30
30
  }
31
31
  name() {
32
32
  return this._raw.name;
33
33
  }
34
-
35
34
  // https://datatracker.ietf.org/doc/html/rfc6265#section-5.4
36
35
  matches(url) {
37
- if (this._raw.secure && url.protocol !== 'https:' && url.hostname !== 'localhost') return false;
38
- if (!domainMatches(url.hostname, this._raw.domain)) return false;
39
- if (!pathMatches(url.pathname, this._raw.path)) return false;
36
+ if (this._raw.secure && (url.protocol !== "https:" && url.hostname !== "localhost"))
37
+ return false;
38
+ if (!domainMatches(url.hostname, this._raw.domain))
39
+ return false;
40
+ if (!pathMatches(url.pathname, this._raw.path))
41
+ return false;
40
42
  return true;
41
43
  }
42
44
  equals(other) {
@@ -49,38 +51,42 @@ class Cookie {
49
51
  this._raw.expires = other._raw.expires;
50
52
  }
51
53
  expired() {
52
- if (this._raw.expires === -1) return false;
53
- return this._raw.expires * 1000 < Date.now();
54
+ if (this._raw.expires === -1)
55
+ return false;
56
+ return this._raw.expires * 1e3 < Date.now();
54
57
  }
55
58
  }
56
59
  class CookieStore {
57
60
  constructor() {
58
- this._nameToCookies = new Map();
61
+ this._nameToCookies = /* @__PURE__ */ new Map();
59
62
  }
60
63
  addCookies(cookies) {
61
- for (const cookie of cookies) this._addCookie(new Cookie(cookie));
64
+ for (const cookie of cookies)
65
+ this._addCookie(new Cookie(cookie));
62
66
  }
63
67
  cookies(url) {
64
68
  const result = [];
65
69
  for (const cookie of this._cookiesIterator()) {
66
- if (cookie.matches(url)) result.push(cookie.networkCookie());
70
+ if (cookie.matches(url))
71
+ result.push(cookie.networkCookie());
67
72
  }
68
73
  return result;
69
74
  }
70
75
  allCookies() {
71
76
  const result = [];
72
- for (const cookie of this._cookiesIterator()) result.push(cookie.networkCookie());
77
+ for (const cookie of this._cookiesIterator())
78
+ result.push(cookie.networkCookie());
73
79
  return result;
74
80
  }
75
81
  _addCookie(cookie) {
76
82
  let set = this._nameToCookies.get(cookie.name());
77
83
  if (!set) {
78
- set = new Set();
84
+ set = /* @__PURE__ */ new Set();
79
85
  this._nameToCookies.set(cookie.name(), set);
80
86
  }
81
- // https://datatracker.ietf.org/doc/html/rfc6265#section-5.3
82
87
  for (const other of set) {
83
- if (other.equals(cookie)) set.delete(other);
88
+ if (other.equals(cookie))
89
+ set.delete(other);
84
90
  }
85
91
  set.add(cookie);
86
92
  CookieStore.pruneExpired(set);
@@ -88,81 +94,84 @@ class CookieStore {
88
94
  *_cookiesIterator() {
89
95
  for (const [name, cookies] of this._nameToCookies) {
90
96
  CookieStore.pruneExpired(cookies);
91
- for (const cookie of cookies) yield cookie;
92
- if (cookies.size === 0) this._nameToCookies.delete(name);
97
+ for (const cookie of cookies)
98
+ yield cookie;
99
+ if (cookies.size === 0)
100
+ this._nameToCookies.delete(name);
93
101
  }
94
102
  }
95
103
  static pruneExpired(cookies) {
96
104
  for (const cookie of cookies) {
97
- if (cookie.expired()) cookies.delete(cookie);
105
+ if (cookie.expired())
106
+ cookies.delete(cookie);
98
107
  }
99
108
  }
100
109
  }
101
- exports.CookieStore = CookieStore;
102
110
  function parseRawCookie(header) {
103
- const pairs = header.split(';').filter(s => s.trim().length > 0).map(p => {
104
- let key = '';
105
- let value = '';
106
- const separatorPos = p.indexOf('=');
111
+ const pairs = header.split(";").filter((s) => s.trim().length > 0).map((p) => {
112
+ let key = "";
113
+ let value2 = "";
114
+ const separatorPos = p.indexOf("=");
107
115
  if (separatorPos === -1) {
108
- // If only a key is specified, the value is left undefined.
109
116
  key = p.trim();
110
117
  } else {
111
- // Otherwise we assume that the key is the element before the first `=`
112
118
  key = p.slice(0, separatorPos).trim();
113
- // And the value is the rest of the string.
114
- value = p.slice(separatorPos + 1).trim();
119
+ value2 = p.slice(separatorPos + 1).trim();
115
120
  }
116
- return [key, value];
121
+ return [key, value2];
117
122
  });
118
- if (!pairs.length) return null;
123
+ if (!pairs.length)
124
+ return null;
119
125
  const [name, value] = pairs[0];
120
126
  const cookie = {
121
127
  name,
122
128
  value
123
129
  };
124
130
  for (let i = 1; i < pairs.length; i++) {
125
- const [name, value] = pairs[i];
126
- switch (name.toLowerCase()) {
127
- case 'expires':
128
- const expiresMs = +new Date(value);
129
- // https://datatracker.ietf.org/doc/html/rfc6265#section-5.2.1
131
+ const [name2, value2] = pairs[i];
132
+ switch (name2.toLowerCase()) {
133
+ case "expires":
134
+ const expiresMs = +new Date(value2);
130
135
  if (isFinite(expiresMs)) {
131
- if (expiresMs <= 0) cookie.expires = 0;else cookie.expires = Math.min(expiresMs / 1000, _network.kMaxCookieExpiresDateInSeconds);
136
+ if (expiresMs <= 0)
137
+ cookie.expires = 0;
138
+ else
139
+ cookie.expires = Math.min(expiresMs / 1e3, import_network.kMaxCookieExpiresDateInSeconds);
132
140
  }
133
141
  break;
134
- case 'max-age':
135
- const maxAgeSec = parseInt(value, 10);
142
+ case "max-age":
143
+ const maxAgeSec = parseInt(value2, 10);
136
144
  if (isFinite(maxAgeSec)) {
137
- // From https://datatracker.ietf.org/doc/html/rfc6265#section-5.2.2
138
- // If delta-seconds is less than or equal to zero (0), let expiry-time
139
- // be the earliest representable date and time.
140
- if (maxAgeSec <= 0) cookie.expires = 0;else cookie.expires = Math.min(Date.now() / 1000 + maxAgeSec, _network.kMaxCookieExpiresDateInSeconds);
145
+ if (maxAgeSec <= 0)
146
+ cookie.expires = 0;
147
+ else
148
+ cookie.expires = Math.min(Date.now() / 1e3 + maxAgeSec, import_network.kMaxCookieExpiresDateInSeconds);
141
149
  }
142
150
  break;
143
- case 'domain':
144
- cookie.domain = value.toLocaleLowerCase() || '';
145
- if (cookie.domain && !cookie.domain.startsWith('.') && cookie.domain.includes('.')) cookie.domain = '.' + cookie.domain;
151
+ case "domain":
152
+ cookie.domain = value2.toLocaleLowerCase() || "";
153
+ if (cookie.domain && !cookie.domain.startsWith(".") && cookie.domain.includes("."))
154
+ cookie.domain = "." + cookie.domain;
146
155
  break;
147
- case 'path':
148
- cookie.path = value || '';
156
+ case "path":
157
+ cookie.path = value2 || "";
149
158
  break;
150
- case 'secure':
159
+ case "secure":
151
160
  cookie.secure = true;
152
161
  break;
153
- case 'httponly':
162
+ case "httponly":
154
163
  cookie.httpOnly = true;
155
164
  break;
156
- case 'samesite':
157
- switch (value.toLowerCase()) {
158
- case 'none':
159
- cookie.sameSite = 'None';
165
+ case "samesite":
166
+ switch (value2.toLowerCase()) {
167
+ case "none":
168
+ cookie.sameSite = "None";
160
169
  break;
161
- case 'lax':
162
- cookie.sameSite = 'Lax';
170
+ case "lax":
171
+ cookie.sameSite = "Lax";
163
172
  break;
164
- case 'strict':
165
- cookie.sameSite = 'Strict';
173
+ case "strict":
174
+ cookie.sameSite = "Strict";
166
175
  break;
167
176
  }
168
177
  break;
@@ -171,15 +180,25 @@ function parseRawCookie(header) {
171
180
  return cookie;
172
181
  }
173
182
  function domainMatches(value, domain) {
174
- if (value === domain) return true;
175
- // Only strict match is allowed if domain doesn't start with '.' (host-only-flag is true in the spec)
176
- if (!domain.startsWith('.')) return false;
177
- value = '.' + value;
183
+ if (value === domain)
184
+ return true;
185
+ if (!domain.startsWith("."))
186
+ return false;
187
+ value = "." + value;
178
188
  return value.endsWith(domain);
179
189
  }
180
190
  function pathMatches(value, path) {
181
- if (value === path) return true;
182
- if (!value.endsWith('/')) value = value + '/';
183
- if (!path.endsWith('/')) path = path + '/';
191
+ if (value === path)
192
+ return true;
193
+ if (!value.endsWith("/"))
194
+ value = value + "/";
195
+ if (!path.endsWith("/"))
196
+ path = path + "/";
184
197
  return value.startsWith(path);
185
- }
198
+ }
199
+ // Annotate the CommonJS export names for ESM import in node:
200
+ 0 && (module.exports = {
201
+ CookieStore,
202
+ domainMatches,
203
+ parseRawCookie
204
+ });
@@ -1,48 +1,51 @@
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 debugController_exports = {};
20
+ __export(debugController_exports, {
21
+ DebugController: () => DebugController
5
22
  });
6
- exports.DebugController = void 0;
7
- var _instrumentation = require("./instrumentation");
8
- var _processLauncher = require("./utils/processLauncher");
9
- var _recorder = require("./recorder");
10
- var _utils = require("../utils");
11
- var _ariaSnapshot = require("../utils/isomorphic/ariaSnapshot");
12
- var _utilsBundle = require("../utilsBundle");
13
- var _recorderApp = require("./recorder/recorderApp");
14
- var _locatorParser = require("../utils/isomorphic/locatorParser");
15
- /**
16
- * Copyright (c) Microsoft Corporation.
17
- *
18
- * Licensed under the Apache License, Version 2.0 (the "License");
19
- * you may not use this file except in compliance with the License.
20
- * You may obtain a copy of the License at
21
- *
22
- * http://www.apache.org/licenses/LICENSE-2.0
23
- *
24
- * Unless required by applicable law or agreed to in writing, software
25
- * distributed under the License is distributed on an "AS IS" BASIS,
26
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
27
- * See the License for the specific language governing permissions and
28
- * limitations under the License.
29
- */
30
-
31
- const internalMetadata = (0, _instrumentation.serverSideCallMetadata)();
32
- class DebugController extends _instrumentation.SdkObject {
23
+ module.exports = __toCommonJS(debugController_exports);
24
+ var import_instrumentation = require("./instrumentation");
25
+ var import_processLauncher = require("./utils/processLauncher");
26
+ var import_recorder = require("./recorder");
27
+ var import_utils = require("../utils");
28
+ var import_ariaSnapshot = require("../utils/isomorphic/ariaSnapshot");
29
+ var import_utilsBundle = require("../utilsBundle");
30
+ var import_recorderApp = require("./recorder/recorderApp");
31
+ var import_locatorParser = require("../utils/isomorphic/locatorParser");
32
+ const internalMetadata = (0, import_instrumentation.serverSideCallMetadata)();
33
+ class DebugController extends import_instrumentation.SdkObject {
33
34
  constructor(playwright) {
34
- super({
35
- attribution: {
36
- isInternalPlaywright: true
37
- },
38
- instrumentation: (0, _instrumentation.createInstrumentation)()
39
- }, undefined, 'DebugController');
40
- this._trackHierarchyListener = void 0;
41
- this._playwright = void 0;
42
- this._sdkLanguage = 'javascript';
43
- this._codegenId = 'playwright-test';
35
+ super({ attribution: { isInternalPlaywright: true }, instrumentation: (0, import_instrumentation.createInstrumentation)() }, void 0, "DebugController");
36
+ this._sdkLanguage = "javascript";
37
+ this._codegenId = "playwright-test";
44
38
  this._playwright = playwright;
45
39
  }
40
+ static {
41
+ this.Events = {
42
+ StateChanged: "stateChanged",
43
+ InspectRequested: "inspectRequested",
44
+ SourceChanged: "sourceChanged",
45
+ Paused: "paused",
46
+ SetModeRequested: "setModeRequested"
47
+ };
48
+ }
46
49
  initialize(codegenId, sdkLanguage) {
47
50
  this._codegenId = codegenId;
48
51
  this._sdkLanguage = sdkLanguage;
@@ -60,153 +63,123 @@ class DebugController extends _instrumentation.SdkObject {
60
63
  this._emitSnapshot(true);
61
64
  } else if (!enabled && this._trackHierarchyListener) {
62
65
  this._playwright.instrumentation.removeListener(this._trackHierarchyListener);
63
- this._trackHierarchyListener = undefined;
66
+ this._trackHierarchyListener = void 0;
64
67
  }
65
68
  }
66
69
  async resetForReuse() {
67
- const contexts = new Set();
68
- for (const page of this._playwright.allPages()) contexts.add(page.context());
69
- for (const context of contexts) await context.resetForReuse(internalMetadata, null);
70
+ const contexts = /* @__PURE__ */ new Set();
71
+ for (const page of this._playwright.allPages())
72
+ contexts.add(page.context());
73
+ for (const context of contexts)
74
+ await context.resetForReuse(internalMetadata, null);
70
75
  }
71
76
  async navigate(url) {
72
- for (const p of this._playwright.allPages()) await p.mainFrame().goto(internalMetadata, url);
77
+ for (const p of this._playwright.allPages())
78
+ await p.mainFrame().goto(internalMetadata, url);
73
79
  }
74
80
  async setRecorderMode(params) {
75
- // TODO: |file| is only used in the legacy mode.
76
81
  await this._closeBrowsersWithoutPages();
77
- if (params.mode === 'none') {
82
+ if (params.mode === "none") {
78
83
  for (const recorder of await this._allRecorders()) {
79
84
  recorder.hideHighlightedSelector();
80
- recorder.setMode('none');
85
+ recorder.setMode("none");
81
86
  }
82
87
  return;
83
88
  }
84
- if (!this._playwright.allBrowsers().length) await this._playwright.chromium.launch(internalMetadata, {
85
- headless: !!process.env.PW_DEBUG_CONTROLLER_HEADLESS
86
- });
87
- // Create page if none.
89
+ if (!this._playwright.allBrowsers().length)
90
+ await this._playwright.chromium.launch(internalMetadata, { headless: !!process.env.PW_DEBUG_CONTROLLER_HEADLESS });
88
91
  const pages = this._playwright.allPages();
89
92
  if (!pages.length) {
90
93
  const [browser] = this._playwright.allBrowsers();
91
- const {
92
- context
93
- } = await browser.newContextForReuse({}, internalMetadata);
94
+ const { context } = await browser.newContextForReuse({}, internalMetadata);
94
95
  await context.newPage(internalMetadata);
95
96
  }
96
- // Update test id attribute.
97
97
  if (params.testIdAttributeName) {
98
- for (const page of this._playwright.allPages()) page.context().selectors().setTestIdAttributeName(params.testIdAttributeName);
98
+ for (const page of this._playwright.allPages())
99
+ page.context().selectors().setTestIdAttributeName(params.testIdAttributeName);
99
100
  }
100
- // Toggle the mode.
101
101
  for (const recorder of await this._allRecorders()) {
102
102
  recorder.hideHighlightedSelector();
103
- if (params.mode !== 'inspecting') recorder.setOutput(this._codegenId, params.file);
103
+ if (params.mode !== "inspecting")
104
+ recorder.setOutput(this._codegenId, params.file);
104
105
  recorder.setMode(params.mode);
105
106
  }
106
107
  }
107
108
  async highlight(params) {
108
- // Assert parameters validity.
109
- if (params.selector) (0, _locatorParser.unsafeLocatorOrSelectorAsSelector)(this._sdkLanguage, params.selector, 'data-testid');
110
- const ariaTemplate = params.ariaTemplate ? (0, _ariaSnapshot.parseAriaSnapshotUnsafe)(_utilsBundle.yaml, params.ariaTemplate) : undefined;
109
+ if (params.selector)
110
+ (0, import_locatorParser.unsafeLocatorOrSelectorAsSelector)(this._sdkLanguage, params.selector, "data-testid");
111
+ const ariaTemplate = params.ariaTemplate ? (0, import_ariaSnapshot.parseAriaSnapshotUnsafe)(import_utilsBundle.yaml, params.ariaTemplate) : void 0;
111
112
  for (const recorder of await this._allRecorders()) {
112
- if (ariaTemplate) recorder.setHighlightedAriaTemplate(ariaTemplate);else if (params.selector) recorder.setHighlightedSelector(this._sdkLanguage, params.selector);
113
+ if (ariaTemplate)
114
+ recorder.setHighlightedAriaTemplate(ariaTemplate);
115
+ else if (params.selector)
116
+ recorder.setHighlightedSelector(this._sdkLanguage, params.selector);
113
117
  }
114
118
  }
115
119
  async hideHighlight() {
116
- // Hide all active recorder highlights.
117
- for (const recorder of await this._allRecorders()) recorder.hideHighlightedSelector();
118
- // Hide all locator.highlight highlights.
120
+ for (const recorder of await this._allRecorders())
121
+ recorder.hideHighlightedSelector();
119
122
  await this._playwright.hideHighlight();
120
123
  }
121
124
  allBrowsers() {
122
125
  return [...this._playwright.allBrowsers()];
123
126
  }
124
127
  async resume() {
125
- for (const recorder of await this._allRecorders()) recorder.resume();
128
+ for (const recorder of await this._allRecorders())
129
+ recorder.resume();
126
130
  }
127
131
  async kill() {
128
- (0, _processLauncher.gracefullyProcessExitDoNotHang)(0);
132
+ (0, import_processLauncher.gracefullyProcessExitDoNotHang)(0);
129
133
  }
130
134
  async closeAllBrowsers() {
131
- await Promise.all(this.allBrowsers().map(browser => browser.close({
132
- reason: 'Close all browsers requested'
133
- })));
135
+ await Promise.all(this.allBrowsers().map((browser) => browser.close({ reason: "Close all browsers requested" })));
134
136
  }
135
137
  _emitSnapshot(initial) {
136
138
  const pageCount = this._playwright.allPages().length;
137
- if (initial && !pageCount) return;
138
- this.emit(DebugController.Events.StateChanged, {
139
- pageCount
140
- });
139
+ if (initial && !pageCount)
140
+ return;
141
+ this.emit(DebugController.Events.StateChanged, { pageCount });
141
142
  }
142
143
  async _allRecorders() {
143
- const contexts = new Set();
144
- for (const page of this._playwright.allPages()) contexts.add(page.context());
145
- const result = await Promise.all([...contexts].map(c => _recorder.Recorder.showInspector(c, {
146
- omitCallTracking: true
147
- }, () => Promise.resolve(new InspectingRecorderApp(this)))));
144
+ const contexts = /* @__PURE__ */ new Set();
145
+ for (const page of this._playwright.allPages())
146
+ contexts.add(page.context());
147
+ const result = await Promise.all([...contexts].map((c) => import_recorder.Recorder.showInspector(c, { omitCallTracking: true }, () => Promise.resolve(new InspectingRecorderApp(this)))));
148
148
  return result.filter(Boolean);
149
149
  }
150
150
  async _closeBrowsersWithoutPages() {
151
151
  for (const browser of this._playwright.allBrowsers()) {
152
152
  for (const context of browser.contexts()) {
153
- if (!context.pages().length) await context.close({
154
- reason: 'Browser collected'
155
- });
153
+ if (!context.pages().length)
154
+ await context.close({ reason: "Browser collected" });
156
155
  }
157
- if (!browser.contexts()) await browser.close({
158
- reason: 'Browser collected'
159
- });
156
+ if (!browser.contexts())
157
+ await browser.close({ reason: "Browser collected" });
160
158
  }
161
159
  }
162
160
  }
163
- exports.DebugController = DebugController;
164
- DebugController.Events = {
165
- StateChanged: 'stateChanged',
166
- InspectRequested: 'inspectRequested',
167
- SourceChanged: 'sourceChanged',
168
- Paused: 'paused',
169
- SetModeRequested: 'setModeRequested'
170
- };
171
- class InspectingRecorderApp extends _recorderApp.EmptyRecorderApp {
161
+ class InspectingRecorderApp extends import_recorderApp.EmptyRecorderApp {
172
162
  constructor(debugController) {
173
163
  super();
174
- this._debugController = void 0;
175
164
  this._debugController = debugController;
176
165
  }
177
166
  async elementPicked(elementInfo) {
178
- const locator = (0, _utils.asLocator)(this._debugController._sdkLanguage, elementInfo.selector);
179
- this._debugController.emit(DebugController.Events.InspectRequested, {
180
- selector: elementInfo.selector,
181
- locator,
182
- ariaSnapshot: elementInfo.ariaSnapshot
183
- });
167
+ const locator = (0, import_utils.asLocator)(this._debugController._sdkLanguage, elementInfo.selector);
168
+ this._debugController.emit(DebugController.Events.InspectRequested, { selector: elementInfo.selector, locator, ariaSnapshot: elementInfo.ariaSnapshot });
184
169
  }
185
170
  async setSources(sources) {
186
- const source = sources.find(s => s.id === this._debugController._codegenId);
187
- const {
188
- text,
189
- header,
190
- footer,
191
- actions
192
- } = source || {
193
- text: ''
194
- };
195
- this._debugController.emit(DebugController.Events.SourceChanged, {
196
- text,
197
- header,
198
- footer,
199
- actions
200
- });
171
+ const source = sources.find((s) => s.id === this._debugController._codegenId);
172
+ const { text, header, footer, actions } = source || { text: "" };
173
+ this._debugController.emit(DebugController.Events.SourceChanged, { text, header, footer, actions });
201
174
  }
202
175
  async setPaused(paused) {
203
- this._debugController.emit(DebugController.Events.Paused, {
204
- paused
205
- });
176
+ this._debugController.emit(DebugController.Events.Paused, { paused });
206
177
  }
207
178
  async setMode(mode) {
208
- this._debugController.emit(DebugController.Events.SetModeRequested, {
209
- mode
210
- });
179
+ this._debugController.emit(DebugController.Events.SetModeRequested, { mode });
211
180
  }
212
- }
181
+ }
182
+ // Annotate the CommonJS export names for ESM import in node:
183
+ 0 && (module.exports = {
184
+ DebugController
185
+ });