patchright-core 1.51.2 → 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 +288 -403
  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 +741 -891
  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-DpJ-EmBQ.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-DTenqiGw.js +0 -259
  302. package/lib/vite/traceViewer/index.CUq7VgrV.js +0 -2
  303. package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +0 -5
@@ -1,65 +1,72 @@
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 colors_exports = {};
20
+ __export(colors_exports, {
21
+ noColors: () => noColors,
22
+ webColors: () => webColors
5
23
  });
6
- exports.webColors = exports.noColors = 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
- const webColors = exports.webColors = {
24
+ module.exports = __toCommonJS(colors_exports);
25
+ const webColors = {
24
26
  enabled: true,
25
- reset: text => applyStyle(0, 0, text),
26
- bold: text => applyStyle(1, 22, text),
27
- dim: text => applyStyle(2, 22, text),
28
- italic: text => applyStyle(3, 23, text),
29
- underline: text => applyStyle(4, 24, text),
30
- inverse: text => applyStyle(7, 27, text),
31
- hidden: text => applyStyle(8, 28, text),
32
- strikethrough: text => applyStyle(9, 29, text),
33
- black: text => applyStyle(30, 39, text),
34
- red: text => applyStyle(31, 39, text),
35
- green: text => applyStyle(32, 39, text),
36
- yellow: text => applyStyle(33, 39, text),
37
- blue: text => applyStyle(34, 39, text),
38
- magenta: text => applyStyle(35, 39, text),
39
- cyan: text => applyStyle(36, 39, text),
40
- white: text => applyStyle(37, 39, text),
41
- gray: text => applyStyle(90, 39, text),
42
- grey: text => applyStyle(90, 39, text)
27
+ reset: (text) => applyStyle(0, 0, text),
28
+ bold: (text) => applyStyle(1, 22, text),
29
+ dim: (text) => applyStyle(2, 22, text),
30
+ italic: (text) => applyStyle(3, 23, text),
31
+ underline: (text) => applyStyle(4, 24, text),
32
+ inverse: (text) => applyStyle(7, 27, text),
33
+ hidden: (text) => applyStyle(8, 28, text),
34
+ strikethrough: (text) => applyStyle(9, 29, text),
35
+ black: (text) => applyStyle(30, 39, text),
36
+ red: (text) => applyStyle(31, 39, text),
37
+ green: (text) => applyStyle(32, 39, text),
38
+ yellow: (text) => applyStyle(33, 39, text),
39
+ blue: (text) => applyStyle(34, 39, text),
40
+ magenta: (text) => applyStyle(35, 39, text),
41
+ cyan: (text) => applyStyle(36, 39, text),
42
+ white: (text) => applyStyle(37, 39, text),
43
+ gray: (text) => applyStyle(90, 39, text),
44
+ grey: (text) => applyStyle(90, 39, text)
43
45
  };
44
- const noColors = exports.noColors = {
46
+ const noColors = {
45
47
  enabled: false,
46
- reset: t => t,
47
- bold: t => t,
48
- dim: t => t,
49
- italic: t => t,
50
- underline: t => t,
51
- inverse: t => t,
52
- hidden: t => t,
53
- strikethrough: t => t,
54
- black: t => t,
55
- red: t => t,
56
- green: t => t,
57
- yellow: t => t,
58
- blue: t => t,
59
- magenta: t => t,
60
- cyan: t => t,
61
- white: t => t,
62
- gray: t => t,
63
- grey: t => t
48
+ reset: (t) => t,
49
+ bold: (t) => t,
50
+ dim: (t) => t,
51
+ italic: (t) => t,
52
+ underline: (t) => t,
53
+ inverse: (t) => t,
54
+ hidden: (t) => t,
55
+ strikethrough: (t) => t,
56
+ black: (t) => t,
57
+ red: (t) => t,
58
+ green: (t) => t,
59
+ yellow: (t) => t,
60
+ blue: (t) => t,
61
+ magenta: (t) => t,
62
+ cyan: (t) => t,
63
+ white: (t) => t,
64
+ gray: (t) => t,
65
+ grey: (t) => t
64
66
  };
65
- const applyStyle = (open, close, text) => `\u001b[${open}m${text}\u001b[${close}m`;
67
+ const applyStyle = (open, close, text) => `\x1B[${open}m${text}\x1B[${close}m`;
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ noColors,
71
+ webColors
72
+ });
@@ -1,74 +1,77 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var cssParser_exports = {};
30
+ __export(cssParser_exports, {
31
+ InvalidSelectorError: () => InvalidSelectorError,
32
+ isInvalidSelectorError: () => isInvalidSelectorError,
33
+ parseCSS: () => parseCSS,
34
+ serializeSelector: () => serializeSelector
5
35
  });
