@checkly/playwright-core 1.41.2-beta.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 (305) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +5 -0
  3. package/README.md +3 -0
  4. package/ThirdPartyNotices.txt +1513 -0
  5. package/bin/PrintDeps.exe +0 -0
  6. package/bin/README.md +2 -0
  7. package/bin/install_media_pack.ps1 +5 -0
  8. package/bin/reinstall_chrome_beta_linux.sh +40 -0
  9. package/bin/reinstall_chrome_beta_mac.sh +13 -0
  10. package/bin/reinstall_chrome_beta_win.ps1 +23 -0
  11. package/bin/reinstall_chrome_stable_linux.sh +40 -0
  12. package/bin/reinstall_chrome_stable_mac.sh +12 -0
  13. package/bin/reinstall_chrome_stable_win.ps1 +23 -0
  14. package/bin/reinstall_msedge_beta_linux.sh +40 -0
  15. package/bin/reinstall_msedge_beta_mac.sh +11 -0
  16. package/bin/reinstall_msedge_beta_win.ps1 +22 -0
  17. package/bin/reinstall_msedge_dev_linux.sh +40 -0
  18. package/bin/reinstall_msedge_dev_mac.sh +11 -0
  19. package/bin/reinstall_msedge_dev_win.ps1 +22 -0
  20. package/bin/reinstall_msedge_stable_linux.sh +40 -0
  21. package/bin/reinstall_msedge_stable_mac.sh +11 -0
  22. package/bin/reinstall_msedge_stable_win.ps1 +23 -0
  23. package/browsers.json +64 -0
  24. package/cli.js +17 -0
  25. package/index.d.ts +17 -0
  26. package/index.js +33 -0
  27. package/index.mjs +28 -0
  28. package/lib/androidServerImpl.js +69 -0
  29. package/lib/browserServerImpl.js +92 -0
  30. package/lib/cli/driver.js +97 -0
  31. package/lib/cli/program.js +582 -0
  32. package/lib/cli/programWithTestStub.js +67 -0
  33. package/lib/client/accessibility.js +50 -0
  34. package/lib/client/android.js +473 -0
  35. package/lib/client/api.js +272 -0
  36. package/lib/client/artifact.js +79 -0
  37. package/lib/client/browser.js +145 -0
  38. package/lib/client/browserContext.js +509 -0
  39. package/lib/client/browserType.js +233 -0
  40. package/lib/client/cdpSession.js +53 -0
  41. package/lib/client/channelOwner.js +229 -0
  42. package/lib/client/clientHelper.js +57 -0
  43. package/lib/client/clientInstrumentation.js +40 -0
  44. package/lib/client/connection.js +327 -0
  45. package/lib/client/consoleMessage.js +55 -0
  46. package/lib/client/coverage.js +41 -0
  47. package/lib/client/dialog.js +57 -0
  48. package/lib/client/download.js +62 -0
  49. package/lib/client/electron.js +130 -0
  50. package/lib/client/elementHandle.js +291 -0
  51. package/lib/client/errors.js +77 -0
  52. package/lib/client/events.js +93 -0
  53. package/lib/client/fetch.js +343 -0
  54. package/lib/client/fileChooser.js +45 -0
  55. package/lib/client/frame.js +506 -0
  56. package/lib/client/harRouter.js +93 -0
  57. package/lib/client/input.js +111 -0
  58. package/lib/client/jsHandle.js +123 -0
  59. package/lib/client/jsonPipe.js +35 -0
  60. package/lib/client/localUtils.js +35 -0
  61. package/lib/client/locator.js +432 -0
  62. package/lib/client/network.js +601 -0
  63. package/lib/client/page.js +707 -0
  64. package/lib/client/playwright.js +74 -0
  65. package/lib/client/selectors.js +67 -0
  66. package/lib/client/stream.js +54 -0
  67. package/lib/client/tracing.js +135 -0
  68. package/lib/client/types.js +24 -0
  69. package/lib/client/video.js +51 -0
  70. package/lib/client/waiter.js +158 -0
  71. package/lib/client/webError.js +37 -0
  72. package/lib/client/worker.js +71 -0
  73. package/lib/client/writableStream.js +54 -0
  74. package/lib/common/socksProxy.js +569 -0
  75. package/lib/common/timeoutSettings.js +73 -0
  76. package/lib/common/types.js +5 -0
  77. package/lib/generated/consoleApiSource.js +7 -0
  78. package/lib/generated/injectedScriptSource.js +7 -0
  79. package/lib/generated/recorderSource.js +7 -0
  80. package/lib/generated/utilityScriptSource.js +7 -0
  81. package/lib/image_tools/colorUtils.js +98 -0
  82. package/lib/image_tools/compare.js +108 -0
  83. package/lib/image_tools/imageChannel.js +70 -0
  84. package/lib/image_tools/stats.js +102 -0
  85. package/lib/inProcessFactory.js +54 -0
  86. package/lib/inprocess.js +20 -0
  87. package/lib/outofprocess.js +67 -0
  88. package/lib/protocol/debug.js +27 -0
  89. package/lib/protocol/serializers.js +172 -0
  90. package/lib/protocol/transport.js +82 -0
  91. package/lib/protocol/validator.js +2599 -0
  92. package/lib/protocol/validatorPrimitives.js +139 -0
  93. package/lib/remote/playwrightConnection.js +274 -0
  94. package/lib/remote/playwrightServer.js +110 -0
  95. package/lib/server/accessibility.js +62 -0
  96. package/lib/server/android/android.js +441 -0
  97. package/lib/server/android/backendAdb.js +172 -0
  98. package/lib/server/artifact.js +104 -0
  99. package/lib/server/browser.js +129 -0
  100. package/lib/server/browserContext.js +609 -0
  101. package/lib/server/browserType.js +300 -0
  102. package/lib/server/chromium/appIcon.png +0 -0
  103. package/lib/server/chromium/chromium.js +346 -0
  104. package/lib/server/chromium/chromiumSwitches.js +41 -0
  105. package/lib/server/chromium/crAccessibility.js +237 -0
  106. package/lib/server/chromium/crBrowser.js +521 -0
  107. package/lib/server/chromium/crConnection.js +228 -0
  108. package/lib/server/chromium/crCoverage.js +246 -0
  109. package/lib/server/chromium/crDevTools.js +104 -0
  110. package/lib/server/chromium/crDragDrop.js +144 -0
  111. package/lib/server/chromium/crExecutionContext.js +156 -0
  112. package/lib/server/chromium/crInput.js +171 -0
  113. package/lib/server/chromium/crNetworkManager.js +723 -0
  114. package/lib/server/chromium/crPage.js +1173 -0
  115. package/lib/server/chromium/crPdf.js +147 -0
  116. package/lib/server/chromium/crProtocolHelper.js +131 -0
  117. package/lib/server/chromium/crServiceWorker.js +115 -0
  118. package/lib/server/chromium/defaultFontFamilies.js +145 -0
  119. package/lib/server/chromium/videoRecorder.js +155 -0
  120. package/lib/server/console.js +59 -0
  121. package/lib/server/cookieStore.js +112 -0
  122. package/lib/server/debugController.js +236 -0
  123. package/lib/server/debugger.js +132 -0
  124. package/lib/server/deviceDescriptors.js +21 -0
  125. package/lib/server/deviceDescriptorsSource.json +1549 -0
  126. package/lib/server/dialog.js +70 -0
  127. package/lib/server/dispatchers/androidDispatcher.js +193 -0
  128. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  129. package/lib/server/dispatchers/browserContextDispatcher.js +306 -0
  130. package/lib/server/dispatchers/browserDispatcher.js +170 -0
  131. package/lib/server/dispatchers/browserTypeDispatcher.js +55 -0
  132. package/lib/server/dispatchers/cdpSessionDispatcher.js +48 -0
  133. package/lib/server/dispatchers/debugControllerDispatcher.js +103 -0
  134. package/lib/server/dispatchers/dialogDispatcher.js +44 -0
  135. package/lib/server/dispatchers/dispatcher.js +400 -0
  136. package/lib/server/dispatchers/electronDispatcher.js +80 -0
  137. package/lib/server/dispatchers/elementHandlerDispatcher.js +228 -0
  138. package/lib/server/dispatchers/frameDispatcher.js +287 -0
  139. package/lib/server/dispatchers/jsHandleDispatcher.js +102 -0
  140. package/lib/server/dispatchers/jsonPipeDispatcher.js +61 -0
  141. package/lib/server/dispatchers/localUtilsDispatcher.js +399 -0
  142. package/lib/server/dispatchers/networkDispatchers.js +221 -0
  143. package/lib/server/dispatchers/pageDispatcher.js +363 -0
  144. package/lib/server/dispatchers/playwrightDispatcher.js +105 -0
  145. package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
  146. package/lib/server/dispatchers/streamDispatcher.js +62 -0
  147. package/lib/server/dispatchers/tracingDispatcher.js +54 -0
  148. package/lib/server/dispatchers/writableStreamDispatcher.js +55 -0
  149. package/lib/server/dom.js +808 -0
  150. package/lib/server/download.js +53 -0
  151. package/lib/server/electron/electron.js +254 -0
  152. package/lib/server/electron/loader.js +57 -0
  153. package/lib/server/errors.js +68 -0
  154. package/lib/server/fetch.js +611 -0
  155. package/lib/server/fileChooser.js +42 -0
  156. package/lib/server/fileUploadUtils.js +71 -0
  157. package/lib/server/firefox/ffAccessibility.js +215 -0
  158. package/lib/server/firefox/ffBrowser.js +447 -0
  159. package/lib/server/firefox/ffConnection.js +168 -0
  160. package/lib/server/firefox/ffExecutionContext.js +138 -0
  161. package/lib/server/firefox/ffInput.js +150 -0
  162. package/lib/server/firefox/ffNetworkManager.js +231 -0
  163. package/lib/server/firefox/ffPage.js +558 -0
  164. package/lib/server/firefox/firefox.js +91 -0
  165. package/lib/server/formData.js +75 -0
  166. package/lib/server/frameSelectors.js +171 -0
  167. package/lib/server/frames.js +1597 -0
  168. package/lib/server/har/harRecorder.js +139 -0
  169. package/lib/server/har/harTracer.js +539 -0
  170. package/lib/server/helper.js +103 -0
  171. package/lib/server/index.js +96 -0
  172. package/lib/server/input.js +301 -0
  173. package/lib/server/instrumentation.js +74 -0
  174. package/lib/server/isomorphic/utilityScriptSerializers.js +212 -0
  175. package/lib/server/javascript.js +305 -0
  176. package/lib/server/launchApp.js +90 -0
  177. package/lib/server/macEditingCommands.js +139 -0
  178. package/lib/server/network.js +607 -0
  179. package/lib/server/page.js +793 -0
  180. package/lib/server/pipeTransport.js +85 -0
  181. package/lib/server/playwright.js +82 -0
  182. package/lib/server/progress.js +102 -0
  183. package/lib/server/protocolError.js +49 -0
  184. package/lib/server/recorder/codeGenerator.js +153 -0
  185. package/lib/server/recorder/csharp.js +310 -0
  186. package/lib/server/recorder/java.js +216 -0
  187. package/lib/server/recorder/javascript.js +229 -0
  188. package/lib/server/recorder/jsonl.js +47 -0
  189. package/lib/server/recorder/language.js +44 -0
  190. package/lib/server/recorder/python.js +275 -0
  191. package/lib/server/recorder/recorderActions.js +5 -0
  192. package/lib/server/recorder/recorderApp.js +181 -0
  193. package/lib/server/recorder/recorderUtils.js +48 -0
  194. package/lib/server/recorder/utils.js +45 -0
  195. package/lib/server/recorder.js +700 -0
  196. package/lib/server/registry/browserFetcher.js +168 -0
  197. package/lib/server/registry/dependencies.js +322 -0
  198. package/lib/server/registry/index.js +925 -0
  199. package/lib/server/registry/nativeDeps.js +383 -0
  200. package/lib/server/registry/oopDownloadBrowserMain.js +138 -0
  201. package/lib/server/screenshotter.js +354 -0
  202. package/lib/server/selectors.js +73 -0
  203. package/lib/server/socksInterceptor.js +100 -0
  204. package/lib/server/trace/recorder/snapshotter.js +168 -0
  205. package/lib/server/trace/recorder/snapshotterInjected.js +493 -0
  206. package/lib/server/trace/recorder/tracing.js +552 -0
  207. package/lib/server/trace/test/inMemorySnapshotter.js +93 -0
  208. package/lib/server/trace/viewer/traceViewer.js +229 -0
  209. package/lib/server/transport.js +191 -0
  210. package/lib/server/types.js +24 -0
  211. package/lib/server/usKeyboardLayout.js +555 -0
  212. package/lib/server/webkit/webkit.js +87 -0
  213. package/lib/server/webkit/wkAccessibility.js +194 -0
  214. package/lib/server/webkit/wkBrowser.js +328 -0
  215. package/lib/server/webkit/wkConnection.js +173 -0
  216. package/lib/server/webkit/wkExecutionContext.js +146 -0
  217. package/lib/server/webkit/wkInput.js +169 -0
  218. package/lib/server/webkit/wkInterceptableRequest.js +158 -0
  219. package/lib/server/webkit/wkPage.js +1198 -0
  220. package/lib/server/webkit/wkProvisionalPage.js +59 -0
  221. package/lib/server/webkit/wkWorkers.js +104 -0
  222. package/lib/third_party/diff_match_patch.js +2222 -0
  223. package/lib/third_party/pixelmatch.js +255 -0
  224. package/lib/utils/ascii.js +31 -0
  225. package/lib/utils/comparators.js +171 -0
  226. package/lib/utils/crypto.js +33 -0
  227. package/lib/utils/debug.js +46 -0
  228. package/lib/utils/debugLogger.js +89 -0
  229. package/lib/utils/env.js +47 -0
  230. package/lib/utils/eventsHelper.js +38 -0
  231. package/lib/utils/fileUtils.js +66 -0
  232. package/lib/utils/glob.js +83 -0
  233. package/lib/utils/happy-eyeballs.js +154 -0
  234. package/lib/utils/headers.js +52 -0
  235. package/lib/utils/hostPlatform.js +124 -0
  236. package/lib/utils/httpServer.js +195 -0
  237. package/lib/utils/index.js +324 -0
  238. package/lib/utils/isomorphic/cssParser.js +250 -0
  239. package/lib/utils/isomorphic/cssTokenizer.js +979 -0
  240. package/lib/utils/isomorphic/locatorGenerators.js +651 -0
  241. package/lib/utils/isomorphic/locatorParser.js +179 -0
  242. package/lib/utils/isomorphic/locatorUtils.js +62 -0
  243. package/lib/utils/isomorphic/selectorParser.js +397 -0
  244. package/lib/utils/isomorphic/stringUtils.js +107 -0
  245. package/lib/utils/isomorphic/traceUtils.js +39 -0
  246. package/lib/utils/linuxUtils.js +78 -0
  247. package/lib/utils/manualPromise.js +109 -0
  248. package/lib/utils/mimeType.js +29 -0
  249. package/lib/utils/multimap.js +75 -0
  250. package/lib/utils/network.js +189 -0
  251. package/lib/utils/processLauncher.js +248 -0
  252. package/lib/utils/profiler.js +53 -0
  253. package/lib/utils/rtti.js +41 -0
  254. package/lib/utils/semaphore.js +51 -0
  255. package/lib/utils/spawnAsync.js +45 -0
  256. package/lib/utils/stackTrace.js +123 -0
  257. package/lib/utils/task.js +58 -0
  258. package/lib/utils/time.js +37 -0
  259. package/lib/utils/timeoutRunner.js +131 -0
  260. package/lib/utils/traceUtils.js +44 -0
  261. package/lib/utils/userAgent.js +105 -0
  262. package/lib/utils/wsServer.js +125 -0
  263. package/lib/utils/zipFile.js +75 -0
  264. package/lib/utils/zones.js +99 -0
  265. package/lib/utilsBundle.js +81 -0
  266. package/lib/utilsBundleImpl/index.js +51 -0
  267. package/lib/utilsBundleImpl/xdg-open +1066 -0
  268. package/lib/vite/htmlReport/index.html +66 -0
  269. package/lib/vite/recorder/assets/codeMirrorModule-Hs9-1ZG4.css +1 -0
  270. package/lib/vite/recorder/assets/codeMirrorModule-I9ks4y7D.js +24 -0
  271. package/lib/vite/recorder/assets/codicon-zGuYmc9o.ttf +0 -0
  272. package/lib/vite/recorder/assets/index-ljsTwXtJ.css +1 -0
  273. package/lib/vite/recorder/assets/index-yg8ypzl6.js +47 -0
  274. package/lib/vite/recorder/index.html +29 -0
  275. package/lib/vite/recorder/playwright-logo.svg +9 -0
  276. package/lib/vite/traceViewer/assets/codeMirrorModule-GluP1cQ1.js +24 -0
  277. package/lib/vite/traceViewer/assets/codeMirrorModule-fqJB1XDu.js +24 -0
  278. package/lib/vite/traceViewer/assets/codeMirrorModule-y3M3aAqy.js +24 -0
  279. package/lib/vite/traceViewer/assets/wsPort-Rvwd4WC-.js +69 -0
  280. package/lib/vite/traceViewer/assets/wsPort-dlD7vDkY.js +69 -0
  281. package/lib/vite/traceViewer/assets/wsPort-qOE2NWrO.js +69 -0
  282. package/lib/vite/traceViewer/assets/xtermModule-Yt6xwiJ_.js +9 -0
  283. package/lib/vite/traceViewer/codeMirrorModule.Hs9-1ZG4.css +1 -0
  284. package/lib/vite/traceViewer/codicon.zGuYmc9o.ttf +0 -0
  285. package/lib/vite/traceViewer/index.-g_5lMbJ.css +1 -0
  286. package/lib/vite/traceViewer/index.4X7zDysg.js +2 -0
  287. package/lib/vite/traceViewer/index.HkJgzlGy.js +2 -0
  288. package/lib/vite/traceViewer/index.html +26 -0
  289. package/lib/vite/traceViewer/index.kRjx5sAJ.js +2 -0
  290. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  291. package/lib/vite/traceViewer/snapshot.html +21 -0
  292. package/lib/vite/traceViewer/sw.bundle.js +4 -0
  293. package/lib/vite/traceViewer/uiMode.1Wcp_Kto.js +10 -0
  294. package/lib/vite/traceViewer/uiMode.GTNzARcV.js +10 -0
  295. package/lib/vite/traceViewer/uiMode.html +17 -0
  296. package/lib/vite/traceViewer/uiMode.pWy0Re7G.css +1 -0
  297. package/lib/vite/traceViewer/uiMode.zV-7Lf9v.js +10 -0
  298. package/lib/vite/traceViewer/wsPort.kSgQKQ0y.css +1 -0
  299. package/lib/vite/traceViewer/xtermModule.0lwXJFHT.css +32 -0
  300. package/lib/zipBundle.js +25 -0
  301. package/lib/zipBundleImpl.js +5 -0
  302. package/package.json +43 -0
  303. package/types/protocol.d.ts +20304 -0
  304. package/types/structs.d.ts +45 -0
  305. package/types/types.d.ts +20626 -0
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.JSHandle = void 0;
7
+ exports.assertMaxArguments = assertMaxArguments;
8
+ exports.parseResult = parseResult;
9
+ exports.serializeArgument = serializeArgument;
10
+ var _channelOwner = require("./channelOwner");
11
+ var _serializers = require("../protocol/serializers");
12
+ let _Symbol$asyncDispose;
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
+ _Symbol$asyncDispose = Symbol.asyncDispose;
29
+ class JSHandle extends _channelOwner.ChannelOwner {
30
+ static from(handle) {
31
+ return handle._object;
32
+ }
33
+ constructor(parent, type, guid, initializer) {
34
+ super(parent, type, guid, initializer);
35
+ this._preview = void 0;
36
+ this._preview = this._initializer.preview;
37
+ this._channel.on('previewUpdated', ({
38
+ preview
39
+ }) => this._preview = preview);
40
+ }
41
+ async evaluate(pageFunction, arg) {
42
+ const result = await this._channel.evaluateExpression({
43
+ expression: String(pageFunction),
44
+ isFunction: typeof pageFunction === 'function',
45
+ arg: serializeArgument(arg)
46
+ });
47
+ return parseResult(result.value);
48
+ }
49
+ async evaluateHandle(pageFunction, arg) {
50
+ const result = await this._channel.evaluateExpressionHandle({
51
+ expression: String(pageFunction),
52
+ isFunction: typeof pageFunction === 'function',
53
+ arg: serializeArgument(arg)
54
+ });
55
+ return JSHandle.from(result.handle);
56
+ }
57
+ async getProperty(propertyName) {
58
+ const result = await this._channel.getProperty({
59
+ name: propertyName
60
+ });
61
+ return JSHandle.from(result.handle);
62
+ }
63
+ async getProperties() {
64
+ const map = new Map();
65
+ for (const {
66
+ name,
67
+ value
68
+ } of (await this._channel.getPropertyList()).properties) map.set(name, JSHandle.from(value));
69
+ return map;
70
+ }
71
+ async jsonValue() {
72
+ return parseResult((await this._channel.jsonValue()).value);
73
+ }
74
+ asElement() {
75
+ return null;
76
+ }
77
+ async [_Symbol$asyncDispose]() {
78
+ await this.dispose();
79
+ }
80
+ async dispose() {
81
+ return await this._channel.dispose();
82
+ }
83
+ async _objectCount() {
84
+ return await this._wrapApiCall(async () => {
85
+ const {
86
+ count
87
+ } = await this._channel.objectCount();
88
+ return count;
89
+ });
90
+ }
91
+ toString() {
92
+ return this._preview;
93
+ }
94
+ }
95
+
96
+ // This function takes care of converting all JSHandles to their channels,
97
+ // so that generic channel serializer converts them to guids.
98
+ exports.JSHandle = JSHandle;
99
+ function serializeArgument(arg) {
100
+ const handles = [];
101
+ const pushHandle = channel => {
102
+ handles.push(channel);
103
+ return handles.length - 1;
104
+ };
105
+ const value = (0, _serializers.serializeValue)(arg, value => {
106
+ if (value instanceof JSHandle) return {
107
+ h: pushHandle(value._channel)
108
+ };
109
+ return {
110
+ fallThrough: value
111
+ };
112
+ });
113
+ return {
114
+ value,
115
+ handles
116
+ };
117
+ }
118
+ function parseResult(value) {
119
+ return (0, _serializers.parseSerializedValue)(value, undefined);
120
+ }
121
+ function assertMaxArguments(count, max) {
122
+ if (count > max) throw new Error('Too many arguments. If you need to pass more than 1 argument to the function wrap them in an object.');
123
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.JsonPipe = void 0;
7
+ var _channelOwner = require("./channelOwner");
8
+ /**
9
+ * Copyright (c) Microsoft Corporation.
10
+ *
11
+ * Licensed under the Apache License, Version 2.0 (the "License");
12
+ * you may not use this file except in compliance with the License.
13
+ * You may obtain a copy of the License at
14
+ *
15
+ * http://www.apache.org/licenses/LICENSE-2.0
16
+ *
17
+ * Unless required by applicable law or agreed to in writing, software
18
+ * distributed under the License is distributed on an "AS IS" BASIS,
19
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ * See the License for the specific language governing permissions and
21
+ * limitations under the License.
22
+ */
23
+
24
+ class JsonPipe extends _channelOwner.ChannelOwner {
25
+ static from(jsonPipe) {
26
+ return jsonPipe._object;
27
+ }
28
+ constructor(parent, type, guid, initializer) {
29
+ super(parent, type, guid, initializer);
30
+ }
31
+ channel() {
32
+ return this._channel;
33
+ }
34
+ }
35
+ exports.JsonPipe = JsonPipe;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LocalUtils = void 0;
7
+ var _channelOwner = require("./channelOwner");
8
+ /**
9
+ * Copyright (c) Microsoft Corporation.
10
+ *
11
+ * Licensed under the Apache License, Version 2.0 (the "License");
12
+ * you may not use this file except in compliance with the License.
13
+ * You may obtain a copy of the License at
14
+ *
15
+ * http://www.apache.org/licenses/LICENSE-2.0
16
+ *
17
+ * Unless required by applicable law or agreed to in writing, software
18
+ * distributed under the License is distributed on an "AS IS" BASIS,
19
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ * See the License for the specific language governing permissions and
21
+ * limitations under the License.
22
+ */
23
+
24
+ class LocalUtils extends _channelOwner.ChannelOwner {
25
+ constructor(parent, type, guid, initializer) {
26
+ super(parent, type, guid, initializer);
27
+ this.devices = void 0;
28
+ this.devices = {};
29
+ for (const {
30
+ name,
31
+ descriptor
32
+ } of initializer.deviceDescriptors) this.devices[name] = descriptor;
33
+ }
34
+ }
35
+ exports.LocalUtils = LocalUtils;
@@ -0,0 +1,432 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Locator = exports.FrameLocator = void 0;
7
+ exports.setTestIdAttribute = setTestIdAttribute;
8
+ exports.testIdAttributeName = testIdAttributeName;
9
+ var util = _interopRequireWildcard(require("util"));
10
+ var _utils = require("../utils");
11
+ var _elementHandle = require("./elementHandle");
12
+ var _jsHandle = require("./jsHandle");
13
+ var _stringUtils = require("../utils/isomorphic/stringUtils");
14
+ var _locatorUtils = require("../utils/isomorphic/locatorUtils");
15
+ let _util$inspect$custom;
16
+ /**
17
+ * Copyright (c) Microsoft Corporation.
18
+ *
19
+ * Licensed under the Apache License, Version 2.0 (the "License");
20
+ * you may not use this file except in compliance with the License.
21
+ * You may obtain a copy of the License at
22
+ *
23
+ * http://www.apache.org/licenses/LICENSE-2.0
24
+ *
25
+ * Unless required by applicable law or agreed to in writing, software
26
+ * distributed under the License is distributed on an "AS IS" BASIS,
27
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
+ * See the License for the specific language governing permissions and
29
+ * limitations under the License.
30
+ */
31
+ 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); }
32
+ 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 && Object.prototype.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; }
33
+ _util$inspect$custom = util.inspect.custom;
34
+ class Locator {
35
+ constructor(frame, selector, options) {
36
+ this._frame = void 0;
37
+ this._selector = void 0;
38
+ this._frame = frame;
39
+ this._selector = selector;
40
+ if (options !== null && options !== void 0 && options.hasText) this._selector += ` >> internal:has-text=${(0, _stringUtils.escapeForTextSelector)(options.hasText, false)}`;
41
+ if (options !== null && options !== void 0 && options.hasNotText) this._selector += ` >> internal:has-not-text=${(0, _stringUtils.escapeForTextSelector)(options.hasNotText, false)}`;
42
+ if (options !== null && options !== void 0 && options.has) {
43
+ const locator = options.has;
44
+ if (locator._frame !== frame) throw new Error(`Inner "has" locator must belong to the same frame.`);
45
+ this._selector += ` >> internal:has=` + JSON.stringify(locator._selector);
46
+ }
47
+ if (options !== null && options !== void 0 && options.hasNot) {
48
+ const locator = options.hasNot;
49
+ if (locator._frame !== frame) throw new Error(`Inner "hasNot" locator must belong to the same frame.`);
50
+ this._selector += ` >> internal:has-not=` + JSON.stringify(locator._selector);
51
+ }
52
+ }
53
+ async _withElement(task, timeout) {
54
+ timeout = this._frame.page()._timeoutSettings.timeout({
55
+ timeout
56
+ });
57
+ const deadline = timeout ? (0, _utils.monotonicTime)() + timeout : 0;
58
+ return await this._frame._wrapApiCall(async () => {
59
+ const result = await this._frame._channel.waitForSelector({
60
+ selector: this._selector,
61
+ strict: true,
62
+ state: 'attached',
63
+ timeout
64
+ });
65
+ const handle = _elementHandle.ElementHandle.fromNullable(result.element);
66
+ if (!handle) throw new Error(`Could not resolve ${this._selector} to DOM Element`);
67
+ try {
68
+ return await task(handle, deadline ? deadline - (0, _utils.monotonicTime)() : 0);
69
+ } finally {
70
+ await handle.dispose();
71
+ }
72
+ });
73
+ }
74
+ page() {
75
+ return this._frame.page();
76
+ }
77
+ async boundingBox(options) {
78
+ return await this._withElement(h => h.boundingBox(), options === null || options === void 0 ? void 0 : options.timeout);
79
+ }
80
+ async check(options = {}) {
81
+ return await this._frame.check(this._selector, {
82
+ strict: true,
83
+ ...options
84
+ });
85
+ }
86
+ async click(options = {}) {
87
+ return await this._frame.click(this._selector, {
88
+ strict: true,
89
+ ...options
90
+ });
91
+ }
92
+ async dblclick(options = {}) {
93
+ return await this._frame.dblclick(this._selector, {
94
+ strict: true,
95
+ ...options
96
+ });
97
+ }
98
+ async dispatchEvent(type, eventInit = {}, options) {
99
+ return await this._frame.dispatchEvent(this._selector, type, eventInit, {
100
+ strict: true,
101
+ ...options
102
+ });
103
+ }
104
+ async dragTo(target, options = {}) {
105
+ return await this._frame.dragAndDrop(this._selector, target._selector, {
106
+ strict: true,
107
+ ...options
108
+ });
109
+ }
110
+ async evaluate(pageFunction, arg, options) {
111
+ return await this._withElement(h => h.evaluate(pageFunction, arg), options === null || options === void 0 ? void 0 : options.timeout);
112
+ }
113
+ async evaluateAll(pageFunction, arg) {
114
+ return await this._frame.$$eval(this._selector, pageFunction, arg);
115
+ }
116
+ async evaluateHandle(pageFunction, arg, options) {
117
+ return await this._withElement(h => h.evaluateHandle(pageFunction, arg), options === null || options === void 0 ? void 0 : options.timeout);
118
+ }
119
+ async fill(value, options = {}) {
120
+ return await this._frame.fill(this._selector, value, {
121
+ strict: true,
122
+ ...options
123
+ });
124
+ }
125
+ async clear(options = {}) {
126
+ return await this.fill('', options);
127
+ }
128
+ async _highlight() {
129
+ // VS Code extension uses this one, keep it for now.
130
+ return await this._frame._highlight(this._selector);
131
+ }
132
+ async highlight() {
133
+ return await this._frame._highlight(this._selector);
134
+ }
135
+ locator(selectorOrLocator, options) {
136
+ if ((0, _utils.isString)(selectorOrLocator)) return new Locator(this._frame, this._selector + ' >> ' + selectorOrLocator, options);
137
+ if (selectorOrLocator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
138
+ return new Locator(this._frame, this._selector + ' >> internal:chain=' + JSON.stringify(selectorOrLocator._selector), options);
139
+ }
140
+ getByTestId(testId) {
141
+ return this.locator((0, _locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
142
+ }
143
+ getByAltText(text, options) {
144
+ return this.locator((0, _locatorUtils.getByAltTextSelector)(text, options));
145
+ }
146
+ getByLabel(text, options) {
147
+ return this.locator((0, _locatorUtils.getByLabelSelector)(text, options));
148
+ }
149
+ getByPlaceholder(text, options) {
150
+ return this.locator((0, _locatorUtils.getByPlaceholderSelector)(text, options));
151
+ }
152
+ getByText(text, options) {
153
+ return this.locator((0, _locatorUtils.getByTextSelector)(text, options));
154
+ }
155
+ getByTitle(text, options) {
156
+ return this.locator((0, _locatorUtils.getByTitleSelector)(text, options));
157
+ }
158
+ getByRole(role, options = {}) {
159
+ return this.locator((0, _locatorUtils.getByRoleSelector)(role, options));
160
+ }
161
+ frameLocator(selector) {
162
+ return new FrameLocator(this._frame, this._selector + ' >> ' + selector);
163
+ }
164
+ filter(options) {
165
+ return new Locator(this._frame, this._selector, options);
166
+ }
167
+ async elementHandle(options) {
168
+ return await this._frame.waitForSelector(this._selector, {
169
+ strict: true,
170
+ state: 'attached',
171
+ ...options
172
+ });
173
+ }
174
+ async elementHandles() {
175
+ return await this._frame.$$(this._selector);
176
+ }
177
+ first() {
178
+ return new Locator(this._frame, this._selector + ' >> nth=0');
179
+ }
180
+ last() {
181
+ return new Locator(this._frame, this._selector + ` >> nth=-1`);
182
+ }
183
+ nth(index) {
184
+ return new Locator(this._frame, this._selector + ` >> nth=${index}`);
185
+ }
186
+ and(locator) {
187
+ if (locator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
188
+ return new Locator(this._frame, this._selector + ` >> internal:and=` + JSON.stringify(locator._selector));
189
+ }
190
+ or(locator) {
191
+ if (locator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
192
+ return new Locator(this._frame, this._selector + ` >> internal:or=` + JSON.stringify(locator._selector));
193
+ }
194
+ async focus(options) {
195
+ return await this._frame.focus(this._selector, {
196
+ strict: true,
197
+ ...options
198
+ });
199
+ }
200
+ async blur(options) {
201
+ await this._frame._channel.blur({
202
+ selector: this._selector,
203
+ strict: true,
204
+ ...options
205
+ });
206
+ }
207
+ async count() {
208
+ return await this._frame._queryCount(this._selector);
209
+ }
210
+ async getAttribute(name, options) {
211
+ return await this._frame.getAttribute(this._selector, name, {
212
+ strict: true,
213
+ ...options
214
+ });
215
+ }
216
+ async hover(options = {}) {
217
+ return await this._frame.hover(this._selector, {
218
+ strict: true,
219
+ ...options
220
+ });
221
+ }
222
+ async innerHTML(options) {
223
+ return await this._frame.innerHTML(this._selector, {
224
+ strict: true,
225
+ ...options
226
+ });
227
+ }
228
+ async innerText(options) {
229
+ return await this._frame.innerText(this._selector, {
230
+ strict: true,
231
+ ...options
232
+ });
233
+ }
234
+ async inputValue(options) {
235
+ return await this._frame.inputValue(this._selector, {
236
+ strict: true,
237
+ ...options
238
+ });
239
+ }
240
+ async isChecked(options) {
241
+ return await this._frame.isChecked(this._selector, {
242
+ strict: true,
243
+ ...options
244
+ });
245
+ }
246
+ async isDisabled(options) {
247
+ return await this._frame.isDisabled(this._selector, {
248
+ strict: true,
249
+ ...options
250
+ });
251
+ }
252
+ async isEditable(options) {
253
+ return await this._frame.isEditable(this._selector, {
254
+ strict: true,
255
+ ...options
256
+ });
257
+ }
258
+ async isEnabled(options) {
259
+ return await this._frame.isEnabled(this._selector, {
260
+ strict: true,
261
+ ...options
262
+ });
263
+ }
264
+ async isHidden(options) {
265
+ return await this._frame.isHidden(this._selector, {
266
+ strict: true,
267
+ ...options
268
+ });
269
+ }
270
+ async isVisible(options) {
271
+ return await this._frame.isVisible(this._selector, {
272
+ strict: true,
273
+ ...options
274
+ });
275
+ }
276
+ async press(key, options = {}) {
277
+ return await this._frame.press(this._selector, key, {
278
+ strict: true,
279
+ ...options
280
+ });
281
+ }
282
+ async screenshot(options = {}) {
283
+ return await this._withElement((h, timeout) => h.screenshot({
284
+ ...options,
285
+ timeout
286
+ }), options.timeout);
287
+ }
288
+ async scrollIntoViewIfNeeded(options = {}) {
289
+ return await this._withElement((h, timeout) => h.scrollIntoViewIfNeeded({
290
+ ...options,
291
+ timeout
292
+ }), options.timeout);
293
+ }
294
+ async selectOption(values, options = {}) {
295
+ return await this._frame.selectOption(this._selector, values, {
296
+ strict: true,
297
+ ...options
298
+ });
299
+ }
300
+ async selectText(options = {}) {
301
+ return await this._withElement((h, timeout) => h.selectText({
302
+ ...options,
303
+ timeout
304
+ }), options.timeout);
305
+ }
306
+ async setChecked(checked, options) {
307
+ if (checked) await this.check(options);else await this.uncheck(options);
308
+ }
309
+ async setInputFiles(files, options = {}) {
310
+ return await this._frame.setInputFiles(this._selector, files, {
311
+ strict: true,
312
+ ...options
313
+ });
314
+ }
315
+ async tap(options = {}) {
316
+ return await this._frame.tap(this._selector, {
317
+ strict: true,
318
+ ...options
319
+ });
320
+ }
321
+ async textContent(options) {
322
+ return await this._frame.textContent(this._selector, {
323
+ strict: true,
324
+ ...options
325
+ });
326
+ }
327
+ async type(text, options = {}) {
328
+ return await this._frame.type(this._selector, text, {
329
+ strict: true,
330
+ ...options
331
+ });
332
+ }
333
+ async pressSequentially(text, options = {}) {
334
+ return await this.type(text, options);
335
+ }
336
+ async uncheck(options = {}) {
337
+ return await this._frame.uncheck(this._selector, {
338
+ strict: true,
339
+ ...options
340
+ });
341
+ }
342
+ async all() {
343
+ return new Array(await this.count()).fill(0).map((e, i) => this.nth(i));
344
+ }
345
+ async allInnerTexts() {
346
+ return await this._frame.$$eval(this._selector, ee => ee.map(e => e.innerText));
347
+ }
348
+ async allTextContents() {
349
+ return await this._frame.$$eval(this._selector, ee => ee.map(e => e.textContent || ''));
350
+ }
351
+ async waitFor(options) {
352
+ await this._frame._channel.waitForSelector({
353
+ selector: this._selector,
354
+ strict: true,
355
+ omitReturnValue: true,
356
+ ...options
357
+ });
358
+ }
359
+ async _expect(expression, options) {
360
+ const params = {
361
+ selector: this._selector,
362
+ expression,
363
+ ...options,
364
+ isNot: !!options.isNot
365
+ };
366
+ params.expectedValue = (0, _jsHandle.serializeArgument)(options.expectedValue);
367
+ const result = await this._frame._channel.expect(params);
368
+ if (result.received !== undefined) result.received = (0, _jsHandle.parseResult)(result.received);
369
+ return result;
370
+ }
371
+ [_util$inspect$custom]() {
372
+ return this.toString();
373
+ }
374
+ toString() {
375
+ return (0, _utils.asLocator)('javascript', this._selector);
376
+ }
377
+ }
378
+ exports.Locator = Locator;
379
+ class FrameLocator {
380
+ constructor(frame, selector) {
381
+ this._frame = void 0;
382
+ this._frameSelector = void 0;
383
+ this._frame = frame;
384
+ this._frameSelector = selector;
385
+ }
386
+ locator(selectorOrLocator, options) {
387
+ if ((0, _utils.isString)(selectorOrLocator)) return new Locator(this._frame, this._frameSelector + ' >> internal:control=enter-frame >> ' + selectorOrLocator, options);
388
+ if (selectorOrLocator._frame !== this._frame) throw new Error(`Locators must belong to the same frame.`);
389
+ return new Locator(this._frame, this._frameSelector + ' >> internal:control=enter-frame >> ' + selectorOrLocator._selector, options);
390
+ }
391
+ getByTestId(testId) {
392
+ return this.locator((0, _locatorUtils.getByTestIdSelector)(testIdAttributeName(), testId));
393
+ }
394
+ getByAltText(text, options) {
395
+ return this.locator((0, _locatorUtils.getByAltTextSelector)(text, options));
396
+ }
397
+ getByLabel(text, options) {
398
+ return this.locator((0, _locatorUtils.getByLabelSelector)(text, options));
399
+ }
400
+ getByPlaceholder(text, options) {
401
+ return this.locator((0, _locatorUtils.getByPlaceholderSelector)(text, options));
402
+ }
403
+ getByText(text, options) {
404
+ return this.locator((0, _locatorUtils.getByTextSelector)(text, options));
405
+ }
406
+ getByTitle(text, options) {
407
+ return this.locator((0, _locatorUtils.getByTitleSelector)(text, options));
408
+ }
409
+ getByRole(role, options = {}) {
410
+ return this.locator((0, _locatorUtils.getByRoleSelector)(role, options));
411
+ }
412
+ frameLocator(selector) {
413
+ return new FrameLocator(this._frame, this._frameSelector + ' >> internal:control=enter-frame >> ' + selector);
414
+ }
415
+ first() {
416
+ return new FrameLocator(this._frame, this._frameSelector + ' >> nth=0');
417
+ }
418
+ last() {
419
+ return new FrameLocator(this._frame, this._frameSelector + ` >> nth=-1`);
420
+ }
421
+ nth(index) {
422
+ return new FrameLocator(this._frame, this._frameSelector + ` >> nth=${index}`);
423
+ }
424
+ }
425
+ exports.FrameLocator = FrameLocator;
426
+ let _testIdAttributeName = 'data-testid';
427
+ function testIdAttributeName() {
428
+ return _testIdAttributeName;
429
+ }
430
+ function setTestIdAttribute(attributeName) {
431
+ _testIdAttributeName = attributeName;
432
+ }