rebrowser-playwright-core 1.49.0 → 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/ThirdPartyNotices.txt +381 -55
- package/bin/reinstall_msedge_beta_linux.sh +6 -0
- package/bin/reinstall_msedge_dev_linux.sh +6 -0
- package/bin/reinstall_msedge_stable_linux.sh +6 -0
- package/browsers.json +28 -13
- package/index.js +0 -1
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +60 -64
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +314 -354
- package/lib/cli/programWithTestStub.js +51 -44
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +146 -254
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -39
- package/lib/client/browser.js +59 -68
- package/lib/client/browserContext.js +302 -322
- package/lib/client/browserType.js +95 -143
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +109 -139
- package/lib/client/clientHelper.js +49 -42
- package/lib/client/clientInstrumentation.js +40 -35
- package/lib/client/clientStackTrace.js +69 -0
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +203 -218
- package/lib/client/consoleMessage.js +33 -33
- 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 +74 -76
- package/lib/client/elementHandle.js +126 -163
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +127 -127
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +154 -178
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +34 -0
- package/lib/client/frame.js +189 -307
- package/lib/client/harRouter.js +44 -56
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +55 -71
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +53 -28
- package/lib/client/locator.js +144 -230
- package/lib/client/network.js +285 -301
- package/lib/client/page.js +273 -312
- package/lib/client/platform.js +74 -0
- package/lib/client/playwright.js +62 -57
- package/lib/client/selectors.js +51 -43
- package/lib/client/stream.js +30 -45
- package/lib/client/timeoutSettings.js +75 -0
- package/lib/client/tracing.js +49 -82
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +71 -91
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +111 -0
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +28 -43
- 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 -48
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -42
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2712 -2667
- package/lib/protocol/validatorPrimitives.js +115 -75
- package/lib/remote/playwrightConnection.js +144 -152
- package/lib/remote/playwrightServer.js +106 -77
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -206
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +227 -158
- package/lib/server/bidi/bidiChromium.js +106 -78
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +161 -97
- package/lib/server/bidi/bidiFirefox.js +76 -68
- package/lib/server/bidi/bidiInput.js +90 -102
- package/lib/server/bidi/bidiNetworkManager.js +141 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +262 -261
- 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 +241 -223
- 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 +149 -111
- package/lib/server/browser.js +76 -84
- package/lib/server/browserContext.js +343 -360
- package/lib/server/browserType.js +169 -181
- package/lib/server/callLog.js +82 -0
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +99 -44
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +262 -280
- package/lib/server/chromium/crConnection.js +121 -178
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +64 -55
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +100 -91
- package/lib/server/chromium/crInput.js +101 -88
- package/lib/server/chromium/crNetworkManager.js +269 -370
- package/lib/server/chromium/crPage.js +509 -595
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +85 -69
- 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 +58 -46
- package/lib/server/codegen/csharp.js +191 -156
- package/lib/server/codegen/java.js +163 -125
- package/lib/server/codegen/javascript.js +166 -143
- package/lib/server/codegen/jsonl.js +33 -29
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -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 +102 -154
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +131 -131
- 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 +177 -217
- 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 -64
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +180 -229
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +79 -116
- package/lib/server/dispatchers/frameDispatcher.js +93 -162
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +107 -365
- package/lib/server/dispatchers/networkDispatchers.js +92 -109
- package/lib/server/dispatchers/pageDispatcher.js +130 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -44
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +100 -135
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -39
- package/lib/server/dom.js +424 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -175
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +302 -331
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -57
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +218 -274
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +103 -77
- package/lib/server/firefox/ffInput.js +72 -63
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +244 -302
- package/lib/server/firefox/firefox.js +76 -69
- 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 +719 -855
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +288 -224
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -106
- package/lib/server/input.js +136 -166
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +157 -151
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +211 -0
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +263 -297
- package/lib/server/page.js +353 -432
- 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 +161 -0
- package/lib/server/recorder/contextRecorder.js +135 -148
- package/lib/server/recorder/recorderApp.js +129 -132
- package/lib/server/recorder/recorderCollection.js +57 -57
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +80 -100
- package/lib/server/recorder/recorderUtils.js +59 -72
- package/lib/server/recorder/throttledFile.js +42 -31
- package/lib/server/recorder.js +186 -190
- package/lib/server/registry/browserFetcher.js +107 -100
- package/lib/server/registry/dependencies.js +247 -198
- package/lib/server/registry/index.js +928 -709
- package/lib/server/registry/nativeDeps.js +1073 -461
- 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 -67
- package/lib/server/storageScript.js +154 -0
- package/lib/server/timeoutSettings.js +89 -0
- package/lib/server/trace/recorder/snapshotter.js +70 -88
- package/lib/server/trace/recorder/snapshotterInjected.js +246 -218
- package/lib/server/trace/recorder/tracing.js +324 -327
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +172 -137
- package/lib/server/transport.js +125 -133
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +44 -0
- package/lib/server/utils/comparators.js +161 -0
- package/lib/server/utils/crypto.js +216 -0
- package/lib/server/utils/debug.js +47 -0
- package/lib/server/utils/debugLogger.js +114 -0
- package/lib/server/utils/env.js +68 -0
- package/lib/server/utils/eventsHelper.js +39 -0
- package/lib/server/utils/expectUtils.js +38 -0
- package/lib/server/utils/fileUtils.js +191 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +109 -0
- package/lib/server/utils/httpServer.js +218 -0
- package/lib/server/utils/image_tools/colorUtils.js +89 -0
- package/lib/{image_tools → server/utils/image_tools}/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +78 -0
- package/lib/{image_tools → server/utils/image_tools}/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +71 -0
- package/lib/server/utils/network.js +217 -0
- package/lib/server/utils/nodePlatform.js +148 -0
- package/lib/server/utils/pipeTransport.js +84 -0
- package/lib/server/utils/processLauncher.js +238 -0
- package/lib/server/utils/profiler.js +65 -0
- package/lib/server/utils/socksProxy.js +511 -0
- package/lib/server/utils/spawnAsync.js +41 -0
- package/lib/server/utils/task.js +51 -0
- package/lib/server/utils/userAgent.js +98 -0
- package/lib/server/utils/wsServer.js +132 -0
- package/lib/server/utils/zipFile.js +74 -0
- package/lib/server/utils/zones.js +57 -0
- 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 +163 -180
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +96 -73
- package/lib/server/webkit/wkInput.js +87 -75
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +536 -645
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +245 -128
- package/lib/utils/isomorphic/assert.js +31 -0
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +72 -0
- package/lib/utils/isomorphic/cssParser.js +123 -127
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +53 -0
- package/lib/utils/isomorphic/locatorGenerators.js +344 -349
- package/lib/utils/isomorphic/locatorParser.js +103 -106
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +115 -0
- package/lib/utils/isomorphic/mimeType.js +453 -22
- package/lib/utils/isomorphic/multimap.js +81 -0
- package/lib/utils/isomorphic/rtti.js +43 -0
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +54 -0
- package/lib/utils/isomorphic/stackTrace.js +158 -0
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +44 -0
- package/lib/utils/isomorphic/timeoutRunner.js +67 -0
- package/lib/utils/isomorphic/traceUtils.js +52 -32
- package/lib/utils/isomorphic/types.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +114 -71
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +101 -0
- package/lib/utilsBundle.js +101 -76
- package/lib/utilsBundleImpl/index.js +114 -116
- package/lib/vite/htmlReport/index.html +26 -20
- package/lib/vite/recorder/assets/codeMirrorModule-DVQi6prl.js +24 -0
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/assets/{index-iA1aAGZg.css → index-eHBmevrY.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-DwAiTpyC.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-DkkRvn5X.js +265 -0
- package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +1 -0
- package/lib/vite/traceViewer/index.DvtSwn6E.js +2 -0
- package/lib/vite/traceViewer/index.html +4 -7
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/{uiMode.voC1ZiOQ.css → uiMode.BatfzHMG.css} +1 -1
- package/lib/vite/traceViewer/uiMode.Sdytl9wc.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +4 -7
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +819 -127
- package/types/types.d.ts +196 -75
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +0 -2
- package/lib/common/socksProxy.js +0 -569
- package/lib/common/timeoutSettings.js +0 -73
- package/lib/common/types.js +0 -5
- package/lib/image_tools/colorUtils.js +0 -98
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/protocol/transport.js +0 -82
- package/lib/server/ariaSnapshot.js +0 -33
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -226
- package/lib/server/recorder/recorderInTraceViewer.js +0 -144
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -153
- package/lib/utils/crypto.js +0 -171
- package/lib/utils/debug.js +0 -46
- package/lib/utils/debugLogger.js +0 -91
- package/lib/utils/env.js +0 -49
- package/lib/utils/eventsHelper.js +0 -38
- package/lib/utils/expectUtils.js +0 -33
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -194
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -139
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/isomorphic/recorderUtils.js +0 -227
- package/lib/utils/linuxUtils.js +0 -78
- package/lib/utils/manualPromise.js +0 -109
- package/lib/utils/multimap.js +0 -75
- package/lib/utils/network.js +0 -160
- package/lib/utils/processLauncher.js +0 -248
- package/lib/utils/profiler.js +0 -53
- package/lib/utils/rtti.js +0 -44
- package/lib/utils/semaphore.js +0 -51
- package/lib/utils/sequence.js +0 -64
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -134
- package/lib/utils/task.js +0 -58
- package/lib/utils/time.js +0 -37
- package/lib/utils/timeoutRunner.js +0 -66
- package/lib/utils/traceUtils.js +0 -44
- package/lib/utils/userAgent.js +0 -105
- package/lib/utils/wsServer.js +0 -127
- package/lib/utils/zipFile.js +0 -75
- package/lib/utils/zones.js +0 -71
- package/lib/vite/recorder/assets/codeMirrorModule-AFvV6hAs.js +0 -24
- package/lib/vite/recorder/assets/index-_cTWgVuJ.js +0 -184
- package/lib/vite/traceViewer/assets/codeMirrorModule-KatbITLF.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-DdpLd2bb.js +0 -68
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-CdYbzWFD.js +0 -9
- package/lib/vite/traceViewer/embedded.6m3UZh7r.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
- package/lib/vite/traceViewer/index.WUV-8boJ.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
- package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
- package/lib/vite/traceViewer/recorder.OT2tVHgn.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/uiMode.BZBTyvGn.js +0 -5
- package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
- /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
|
@@ -1,133 +1,143 @@
|
|
|
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 javascript_exports = {};
|
|
20
|
+
__export(javascript_exports, {
|
|
21
|
+
JavaScriptFormatter: () => JavaScriptFormatter,
|
|
22
|
+
JavaScriptLanguageGenerator: () => JavaScriptLanguageGenerator,
|
|
23
|
+
quoteMultiline: () => quoteMultiline
|
|
5
24
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var _utils = require("../../utils");
|
|
11
|
-
/**
|
|
12
|
-
* Copyright (c) Microsoft Corporation.
|
|
13
|
-
*
|
|
14
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
15
|
-
* you may not use this file except in compliance with the License.
|
|
16
|
-
* You may obtain a copy of the License at
|
|
17
|
-
*
|
|
18
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
-
*
|
|
20
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
21
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
22
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
23
|
-
* See the License for the specific language governing permissions and
|
|
24
|
-
* limitations under the License.
|
|
25
|
-
*/
|
|
26
|
-
|
|
25
|
+
module.exports = __toCommonJS(javascript_exports);
|
|
26
|
+
var import_language = require("./language");
|
|
27
|
+
var import_utils = require("../../utils");
|
|
28
|
+
var import_deviceDescriptors = require("../deviceDescriptors");
|
|
27
29
|
class JavaScriptLanguageGenerator {
|
|
28
30
|
constructor(isTest) {
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
33
|
-
this._isTest = void 0;
|
|
34
|
-
this.id = isTest ? 'playwright-test' : 'javascript';
|
|
35
|
-
this.name = isTest ? 'Test Runner' : 'Library';
|
|
31
|
+
this.groupName = "Node.js";
|
|
32
|
+
this.highlighter = "javascript";
|
|
33
|
+
this.id = isTest ? "playwright-test" : "javascript";
|
|
34
|
+
this.name = isTest ? "Test Runner" : "Library";
|
|
36
35
|
this._isTest = isTest;
|
|
37
36
|
}
|
|
38
37
|
generateAction(actionInContext) {
|
|
39
38
|
const action = actionInContext.action;
|
|
40
|
-
if (this._isTest && (action.name ===
|
|
39
|
+
if (this._isTest && (action.name === "openPage" || action.name === "closePage"))
|
|
40
|
+
return "";
|
|
41
41
|
const pageAlias = actionInContext.frame.pageAlias;
|
|
42
42
|
const formatter = new JavaScriptFormatter(2);
|
|
43
|
-
if (action.name ===
|
|
43
|
+
if (action.name === "openPage") {
|
|
44
44
|
formatter.add(`const ${pageAlias} = await context.newPage();`);
|
|
45
|
-
if (action.url && action.url !==
|
|
45
|
+
if (action.url && action.url !== "about:blank" && action.url !== "chrome://newtab/")
|
|
46
|
+
formatter.add(`await ${pageAlias}.goto(${quote(action.url)});`);
|
|
46
47
|
return formatter.format();
|
|
47
48
|
}
|
|
48
|
-
const locators = actionInContext.frame.framePath.map(selector => `.${this._asLocator(selector)}.contentFrame()`);
|
|
49
|
-
const subject = `${pageAlias}${locators.join(
|
|
50
|
-
const signals = (0,
|
|
49
|
+
const locators = actionInContext.frame.framePath.map((selector) => `.${this._asLocator(selector)}.contentFrame()`);
|
|
50
|
+
const subject = `${pageAlias}${locators.join("")}`;
|
|
51
|
+
const signals = (0, import_language.toSignalMap)(action);
|
|
51
52
|
if (signals.dialog) {
|
|
52
53
|
formatter.add(` ${pageAlias}.once('dialog', dialog => {
|
|
53
|
-
console.log(\`Dialog message:
|
|
54
|
+
console.log(\`Dialog message: \${dialog.message()}\`);
|
|
54
55
|
dialog.dismiss().catch(() => {});
|
|
55
56
|
});`);
|
|
56
57
|
}
|
|
57
|
-
if (signals.popup)
|
|
58
|
-
|
|
58
|
+
if (signals.popup)
|
|
59
|
+
formatter.add(`const ${signals.popup.popupAlias}Promise = ${pageAlias}.waitForEvent('popup');`);
|
|
60
|
+
if (signals.download)
|
|
61
|
+
formatter.add(`const download${signals.download.downloadAlias}Promise = ${pageAlias}.waitForEvent('download');`);
|
|
59
62
|
formatter.add(wrapWithStep(actionInContext.description, this._generateActionCall(subject, actionInContext)));
|
|
60
|
-
if (signals.popup)
|
|
61
|
-
|
|
63
|
+
if (signals.popup)
|
|
64
|
+
formatter.add(`const ${signals.popup.popupAlias} = await ${signals.popup.popupAlias}Promise;`);
|
|
65
|
+
if (signals.download)
|
|
66
|
+
formatter.add(`const download${signals.download.downloadAlias} = await download${signals.download.downloadAlias}Promise;`);
|
|
62
67
|
return formatter.format();
|
|
63
68
|
}
|
|
64
69
|
_generateActionCall(subject, actionInContext) {
|
|
65
70
|
const action = actionInContext.action;
|
|
66
71
|
switch (action.name) {
|
|
67
|
-
case
|
|
68
|
-
throw Error(
|
|
69
|
-
case
|
|
72
|
+
case "openPage":
|
|
73
|
+
throw Error("Not reached");
|
|
74
|
+
case "closePage":
|
|
70
75
|
return `await ${subject}.close();`;
|
|
71
|
-
case
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
case
|
|
76
|
+
case "click": {
|
|
77
|
+
let method = "click";
|
|
78
|
+
if (action.clickCount === 2)
|
|
79
|
+
method = "dblclick";
|
|
80
|
+
const options = (0, import_language.toClickOptionsForSourceCode)(action);
|
|
81
|
+
const optionsString = formatOptions(options, false);
|
|
82
|
+
return `await ${subject}.${this._asLocator(action.selector)}.${method}(${optionsString});`;
|
|
83
|
+
}
|
|
84
|
+
case "check":
|
|
80
85
|
return `await ${subject}.${this._asLocator(action.selector)}.check();`;
|
|
81
|
-
case
|
|
86
|
+
case "uncheck":
|
|
82
87
|
return `await ${subject}.${this._asLocator(action.selector)}.uncheck();`;
|
|
83
|
-
case
|
|
88
|
+
case "fill":
|
|
84
89
|
return `await ${subject}.${this._asLocator(action.selector)}.fill(${quote(action.text)});`;
|
|
85
|
-
case
|
|
90
|
+
case "setInputFiles":
|
|
86
91
|
return `await ${subject}.${this._asLocator(action.selector)}.setInputFiles(${formatObject(action.files.length === 1 ? action.files[0] : action.files)});`;
|
|
87
|
-
case
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
case 'navigate':
|
|
92
|
+
case "press": {
|
|
93
|
+
const modifiers = (0, import_language.toKeyboardModifiers)(action.modifiers);
|
|
94
|
+
const shortcut = [...modifiers, action.key].join("+");
|
|
95
|
+
return `await ${subject}.${this._asLocator(action.selector)}.press(${quote(shortcut)});`;
|
|
96
|
+
}
|
|
97
|
+
case "navigate":
|
|
94
98
|
return `await ${subject}.goto(${quote(action.url)});`;
|
|
95
|
-
case
|
|
99
|
+
case "select":
|
|
96
100
|
return `await ${subject}.${this._asLocator(action.selector)}.selectOption(${formatObject(action.options.length === 1 ? action.options[0] : action.options)});`;
|
|
97
|
-
case
|
|
98
|
-
return `${this._isTest ?
|
|
99
|
-
case
|
|
100
|
-
return `${this._isTest ?
|
|
101
|
-
case
|
|
102
|
-
return `${this._isTest ?
|
|
103
|
-
case
|
|
104
|
-
{
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
return `${
|
|
101
|
+
case "assertText":
|
|
102
|
+
return `${this._isTest ? "" : "// "}await expect(${subject}.${this._asLocator(action.selector)}).${action.substring ? "toContainText" : "toHaveText"}(${quote(action.text)});`;
|
|
103
|
+
case "assertChecked":
|
|
104
|
+
return `${this._isTest ? "" : "// "}await expect(${subject}.${this._asLocator(action.selector)})${action.checked ? "" : ".not"}.toBeChecked();`;
|
|
105
|
+
case "assertVisible":
|
|
106
|
+
return `${this._isTest ? "" : "// "}await expect(${subject}.${this._asLocator(action.selector)}).toBeVisible();`;
|
|
107
|
+
case "assertValue": {
|
|
108
|
+
const assertion = action.value ? `toHaveValue(${quote(action.value)})` : `toBeEmpty()`;
|
|
109
|
+
return `${this._isTest ? "" : "// "}await expect(${subject}.${this._asLocator(action.selector)}).${assertion};`;
|
|
110
|
+
}
|
|
111
|
+
case "assertSnapshot": {
|
|
112
|
+
const commentIfNeeded = this._isTest ? "" : "// ";
|
|
113
|
+
return `${commentIfNeeded}await expect(${subject}.${this._asLocator(action.selector)}).toMatchAriaSnapshot(${quoteMultiline(action.snapshot, `${commentIfNeeded} `)});`;
|
|
114
|
+
}
|
|
110
115
|
}
|
|
111
116
|
}
|
|
112
117
|
_asLocator(selector) {
|
|
113
|
-
return (0,
|
|
118
|
+
return (0, import_utils.asLocator)("javascript", selector);
|
|
114
119
|
}
|
|
115
120
|
generateHeader(options) {
|
|
116
|
-
if (this._isTest)
|
|
121
|
+
if (this._isTest)
|
|
122
|
+
return this.generateTestHeader(options);
|
|
117
123
|
return this.generateStandaloneHeader(options);
|
|
118
124
|
}
|
|
119
125
|
generateFooter(saveStorage) {
|
|
120
|
-
if (this._isTest)
|
|
126
|
+
if (this._isTest)
|
|
127
|
+
return this.generateTestFooter(saveStorage);
|
|
121
128
|
return this.generateStandaloneFooter(saveStorage);
|
|
122
129
|
}
|
|
123
130
|
generateTestHeader(options) {
|
|
124
131
|
const formatter = new JavaScriptFormatter();
|
|
125
132
|
const useText = formatContextOptions(options.contextOptions, options.deviceName, this._isTest);
|
|
126
133
|
formatter.add(`
|
|
127
|
-
import { test, expect${options.deviceName ?
|
|
128
|
-
${useText ?
|
|
134
|
+
import { test, expect${options.deviceName ? ", devices" : ""} } from '@playwright/test';
|
|
135
|
+
${useText ? "\ntest.use(" + useText + ");\n" : ""}
|
|
129
136
|
test('test', async ({ page }) => {`);
|
|
130
|
-
if (options.contextOptions.recordHar)
|
|
137
|
+
if (options.contextOptions.recordHar) {
|
|
138
|
+
const url = options.contextOptions.recordHar.urlFilter;
|
|
139
|
+
formatter.add(` await page.routeFromHAR(${quote(options.contextOptions.recordHar.path)}${url ? `, ${formatOptions({ url }, false)}` : ""});`);
|
|
140
|
+
}
|
|
131
141
|
return formatter.format();
|
|
132
142
|
}
|
|
133
143
|
generateTestFooter(saveStorage) {
|
|
@@ -136,110 +146,123 @@ ${useText ? '\ntest.use(' + useText + ');\n' : ''}
|
|
|
136
146
|
generateStandaloneHeader(options) {
|
|
137
147
|
const formatter = new JavaScriptFormatter();
|
|
138
148
|
formatter.add(`
|
|
139
|
-
const { ${options.browserName}${options.deviceName ?
|
|
149
|
+
const { ${options.browserName}${options.deviceName ? ", devices" : ""} } = require('playwright');
|
|
140
150
|
|
|
141
151
|
(async () => {
|
|
142
152
|
const browser = await ${options.browserName}.launch(${formatObjectOrVoid(options.launchOptions)});
|
|
143
153
|
const context = await browser.newContext(${formatContextOptions(options.contextOptions, options.deviceName, false)});`);
|
|
144
|
-
if (options.contextOptions.recordHar)
|
|
154
|
+
if (options.contextOptions.recordHar)
|
|
155
|
+
formatter.add(` await context.routeFromHAR(${quote(options.contextOptions.recordHar.path)});`);
|
|
145
156
|
return formatter.format();
|
|
146
157
|
}
|
|
147
158
|
generateStandaloneFooter(saveStorage) {
|
|
148
|
-
const storageStateLine = saveStorage ?
|
|
149
|
-
|
|
159
|
+
const storageStateLine = saveStorage ? `
|
|
160
|
+
await context.storageState({ path: ${quote(saveStorage)} });` : "";
|
|
161
|
+
return `
|
|
162
|
+
// ---------------------${storageStateLine}
|
|
150
163
|
await context.close();
|
|
151
164
|
await browser.close();
|
|
152
165
|
})();`;
|
|
153
166
|
}
|
|
154
167
|
}
|
|
155
|
-
exports.JavaScriptLanguageGenerator = JavaScriptLanguageGenerator;
|
|
156
168
|
function formatOptions(value, hasArguments) {
|
|
157
169
|
const keys = Object.keys(value);
|
|
158
|
-
if (!keys.length)
|
|
159
|
-
|
|
170
|
+
if (!keys.length)
|
|
171
|
+
return "";
|
|
172
|
+
return (hasArguments ? ", " : "") + formatObject(value);
|
|
160
173
|
}
|
|
161
|
-
function formatObject(value, indent =
|
|
162
|
-
if (typeof value ===
|
|
163
|
-
|
|
164
|
-
if (
|
|
165
|
-
|
|
166
|
-
|
|
174
|
+
function formatObject(value, indent = " ") {
|
|
175
|
+
if (typeof value === "string")
|
|
176
|
+
return quote(value);
|
|
177
|
+
if (Array.isArray(value))
|
|
178
|
+
return `[${value.map((o) => formatObject(o)).join(", ")}]`;
|
|
179
|
+
if (typeof value === "object") {
|
|
180
|
+
const keys = Object.keys(value).filter((key) => value[key] !== void 0).sort();
|
|
181
|
+
if (!keys.length)
|
|
182
|
+
return "{}";
|
|
167
183
|
const tokens = [];
|
|
168
|
-
for (const key of keys)
|
|
169
|
-
|
|
184
|
+
for (const key of keys)
|
|
185
|
+
tokens.push(`${key}: ${formatObject(value[key])}`);
|
|
186
|
+
return `{
|
|
187
|
+
${indent}${tokens.join(`,
|
|
188
|
+
${indent}`)}
|
|
189
|
+
}`;
|
|
170
190
|
}
|
|
171
191
|
return String(value);
|
|
172
192
|
}
|
|
173
|
-
function formatObjectOrVoid(value, indent =
|
|
193
|
+
function formatObjectOrVoid(value, indent = " ") {
|
|
174
194
|
const result = formatObject(value, indent);
|
|
175
|
-
return result ===
|
|
195
|
+
return result === "{}" ? "" : result;
|
|
176
196
|
}
|
|
177
197
|
function formatContextOptions(options, deviceName, isTest) {
|
|
178
|
-
const device = deviceName &&
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
let serializedObject = formatObjectOrVoid((0, _language.sanitizeDeviceOptions)(device, options));
|
|
187
|
-
// When there are no additional context options, we still want to spread the device inside.
|
|
188
|
-
if (!serializedObject) serializedObject = '{\n}';
|
|
189
|
-
const lines = serializedObject.split('\n');
|
|
198
|
+
const device = deviceName && import_deviceDescriptors.deviceDescriptors[deviceName];
|
|
199
|
+
options = { ...options, recordHar: void 0 };
|
|
200
|
+
if (!device)
|
|
201
|
+
return formatObjectOrVoid(options);
|
|
202
|
+
let serializedObject = formatObjectOrVoid((0, import_language.sanitizeDeviceOptions)(device, options));
|
|
203
|
+
if (!serializedObject)
|
|
204
|
+
serializedObject = "{\n}";
|
|
205
|
+
const lines = serializedObject.split("\n");
|
|
190
206
|
lines.splice(1, 0, `...devices[${quote(deviceName)}],`);
|
|
191
|
-
return lines.join(
|
|
207
|
+
return lines.join("\n");
|
|
192
208
|
}
|
|
193
209
|
class JavaScriptFormatter {
|
|
194
210
|
constructor(offset = 0) {
|
|
195
|
-
this._baseIndent = void 0;
|
|
196
|
-
this._baseOffset = void 0;
|
|
197
211
|
this._lines = [];
|
|
198
|
-
this._baseIndent =
|
|
199
|
-
this._baseOffset =
|
|
212
|
+
this._baseIndent = " ".repeat(2);
|
|
213
|
+
this._baseOffset = " ".repeat(offset);
|
|
200
214
|
}
|
|
201
215
|
prepend(text) {
|
|
202
|
-
const trim = isMultilineString(text) ? line => line : line => line.trim();
|
|
203
|
-
this._lines = text.trim().split(
|
|
216
|
+
const trim = isMultilineString(text) ? (line) => line : (line) => line.trim();
|
|
217
|
+
this._lines = text.trim().split("\n").map(trim).concat(this._lines);
|
|
204
218
|
}
|
|
205
219
|
add(text) {
|
|
206
|
-
const trim = isMultilineString(text) ? line => line : line => line.trim();
|
|
207
|
-
this._lines.push(...text.trim().split(
|
|
220
|
+
const trim = isMultilineString(text) ? (line) => line : (line) => line.trim();
|
|
221
|
+
this._lines.push(...text.trim().split("\n").map(trim));
|
|
208
222
|
}
|
|
209
223
|
newLine() {
|
|
210
|
-
this._lines.push(
|
|
224
|
+
this._lines.push("");
|
|
211
225
|
}
|
|
212
226
|
format() {
|
|
213
|
-
let spaces =
|
|
214
|
-
let previousLine =
|
|
215
|
-
return this._lines.map(line => {
|
|
216
|
-
if (line ===
|
|
217
|
-
|
|
218
|
-
|
|
227
|
+
let spaces = "";
|
|
228
|
+
let previousLine = "";
|
|
229
|
+
return this._lines.map((line) => {
|
|
230
|
+
if (line === "")
|
|
231
|
+
return line;
|
|
232
|
+
if (line.startsWith("}") || line.startsWith("]"))
|
|
233
|
+
spaces = spaces.substring(this._baseIndent.length);
|
|
234
|
+
const extraSpaces = /^(for|while|if|try).*\(.*\)$/.test(previousLine) ? this._baseIndent : "";
|
|
219
235
|
previousLine = line;
|
|
220
|
-
const callCarryOver = line.startsWith(
|
|
221
|
-
line = spaces + extraSpaces + (callCarryOver ? this._baseIndent :
|
|
222
|
-
if (line.endsWith(
|
|
236
|
+
const callCarryOver = line.startsWith(".set");
|
|
237
|
+
line = spaces + extraSpaces + (callCarryOver ? this._baseIndent : "") + line;
|
|
238
|
+
if (line.endsWith("{") || line.endsWith("["))
|
|
239
|
+
spaces += this._baseIndent;
|
|
223
240
|
return this._baseOffset + line;
|
|
224
|
-
}).join(
|
|
241
|
+
}).join("\n");
|
|
225
242
|
}
|
|
226
243
|
}
|
|
227
|
-
exports.JavaScriptFormatter = JavaScriptFormatter;
|
|
228
244
|
function quote(text) {
|
|
229
|
-
return (0,
|
|
245
|
+
return (0, import_utils.escapeWithQuotes)(text, "'");
|
|
230
246
|
}
|
|
231
247
|
function wrapWithStep(description, body) {
|
|
232
248
|
return description ? `await test.step(\`${description}\`, async () => {
|
|
233
249
|
${body}
|
|
234
250
|
});` : body;
|
|
235
251
|
}
|
|
236
|
-
function quoteMultiline(text, indent =
|
|
237
|
-
const escape =
|
|
238
|
-
const lines = text.split(
|
|
239
|
-
if (lines.length === 1)
|
|
240
|
-
|
|
252
|
+
function quoteMultiline(text, indent = " ") {
|
|
253
|
+
const escape = (text2) => text2.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${");
|
|
254
|
+
const lines = text.split("\n");
|
|
255
|
+
if (lines.length === 1)
|
|
256
|
+
return "`" + escape(text) + "`";
|
|
257
|
+
return "`\n" + lines.map((line) => indent + escape(line).replace(/\${/g, "\\${")).join("\n") + `
|
|
258
|
+
${indent}\``;
|
|
241
259
|
}
|
|
242
260
|
function isMultilineString(text) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
261
|
+
return text.match(/`[\S\s]*`/)?.[0].includes("\n");
|
|
262
|
+
}
|
|
263
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
264
|
+
0 && (module.exports = {
|
|
265
|
+
JavaScriptFormatter,
|
|
266
|
+
JavaScriptLanguageGenerator,
|
|
267
|
+
quoteMultiline
|
|
268
|
+
});
|
|
@@ -1,38 +1,39 @@
|
|
|
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 jsonl_exports = {};
|
|
20
|
+
__export(jsonl_exports, {
|
|
21
|
+
JsonlLanguageGenerator: () => JsonlLanguageGenerator
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
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
|
-
|
|
23
|
+
module.exports = __toCommonJS(jsonl_exports);
|
|
24
|
+
var import_utils = require("../../utils");
|
|
24
25
|
class JsonlLanguageGenerator {
|
|
25
26
|
constructor() {
|
|
26
|
-
this.id =
|
|
27
|
-
this.groupName =
|
|
28
|
-
this.name =
|
|
29
|
-
this.highlighter =
|
|
27
|
+
this.id = "jsonl";
|
|
28
|
+
this.groupName = "";
|
|
29
|
+
this.name = "JSONL";
|
|
30
|
+
this.highlighter = "javascript";
|
|
30
31
|
}
|
|
31
32
|
generateAction(actionInContext) {
|
|
32
|
-
const locator = actionInContext.action.selector ? JSON.parse((0,
|
|
33
|
+
const locator = actionInContext.action.selector ? JSON.parse((0, import_utils.asLocator)("jsonl", actionInContext.action.selector)) : void 0;
|
|
33
34
|
const entry = {
|
|
34
35
|
...actionInContext.action,
|
|
35
|
-
|
|
36
|
+
...actionInContext.frame,
|
|
36
37
|
locator
|
|
37
38
|
};
|
|
38
39
|
return JSON.stringify(entry);
|
|
@@ -41,7 +42,10 @@ class JsonlLanguageGenerator {
|
|
|
41
42
|
return JSON.stringify(options);
|
|
42
43
|
}
|
|
43
44
|
generateFooter(saveStorage) {
|
|
44
|
-
return
|
|
45
|
+
return "";
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
+
0 && (module.exports = {
|
|
50
|
+
JsonlLanguageGenerator
|
|
51
|
+
});
|