6
- exports.InvalidSelectorError = void 0;
7
- exports.isInvalidSelectorError = isInvalidSelectorError;
8
- exports.parseCSS = parseCSS;
9
- exports.serializeSelector = serializeSelector;
10
- var css = _interopRequireWildcard(require("./cssTokenizer"));
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
- /**
14
- * Copyright (c) Microsoft Corporation.
15
- *
16
- * Licensed under the Apache License, Version 2.0 (the "License");
17
- * you may not use this file except in compliance with the License.
18
- * You may obtain a copy of the License at
19
- *
20
- * http://www.apache.org/licenses/LICENSE-2.0
21
- *
22
- * Unless required by applicable law or agreed to in writing, software
23
- * distributed under the License is distributed on an "AS IS" BASIS,
24
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25
- * See the License for the specific language governing permissions and
26
- * limitations under the License.
27
- */
28
-
29
- class InvalidSelectorError extends Error {}
30
- exports.InvalidSelectorError = InvalidSelectorError;
36
+ module.exports = __toCommonJS(cssParser_exports);
37
+ var import_builtins = require("./builtins");
38
+ var css = __toESM(require("./cssTokenizer"));
39
+ class InvalidSelectorError extends Error {
40
+ }
31
41
  function isInvalidSelectorError(error) {
32
42
  return error instanceof InvalidSelectorError;
33
43
  }
