rechrome 1.18.1 → 1.20.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/README.md +8 -3
- package/package.json +5 -3
- package/rech.js +117 -12
- package/rech.ts +117 -12
- package/serve.js +4 -1
- package/serve.ts +4 -1
- package/vendor/playwright-cli/node_modules/playwright-core/README.md +3 -0
- package/vendor/playwright-cli/node_modules/playwright-core/ThirdPartyNotices.txt +13 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/install_media_pack.ps1 +5 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/install_webkit_wsl.ps1 +33 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh +42 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh +13 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_chrome_beta_win.ps1 +24 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh +42 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh +12 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_chrome_stable_win.ps1 +24 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh +48 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh +11 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_msedge_beta_win.ps1 +23 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh +48 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh +11 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_msedge_dev_win.ps1 +23 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh +48 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh +11 -0
- package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_msedge_stable_win.ps1 +24 -0
- package/vendor/playwright-cli/node_modules/playwright-core/browsers.json +81 -0
- package/vendor/playwright-cli/node_modules/playwright-core/cli.js +21 -0
- package/vendor/playwright-cli/node_modules/playwright-core/index.d.ts +17 -0
- package/vendor/playwright-cli/node_modules/playwright-core/index.js +32 -0
- package/vendor/playwright-cli/node_modules/playwright-core/index.mjs +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/androidServerImpl.js +65 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/bootstrap.js +77 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/browserServerImpl.js +120 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/cli/driver.js +98 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/cli/program.js +597 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/cli/programWithTestStub.js +74 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/android.js +361 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/api.js +137 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/artifact.js +79 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/browser.js +169 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/browserContext.js +583 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/browserType.js +153 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/cdpSession.js +55 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/channelOwner.js +194 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/clientHelper.js +64 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/clientInstrumentation.js +55 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/clientStackTrace.js +69 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/clock.js +68 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/connect.js +143 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/connection.js +322 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/consoleMessage.js +61 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/coverage.js +44 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/debugger.js +57 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/dialog.js +56 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/disposable.js +76 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/download.js +62 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/electron.js +138 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/elementHandle.js +281 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/errors.js +77 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/eventEmitter.js +314 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/events.js +103 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/fetch.js +367 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/fileChooser.js +46 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/fileUtils.js +34 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/frame.js +404 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/harRouter.js +99 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/input.js +84 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/jsHandle.js +105 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/jsonPipe.js +39 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/localUtils.js +60 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/locator.js +367 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/network.js +750 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/page.js +729 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/platform.js +77 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/playwright.js +71 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/screencast.js +48 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/selectors.js +57 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/stream.js +39 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/timeoutSettings.js +79 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/tracing.js +126 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/types.js +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/video.js +68 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/waiter.js +142 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/webError.js +39 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/worker.js +85 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/client/writableStream.js +39 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/coreBundle.js +68170 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/electron/loader.js +67 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/entry/cliDaemon.js +5 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/entry/dashboardApp.js +3 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/entry/mcp.js +10 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/entry/oopBrowserDownload.js +3 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/generated/bindingsControllerSource.js +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/generated/clockSource.js +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/generated/injectedScriptSource.js +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/generated/pollingRecorderSource.js +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/generated/storageScriptSource.js +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/generated/utilityScriptSource.js +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/generated/webSocketMockSource.js +336 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/inProcessFactory.js +60 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/inprocess.js +3 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/mcpBundle.js +81 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/mcpBundleImpl/index.js +91 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/outofprocess.js +76 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/package.js +50 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/protocol/serializers.js +197 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/protocol/validator.js +3034 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/protocol/validatorPrimitives.js +193 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/remote/playwrightConnection.js +131 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/remote/playwrightPipeServer.js +100 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/remote/playwrightServer.js +339 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/remote/playwrightWebSocketServer.js +73 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/remote/serverTransport.js +96 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/android/android.js +465 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/android/backendAdb.js +177 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/artifact.js +127 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiBrowser.js +571 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiChromium.js +162 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiConnection.js +213 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiDeserializer.js +116 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiExecutionContext.js +267 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiFirefox.js +128 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiInput.js +146 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiNetworkManager.js +411 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiOverCdp.js +102 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiPage.js +599 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/bidiPdf.js +106 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/third_party/bidiProtocol.js +24 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/third_party/bidiProtocolCore.js +180 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/third_party/bidiSerializer.js +148 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/bidi/third_party/firefoxPrefs.js +261 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/browser.js +223 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/browserContext.js +703 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/browserType.js +338 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/callLog.js +82 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/appIcon.png +0 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/chromium.js +399 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/chromiumSwitches.js +104 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crBrowser.js +532 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crConnection.js +197 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crCoverage.js +235 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crDevTools.js +111 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crDragDrop.js +131 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crExecutionContext.js +146 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crInput.js +187 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crNetworkManager.js +708 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crPage.js +1004 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crPdf.js +121 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crProtocolHelper.js +145 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/crServiceWorker.js +137 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/defaultFontFamilies.js +162 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/chromium/protocol.d.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/clock.js +149 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/codegen/csharp.js +327 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/codegen/java.js +274 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/codegen/javascript.js +247 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/codegen/jsonl.js +52 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/codegen/language.js +132 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/codegen/languages.js +68 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/codegen/python.js +279 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/codegen/types.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/console.js +61 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/cookieStore.js +206 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/debugController.js +197 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/debugger.js +120 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/deviceDescriptors.js +39 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/deviceDescriptorsSource.json +1779 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dialog.js +116 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/androidDispatcher.js +325 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/artifactDispatcher.js +118 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/browserContextDispatcher.js +381 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/browserDispatcher.js +124 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/browserTypeDispatcher.js +71 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/cdpSessionDispatcher.js +47 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/debuggerDispatcher.js +80 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/dialogDispatcher.js +47 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/dispatcher.js +364 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/disposableDispatcher.js +39 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/electronDispatcher.js +90 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/frameDispatcher.js +227 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/localUtilsDispatcher.js +185 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/networkDispatchers.js +214 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/pageDispatcher.js +434 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/playwrightDispatcher.js +108 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/streamDispatcher.js +67 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/tracingDispatcher.js +68 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/webSocketRouteDispatcher.js +164 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/disposable.js +41 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/dom.js +823 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/download.js +71 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/electron/electron.js +272 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/electron/loader.js +115 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/errors.js +69 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/fetch.js +621 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/fileChooser.js +43 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/fileUploadUtils.js +84 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/firefox/ffBrowser.js +415 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/firefox/ffConnection.js +142 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/firefox/ffExecutionContext.js +150 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/firefox/ffInput.js +175 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/firefox/ffNetworkManager.js +256 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/firefox/ffPage.js +495 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/firefox/firefox.js +114 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/firefox/protocol.d.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/formData.js +147 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/frameSelectors.js +160 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/frames.js +1495 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/har/harRecorder.js +147 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/har/harTracer.js +608 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/harBackend.js +157 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/helper.js +96 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/index.js +58 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/input.js +277 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/instrumentation.js +72 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/javascript.js +291 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/launchApp.js +127 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/localUtils.js +214 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/macEditingCommands.js +143 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/network.js +668 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/page.js +884 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/pipeTransport.js +89 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/playwright.js +69 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/progress.js +136 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/protocolError.js +52 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/recorder/chat.js +161 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/recorder/recorderApp.js +367 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/recorder/recorderRunner.js +138 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/recorder/recorderUtils.js +157 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/recorder/throttledFile.js +57 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/recorder.js +540 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/registry/browserFetcher.js +177 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/registry/dependencies.js +371 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/registry/index.js +1395 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/registry/nativeDeps.js +1281 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/registry/oopDownloadBrowserMain.js +127 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/screencast.js +216 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/screenshotter.js +333 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/selectors.js +112 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/socksClientCertificatesInterceptor.js +383 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/socksInterceptor.js +95 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/trace/recorder/snapshotter.js +147 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/trace/recorder/snapshotterInjected.js +561 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/trace/recorder/tracing.js +607 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/trace/viewer/traceViewer.js +244 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/transport.js +181 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/types.js +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/usKeyboardLayout.js +152 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/ascii.js +44 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/comparators.js +139 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/crypto.js +216 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/debug.js +42 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/debugLogger.js +122 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/disposable.js +32 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/env.js +73 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/eventsHelper.js +41 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/expectUtils.js +123 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/fileUtils.js +191 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/happyEyeballs.js +207 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/hostPlatform.js +123 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/httpServer.js +205 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/image_tools/colorUtils.js +89 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/image_tools/compare.js +109 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/image_tools/imageChannel.js +78 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/image_tools/stats.js +102 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/linuxUtils.js +71 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/network.js +244 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/nodePlatform.js +154 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/pipeTransport.js +84 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/processLauncher.js +243 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/profiler.js +65 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/socksProxy.js +511 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/spawnAsync.js +41 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/task.js +51 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/userAgent.js +98 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/wsServer.js +121 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/zipFile.js +74 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/utils/zones.js +57 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/videoRecorder.js +133 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/protocol.d.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/webkit.js +108 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/wkBrowser.js +331 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/wkConnection.js +144 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/wkExecutionContext.js +154 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/wkInput.js +181 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/wkInterceptableRequest.js +197 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/wkPage.js +1164 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/wkProvisionalPage.js +83 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/server/webkit/wkWorkers.js +106 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/serverRegistry.js +7343 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/serverRegistry.js.LICENSE +354 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/third_party/pixelmatch.js +255 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/browserBackend.js +79 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/common.js +63 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/config.js +41 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/console.js +66 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/context.js +290 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/cookies.js +152 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/devtools.js +69 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/dialogs.js +59 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/evaluate.js +64 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/files.js +60 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/form.js +64 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/keyboard.js +155 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/logFile.js +95 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/mouse.js +168 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/navigate.js +106 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/network.js +135 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/pdf.js +48 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/response.js +302 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/route.js +140 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/runCode.js +76 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/screenshot.js +88 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/sessionLog.js +74 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/snapshot.js +208 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/storage.js +67 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/tab.js +445 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/tabs.js +67 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/tool.js +47 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/tools.js +102 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/tracing.js +75 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/utils.js +83 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/verify.js +151 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/video.js +89 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/wait.js +63 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/backend/webstorage.js +223 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/channelSessions.js +141 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/cli.js +6 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/help.json +679 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/minimist.js +128 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/output.js +343 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/program.js +380 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/registry.js +176 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/session.js +265 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/SKILL.md +388 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/element-attributes.md +23 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/playwright-tests.md +39 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/request-mocking.md +87 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/running-code.md +241 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/session-management.md +225 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/spec-driven-testing.md +305 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/storage-state.md +275 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/test-generation.md +134 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/tracing.md +139 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-client/skill/references/video-recording.md +143 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-daemon/command.js +73 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-daemon/commands.js +933 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-daemon/daemon.js +178 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-daemon/helpGenerator.js +173 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/cli-daemon/program.js +118 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/dashboard/appIcon.png +0 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/dashboard/dashboardApp.js +286 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/dashboard/dashboardController.js +296 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/exports.js +60 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/browserFactory.js +233 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/cdpRelay.js +356 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/cli-stub.js +7 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/config.d.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/config.js +401 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/configIni.js +189 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/extensionContextFactory.js +59 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/index.js +62 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/log.js +35 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/program.js +107 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/protocol.js +28 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/mcp/watchdog.js +44 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/SKILL.md +171 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/installSkill.js +48 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceActions.js +142 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceAttachments.js +69 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceCli.js +80 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceConsole.js +97 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceErrors.js +55 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceOpen.js +69 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceParser.js +96 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceRequests.js +158 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceScreenshot.js +68 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceSnapshot.js +149 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/trace/traceUtils.js +135 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/utils/connect.js +32 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/utils/extension.js +78 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/utils/mcp/http.js +152 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/utils/mcp/server.js +230 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/utils/mcp/tool.js +47 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/tools/utils/socketConnection.js +108 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/ariaSnapshot.js +455 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/assert.js +31 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/colors.js +72 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/cssParser.js +245 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/cssTokenizer.js +1051 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/formatUtils.js +64 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/headers.js +53 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/imageUtils.js +141 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/locatorGenerators.js +689 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/locatorParser.js +176 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/locatorUtils.js +81 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/lruCache.js +51 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/manualPromise.js +114 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/mimeType.js +464 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/multimap.js +80 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/protocolFormatter.js +81 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/protocolMetainfo.js +342 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/rtti.js +43 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/selectorParser.js +386 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/semaphore.js +54 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/stackTrace.js +158 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/stringUtils.js +204 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/time.js +49 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/timeoutRunner.js +66 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/entries.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/snapshotRenderer.js +502 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/snapshotServer.js +120 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/snapshotStorage.js +89 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/traceLoader.js +131 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/traceModel.js +366 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/traceModernizer.js +401 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/traceUtils.js +58 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV3.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV4.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV5.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV6.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV7.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/trace/versions/traceV8.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/types.js +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/urlMatch.js +243 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/utilityScriptSerializers.js +262 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils/isomorphic/yaml.js +84 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utils.js +113 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utilsBundle.js +86478 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +2058 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/utilsBundleImpl/index.js +218 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/dashboard/assets/codicon-DCmgc-ay.ttf +0 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-1bWoP6pv.svg +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-beta-k3eOH_eK.svg +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-nightly-Cp5nfeDT.svg +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/dashboard/assets/index-BY2S1tHT.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/dashboard/assets/index-DpEq2p62.js +52 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/dashboard/assets/safari-na3_-uQk.svg +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/dashboard/index.html +29 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/dashboard/playwright-logo.svg +24 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/htmlReport/index.html +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/htmlReport/report.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/htmlReport/report.js +72 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-BHYmBp6h.js +32 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-DYBRYzYX.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/recorder/assets/index-4ZiSSCmn.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/recorder/assets/index-DA10QRaq.js +193 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/recorder/index.html +29 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/recorder/playwright-logo.svg +9 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-BRrOnXSS.js +32 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-BtGnd8kr.js +32 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-CnvO0fko.js +32 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-BkMbME_o.js +262 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-BoN8TZYy.js +262 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-CN3cwLGD.js +262 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/assets/urlMatch-BYQrIQwR.js +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.B4dS75f0.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.BDKsFU3c.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.DcQiWcKS.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/index.B2ffe31o.js +2 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/index.CzXZzn5A.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/index.Df3uWWXm.js +2 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/index.PqVYgODr.js +2 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/index.html +44 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/manifest.webmanifest +16 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/playwright-logo.svg +9 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/snapshot.html +10 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/snapshot.v8KI4P3m.js +2 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +5 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/uiMode.B-IwVgWY.js +6 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/uiMode.BZQ54Kgt.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CmAqMvmy.js +6 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +18 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/uiMode.u9Eas4CP.js +6 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/xdg-open +1066 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/zipBundle.js +34 -0
- package/vendor/playwright-cli/node_modules/playwright-core/lib/zipBundleImpl.js +5 -0
- package/vendor/playwright-cli/node_modules/playwright-core/package.json +34 -0
- package/vendor/playwright-cli/node_modules/playwright-core/types/protocol.d.ts +24565 -0
- package/vendor/playwright-cli/node_modules/playwright-core/types/structs.d.ts +45 -0
- package/vendor/playwright-cli/node_modules/playwright-core/types/types.d.ts +23879 -0
- package/vendor/playwright-cli/package.json +6 -0
- package/vendor/playwright-cli/playwright-cli.js +50 -0
package/README.md
CHANGED
|
@@ -16,9 +16,14 @@ Built on top of [playwright-multi-tab](https://github.com/snomiao/playwright-mul
|
|
|
16
16
|
## Prerequisites
|
|
17
17
|
|
|
18
18
|
- [Bun](https://bun.sh/) ≥ 1.0
|
|
19
|
-
- [playwright-cli](https://www.npmjs.com/package/playwright-cli) (works out of the box)
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
The patched multi-tab playwright CLI that drives Chrome (with multi-tab, multi-session, and
|
|
21
|
+
per-profile `PLAYWRIGHT_MCP_PROFILE_DIRECTORY` support) is **bundled inside the package** — no
|
|
22
|
+
separate install, no `playwright` browser-binary download. `bun i -g rechrome` is enough for
|
|
23
|
+
`rechrome setup` to work out of the box.
|
|
24
|
+
|
|
25
|
+
> **Advanced:** override the bundled CLI with `PLAYWRIGHT_CLI=<cmd>` in your `.env.local` (e.g. to
|
|
26
|
+
> point at a local checkout of the [playwright-cli fork](https://github.com/snomiao/playwright-cli)).
|
|
22
27
|
|
|
23
28
|
## Install
|
|
24
29
|
|
|
@@ -113,7 +118,7 @@ cp .env.example .env.local
|
|
|
113
118
|
| Variable | Description | Default |
|
|
114
119
|
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
|
|
115
120
|
| `RECHROME_URL` | Connection URL (auto-generated by `rech serve`). Also accepts `?extension_id=`, `?token=`, `?profile=` query params | — |
|
|
116
|
-
| `PLAYWRIGHT_CLI` |
|
|
121
|
+
| `PLAYWRIGHT_CLI` | Override the playwright-cli command/path (defaults to the bundled `@playwright/cli`; set this only for a custom or forked CLI) | bundled `@playwright/cli` |
|
|
117
122
|
| `RECH_HOST` | Server bind address | `127.0.0.1` |
|
|
118
123
|
| `PLAYWRIGHT_MCP_EXTENSION_ID` | Chrome extension ID (client overrides server) | — |
|
|
119
124
|
| `PLAYWRIGHT_MCP_EXTENSION_TOKEN` | Chrome extension token — profile-specific, get it from the extension's status page (client overrides server) | — |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rechrome",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/snomiao/rechrome.git"
|
|
@@ -17,13 +17,15 @@
|
|
|
17
17
|
"rech.js",
|
|
18
18
|
"rech.ts",
|
|
19
19
|
"serve.js",
|
|
20
|
-
"serve.ts"
|
|
20
|
+
"serve.ts",
|
|
21
|
+
"vendor"
|
|
21
22
|
],
|
|
22
23
|
"type": "module",
|
|
23
24
|
"scripts": {
|
|
24
25
|
"serve": "bun run rech.ts serve",
|
|
25
26
|
"test": "bun test",
|
|
26
|
-
"
|
|
27
|
+
"vendor-cli": "bash scripts/vendor-cli.sh",
|
|
28
|
+
"prepublishOnly": "bash scripts/vendor-cli.sh && sed 's/\\.ts/\\.js/g' rech.ts > rech.js && sed 's/\\.ts/\\.js/g' serve.ts > serve.js"
|
|
27
29
|
},
|
|
28
30
|
"devDependencies": {
|
|
29
31
|
"@types/bun": "latest"
|
package/rech.js
CHANGED
|
@@ -5,6 +5,7 @@ import { randomBytes } from "crypto";
|
|
|
5
5
|
import { mkdirSync, appendFileSync, existsSync, realpathSync, accessSync, cpSync, unlinkSync, readFileSync, readdirSync, constants as fsConstants } from "fs";
|
|
6
6
|
import { hostname, homedir } from "os";
|
|
7
7
|
import { join, basename, dirname } from "path";
|
|
8
|
+
import { spawn as cpSpawn } from "child_process";
|
|
8
9
|
|
|
9
10
|
export const ENV_KEY = "RECHROME_URL";
|
|
10
11
|
export const DEFAULT_PORT = 13775;
|
|
@@ -602,6 +603,27 @@ async function pmList(): Promise<string> {
|
|
|
602
603
|
return await new Response(proc.stdout).text();
|
|
603
604
|
}
|
|
604
605
|
|
|
606
|
+
// Resolve which playwright-cli the daemon runs to drive Chrome. Priority:
|
|
607
|
+
// 1. PLAYWRIGHT_CLI env override — explicit, already a full command string.
|
|
608
|
+
// 2. Vendored fork in a git checkout (lib/playwright-cli/playwright-cli.js) — the patched
|
|
609
|
+
// multi-tab CLI + patched playwright-core (PLAYWRIGHT_MCP_PROFILE_DIRECTORY etc.).
|
|
610
|
+
// 3. The fork bundled into the npm tarball (vendor/playwright-cli/playwright-cli.js, produced by
|
|
611
|
+
// scripts/vendor-cli.sh at prepublish). This is the batteries-included default for
|
|
612
|
+
// `bun i -g rechrome`: self-contained, no @playwright/cli dep, no browser-binary download.
|
|
613
|
+
// 4. Bare `playwright-cli-multi-tab` on PATH — legacy fallback for a pre-existing global link.
|
|
614
|
+
// A resolved .js entry is run through `node` on Windows (which can't exec a .js by shebang) and
|
|
615
|
+
// bare on POSIX (its `#!/usr/bin/env node` shebang runs it under node, which the relay handshake
|
|
616
|
+
// needs — see daemonInstall). serve splits the result on spaces into argv.
|
|
617
|
+
export function resolvePlaywrightCli(): string {
|
|
618
|
+
if (process.env.PLAYWRIGHT_CLI) return process.env.PLAYWRIGHT_CLI;
|
|
619
|
+
const jsEntry = [
|
|
620
|
+
join(import.meta.dir, "lib/playwright-cli/playwright-cli.js"),
|
|
621
|
+
join(import.meta.dir, "vendor/playwright-cli/playwright-cli.js"),
|
|
622
|
+
].find(existsSync);
|
|
623
|
+
if (jsEntry) return IS_WINDOWS ? `node ${jsEntry}` : jsEntry;
|
|
624
|
+
return "playwright-cli-multi-tab";
|
|
625
|
+
}
|
|
626
|
+
|
|
605
627
|
export async function daemonInstall(serveUrl: string): Promise<void> {
|
|
606
628
|
// Persist the URL to ~/.env.local before starting the daemon. The daemon's
|
|
607
629
|
// loadEnv() walks CWD→root reading .env.local files and unconditionally
|
|
@@ -618,20 +640,14 @@ export async function daemonInstall(serveUrl: string): Promise<void> {
|
|
|
618
640
|
const bunBin = Bun.which("bun") ?? process.execPath;
|
|
619
641
|
const rechScript = import.meta.filename;
|
|
620
642
|
|
|
621
|
-
// Resolve PLAYWRIGHT_CLI
|
|
622
|
-
//
|
|
623
|
-
// can't exec a .js directly, so it must be invoked through an interpreter. It MUST be node, not
|
|
624
|
-
// bun: the cliDaemon inherits its parent's runtime (spawned via process.execPath), and the
|
|
643
|
+
// Resolve PLAYWRIGHT_CLI (see resolvePlaywrightCli). The resolved .js entry MUST run under node,
|
|
644
|
+
// not bun: the cliDaemon inherits its parent's runtime (spawned via process.execPath), and the
|
|
625
645
|
// extension-bridge relay's WebSocket handshake hangs under Bun (the extension WS connects but
|
|
626
646
|
// `extension.initialized` never completes) — under node it completes, matching the POSIX shebang.
|
|
627
|
-
// serve splits PLAYWRIGHT_CLI on spaces into argv, so we use bare `node` (the node
|
|
628
|
-
// under "Program Files" and contains a space); node must be on the daemon's PATH, same
|
|
629
|
-
// shebang's `env node` assumption. The repo
|
|
630
|
-
const
|
|
631
|
-
const resolvedPlaywrightCli = process.env.PLAYWRIGHT_CLI
|
|
632
|
-
|| (existsSync(bundledForkCli)
|
|
633
|
-
? (IS_WINDOWS ? `node ${bundledForkCli}` : bundledForkCli)
|
|
634
|
-
: "playwright-cli-multi-tab");
|
|
647
|
+
// serve splits PLAYWRIGHT_CLI on spaces into argv, so on Windows we use bare `node` (the node
|
|
648
|
+
// path lives under "Program Files" and contains a space); node must be on the daemon's PATH, same
|
|
649
|
+
// as the shebang's `env node` assumption. The repo / install paths contain no spaces.
|
|
650
|
+
const resolvedPlaywrightCli = resolvePlaywrightCli();
|
|
635
651
|
|
|
636
652
|
// Environment the managed `serve` process must run with.
|
|
637
653
|
const daemonEnv: Record<string, string> = {
|
|
@@ -685,6 +701,87 @@ async function daemonUninstall(): Promise<void> {
|
|
|
685
701
|
console.log(`Removed ${PM_BIN} process: ${PM_PROCESS_NAME}`);
|
|
686
702
|
}
|
|
687
703
|
|
|
704
|
+
// ── Native tray (menu-bar / system-tray) icon ───────────────────────────────
|
|
705
|
+
// The tray is a small native binary (tray/, Rust). `rech` just supervises it:
|
|
706
|
+
// locate the binary and launch it detached (singleton via a pidfile).
|
|
707
|
+
// `rech tray hide` / the menu "Hide" item both kill the process;
|
|
708
|
+
// `rech tray show` starts a fresh one.
|
|
709
|
+
const TRAY_PID_FILE = join(RECH_HOME_DIR, "tray.pid");
|
|
710
|
+
|
|
711
|
+
// A desktop GUI must be present. Linux needs an X11/Wayland display; a headless
|
|
712
|
+
// box (SSH, CI, container) has neither, so the tray is skipped. macOS/Windows
|
|
713
|
+
// desktop sessions effectively always have one (the binary bypasses if not).
|
|
714
|
+
function trayGuiAvailable(): boolean {
|
|
715
|
+
if (process.platform === "linux")
|
|
716
|
+
return !!(process.env.DISPLAY || process.env.WAYLAND_DISPLAY);
|
|
717
|
+
return true;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
// Resolve the tray binary: explicit override, then the copy shipped beside
|
|
721
|
+
// `rech` (packaged installs), then the dev cargo build, then PATH.
|
|
722
|
+
function findTrayBinary(): string | undefined {
|
|
723
|
+
const ext = IS_WINDOWS ? ".exe" : "";
|
|
724
|
+
const candidates = [
|
|
725
|
+
process.env.RECH_TRAY_BIN,
|
|
726
|
+
join(import.meta.dir, "tray", `rechrome-tray${ext}`),
|
|
727
|
+
join(import.meta.dir, "tray", "target", "release", `rechrome-tray${ext}`),
|
|
728
|
+
join(import.meta.dir, "tray", "target", "debug", `rechrome-tray${ext}`),
|
|
729
|
+
].filter(Boolean) as string[];
|
|
730
|
+
for (const c of candidates) if (existsSync(c)) return c;
|
|
731
|
+
return Bun.which(`rechrome-tray${ext}`) ?? undefined;
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
function isTrayRunning(): boolean {
|
|
735
|
+
try {
|
|
736
|
+
const pid = parseInt(readFileSync(TRAY_PID_FILE, "utf8"), 10);
|
|
737
|
+
if (!Number.isFinite(pid)) return false;
|
|
738
|
+
process.kill(pid, 0); // signal 0 = liveness probe, doesn't actually signal
|
|
739
|
+
return true;
|
|
740
|
+
} catch {
|
|
741
|
+
return false;
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
// Start (and "show") the tray. quiet=true is used by `rech setup` auto-start so
|
|
746
|
+
// a missing binary / headless box stays silent rather than noisy.
|
|
747
|
+
async function startTray({ quiet = false }: { quiet?: boolean } = {}): Promise<void> {
|
|
748
|
+
if (!trayGuiAvailable()) {
|
|
749
|
+
if (!quiet) console.log("tray: no desktop GUI session detected — skipped.");
|
|
750
|
+
return;
|
|
751
|
+
}
|
|
752
|
+
if (isTrayRunning()) {
|
|
753
|
+
if (!quiet) console.log("tray: already running.");
|
|
754
|
+
return;
|
|
755
|
+
}
|
|
756
|
+
const bin = findTrayBinary();
|
|
757
|
+
if (!bin) {
|
|
758
|
+
if (!quiet)
|
|
759
|
+
console.error("tray: binary not found. Build it with: (cd tray && cargo build --release)");
|
|
760
|
+
return;
|
|
761
|
+
}
|
|
762
|
+
const child = cpSpawn(bin, [], { detached: true, stdio: "ignore" });
|
|
763
|
+
child.unref(); // outlive this CLI invocation
|
|
764
|
+
if (child.pid) await Bun.write(TRAY_PID_FILE, String(child.pid));
|
|
765
|
+
if (!quiet) console.log(`tray: started (pid ${child.pid}).`);
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
function stopTray(): void {
|
|
769
|
+
if (!isTrayRunning()) { console.log("tray: not running."); return; }
|
|
770
|
+
try { process.kill(parseInt(readFileSync(TRAY_PID_FILE, "utf8"), 10)); } catch {}
|
|
771
|
+
try { unlinkSync(TRAY_PID_FILE); } catch {}
|
|
772
|
+
console.log("tray: stopped. Run `rech tray show` to restore.");
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
async function trayCommand(sub?: string): Promise<void> {
|
|
776
|
+
switch (sub) {
|
|
777
|
+
case "hide": case "stop": case "quit": stopTray(); break;
|
|
778
|
+
case undefined: case "": case "show": case "start": await startTray(); break;
|
|
779
|
+
default:
|
|
780
|
+
console.error(`Unknown tray command: "${sub}". Usage: rech tray [show|hide|stop]`);
|
|
781
|
+
process.exit(1);
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
|
|
688
785
|
// Read the extension's auth token straight from a profile's localStorage LevelDB. Read-only
|
|
689
786
|
// (we never take LevelDB's lock), so it's safe while the user's Chrome is running. The token is
|
|
690
787
|
// the value of the `auth-token` key under the extension origin, stored as a 0x01 (Latin-1)
|
|
@@ -1292,6 +1389,9 @@ Usage:
|
|
|
1292
1389
|
--load-extension, so this is a clean browser, not your
|
|
1293
1390
|
real Chrome. For your real Chrome, use \`rech setup\`
|
|
1294
1391
|
rech status Show current configuration and serve health
|
|
1392
|
+
rech tray [show|hide|stop] Native menu-bar/tray icon for the serve daemon
|
|
1393
|
+
(show=start, hide/show toggle, stop=quit). Auto-
|
|
1394
|
+
starts after \`rech setup\`; skipped with no GUI
|
|
1295
1395
|
rech uninstall Remove the serve daemon and clear config
|
|
1296
1396
|
rech serve Start the serve server manually (foreground)
|
|
1297
1397
|
rech profiles List Chrome profiles
|
|
@@ -1333,6 +1433,11 @@ if (import.meta.main) {
|
|
|
1333
1433
|
: args.find(a => a.startsWith("--token="))?.slice("--token=".length))
|
|
1334
1434
|
?? process.env.RECH_TOKEN;
|
|
1335
1435
|
await setup({ profile, token }); // setup closes envWatcher itself before printing Done
|
|
1436
|
+
// Auto-start the tray (best-effort, silent on headless / missing binary).
|
|
1437
|
+
await startTray({ quiet: true }).catch(() => {});
|
|
1438
|
+
} else if (cmd === "tray") {
|
|
1439
|
+
await trayCommand(args[1]?.toLowerCase());
|
|
1440
|
+
envWatcher?.close();
|
|
1336
1441
|
} else if (cmd === "provision-profile") {
|
|
1337
1442
|
const name = args.find((a, i) => i > 0 && !a.startsWith("-"));
|
|
1338
1443
|
const headed = args.includes("--headed");
|
package/rech.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { randomBytes } from "crypto";
|
|
|
5
5
|
import { mkdirSync, appendFileSync, existsSync, realpathSync, accessSync, cpSync, unlinkSync, readFileSync, readdirSync, constants as fsConstants } from "fs";
|
|
6
6
|
import { hostname, homedir } from "os";
|
|
7
7
|
import { join, basename, dirname } from "path";
|
|
8
|
+
import { spawn as cpSpawn } from "child_process";
|
|
8
9
|
|
|
9
10
|
export const ENV_KEY = "RECHROME_URL";
|
|
10
11
|
export const DEFAULT_PORT = 13775;
|
|
@@ -602,6 +603,27 @@ async function pmList(): Promise<string> {
|
|
|
602
603
|
return await new Response(proc.stdout).text();
|
|
603
604
|
}
|
|
604
605
|
|
|
606
|
+
// Resolve which playwright-cli the daemon runs to drive Chrome. Priority:
|
|
607
|
+
// 1. PLAYWRIGHT_CLI env override — explicit, already a full command string.
|
|
608
|
+
// 2. Vendored fork in a git checkout (lib/playwright-cli/playwright-cli.js) — the patched
|
|
609
|
+
// multi-tab CLI + patched playwright-core (PLAYWRIGHT_MCP_PROFILE_DIRECTORY etc.).
|
|
610
|
+
// 3. The fork bundled into the npm tarball (vendor/playwright-cli/playwright-cli.js, produced by
|
|
611
|
+
// scripts/vendor-cli.sh at prepublish). This is the batteries-included default for
|
|
612
|
+
// `bun i -g rechrome`: self-contained, no @playwright/cli dep, no browser-binary download.
|
|
613
|
+
// 4. Bare `playwright-cli-multi-tab` on PATH — legacy fallback for a pre-existing global link.
|
|
614
|
+
// A resolved .js entry is run through `node` on Windows (which can't exec a .js by shebang) and
|
|
615
|
+
// bare on POSIX (its `#!/usr/bin/env node` shebang runs it under node, which the relay handshake
|
|
616
|
+
// needs — see daemonInstall). serve splits the result on spaces into argv.
|
|
617
|
+
export function resolvePlaywrightCli(): string {
|
|
618
|
+
if (process.env.PLAYWRIGHT_CLI) return process.env.PLAYWRIGHT_CLI;
|
|
619
|
+
const jsEntry = [
|
|
620
|
+
join(import.meta.dir, "lib/playwright-cli/playwright-cli.js"),
|
|
621
|
+
join(import.meta.dir, "vendor/playwright-cli/playwright-cli.js"),
|
|
622
|
+
].find(existsSync);
|
|
623
|
+
if (jsEntry) return IS_WINDOWS ? `node ${jsEntry}` : jsEntry;
|
|
624
|
+
return "playwright-cli-multi-tab";
|
|
625
|
+
}
|
|
626
|
+
|
|
605
627
|
export async function daemonInstall(serveUrl: string): Promise<void> {
|
|
606
628
|
// Persist the URL to ~/.env.local before starting the daemon. The daemon's
|
|
607
629
|
// loadEnv() walks CWD→root reading .env.local files and unconditionally
|
|
@@ -618,20 +640,14 @@ export async function daemonInstall(serveUrl: string): Promise<void> {
|
|
|
618
640
|
const bunBin = Bun.which("bun") ?? process.execPath;
|
|
619
641
|
const rechScript = import.meta.filename;
|
|
620
642
|
|
|
621
|
-
// Resolve PLAYWRIGHT_CLI
|
|
622
|
-
//
|
|
623
|
-
// can't exec a .js directly, so it must be invoked through an interpreter. It MUST be node, not
|
|
624
|
-
// bun: the cliDaemon inherits its parent's runtime (spawned via process.execPath), and the
|
|
643
|
+
// Resolve PLAYWRIGHT_CLI (see resolvePlaywrightCli). The resolved .js entry MUST run under node,
|
|
644
|
+
// not bun: the cliDaemon inherits its parent's runtime (spawned via process.execPath), and the
|
|
625
645
|
// extension-bridge relay's WebSocket handshake hangs under Bun (the extension WS connects but
|
|
626
646
|
// `extension.initialized` never completes) — under node it completes, matching the POSIX shebang.
|
|
627
|
-
// serve splits PLAYWRIGHT_CLI on spaces into argv, so we use bare `node` (the node
|
|
628
|
-
// under "Program Files" and contains a space); node must be on the daemon's PATH, same
|
|
629
|
-
// shebang's `env node` assumption. The repo
|
|
630
|
-
const
|
|
631
|
-
const resolvedPlaywrightCli = process.env.PLAYWRIGHT_CLI
|
|
632
|
-
|| (existsSync(bundledForkCli)
|
|
633
|
-
? (IS_WINDOWS ? `node ${bundledForkCli}` : bundledForkCli)
|
|
634
|
-
: "playwright-cli-multi-tab");
|
|
647
|
+
// serve splits PLAYWRIGHT_CLI on spaces into argv, so on Windows we use bare `node` (the node
|
|
648
|
+
// path lives under "Program Files" and contains a space); node must be on the daemon's PATH, same
|
|
649
|
+
// as the shebang's `env node` assumption. The repo / install paths contain no spaces.
|
|
650
|
+
const resolvedPlaywrightCli = resolvePlaywrightCli();
|
|
635
651
|
|
|
636
652
|
// Environment the managed `serve` process must run with.
|
|
637
653
|
const daemonEnv: Record<string, string> = {
|
|
@@ -685,6 +701,87 @@ async function daemonUninstall(): Promise<void> {
|
|
|
685
701
|
console.log(`Removed ${PM_BIN} process: ${PM_PROCESS_NAME}`);
|
|
686
702
|
}
|
|
687
703
|
|
|
704
|
+
// ── Native tray (menu-bar / system-tray) icon ───────────────────────────────
|
|
705
|
+
// The tray is a small native binary (tray/, Rust). `rech` just supervises it:
|
|
706
|
+
// locate the binary and launch it detached (singleton via a pidfile).
|
|
707
|
+
// `rech tray hide` / the menu "Hide" item both kill the process;
|
|
708
|
+
// `rech tray show` starts a fresh one.
|
|
709
|
+
const TRAY_PID_FILE = join(RECH_HOME_DIR, "tray.pid");
|
|
710
|
+
|
|
711
|
+
// A desktop GUI must be present. Linux needs an X11/Wayland display; a headless
|
|
712
|
+
// box (SSH, CI, container) has neither, so the tray is skipped. macOS/Windows
|
|
713
|
+
// desktop sessions effectively always have one (the binary bypasses if not).
|
|
714
|
+
function trayGuiAvailable(): boolean {
|
|
715
|
+
if (process.platform === "linux")
|
|
716
|
+
return !!(process.env.DISPLAY || process.env.WAYLAND_DISPLAY);
|
|
717
|
+
return true;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
// Resolve the tray binary: explicit override, then the copy shipped beside
|
|
721
|
+
// `rech` (packaged installs), then the dev cargo build, then PATH.
|
|
722
|
+
function findTrayBinary(): string | undefined {
|
|
723
|
+
const ext = IS_WINDOWS ? ".exe" : "";
|
|
724
|
+
const candidates = [
|
|
725
|
+
process.env.RECH_TRAY_BIN,
|
|
726
|
+
join(import.meta.dir, "tray", `rechrome-tray${ext}`),
|
|
727
|
+
join(import.meta.dir, "tray", "target", "release", `rechrome-tray${ext}`),
|
|
728
|
+
join(import.meta.dir, "tray", "target", "debug", `rechrome-tray${ext}`),
|
|
729
|
+
].filter(Boolean) as string[];
|
|
730
|
+
for (const c of candidates) if (existsSync(c)) return c;
|
|
731
|
+
return Bun.which(`rechrome-tray${ext}`) ?? undefined;
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
function isTrayRunning(): boolean {
|
|
735
|
+
try {
|
|
736
|
+
const pid = parseInt(readFileSync(TRAY_PID_FILE, "utf8"), 10);
|
|
737
|
+
if (!Number.isFinite(pid)) return false;
|
|
738
|
+
process.kill(pid, 0); // signal 0 = liveness probe, doesn't actually signal
|
|
739
|
+
return true;
|
|
740
|
+
} catch {
|
|
741
|
+
return false;
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
// Start (and "show") the tray. quiet=true is used by `rech setup` auto-start so
|
|
746
|
+
// a missing binary / headless box stays silent rather than noisy.
|
|
747
|
+
async function startTray({ quiet = false }: { quiet?: boolean } = {}): Promise<void> {
|
|
748
|
+
if (!trayGuiAvailable()) {
|
|
749
|
+
if (!quiet) console.log("tray: no desktop GUI session detected — skipped.");
|
|
750
|
+
return;
|
|
751
|
+
}
|
|
752
|
+
if (isTrayRunning()) {
|
|
753
|
+
if (!quiet) console.log("tray: already running.");
|
|
754
|
+
return;
|
|
755
|
+
}
|
|
756
|
+
const bin = findTrayBinary();
|
|
757
|
+
if (!bin) {
|
|
758
|
+
if (!quiet)
|
|
759
|
+
console.error("tray: binary not found. Build it with: (cd tray && cargo build --release)");
|
|
760
|
+
return;
|
|
761
|
+
}
|
|
762
|
+
const child = cpSpawn(bin, [], { detached: true, stdio: "ignore" });
|
|
763
|
+
child.unref(); // outlive this CLI invocation
|
|
764
|
+
if (child.pid) await Bun.write(TRAY_PID_FILE, String(child.pid));
|
|
765
|
+
if (!quiet) console.log(`tray: started (pid ${child.pid}).`);
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
function stopTray(): void {
|
|
769
|
+
if (!isTrayRunning()) { console.log("tray: not running."); return; }
|
|
770
|
+
try { process.kill(parseInt(readFileSync(TRAY_PID_FILE, "utf8"), 10)); } catch {}
|
|
771
|
+
try { unlinkSync(TRAY_PID_FILE); } catch {}
|
|
772
|
+
console.log("tray: stopped. Run `rech tray show` to restore.");
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
async function trayCommand(sub?: string): Promise<void> {
|
|
776
|
+
switch (sub) {
|
|
777
|
+
case "hide": case "stop": case "quit": stopTray(); break;
|
|
778
|
+
case undefined: case "": case "show": case "start": await startTray(); break;
|
|
779
|
+
default:
|
|
780
|
+
console.error(`Unknown tray command: "${sub}". Usage: rech tray [show|hide|stop]`);
|
|
781
|
+
process.exit(1);
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
|
|
688
785
|
// Read the extension's auth token straight from a profile's localStorage LevelDB. Read-only
|
|
689
786
|
// (we never take LevelDB's lock), so it's safe while the user's Chrome is running. The token is
|
|
690
787
|
// the value of the `auth-token` key under the extension origin, stored as a 0x01 (Latin-1)
|
|
@@ -1292,6 +1389,9 @@ Usage:
|
|
|
1292
1389
|
--load-extension, so this is a clean browser, not your
|
|
1293
1390
|
real Chrome. For your real Chrome, use \`rech setup\`
|
|
1294
1391
|
rech status Show current configuration and serve health
|
|
1392
|
+
rech tray [show|hide|stop] Native menu-bar/tray icon for the serve daemon
|
|
1393
|
+
(show=start, hide/show toggle, stop=quit). Auto-
|
|
1394
|
+
starts after \`rech setup\`; skipped with no GUI
|
|
1295
1395
|
rech uninstall Remove the serve daemon and clear config
|
|
1296
1396
|
rech serve Start the serve server manually (foreground)
|
|
1297
1397
|
rech profiles List Chrome profiles
|
|
@@ -1333,6 +1433,11 @@ if (import.meta.main) {
|
|
|
1333
1433
|
: args.find(a => a.startsWith("--token="))?.slice("--token=".length))
|
|
1334
1434
|
?? process.env.RECH_TOKEN;
|
|
1335
1435
|
await setup({ profile, token }); // setup closes envWatcher itself before printing Done
|
|
1436
|
+
// Auto-start the tray (best-effort, silent on headless / missing binary).
|
|
1437
|
+
await startTray({ quiet: true }).catch(() => {});
|
|
1438
|
+
} else if (cmd === "tray") {
|
|
1439
|
+
await trayCommand(args[1]?.toLowerCase());
|
|
1440
|
+
envWatcher?.close();
|
|
1336
1441
|
} else if (cmd === "provision-profile") {
|
|
1337
1442
|
const name = args.find((a, i) => i > 0 && !a.startsWith("-"));
|
|
1338
1443
|
const headed = args.includes("--headed");
|
package/serve.js
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
RECH_DIR,
|
|
11
11
|
HOME,
|
|
12
12
|
PASSTHROUGH_ENV_KEYS,
|
|
13
|
+
resolvePlaywrightCli,
|
|
13
14
|
} from "./rech.js";
|
|
14
15
|
|
|
15
16
|
const TAILSCALE_BIN = process.env.TAILSCALE_BIN || "/Applications/Tailscale.app/Contents/MacOS/Tailscale";
|
|
@@ -233,7 +234,9 @@ export async function serve() {
|
|
|
233
234
|
});
|
|
234
235
|
const namespacedSession = clientSession ? `${sessionId}-${clientSession}` : sessionId;
|
|
235
236
|
|
|
236
|
-
|
|
237
|
+
// daemonInstall bakes PLAYWRIGHT_CLI into the daemon env; resolvePlaywrightCli() is the
|
|
238
|
+
// fallback for a standalone `serve` (it re-runs the same env > fork > @playwright/cli > legacy chain).
|
|
239
|
+
const [bin, ...binArgs] = splitCommand(resolvePlaywrightCli());
|
|
237
240
|
|
|
238
241
|
if (filteredArgs.length === 0) {
|
|
239
242
|
filteredArgs.push("--help");
|
package/serve.ts
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
RECH_DIR,
|
|
11
11
|
HOME,
|
|
12
12
|
PASSTHROUGH_ENV_KEYS,
|
|
13
|
+
resolvePlaywrightCli,
|
|
13
14
|
} from "./rech.ts";
|
|
14
15
|
|
|
15
16
|
const TAILSCALE_BIN = process.env.TAILSCALE_BIN || "/Applications/Tailscale.app/Contents/MacOS/Tailscale";
|
|
@@ -233,7 +234,9 @@ export async function serve() {
|
|
|
233
234
|
});
|
|
234
235
|
const namespacedSession = clientSession ? `${sessionId}-${clientSession}` : sessionId;
|
|
235
236
|
|
|
236
|
-
|
|
237
|
+
// daemonInstall bakes PLAYWRIGHT_CLI into the daemon env; resolvePlaywrightCli() is the
|
|
238
|
+
// fallback for a standalone `serve` (it re-runs the same env > fork > @playwright/cli > legacy chain).
|
|
239
|
+
const [bin, ...binArgs] = splitCommand(resolvePlaywrightCli());
|
|
237
240
|
|
|
238
241
|
if (filteredArgs.length === 0) {
|
|
239
242
|
filteredArgs.push("--help");
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
microsoft/playwright-core
|
|
2
|
+
|
|
3
|
+
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
|
|
4
|
+
|
|
5
|
+
This package bundles third-party software inside individual files under
|
|
6
|
+
`lib/`. Each bundled output has a sidecar `<bundle>.js.LICENSE` file next
|
|
7
|
+
to it listing every npm package whose source was inlined into that
|
|
8
|
+
bundle, together with the full license text for each.
|
|
9
|
+
|
|
10
|
+
For example:
|
|
11
|
+
- lib/utilsBundle.js.LICENSE
|
|
12
|
+
|
|
13
|
+
This project incorporates components from the projects listed below. The original copyright notices and the licenses under which Microsoft received such components are set forth below. Microsoft reserves all rights not expressly granted herein, whether by implication, estoppel or otherwise.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
$ErrorActionPreference = 'Stop'
|
|
2
|
+
|
|
3
|
+
# This script sets up a WSL distribution that will be used to run WebKit.
|
|
4
|
+
|
|
5
|
+
$Distribution = "playwright"
|
|
6
|
+
$Username = "pwuser"
|
|
7
|
+
|
|
8
|
+
$distributions = (wsl --list --quiet) -split "\r?\n"
|
|
9
|
+
if ($distributions -contains $Distribution) {
|
|
10
|
+
Write-Host "WSL distribution '$Distribution' already exists. Skipping installation."
|
|
11
|
+
} else {
|
|
12
|
+
Write-Host "Installing new WSL distribution '$Distribution'..."
|
|
13
|
+
$VhdSize = "10GB"
|
|
14
|
+
wsl --install -d Ubuntu-24.04 --name $Distribution --no-launch --vhd-size $VhdSize
|
|
15
|
+
wsl -d $Distribution -u root adduser --gecos GECOS --disabled-password $Username
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
$pwshDirname = (Resolve-Path -Path $PSScriptRoot).Path;
|
|
19
|
+
$playwrightCoreRoot = Resolve-Path (Join-Path $pwshDirname "..")
|
|
20
|
+
|
|
21
|
+
$initScript = @"
|
|
22
|
+
if [ ! -f "/home/$Username/node/bin/node" ]; then
|
|
23
|
+
mkdir -p /home/$Username/node
|
|
24
|
+
curl -fsSL https://nodejs.org/dist/v22.17.0/node-v22.17.0-linux-x64.tar.xz -o /home/$Username/node/node-v22.17.0-linux-x64.tar.xz
|
|
25
|
+
tar -xJf /home/$Username/node/node-v22.17.0-linux-x64.tar.xz -C /home/$Username/node --strip-components=1
|
|
26
|
+
sudo -u $Username echo 'export PATH=/home/$Username/node/bin:\`$PATH' >> /home/$Username/.profile
|
|
27
|
+
fi
|
|
28
|
+
/home/$Username/node/bin/node cli.js install-deps webkit
|
|
29
|
+
sudo -u $Username PLAYWRIGHT_SKIP_BROWSER_GC=1 /home/$Username/node/bin/node cli.js install webkit
|
|
30
|
+
"@ -replace "\r\n", "`n"
|
|
31
|
+
|
|
32
|
+
wsl -d $Distribution --cd $playwrightCoreRoot -u root -- bash -c "$initScript"
|
|
33
|
+
Write-Host "Done!"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -e
|
|
3
|
+
set -x
|
|
4
|
+
|
|
5
|
+
if [[ $(arch) == "aarch64" ]]; then
|
|
6
|
+
echo "ERROR: not supported on Linux Arm64"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
if [ -z "$PLAYWRIGHT_HOST_PLATFORM_OVERRIDE" ]; then
|
|
11
|
+
if [[ ! -f "/etc/os-release" ]]; then
|
|
12
|
+
echo "ERROR: cannot install on unknown linux distribution (/etc/os-release is missing)"
|
|
13
|
+
exit 1
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
ID=$(bash -c 'source /etc/os-release && echo $ID')
|
|
17
|
+
if [[ "${ID}" != "ubuntu" && "${ID}" != "debian" ]]; then
|
|
18
|
+
echo "ERROR: cannot install on $ID distribution - only Ubuntu and Debian are supported"
|
|
19
|
+
exit 1
|
|
20
|
+
fi
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# 1. make sure to remove old beta if any.
|
|
24
|
+
if dpkg --get-selections | grep -q "^google-chrome-beta[[:space:]]*install$" >/dev/null; then
|
|
25
|
+
apt-get remove -y google-chrome-beta
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
# 2. Update apt lists (needed to install curl and chrome dependencies)
|
|
29
|
+
apt-get update
|
|
30
|
+
|
|
31
|
+
# 3. Install curl to download chrome
|
|
32
|
+
if ! command -v curl >/dev/null; then
|
|
33
|
+
apt-get install -y curl
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# 4. download chrome beta from dl.google.com and install it.
|
|
37
|
+
cd /tmp
|
|
38
|
+
curl -O https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb
|
|
39
|
+
apt-get install -y ./google-chrome-beta_current_amd64.deb
|
|
40
|
+
rm -rf ./google-chrome-beta_current_amd64.deb
|
|
41
|
+
cd -
|
|
42
|
+
google-chrome-beta --version
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -e
|
|
3
|
+
set -x
|
|
4
|
+
|
|
5
|
+
rm -rf "/Applications/Google Chrome Beta.app"
|
|
6
|
+
cd /tmp
|
|
7
|
+
curl --retry 3 -o ./googlechromebeta.dmg https://dl.google.com/chrome/mac/universal/beta/googlechromebeta.dmg
|
|
8
|
+
hdiutil attach -nobrowse -quiet -noautofsck -noautoopen -mountpoint /Volumes/googlechromebeta.dmg ./googlechromebeta.dmg
|
|
9
|
+
cp -pR "/Volumes/googlechromebeta.dmg/Google Chrome Beta.app" /Applications
|
|
10
|
+
hdiutil detach /Volumes/googlechromebeta.dmg
|
|
11
|
+
rm -rf /tmp/googlechromebeta.dmg
|
|
12
|
+
|
|
13
|
+
/Applications/Google\ Chrome\ Beta.app/Contents/MacOS/Google\ Chrome\ Beta --version
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
$ErrorActionPreference = 'Stop'
|
|
2
|
+
|
|
3
|
+
$url = 'https://dl.google.com/tag/s/dl/chrome/install/beta/googlechromebetastandaloneenterprise64.msi'
|
|
4
|
+
|
|
5
|
+
Write-Host "Downloading Google Chrome Beta"
|
|
6
|
+
$wc = New-Object net.webclient
|
|
7
|
+
$msiInstaller = "$env:temp\google-chrome-beta.msi"
|
|
8
|
+
$wc.Downloadfile($url, $msiInstaller)
|
|
9
|
+
|
|
10
|
+
Write-Host "Installing Google Chrome Beta"
|
|
11
|
+
$arguments = "/i `"$msiInstaller`" /quiet"
|
|
12
|
+
Start-Process msiexec.exe -ArgumentList $arguments -Wait
|
|
13
|
+
Remove-Item $msiInstaller
|
|
14
|
+
|
|
15
|
+
$suffix = "\\Google\\Chrome Beta\\Application\\chrome.exe"
|
|
16
|
+
if (Test-Path "${env:ProgramFiles(x86)}$suffix") {
|
|
17
|
+
(Get-Item "${env:ProgramFiles(x86)}$suffix").VersionInfo
|
|
18
|
+
} elseif (Test-Path "${env:ProgramFiles}$suffix") {
|
|
19
|
+
(Get-Item "${env:ProgramFiles}$suffix").VersionInfo
|
|
20
|
+
} else {
|
|
21
|
+
Write-Host "ERROR: Failed to install Google Chrome Beta."
|
|
22
|
+
Write-Host "ERROR: This could be due to insufficient privileges, in which case re-running as Administrator may help."
|
|
23
|
+
exit 1
|
|
24
|
+
}
|
package/vendor/playwright-cli/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -e
|
|
3
|
+
set -x
|
|
4
|
+
|
|
5
|
+
if [[ $(arch) == "aarch64" ]]; then
|
|
6
|
+
echo "ERROR: not supported on Linux Arm64"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
if [ -z "$PLAYWRIGHT_HOST_PLATFORM_OVERRIDE" ]; then
|
|
11
|
+
if [[ ! -f "/etc/os-release" ]]; then
|
|
12
|
+
echo "ERROR: cannot install on unknown linux distribution (/etc/os-release is missing)"
|
|
13
|
+
exit 1
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
ID=$(bash -c 'source /etc/os-release && echo $ID')
|
|
17
|
+
if [[ "${ID}" != "ubuntu" && "${ID}" != "debian" ]]; then
|
|
18
|
+
echo "ERROR: cannot install on $ID distribution - only Ubuntu and Debian are supported"
|
|
19
|
+
exit 1
|
|
20
|
+
fi
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# 1. make sure to remove old stable if any.
|
|
24
|
+
if dpkg --get-selections | grep -q "^google-chrome[[:space:]]*install$" >/dev/null; then
|
|
25
|
+
apt-get remove -y google-chrome
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
# 2. Update apt lists (needed to install curl and chrome dependencies)
|
|
29
|
+
apt-get update
|
|
30
|
+
|
|
31
|
+
# 3. Install curl to download chrome
|
|
32
|
+
if ! command -v curl >/dev/null; then
|
|
33
|
+
apt-get install -y curl
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# 4. download chrome stable from dl.google.com and install it.
|
|
37
|
+
cd /tmp
|
|
38
|
+
curl -O https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
|
39
|
+
apt-get install -y ./google-chrome-stable_current_amd64.deb
|
|
40
|
+
rm -rf ./google-chrome-stable_current_amd64.deb
|
|
41
|
+
cd -
|
|
42
|
+
google-chrome --version
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -e
|
|
3
|
+
set -x
|
|
4
|
+
|
|
5
|
+
rm -rf "/Applications/Google Chrome.app"
|
|
6
|
+
cd /tmp
|
|
7
|
+
curl --retry 3 -o ./googlechrome.dmg https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg
|
|
8
|
+
hdiutil attach -nobrowse -quiet -noautofsck -noautoopen -mountpoint /Volumes/googlechrome.dmg ./googlechrome.dmg
|
|
9
|
+
cp -pR "/Volumes/googlechrome.dmg/Google Chrome.app" /Applications
|
|
10
|
+
hdiutil detach /Volumes/googlechrome.dmg
|
|
11
|
+
rm -rf /tmp/googlechrome.dmg
|
|
12
|
+
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version
|