patchright-core 1.51.3 → 1.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browsers.json +15 -13
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +54 -67
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +312 -328
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +141 -228
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +57 -61
- package/lib/client/browserContext.js +297 -326
- package/lib/client/browserType.js +92 -106
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +82 -95
- package/lib/client/clientHelper.js +46 -38
- package/lib/client/clientInstrumentation.js +40 -37
- package/lib/client/clientStackTrace.js +41 -37
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +190 -212
- package/lib/client/consoleMessage.js +31 -28
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +73 -75
- package/lib/client/elementHandle.js +111 -147
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +124 -121
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +135 -158
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +187 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -28
- package/lib/client/locator.js +161 -245
- package/lib/client/network.js +277 -295
- package/lib/client/page.js +270 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -66
- package/lib/client/selectors.js +48 -46
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +49 -39
- package/lib/client/tracing.js +48 -84
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +69 -88
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +61 -56
- package/lib/client/worker.js +48 -58
- package/lib/client/writableStream.js +27 -23
- package/lib/generated/clockSource.js +26 -5
- package/lib/generated/consoleApiSource.js +26 -5
- package/lib/generated/injectedScriptSource.js +26 -5
- package/lib/generated/pollingRecorderSource.js +26 -5
- package/lib/generated/utilityScriptSource.js +26 -5
- package/lib/generated/webSocketMockSource.js +375 -4
- package/lib/inProcessFactory.js +53 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -46
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2714 -2714
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +140 -157
- package/lib/remote/playwrightServer.js +99 -84
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -209
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +221 -155
- package/lib/server/bidi/bidiChromium.js +106 -79
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +128 -113
- package/lib/server/bidi/bidiFirefox.js +76 -69
- package/lib/server/bidi/bidiInput.js +86 -97
- package/lib/server/bidi/bidiNetworkManager.js +137 -154
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +247 -219
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
- package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
- package/lib/server/browser.js +76 -84
- package/lib/server/browserContext.js +321 -346
- package/lib/server/browserType.js +169 -182
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +86 -64
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +253 -273
- package/lib/server/chromium/crConnection.js +91 -116
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +59 -51
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +88 -83
- package/lib/server/chromium/crInput.js +97 -95
- package/lib/server/chromium/crNetworkManager.js +284 -404
- package/lib/server/chromium/crPage.js +522 -608
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +82 -67
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +65 -99
- package/lib/server/clock.js +62 -50
- package/lib/server/codegen/csharp.js +185 -160
- package/lib/server/codegen/java.js +155 -128
- package/lib/server/codegen/javascript.js +163 -148
- package/lib/server/codegen/jsonl.js +32 -28
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +140 -125
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +105 -86
- package/lib/server/debugController.js +97 -124
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +50 -50
- package/lib/server/dialog.js +36 -35
- package/lib/server/dispatchers/androidDispatcher.js +196 -107
- package/lib/server/dispatchers/artifactDispatcher.js +62 -62
- package/lib/server/dispatchers/browserContextDispatcher.js +176 -205
- package/lib/server/dispatchers/browserDispatcher.js +78 -97
- package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
- package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
- package/lib/server/dispatchers/debugControllerDispatcher.js +48 -66
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +169 -220
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
- package/lib/server/dispatchers/frameDispatcher.js +99 -163
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
- package/lib/server/dispatchers/networkDispatchers.js +90 -107
- package/lib/server/dispatchers/pageDispatcher.js +128 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -45
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
- package/lib/server/dom.js +413 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -176
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +289 -323
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +65 -59
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +213 -277
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +91 -73
- package/lib/server/firefox/ffInput.js +67 -69
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +236 -273
- package/lib/server/firefox/firefox.js +76 -67
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +77 -111
- package/lib/server/frames.js +730 -894
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +287 -222
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +134 -163
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +143 -134
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +130 -122
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +262 -296
- package/lib/server/page.js +329 -426
- package/lib/server/pageBinding.js +88 -0
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +60 -67
- package/lib/server/progress.js +56 -51
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +70 -86
- package/lib/server/recorder/contextRecorder.js +134 -138
- package/lib/server/recorder/recorderApp.js +127 -136
- package/lib/server/recorder/recorderCollection.js +56 -44
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +79 -103
- package/lib/server/recorder/recorderUtils.js +56 -45
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +177 -186
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +904 -792
- package/lib/server/registry/nativeDeps.js +1073 -464
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +166 -182
- package/lib/server/selectors.js +85 -46
- package/lib/server/socksClientCertificatesInterceptor.js +166 -185
- package/lib/server/socksInterceptor.js +62 -70
- package/lib/server/storageScript.js +94 -100
- package/lib/server/timeoutSettings.js +58 -43
- package/lib/server/trace/recorder/snapshotter.js +70 -89
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +321 -333
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +168 -146
- package/lib/server/transport.js +124 -133
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +39 -26
- package/lib/server/utils/comparators.js +105 -103
- package/lib/server/utils/crypto.js +157 -112
- package/lib/server/utils/debug.js +37 -28
- package/lib/server/utils/debugLogger.js +69 -48
- package/lib/server/utils/env.js +52 -37
- package/lib/server/utils/eventsHelper.js +29 -28
- package/lib/server/utils/expectUtils.js +31 -26
- package/lib/server/utils/fileUtils.js +123 -136
- package/lib/server/utils/happyEyeballs.js +138 -123
- package/lib/server/utils/hostPlatform.js +84 -120
- package/lib/server/utils/httpServer.js +106 -121
- package/lib/server/utils/image_tools/colorUtils.js +42 -51
- package/lib/server/utils/image_tools/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +38 -30
- package/lib/server/utils/image_tools/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +50 -37
- package/lib/server/utils/network.js +143 -86
- package/lib/server/utils/nodePlatform.js +87 -79
- package/lib/server/utils/pipeTransport.js +44 -42
- package/lib/server/utils/processLauncher.js +111 -121
- package/lib/server/utils/profiler.js +52 -39
- package/lib/server/utils/socksProxy.js +280 -339
- package/lib/server/utils/spawnAsync.js +37 -41
- package/lib/server/utils/task.js +31 -38
- package/lib/server/utils/userAgent.js +73 -66
- package/lib/server/utils/wsServer.js +73 -69
- package/lib/server/utils/zipFile.js +36 -37
- package/lib/server/utils/zones.js +37 -34
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +76 -63
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +159 -176
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +84 -70
- package/lib/server/webkit/wkInput.js +82 -80
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +525 -619
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +121 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +340 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +47 -39
- package/lib/utils/isomorphic/mimeType.js +448 -25
- package/lib/utils/isomorphic/multimap.js +35 -27
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +41 -22
- package/lib/utils/isomorphic/timeoutRunner.js +55 -54
- package/lib/utils/isomorphic/traceUtils.js +38 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +112 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +97 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/vite/htmlReport/index.html +21 -15
- package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-DVQi6prl.js} +1 -1
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/index.html +1 -1
- package/lib/vite/traceViewer/assets/{codeMirrorModule-1DiydmYA.js → codeMirrorModule-dvXVzLxY.js} +1 -1
- package/lib/vite/traceViewer/assets/defaultSettingsView-BjymbO6M.js +265 -0
- package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
- package/lib/vite/traceViewer/index.ChIUCJnj.js +2 -0
- package/lib/vite/traceViewer/index.html +3 -3
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/vite/traceViewer/uiMode.jUCiCtdp.js +5 -0
- package/lib/zipBundle.js +32 -23
- package/package.json +1 -1
- package/types/protocol.d.ts +436 -17
- package/types/types.d.ts +35 -16
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
- package/lib/vite/traceViewer/assets/defaultSettingsView-l0TyP_G8.js +0 -259
- package/lib/vite/traceViewer/index.BqUZLSro.js +0 -2
- package/lib/vite/traceViewer/uiMode.C1d2m5sF.js +0 -5
|
@@ -1,65 +1,72 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
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
|
-
|
|
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 =
|
|
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) => `\
|
|
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
|
|
4
|
-
|
|
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
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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))
|
|
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 ||
|
|
51
|
-
if (index !== -1)
|
|
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)
|
|
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)
|
|
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 && [
|
|
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
|
|
110
|
+
const result2 = [consumeArgument()];
|
|
108
111
|
while (true) {
|
|
109
112
|
skipWhitespace();
|
|
110
|
-
if (!isComma())
|
|
113
|
+
if (!isComma())
|
|
114
|
+
break;
|
|
111
115
|
pos++;
|
|
112
|
-
|
|
116
|
+
result2.push(consumeArgument());
|
|
113
117
|
}
|
|
114
|
-
return
|
|
118
|
+
return result2;
|
|
115
119
|
}
|
|
116
120
|
function consumeArgument() {
|
|
117
121
|
skipWhitespace();
|
|
118
|
-
if (isNumber())
|
|
119
|
-
|
|
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
|
|
124
|
-
simples: []
|
|
125
|
-
};
|
|
129
|
+
const result2 = { simples: [] };
|
|
126
130
|
skipWhitespace();
|
|
127
131
|
if (isClauseCombinator()) {
|
|
128
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
153
|
-
combinator: '',
|
|
154
|
-
selector: consumeSimpleSelector()
|
|
155
|
-
});
|
|
144
|
+
result2.simples.push({ combinator: "", selector: consumeSimpleSelector() });
|
|
156
145
|
}
|
|
157
|
-
return
|
|
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())
|
|
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 +=
|
|
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())
|
|
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())
|
|
204
|
-
|
|
205
|
-
|
|
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)
|
|
212
|
-
|
|
213
|
-
|
|
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;
|
|
205
|
+
let s = "";
|
|
206
|
+
let balance = 1;
|
|
220
207
|
while (!isEOF()) {
|
|
221
|
-
if (isOpenParen() || isFunction())
|
|
222
|
-
|
|
223
|
-
if (
|
|
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())
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
selector
|
|
233
|
-
|
|
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 ===
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
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
|
+
});
|