34
-
35
- // Note: '>=' is used internally for text engine to preserve backwards compatibility.
36
-
37
- // TODO: consider
38
- // - key=value
39
- // - operators like `=`, `|=`, `~=`, `*=`, `/`
40
- // - <empty>~=value
41
- // - argument modes: "parse all", "parse commas", "just a string"
42
-
43
44
  function parseCSS(selector, customNames) {
44
45
  let tokens;
45
46
  try {
46
47
  tokens = css.tokenize(selector);
47
- if (!(tokens[tokens.length - 1] instanceof css.EOFToken)) tokens.push(new css.EOFToken());
48
+ if (!(tokens[tokens.length - 1] instanceof css.EOFToken))
49
+ tokens.push(new css.EOFToken());
48
50
  } catch (e) {
49
51
  const newMessage = e.message + ` while parsing css selector "${selector}". Did you mean to CSS.escape it?`;
50
- const index = (e.stack || '').indexOf(e.message);
51
- if (index !== -1) e.stack = e.stack.substring(0, index) + newMessage + e.stack.substring(index + e.message.length);
52
+ const index = (e.stack || "").indexOf(e.message);
53
+ if (index !== -1)
54
+ e.stack = e.stack.substring(0, index) + newMessage + e.stack.substring(index + e.message.length);
52
55
  e.message = newMessage;
53
56
  throw e;
54
57
  }
55
- const unsupportedToken = tokens.find(token => {
56
- return token instanceof css.AtKeywordToken || token instanceof css.BadStringToken || token instanceof css.BadURLToken || token instanceof css.ColumnToken || token instanceof css.CDOToken || token instanceof css.CDCToken || token instanceof css.SemicolonToken ||
57
- // TODO: Consider using these for something, e.g. to escape complex strings.
58
+ const unsupportedToken = tokens.find((token) => {
59
+ return token instanceof css.AtKeywordToken || token instanceof css.BadStringToken || token instanceof css.BadURLToken || token instanceof css.ColumnToken || token instanceof css.CDOToken || token instanceof css.CDCToken || token instanceof css.SemicolonToken || // TODO: Consider using these for something, e.g. to escape complex strings.
58
60
  // For example :xpath{ (//div/bar[@attr="foo"])[2]/baz }
59
61
  // Or this way :xpath( {complex-xpath-goes-here("hello")} )
60
- token instanceof css.OpenCurlyToken || token instanceof css.CloseCurlyToken ||
61
- // TODO: Consider treating these as strings?
62
+ token instanceof css.OpenCurlyToken || token instanceof css.CloseCurlyToken || // TODO: Consider treating these as strings?
62
63
  token instanceof css.URLToken || token instanceof css.PercentageToken;
63
64
  });
64
- if (unsupportedToken) throw new InvalidSelectorError(`Unsupported token "${unsupportedToken.toSource()}" while parsing css selector "${selector}". Did you mean to CSS.escape it?`);
65
+ if (unsupportedToken)
66
+ throw new InvalidSelectorError(`Unsupported token "${unsupportedToken.toSource()}" while parsing css selector "${selector}". Did you mean to CSS.escape it?`);
65
67
  let pos = 0;
66
- const names = new Set();
68
+ const names = new import_builtins.Set();
67
69
  function unexpected() {
68
70
  return new InvalidSelectorError(`Unexpected token "${tokens[pos].toSource()}" while parsing css selector "${selector}". Did you mean to CSS.escape it?`);
69
71
  }
70
72
  function skipWhitespace() {
71
- while (tokens[pos] instanceof css.WhitespaceToken) pos++;
73
+ while (tokens[pos] instanceof css.WhitespaceToken)
74
+ pos++;
72
75
  }
73
76
  function isIdent(p = pos) {
74
77
  return tokens[p] instanceof css.IdentToken;
@@ -92,92 +95,78 @@ function parseCSS(selector, customNames) {
92
95
  return tokens[p] instanceof css.FunctionToken;
93
96
  }
94
97
  function isStar(p = pos) {
95
- return tokens[p] instanceof css.DelimToken && tokens[p].value === '*';
98
+ return tokens[p] instanceof css.DelimToken && tokens[p].value === "*";
96
99
  }
97
100
  function isEOF(p = pos) {
98
101
  return tokens[p] instanceof css.EOFToken;
99
102
  }
100
103
  function isClauseCombinator(p = pos) {
101
- return tokens[p] instanceof css.DelimToken && ['>', '+', '~'].includes(tokens[p].value);
104
+ return tokens[p] instanceof css.DelimToken && [">", "+", "~"].includes(tokens[p].value);
102
105
  }
103
106
  function isSelectorClauseEnd(p = pos) {
104
107
  return isComma(p) || isCloseParen(p) || isEOF(p) || isClauseCombinator(p) || tokens[p] instanceof css.WhitespaceToken;
105
108
  }
106
109
  function consumeFunctionArguments() {
107
- const result = [consumeArgument()];
110
+ const result2 = [consumeArgument()];
108
111
  while (true) {
109
112
  skipWhitespace();
110
- if (!isComma()) break;
113
+ if (!isComma())
114
+ break;
111
115
  pos++;
112
- result.push(consumeArgument());
116
+ result2.push(consumeArgument());
113
117
  }
114
- return result;
118
+ return result2;
115
119
  }
116
120
  function consumeArgument() {
117
121
  skipWhitespace();
118
- if (isNumber()) return tokens[pos++].value;
119
- if (isString()) return tokens[pos++].value;
122
+ if (isNumber())
123
+ return tokens[pos++].value;
124
+ if (isString())
125
+ return tokens[pos++].value;
120
126
  return consumeComplexSelector();
121
127
  }
122
128
  function consumeComplexSelector() {
123
- const result = {
124
- simples: []
125
- };
129
+ const result2 = { simples: [] };
126
130
  skipWhitespace();
127
131
  if (isClauseCombinator()) {
128
- // Put implicit ":scope" at the start. https://drafts.csswg.org/selectors-4/#relative
129
- result.simples.push({
130
- selector: {
131
- functions: [{
132
- name: 'scope',
133
- args: []
134
- }]
135
- },
136
- combinator: ''
137
- });
132
+ result2.simples.push({ selector: { functions: [{ name: "scope", args: [] }] }, combinator: "" });
138
133
  } else {
139
- result.simples.push({
140
- selector: consumeSimpleSelector(),
141
- combinator: ''
142
- });
134
+ result2.simples.push({ selector: consumeSimpleSelector(), combinator: "" });
143
135
  }
144
136
  while (true) {
145
137
  skipWhitespace();
146
138
  if (isClauseCombinator()) {
147
- result.simples[result.simples.length - 1].combinator = tokens[pos++].value;
139
+ result2.simples[result2.simples.length - 1].combinator = tokens[pos++].value;
148
140
  skipWhitespace();
149
141
  } else if (isSelectorClauseEnd()) {
150
142
  break;
151
143
  }
152
- result.simples.push({
153
- combinator: '',
154
- selector: consumeSimpleSelector()
155
- });
144
+ result2.simples.push({ combinator: "", selector: consumeSimpleSelector() });
156
145
  }
157
- return result;
146
+ return result2;
158
147
  }
159
148
  function consumeSimpleSelector() {
160
- let rawCSSString = '';
149
+ let rawCSSString = "";
161
150
  const functions = [];
162
151
  while (!isSelectorClauseEnd()) {
163
152
  if (isIdent() || isStar()) {
164
153
  rawCSSString += tokens[pos++].toSource();
165
154
  } else if (tokens[pos] instanceof css.HashToken) {
166
155
  rawCSSString += tokens[pos++].toSource();
167
- } else if (tokens[pos] instanceof css.DelimToken && tokens[pos].value === '.') {
156
+ } else if (tokens[pos] instanceof css.DelimToken && tokens[pos].value === ".") {
168
157
  pos++;
169
- if (isIdent()) rawCSSString += '.' + tokens[pos++].toSource();else throw unexpected();
158
+ if (isIdent())
159
+ rawCSSString += "." + tokens[pos++].toSource();
160
+ else
161
+ throw unexpected();
170
162
  } else if (tokens[pos] instanceof css.ColonToken) {
171
163
  pos++;
172
164
  if (isIdent()) {
173
165
  if (!customNames.has(tokens[pos].value.toLowerCase())) {
174
- rawCSSString += ':' + tokens[pos++].toSource();
166
+ rawCSSString += ":" + tokens[pos++].toSource();
175
167
  } else {
176
168
  const name = tokens[pos++].value.toLowerCase();
177
- functions.push({
178
- name,
179
- args: []
180
- });
169
+ functions.push({ name, args: [] });
181
170
  names.add(name);
182
171
  }
183
172
  } else if (isFunction()) {
@@ -185,66 +174,73 @@ function parseCSS(selector, customNames) {
185
174
  if (!customNames.has(name)) {
186
175
  rawCSSString += `:${name}(${consumeBuiltinFunctionArguments()})`;
187
176
  } else {
188
- functions.push({
189
- name,
190
- args: consumeFunctionArguments()
191
- });
177
+ functions.push({ name, args: consumeFunctionArguments() });
192
178
  names.add(name);
193
179
  }
194
180
  skipWhitespace();
195
- if (!isCloseParen()) throw unexpected();
181
+ if (!isCloseParen())
182
+ throw unexpected();
196
183
  pos++;
197
184
  } else {
198
185
  throw unexpected();
199
186
  }
200
187
  } else if (tokens[pos] instanceof css.OpenSquareToken) {
201
- rawCSSString += '[';
188
+ rawCSSString += "[";
202
189
  pos++;
203
- while (!(tokens[pos] instanceof css.CloseSquareToken) && !isEOF()) rawCSSString += tokens[pos++].toSource();
204
- if (!(tokens[pos] instanceof css.CloseSquareToken)) throw unexpected();
205
- rawCSSString += ']';
190
+ while (!(tokens[pos] instanceof css.CloseSquareToken) && !isEOF())
191
+ rawCSSString += tokens[pos++].toSource();
192
+ if (!(tokens[pos] instanceof css.CloseSquareToken))
193
+ throw unexpected();
194
+ rawCSSString += "]";
206
195
  pos++;
207
196
  } else {
208
197
  throw unexpected();
209
198
  }
210
199
  }
211
- if (!rawCSSString && !functions.length) throw unexpected();
212
- return {
213
- css: rawCSSString || undefined,
214
- functions
215
- };
200
+ if (!rawCSSString && !functions.length)
201
+ throw unexpected();
202
+ return { css: rawCSSString || void 0, functions };
216
203
  }
217
204
  function consumeBuiltinFunctionArguments() {
218
- let s = '';
219
- let balance = 1; // First open paren is a part of a function token.
205
+ let s = "";
206
+ let balance = 1;
220
207
  while (!isEOF()) {
221
- if (isOpenParen() || isFunction()) balance++;
222
- if (isCloseParen()) balance--;
223
- if (!balance) break;
208
+ if (isOpenParen() || isFunction())
209
+ balance++;
210
+ if (isCloseParen())
211
+ balance--;
212
+ if (!balance)
213
+ break;
224
214
  s += tokens[pos++].toSource();
225
215
  }
226
216
  return s;
227
217
  }
228
218
  const result = consumeFunctionArguments();
229
- if (!isEOF()) throw unexpected();
230
- if (result.some(arg => typeof arg !== 'object' || !('simples' in arg))) throw new InvalidSelectorError(`Error while parsing css selector "${selector}". Did you mean to CSS.escape it?`);
231
- return {
232
- selector: result,
233
- names: Array.from(names)
234
- };
219
+ if (!isEOF())
220
+ throw unexpected();
221
+ if (result.some((arg) => typeof arg !== "object" || !("simples" in arg)))
222
+ throw new InvalidSelectorError(`Error while parsing css selector "${selector}". Did you mean to CSS.escape it?`);
223
+ return { selector: result, names: Array.from(names) };
235
224
  }
236
225
  function serializeSelector(args) {
237
- return args.map(arg => {
238
- if (typeof arg === 'string') return `"${arg}"`;
239
- if (typeof arg === 'number') return String(arg);
240
- return arg.simples.map(({
241
- selector,
242
- combinator
243
- }) => {
244
- let s = selector.css || '';
245
- s = s + selector.functions.map(func => `:${func.name}(${serializeSelector(func.args)})`).join('');
246
- if (combinator) s += ' ' + combinator;
226
+ return args.map((arg) => {
227
+ if (typeof arg === "string")
228
+ return `"${arg}"`;
229
+ if (typeof arg === "number")
230
+ return String(arg);
231
+ return arg.simples.map(({ selector, combinator }) => {
232
+ let s = selector.css || "";
233
+ s = s + selector.functions.map((func) => `:${func.name}(${serializeSelector(func.args)})`).join("");
234
+ if (combinator)
235
+ s += " " + combinator;
247
236
  return s;
248
- }).join(' ');
249
- }).join(', ');
250
- }
237
+ }).join(" ");
238
+ }).join(", ");
239
+ }
240
+ // Annotate the CommonJS export names for ESM import in node:
241
+ 0 && (module.exports = {
242
+ InvalidSelectorError,
243
+ isInvalidSelectorError,
244
+ parseCSS,
245
+ serializeSelector
246
+ });