From c89d5a50ddd860d03cf4798e36f3e47116ec26be Mon Sep 17 00:00:00 2001 From: Joel Einbinder Date: Mon, 11 Oct 2021 10:52:17 -0400 Subject: [PATCH] chore: migrate to monorepo (#9421) --- .eslintignore | 8 +- .github/workflows/infra.yml | 3 +- .../workflows/package_create_playwright.yml | 2 + .github/workflows/publish_canary_driver.yml | 3 +- .github/workflows/publish_canary_npm.yml | 3 +- .github/workflows/publish_release.yml | 6 +- .../roll_browser_into_playwright.yml | 3 +- .github/workflows/tests_docker.yml | 1 + .github/workflows/tests_fyi.yml | 6 +- .github/workflows/tests_primary.yml | 6 +- .github/workflows/tests_secondary.yml | 80 +- .gitignore | 5 +- babel.config.json | 2 +- install-from-github.js | 15 +- {packages => installation-tests}/.gitignore | 0 .../README.md | 0 .../driver-client.js | 2 +- .../electron-app.js | 0 .../esm-playwright-chromium.mjs | 2 +- .../esm-playwright-firefox.mjs | 2 +- .../esm-playwright-test.mjs | 2 +- .../esm-playwright-webkit.mjs | 2 +- .../esm-playwright.mjs | 2 +- .../esm.mjs | 0 .../inspector-custom-executable.js | 0 .../installation-tests.sh | 71 +- .../playwright-test-types.ts | 0 .../read-json-report.js | 0 .../sample.spec.js | 0 .../sanity-electron.js | 0 .../sanity.js | 4 +- .../screencast.js | 0 ...idate-dependencies-skip-executable-path.js | 0 .../validate-dependencies.js | 0 package-lock.json | 7253 +++++++++-------- package.json | 69 +- packages/README.md | 48 - packages/build_package.js | 229 - packages/create-playwright/package-lock.json | 3787 +-------- packages/create-playwright/package.json | 1 - .../tests/integration.spec.ts | 2 +- packages/installation-tests/.gitignore | 1 - packages/playwright-chromium/README.md | 2 - .../index.d.ts | 2 +- .../{common => playwright-chromium}/index.js | 2 +- packages/playwright-chromium/index.mjs | 18 + .../install.js | 5 +- packages/playwright-chromium/package.json | 27 + .../{common => playwright-core}/.npmignore | 6 - .../playwright-core/bin}/PrintDeps.exe | Bin .../playwright-core/bin}/README.md | 0 .../bin}/android-driver-target.apk | Bin .../playwright-core/bin}/android-driver.apk | Bin .../bin}/install_media_pack.ps1 | 0 .../bin}/reinstall_chrome_beta_linux.sh | 0 .../bin}/reinstall_chrome_beta_mac.sh | 0 .../bin}/reinstall_chrome_beta_win.ps1 | 0 .../bin}/reinstall_chrome_stable_linux.sh | 0 .../bin}/reinstall_chrome_stable_mac.sh | 0 .../bin}/reinstall_chrome_stable_win.ps1 | 0 .../bin}/reinstall_msedge_beta_linux.sh | 0 .../bin}/reinstall_msedge_beta_mac.sh | 0 .../bin}/reinstall_msedge_beta_win.ps1 | 0 .../bin}/reinstall_msedge_dev_linux.sh | 0 .../bin}/reinstall_msedge_dev_mac.sh | 0 .../bin}/reinstall_msedge_dev_win.ps1 | 0 .../bin}/reinstall_msedge_stable_mac.sh | 0 .../bin}/reinstall_msedge_stable_win.ps1 | 0 .../playwright-core/browsers.json | 0 packages/playwright-core/cli.js | 17 + .../playwright-core/index.d.ts | 0 index.js => packages/playwright-core/index.js | 0 .../{common => playwright-core}/index.mjs | 0 packages/playwright-core/package.json | 46 + .../playwright-core/src}/.eslintrc.js | 2 +- .../playwright-core/src}/browserServerImpl.ts | 0 .../playwright-core/src}/cli/cli.ts | 11 +- .../playwright-core/src}/cli/driver.ts | 0 .../src}/client/accessibility.ts | 0 .../playwright-core/src}/client/android.ts | 0 .../playwright-core/src}/client/api.ts | 0 .../playwright-core/src}/client/artifact.ts | 0 .../playwright-core/src}/client/browser.ts | 0 .../src}/client/browserContext.ts | 0 .../src}/client/browserType.ts | 0 .../playwright-core/src}/client/cdpSession.ts | 0 .../src}/client/channelOwner.ts | 0 .../src}/client/clientHelper.ts | 0 .../playwright-core/src}/client/connection.ts | 0 .../src}/client/consoleMessage.ts | 0 .../playwright-core/src}/client/coverage.ts | 0 .../playwright-core/src}/client/dialog.ts | 0 .../playwright-core/src}/client/download.ts | 0 .../playwright-core/src}/client/electron.ts | 0 .../src}/client/elementHandle.ts | 0 .../playwright-core/src}/client/events.ts | 0 .../playwright-core/src}/client/fetch.ts | 0 .../src}/client/fileChooser.ts | 0 .../playwright-core/src}/client/frame.ts | 0 .../playwright-core/src}/client/input.ts | 0 .../playwright-core/src}/client/jsHandle.ts | 0 .../playwright-core/src}/client/jsonPipe.ts | 0 .../playwright-core/src}/client/locator.ts | 0 .../playwright-core/src}/client/network.ts | 0 .../playwright-core/src}/client/page.ts | 0 .../playwright-core/src}/client/playwright.ts | 0 .../playwright-core/src}/client/selectors.ts | 0 .../playwright-core/src}/client/stream.ts | 0 .../playwright-core/src}/client/tracing.ts | 0 .../playwright-core/src}/client/types.ts | 0 .../playwright-core/src}/client/video.ts | 0 .../playwright-core/src}/client/waiter.ts | 0 .../playwright-core/src}/client/worker.ts | 0 .../playwright-core/src}/common/types.ts | 0 .../src}/dispatchers/androidDispatcher.ts | 0 .../src}/dispatchers/artifactDispatcher.ts | 0 .../dispatchers/browserContextDispatcher.ts | 0 .../src}/dispatchers/browserDispatcher.ts | 0 .../src}/dispatchers/browserTypeDispatcher.ts | 0 .../src}/dispatchers/cdpSessionDispatcher.ts | 0 .../dispatchers/consoleMessageDispatcher.ts | 0 .../src}/dispatchers/dialogDispatcher.ts | 0 .../src}/dispatchers/dispatcher.ts | 0 .../src}/dispatchers/electronDispatcher.ts | 0 .../dispatchers/elementHandlerDispatcher.ts | 0 .../src}/dispatchers/frameDispatcher.ts | 0 .../src}/dispatchers/jsHandleDispatcher.ts | 0 .../src}/dispatchers/jsonPipeDispatcher.ts | 0 .../src}/dispatchers/networkDispatchers.ts | 0 .../src}/dispatchers/pageDispatcher.ts | 0 .../src}/dispatchers/playwrightDispatcher.ts | 0 .../src}/dispatchers/selectorsDispatcher.ts | 0 .../src}/dispatchers/streamDispatcher.ts | 0 .../playwright-core/src}/grid/gridAgent.ts | 0 .../playwright-core/src}/grid/gridClient.ts | 0 .../playwright-core/src}/grid/gridServer.ts | 2 +- .../playwright-core/src}/grid/gridWorker.ts | 0 .../src}/grid/simpleGridFactory.ts | 2 +- .../playwright-core/src}/inProcessFactory.ts | 0 .../playwright-core/src}/inprocess.ts | 0 .../playwright-core/src}/nativeDeps.ts | 0 .../playwright-core/src}/outofprocess.ts | 0 .../src}/protocol/callMetadata.ts | 0 .../playwright-core/src}/protocol/channels.ts | 0 .../src}/protocol/protocol.yml | 0 .../src}/protocol/serializers.ts | 0 .../src}/protocol/transport.ts | 0 .../src}/protocol/validator.ts | 0 .../src}/protocol/validatorPrimitives.ts | 0 .../src}/remote/playwrightClient.ts | 0 .../src}/remote/playwrightServer.ts | 0 .../src}/server/accessibility.ts | 0 .../src}/server/android/android.ts | 0 .../src}/server/android/backendAdb.ts | 0 .../src}/server/android/driver/.gitignore | 0 .../src}/server/android/driver/app/.gitignore | 0 .../server/android/driver/app/build.gradle | 0 .../android/driver/app/proguard-rules.pro | 0 .../androiddriver/InstrumentedTest.java | 0 .../driver/app/src/main/AndroidManifest.xml | 0 .../drawable-v24/ic_launcher_foreground.xml | 0 .../res/drawable/ic_launcher_background.xml | 0 .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../src}/server/android/driver/build.gradle | 0 .../server/android/driver/gradle.properties | 0 .../driver/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../src}/server/android/driver/gradlew | 0 .../src}/server/android/driver/gradlew.bat | 0 .../server/android/driver/settings.gradle | 0 .../playwright-core/src}/server/artifact.ts | 0 .../playwright-core/src}/server/browser.ts | 0 .../src}/server/browserContext.ts | 0 .../src}/server/browserType.ts | 0 .../src}/server/chromium/appIcon.png | Bin .../src}/server/chromium/chromium.ts | 0 .../src}/server/chromium/crAccessibility.ts | 0 .../src}/server/chromium/crApp.ts | 0 .../src}/server/chromium/crBrowser.ts | 0 .../src}/server/chromium/crConnection.ts | 0 .../src}/server/chromium/crCoverage.ts | 0 .../src}/server/chromium/crDevTools.ts | 0 .../src}/server/chromium/crDragDrop.ts | 0 .../server/chromium/crExecutionContext.ts | 0 .../src}/server/chromium/crInput.ts | 0 .../src}/server/chromium/crNetworkManager.ts | 0 .../src}/server/chromium/crPage.ts | 0 .../src}/server/chromium/crPdf.ts | 0 .../src}/server/chromium/crProtocolHelper.ts | 0 .../src}/server/chromium/protocol.d.ts | 0 .../src}/server/chromium/videoRecorder.ts | 0 .../src}/server/common/README.md | 0 .../src}/server/common/componentUtils.ts | 0 .../src}/server/common/cssParser.ts | 0 .../src}/server/common/cssTokenizer.d.ts | 0 .../src}/server/common/cssTokenizer.js | 0 .../src}/server/common/protocolError.ts | 0 .../src}/server/common/selectorParser.ts | 0 .../server/common/utilityScriptSerializers.ts | 0 .../playwright-core/src}/server/console.ts | 0 .../src}/server/cookieStore.ts | 0 .../src}/server/deviceDescriptors.js | 0 .../src}/server/deviceDescriptorsSource.json | 0 .../playwright-core/src}/server/dialog.ts | 0 .../playwright-core/src}/server/dom.ts | 0 .../playwright-core/src}/server/download.ts | 0 .../src}/server/electron/electron.ts | 0 .../playwright-core/src}/server/fetch.ts | 0 .../src}/server/fileChooser.ts | 0 .../src}/server/firefox/ffAccessibility.ts | 0 .../src}/server/firefox/ffBrowser.ts | 0 .../src}/server/firefox/ffConnection.ts | 0 .../src}/server/firefox/ffExecutionContext.ts | 0 .../src}/server/firefox/ffInput.ts | 0 .../src}/server/firefox/ffNetworkManager.ts | 0 .../src}/server/firefox/ffPage.ts | 0 .../src}/server/firefox/firefox.ts | 0 .../src}/server/firefox/protocol.d.ts | 0 .../playwright-core/src}/server/formData.ts | 0 .../playwright-core/src}/server/frames.ts | 0 .../playwright-core/src}/server/helper.ts | 0 .../src}/server/injected/README.md | 0 .../src}/server/injected/injectedScript.ts | 0 .../server/injected/reactSelectorEngine.ts | 0 .../src}/server/injected/selectorEngine.ts | 0 .../src}/server/injected/selectorEvaluator.ts | 0 .../src}/server/injected/selectorGenerator.ts | 0 .../src}/server/injected/utilityScript.ts | 0 .../src}/server/injected/vueSelectorEngine.ts | 0 .../src}/server/injected/webpack.config.js | 0 .../server/injected/xpathSelectorEngine.ts | 0 .../playwright-core/src}/server/input.ts | 0 .../src}/server/instrumentation.ts | 0 .../playwright-core/src}/server/javascript.ts | 0 .../src}/server/macEditingCommands.ts | 0 .../playwright-core/src}/server/network.ts | 0 .../playwright-core/src}/server/page.ts | 0 .../src}/server/pipeTransport.ts | 0 .../playwright-core/src}/server/playwright.ts | 0 .../playwright-core/src}/server/progress.ts | 0 .../src}/server/screenshotter.ts | 0 .../playwright-core/src}/server/selectors.ts | 0 .../server/snapshot/inMemorySnapshotter.ts | 0 .../src}/server/snapshot/snapshotRenderer.ts | 0 .../src}/server/snapshot/snapshotServer.ts | 0 .../src}/server/snapshot/snapshotStorage.ts | 0 .../src}/server/snapshot/snapshotTypes.ts | 0 .../src}/server/snapshot/snapshotter.ts | 0 .../server/snapshot/snapshotterInjected.ts | 0 .../src}/server/supplements/debugger.ts | 0 .../src}/server/supplements/har/har.ts | 0 .../server/supplements/har/harRecorder.ts | 0 .../src}/server/supplements/har/harTracer.ts | 0 .../server/supplements/injected/consoleApi.ts | 0 .../server/supplements/injected/recorder.ts | 0 .../supplements/recorder/codeGenerator.ts | 0 .../server/supplements/recorder/csharp.ts | 0 .../src}/server/supplements/recorder/java.ts | 0 .../server/supplements/recorder/javascript.ts | 0 .../server/supplements/recorder/language.ts | 0 .../server/supplements/recorder/python.ts | 0 .../supplements/recorder/recorderActions.ts | 0 .../supplements/recorder/recorderApp.ts | 0 .../supplements/recorder/recorderTypes.ts | 0 .../supplements/recorder/recorderUtils.ts | 0 .../src}/server/supplements/recorder/utils.ts | 0 .../server/supplements/recorderSupplement.ts | 0 .../src}/server/trace/common/traceEvents.ts | 0 .../src}/server/trace/recorder/tracing.ts | 0 .../src}/server/trace/viewer/traceModel.ts | 0 .../src}/server/trace/viewer/traceViewer.ts | 0 .../playwright-core/src}/server/transport.ts | 0 .../playwright-core/src}/server/types.ts | 0 .../src}/server/usKeyboardLayout.ts | 0 .../src}/server/webkit/protocol.d.ts | 0 .../src}/server/webkit/webkit.ts | 0 .../src}/server/webkit/wkAccessibility.ts | 0 .../src}/server/webkit/wkBrowser.ts | 0 .../src}/server/webkit/wkConnection.ts | 0 .../src}/server/webkit/wkExecutionContext.ts | 0 .../src}/server/webkit/wkInput.ts | 0 .../server/webkit/wkInterceptableRequest.ts | 0 .../src}/server/webkit/wkPage.ts | 0 .../src}/server/webkit/wkProvisionalPage.ts | 0 .../src}/server/webkit/wkWorkers.ts | 0 .../src}/third_party/diff_match_patch.js | 0 .../src}/third_party/highlightjs/README.md | 0 .../highlightjs/highlightjs/LICENSE | 0 .../highlightjs/highlightjs/core.js | 0 .../highlightjs/highlightjs/highlight.js | 0 .../highlightjs/highlightjs/index.d.ts | 0 .../highlightjs/highlightjs/index.js | 0 .../highlightjs/languages/csharp.js | 0 .../highlightjs/highlightjs/languages/java.js | 0 .../highlightjs/languages/javascript.js | 0 .../highlightjs/languages/python.js | 0 .../highlightjs/highlightjs/tomorrow.css | 0 .../src}/third_party/highlightjs/roll.sh | 0 .../playwright-core/src}/utils/async.ts | 0 .../src}/utils/browserFetcher.ts | 0 .../playwright-core/src}/utils/debugLogger.ts | 0 .../src}/utils/dependencies.ts | 0 .../playwright-core/src}/utils/errors.ts | 0 .../src}/utils/eventsHelper.ts | 0 .../playwright-core/src}/utils/httpServer.ts | 0 .../playwright-core/src}/utils/multimap.ts | 0 .../playwright-core/src}/utils/netUtils.ts | 0 .../src}/utils/processLauncher.ts | 0 .../playwright-core/src}/utils/registry.ts | 0 .../playwright-core/src}/utils/socksProxy.ts | 0 .../playwright-core/src}/utils/stackTrace.ts | 6 +- .../src}/utils/timeoutSettings.ts | 0 .../src}/utils/ubuntuVersion.ts | 0 .../playwright-core/src}/utils/utils.ts | 4 +- .../playwright-core/src}/utils/vfs.ts | 0 .../playwright-core/src}/web/common.css | 0 .../src}/web/components/expandable.tsx | 0 .../src}/web/components/source.css | 0 .../src}/web/components/source.tsx | 0 .../src}/web/components/splitView.css | 0 .../src}/web/components/splitView.tsx | 0 .../src}/web/components/toolbar.css | 0 .../src}/web/components/toolbar.tsx | 0 .../src}/web/components/toolbarButton.css | 0 .../src}/web/components/toolbarButton.tsx | 0 .../src}/web/components/treeItem.tsx | 0 .../src}/web/htmlReport/htmlReport.css | 0 .../src}/web/htmlReport/htmlReport.tsx | 2 +- .../src}/web/htmlReport/index.html | 0 .../src}/web/htmlReport/index.tsx | 0 .../src}/web/htmlReport/webpack.config.js | 0 .../src}/web/recorder/callLog.css | 0 .../src}/web/recorder/callLog.tsx | 0 .../src}/web/recorder/index.html | 0 .../src}/web/recorder/index.tsx | 0 .../src}/web/recorder/main.tsx | 0 .../src}/web/recorder/recorder.css | 0 .../src}/web/recorder/recorder.tsx | 0 .../src}/web/recorder/webpack.config.js | 0 .../playwright-core/src}/web/theme.ts | 0 .../src}/web/third_party/vscode/LICENSE.txt | 0 .../src}/web/third_party/vscode/codicon.css | 0 .../src}/web/third_party/vscode/codicon.ttf | Bin .../src}/web/traceViewer/geometry.ts | 0 .../src}/web/traceViewer/index.html | 0 .../src}/web/traceViewer/index.tsx | 0 .../src}/web/traceViewer/ui/actionList.css | 0 .../src}/web/traceViewer/ui/actionList.tsx | 0 .../src}/web/traceViewer/ui/callTab.css | 0 .../src}/web/traceViewer/ui/callTab.tsx | 0 .../src}/web/traceViewer/ui/consoleTab.css | 0 .../src}/web/traceViewer/ui/consoleTab.tsx | 0 .../web/traceViewer/ui/contextSelector.css | 0 .../web/traceViewer/ui/contextSelector.tsx | 0 .../src}/web/traceViewer/ui/filmStrip.css | 0 .../src}/web/traceViewer/ui/filmStrip.tsx | 0 .../src}/web/traceViewer/ui/helpers.tsx | 0 .../src}/web/traceViewer/ui/modelUtil.ts | 0 .../traceViewer/ui/networkResourceDetails.css | 0 .../traceViewer/ui/networkResourceDetails.tsx | 0 .../src}/web/traceViewer/ui/networkTab.css | 0 .../src}/web/traceViewer/ui/networkTab.tsx | 0 .../src}/web/traceViewer/ui/snapshotTab.css | 0 .../src}/web/traceViewer/ui/snapshotTab.tsx | 0 .../src}/web/traceViewer/ui/sourceTab.css | 0 .../src}/web/traceViewer/ui/sourceTab.tsx | 0 .../src}/web/traceViewer/ui/stackTrace.css | 0 .../src}/web/traceViewer/ui/stackTrace.tsx | 0 .../src}/web/traceViewer/ui/tabbedPane.css | 0 .../src}/web/traceViewer/ui/tabbedPane.tsx | 0 .../src}/web/traceViewer/ui/timeline.css | 0 .../src}/web/traceViewer/ui/timeline.tsx | 0 .../src}/web/traceViewer/ui/workbench.css | 0 .../src}/web/traceViewer/ui/workbench.tsx | 0 .../src}/web/traceViewer/webpack.config.js | 0 .../playwright-core/src}/web/types.d.ts | 0 .../playwright-core/src}/web/uiUtils.ts | 0 .../playwright-core/types}/protocol.d.ts | 0 .../playwright-core/types}/structs.d.ts | 0 .../playwright-core/types}/test.d.ts | 0 .../playwright-core/types}/testExpect.d.ts | 0 .../playwright-core/types}/testReporter.d.ts | 0 .../playwright-core/types}/types.d.ts | 0 packages/playwright-firefox/README.md | 2 - .../index.d.ts} | 2 +- packages/playwright-firefox/index.js | 17 + packages/playwright-firefox/index.mjs | 18 + packages/playwright-firefox/install.js | 19 + packages/playwright-firefox/package.json | 27 + packages/playwright-test/README.md | 3 - packages/playwright-test/index.d.ts | 7 +- packages/playwright-test/index.js | 5 +- packages/playwright-test/index.mjs | 1 - packages/playwright-test/package.json | 53 + packages/playwright-test/reporter.d.ts | 2 +- .../playwright-test/src}/cli.ts | 0 .../playwright-test/src}/dispatcher.ts | 2 +- .../playwright-test/src}/expect.ts | 0 .../playwright-test/src}/fixtures.ts | 0 .../playwright-test/src}/globals.ts | 0 .../playwright-test/src}/index.ts | 12 +- .../playwright-test/src}/ipc.ts | 2 +- .../playwright-test/src}/loader.ts | 4 +- .../playwright-test/src}/matchers/golden.ts | 2 +- .../playwright-test/src}/matchers/matchers.ts | 6 +- .../src}/matchers/toBeTruthy.ts | 0 .../playwright-test/src}/matchers/toEqual.ts | 0 .../src}/matchers/toMatchSnapshot.ts | 0 .../src}/matchers/toMatchText.ts | 4 +- .../playwright-test/src}/profiler.ts | 0 .../playwright-test/src}/project.ts | 0 .../src}/reporters/.eslintrc.json | 0 .../playwright-test/src}/reporters/base.ts | 2 +- .../playwright-test/src}/reporters/dot.ts | 2 +- .../playwright-test/src}/reporters/empty.ts | 2 +- .../playwright-test/src}/reporters/github.ts | 2 +- .../playwright-test/src}/reporters/html.ts | 10 +- .../playwright-test/src}/reporters/json.ts | 2 +- .../playwright-test/src}/reporters/junit.ts | 2 +- .../playwright-test/src}/reporters/line.ts | 2 +- .../playwright-test/src}/reporters/list.ts | 2 +- .../src}/reporters/multiplexer.ts | 2 +- .../playwright-test/src}/reporters/raw.ts | 6 +- .../playwright-test/src}/runner.ts | 4 +- .../playwright-test/src}/test.ts | 4 +- .../playwright-test/src}/testType.ts | 0 .../playwright-test/src}/transform.ts | 0 .../playwright-test/src}/types.ts | 8 +- .../playwright-test/src}/util.ts | 2 +- .../playwright-test/src}/webServer.ts | 6 +- .../playwright-test/src}/worker.ts | 0 .../playwright-test/src}/workerRunner.ts | 2 +- packages/playwright-webkit/README.md | 2 - packages/playwright-webkit/index.d.ts | 17 + packages/playwright-webkit/index.js | 17 + packages/playwright-webkit/index.mjs | 18 + packages/playwright-webkit/install.js | 19 + packages/playwright-webkit/package.json | 27 + packages/playwright/index.d.ts | 17 + packages/playwright/index.js | 17 + packages/playwright/index.mjs | 18 + packages/{common => playwright}/install.js | 2 +- packages/playwright/package.json | 27 + tests/android/androidTest.ts | 6 +- tests/browsertype-connect.spec.ts | 2 +- tests/browsertype-launch-selenium.spec.ts | 4 +- tests/chromium/chromium.spec.ts | 2 +- tests/component-parser.spec.ts | 2 +- tests/config/android.config.ts | 2 +- tests/config/baseTest.ts | 18 +- tests/config/browserTest.ts | 10 +- tests/config/commonFixtures.ts | 2 +- tests/config/coverage.js | 4 +- tests/config/default.config.ts | 2 +- tests/config/electron.config.ts | 2 +- tests/config/remote-server-impl.js | 6 +- tests/config/remoteServer.ts | 5 +- tests/config/test-runner.d.ts | 2 +- tests/config/test-runner.js | 2 +- tests/config/utils.ts | 4 +- tests/css-parser.spec.ts | 2 +- tests/download.spec.ts | 2 +- tests/electron/electronTest.ts | 6 +- tests/global-fetch-cookie.spec.ts | 2 +- tests/global-fetch.spec.ts | 2 +- tests/har.spec.ts | 4 +- tests/inspector/inspectorTest.ts | 10 +- tests/inspector/pause.spec.ts | 2 +- tests/launcher.spec.ts | 4 +- tests/page/frame-hierarchy.spec.ts | 2 +- tests/page/interception.spec.ts | 2 +- tests/page/jshandle-properties.spec.ts | 2 +- tests/page/page-drag.spec.ts | 2 +- tests/page/page-expose-function.spec.ts | 2 +- tests/page/page-network-idle.spec.ts | 2 +- tests/page/page-request-intercept.spec.ts | 2 +- tests/page/page-wait-for-load-state.spec.ts | 2 +- tests/page/page-wait-for-navigation.spec.ts | 2 +- tests/page/pageTest.ts | 4 +- tests/page/wheel.spec.ts | 2 +- tests/page/workers.spec.ts | 2 +- tests/playwright-test/basic.spec.ts | 3 +- tests/playwright-test/entry/index.d.ts | 19 - tests/playwright-test/entry/index.js | 24 - tests/playwright-test/entry/index.mjs | 20 - tests/playwright-test/github-reporter.spec.ts | 10 +- tests/playwright-test/html-reporter.spec.ts | 2 +- .../playwright-test-fixtures.ts | 13 +- tests/playwright-test/playwright.spec.ts | 2 +- tests/playwright-test/raw-reporter.spec.ts | 2 +- tests/port-forwarding-server.spec.ts | 6 +- tests/selector-generator.spec.ts | 2 +- tests/snapshotter.spec.ts | 8 +- tests/tap.spec.ts | 2 +- tests/trace-viewer/trace-viewer.spec.ts | 4 +- tests/tracing.spec.ts | 2 +- tests/tsconfig.json | 1 + tests/video.spec.ts | 2 +- tsconfig.json | 8 +- utils/build/build-playwright-driver.sh | 8 +- utils/build/build.js | 94 +- utils/build/clean.js | 6 + utils/check_deps.js | 16 +- utils/docker/Dockerfile.bionic | 7 +- utils/docker/Dockerfile.focal | 7 +- utils/docker/build.sh | 4 +- utils/doclint/cli.js | 6 +- utils/generate_channels.js | 6 +- utils/generate_types/index.js | 34 +- utils/generate_types/test/test.ts | 4 +- .../inside_docker/list_dependencies.js | 2 +- .../inside_docker/process.sh | 4 +- utils/linux-browser-dependencies/run.sh | 5 +- utils/list_packages.js | 38 + utils/pack_package.js | 52 + utils/prepare_packages.js | 130 + utils/print_versions.js | 2 - utils/protocol-types-generator/index.js | 4 +- utils/publish_all_packages.sh | 27 +- utils/roll_browser.js | 8 +- 521 files changed, 4752 insertions(+), 8180 deletions(-) rename {packages => installation-tests}/.gitignore (100%) rename {packages/installation-tests => installation-tests}/README.md (100%) rename {packages/installation-tests => installation-tests}/driver-client.js (95%) rename {packages/installation-tests => installation-tests}/electron-app.js (100%) rename {packages/installation-tests => installation-tests}/esm-playwright-chromium.mjs (93%) rename {packages/installation-tests => installation-tests}/esm-playwright-firefox.mjs (93%) rename {packages/installation-tests => installation-tests}/esm-playwright-test.mjs (95%) rename {packages/installation-tests => installation-tests}/esm-playwright-webkit.mjs (93%) rename {packages/installation-tests => installation-tests}/esm-playwright.mjs (93%) rename {packages/installation-tests => installation-tests}/esm.mjs (100%) rename {packages/installation-tests => installation-tests}/inspector-custom-executable.js (100%) rename {packages/installation-tests => installation-tests}/installation-tests.sh (90%) rename {packages/installation-tests => installation-tests}/playwright-test-types.ts (100%) rename {packages/installation-tests => installation-tests}/read-json-report.js (100%) rename {packages/installation-tests => installation-tests}/sample.spec.js (100%) rename {packages/installation-tests => installation-tests}/sanity-electron.js (100%) rename {packages/installation-tests => installation-tests}/sanity.js (94%) rename {packages/installation-tests => installation-tests}/screencast.js (100%) rename {packages/installation-tests => installation-tests}/validate-dependencies-skip-executable-path.js (100%) rename {packages/installation-tests => installation-tests}/validate-dependencies.js (100%) delete mode 100644 packages/README.md delete mode 100755 packages/build_package.js delete mode 100644 packages/installation-tests/.gitignore delete mode 100644 packages/playwright-chromium/README.md rename packages/{common => playwright-chromium}/index.d.ts (94%) rename packages/{common => playwright-chromium}/index.js (93%) create mode 100644 packages/playwright-chromium/index.mjs rename packages/{playwright-core => playwright-chromium}/install.js (80%) create mode 100644 packages/playwright-chromium/package.json rename packages/{common => playwright-core}/.npmignore (79%) rename {bin => packages/playwright-core/bin}/PrintDeps.exe (100%) rename {bin => packages/playwright-core/bin}/README.md (100%) rename {bin => packages/playwright-core/bin}/android-driver-target.apk (100%) rename {bin => packages/playwright-core/bin}/android-driver.apk (100%) rename {bin => packages/playwright-core/bin}/install_media_pack.ps1 (100%) rename {bin => packages/playwright-core/bin}/reinstall_chrome_beta_linux.sh (100%) rename {bin => packages/playwright-core/bin}/reinstall_chrome_beta_mac.sh (100%) rename {bin => packages/playwright-core/bin}/reinstall_chrome_beta_win.ps1 (100%) rename {bin => packages/playwright-core/bin}/reinstall_chrome_stable_linux.sh (100%) rename {bin => packages/playwright-core/bin}/reinstall_chrome_stable_mac.sh (100%) rename {bin => packages/playwright-core/bin}/reinstall_chrome_stable_win.ps1 (100%) rename {bin => packages/playwright-core/bin}/reinstall_msedge_beta_linux.sh (100%) rename {bin => packages/playwright-core/bin}/reinstall_msedge_beta_mac.sh (100%) rename {bin => packages/playwright-core/bin}/reinstall_msedge_beta_win.ps1 (100%) rename {bin => packages/playwright-core/bin}/reinstall_msedge_dev_linux.sh (100%) rename {bin => packages/playwright-core/bin}/reinstall_msedge_dev_mac.sh (100%) rename {bin => packages/playwright-core/bin}/reinstall_msedge_dev_win.ps1 (100%) rename {bin => packages/playwright-core/bin}/reinstall_msedge_stable_mac.sh (100%) rename {bin => packages/playwright-core/bin}/reinstall_msedge_stable_win.ps1 (100%) rename browsers.json => packages/playwright-core/browsers.json (100%) create mode 100755 packages/playwright-core/cli.js rename index.d.ts => packages/playwright-core/index.d.ts (100%) rename index.js => packages/playwright-core/index.js (100%) rename packages/{common => playwright-core}/index.mjs (100%) create mode 100644 packages/playwright-core/package.json rename {src => packages/playwright-core/src}/.eslintrc.js (91%) rename {src => packages/playwright-core/src}/browserServerImpl.ts (100%) rename {src => packages/playwright-core/src}/cli/cli.ts (98%) rename {src => packages/playwright-core/src}/cli/driver.ts (100%) rename {src => packages/playwright-core/src}/client/accessibility.ts (100%) rename {src => packages/playwright-core/src}/client/android.ts (100%) rename {src => packages/playwright-core/src}/client/api.ts (100%) rename {src => packages/playwright-core/src}/client/artifact.ts (100%) rename {src => packages/playwright-core/src}/client/browser.ts (100%) rename {src => packages/playwright-core/src}/client/browserContext.ts (100%) rename {src => packages/playwright-core/src}/client/browserType.ts (100%) rename {src => packages/playwright-core/src}/client/cdpSession.ts (100%) rename {src => packages/playwright-core/src}/client/channelOwner.ts (100%) rename {src => packages/playwright-core/src}/client/clientHelper.ts (100%) rename {src => packages/playwright-core/src}/client/connection.ts (100%) rename {src => packages/playwright-core/src}/client/consoleMessage.ts (100%) rename {src => packages/playwright-core/src}/client/coverage.ts (100%) rename {src => packages/playwright-core/src}/client/dialog.ts (100%) rename {src => packages/playwright-core/src}/client/download.ts (100%) rename {src => packages/playwright-core/src}/client/electron.ts (100%) rename {src => packages/playwright-core/src}/client/elementHandle.ts (100%) rename {src => packages/playwright-core/src}/client/events.ts (100%) rename {src => packages/playwright-core/src}/client/fetch.ts (100%) rename {src => packages/playwright-core/src}/client/fileChooser.ts (100%) rename {src => packages/playwright-core/src}/client/frame.ts (100%) rename {src => packages/playwright-core/src}/client/input.ts (100%) rename {src => packages/playwright-core/src}/client/jsHandle.ts (100%) rename {src => packages/playwright-core/src}/client/jsonPipe.ts (100%) rename {src => packages/playwright-core/src}/client/locator.ts (100%) rename {src => packages/playwright-core/src}/client/network.ts (100%) rename {src => packages/playwright-core/src}/client/page.ts (100%) rename {src => packages/playwright-core/src}/client/playwright.ts (100%) rename {src => packages/playwright-core/src}/client/selectors.ts (100%) rename {src => packages/playwright-core/src}/client/stream.ts (100%) rename {src => packages/playwright-core/src}/client/tracing.ts (100%) rename {src => packages/playwright-core/src}/client/types.ts (100%) rename {src => packages/playwright-core/src}/client/video.ts (100%) rename {src => packages/playwright-core/src}/client/waiter.ts (100%) rename {src => packages/playwright-core/src}/client/worker.ts (100%) rename {src => packages/playwright-core/src}/common/types.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/androidDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/artifactDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/browserContextDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/browserDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/browserTypeDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/cdpSessionDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/consoleMessageDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/dialogDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/dispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/electronDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/elementHandlerDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/frameDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/jsHandleDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/jsonPipeDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/networkDispatchers.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/pageDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/playwrightDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/selectorsDispatcher.ts (100%) rename {src => packages/playwright-core/src}/dispatchers/streamDispatcher.ts (100%) rename {src => packages/playwright-core/src}/grid/gridAgent.ts (100%) rename {src => packages/playwright-core/src}/grid/gridClient.ts (100%) rename {src => packages/playwright-core/src}/grid/gridServer.ts (99%) rename {src => packages/playwright-core/src}/grid/gridWorker.ts (100%) rename {src => packages/playwright-core/src}/grid/simpleGridFactory.ts (97%) rename {src => packages/playwright-core/src}/inProcessFactory.ts (100%) rename {src => packages/playwright-core/src}/inprocess.ts (100%) rename {src => packages/playwright-core/src}/nativeDeps.ts (100%) rename {src => packages/playwright-core/src}/outofprocess.ts (100%) rename {src => packages/playwright-core/src}/protocol/callMetadata.ts (100%) rename {src => packages/playwright-core/src}/protocol/channels.ts (100%) rename {src => packages/playwright-core/src}/protocol/protocol.yml (100%) rename {src => packages/playwright-core/src}/protocol/serializers.ts (100%) rename {src => packages/playwright-core/src}/protocol/transport.ts (100%) rename {src => packages/playwright-core/src}/protocol/validator.ts (100%) rename {src => packages/playwright-core/src}/protocol/validatorPrimitives.ts (100%) rename {src => packages/playwright-core/src}/remote/playwrightClient.ts (100%) rename {src => packages/playwright-core/src}/remote/playwrightServer.ts (100%) rename {src => packages/playwright-core/src}/server/accessibility.ts (100%) rename {src => packages/playwright-core/src}/server/android/android.ts (100%) rename {src => packages/playwright-core/src}/server/android/backendAdb.ts (100%) rename {src => packages/playwright-core/src}/server/android/driver/.gitignore (100%) rename {src => packages/playwright-core/src}/server/android/driver/app/.gitignore (100%) rename {src => packages/playwright-core/src}/server/android/driver/app/build.gradle (100%) rename {src => packages/playwright-core/src}/server/android/driver/app/proguard-rules.pro (100%) rename {src => packages/playwright-core/src}/server/android/driver/app/src/androidTest/java/com/microsoft/playwright/androiddriver/InstrumentedTest.java (100%) rename {src => packages/playwright-core/src}/server/android/driver/app/src/main/AndroidManifest.xml (100%) rename {src => packages/playwright-core/src}/server/android/driver/app/src/main/res/drawable-v24/ic_launcher_foreground.xml (100%) rename {src => packages/playwright-core/src}/server/android/driver/app/src/main/res/drawable/ic_launcher_background.xml (100%) rename {src => packages/playwright-core/src}/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%) rename {src => packages/playwright-core/src}/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename {src => packages/playwright-core/src}/server/android/driver/build.gradle (100%) rename {src => packages/playwright-core/src}/server/android/driver/gradle.properties (100%) rename {src => packages/playwright-core/src}/server/android/driver/gradle/wrapper/gradle-wrapper.jar (100%) rename {src => packages/playwright-core/src}/server/android/driver/gradle/wrapper/gradle-wrapper.properties (100%) rename {src => packages/playwright-core/src}/server/android/driver/gradlew (100%) rename {src => packages/playwright-core/src}/server/android/driver/gradlew.bat (100%) rename {src => packages/playwright-core/src}/server/android/driver/settings.gradle (100%) rename {src => packages/playwright-core/src}/server/artifact.ts (100%) rename {src => packages/playwright-core/src}/server/browser.ts (100%) rename {src => packages/playwright-core/src}/server/browserContext.ts (100%) rename {src => packages/playwright-core/src}/server/browserType.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/appIcon.png (100%) rename {src => packages/playwright-core/src}/server/chromium/chromium.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crAccessibility.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crApp.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crBrowser.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crConnection.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crCoverage.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crDevTools.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crDragDrop.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crExecutionContext.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crInput.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crNetworkManager.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crPage.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crPdf.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/crProtocolHelper.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/protocol.d.ts (100%) rename {src => packages/playwright-core/src}/server/chromium/videoRecorder.ts (100%) rename {src => packages/playwright-core/src}/server/common/README.md (100%) rename {src => packages/playwright-core/src}/server/common/componentUtils.ts (100%) rename {src => packages/playwright-core/src}/server/common/cssParser.ts (100%) rename {src => packages/playwright-core/src}/server/common/cssTokenizer.d.ts (100%) rename {src => packages/playwright-core/src}/server/common/cssTokenizer.js (100%) rename {src => packages/playwright-core/src}/server/common/protocolError.ts (100%) rename {src => packages/playwright-core/src}/server/common/selectorParser.ts (100%) rename {src => packages/playwright-core/src}/server/common/utilityScriptSerializers.ts (100%) rename {src => packages/playwright-core/src}/server/console.ts (100%) rename {src => packages/playwright-core/src}/server/cookieStore.ts (100%) rename {src => packages/playwright-core/src}/server/deviceDescriptors.js (100%) rename {src => packages/playwright-core/src}/server/deviceDescriptorsSource.json (100%) rename {src => packages/playwright-core/src}/server/dialog.ts (100%) rename {src => packages/playwright-core/src}/server/dom.ts (100%) rename {src => packages/playwright-core/src}/server/download.ts (100%) rename {src => packages/playwright-core/src}/server/electron/electron.ts (100%) rename {src => packages/playwright-core/src}/server/fetch.ts (100%) rename {src => packages/playwright-core/src}/server/fileChooser.ts (100%) rename {src => packages/playwright-core/src}/server/firefox/ffAccessibility.ts (100%) rename {src => packages/playwright-core/src}/server/firefox/ffBrowser.ts (100%) rename {src => packages/playwright-core/src}/server/firefox/ffConnection.ts (100%) rename {src => packages/playwright-core/src}/server/firefox/ffExecutionContext.ts (100%) rename {src => packages/playwright-core/src}/server/firefox/ffInput.ts (100%) rename {src => packages/playwright-core/src}/server/firefox/ffNetworkManager.ts (100%) rename {src => packages/playwright-core/src}/server/firefox/ffPage.ts (100%) rename {src => packages/playwright-core/src}/server/firefox/firefox.ts (100%) rename {src => packages/playwright-core/src}/server/firefox/protocol.d.ts (100%) rename {src => packages/playwright-core/src}/server/formData.ts (100%) rename {src => packages/playwright-core/src}/server/frames.ts (100%) rename {src => packages/playwright-core/src}/server/helper.ts (100%) rename {src => packages/playwright-core/src}/server/injected/README.md (100%) rename {src => packages/playwright-core/src}/server/injected/injectedScript.ts (100%) rename {src => packages/playwright-core/src}/server/injected/reactSelectorEngine.ts (100%) rename {src => packages/playwright-core/src}/server/injected/selectorEngine.ts (100%) rename {src => packages/playwright-core/src}/server/injected/selectorEvaluator.ts (100%) rename {src => packages/playwright-core/src}/server/injected/selectorGenerator.ts (100%) rename {src => packages/playwright-core/src}/server/injected/utilityScript.ts (100%) rename {src => packages/playwright-core/src}/server/injected/vueSelectorEngine.ts (100%) rename {src => packages/playwright-core/src}/server/injected/webpack.config.js (100%) rename {src => packages/playwright-core/src}/server/injected/xpathSelectorEngine.ts (100%) rename {src => packages/playwright-core/src}/server/input.ts (100%) rename {src => packages/playwright-core/src}/server/instrumentation.ts (100%) rename {src => packages/playwright-core/src}/server/javascript.ts (100%) rename {src => packages/playwright-core/src}/server/macEditingCommands.ts (100%) rename {src => packages/playwright-core/src}/server/network.ts (100%) rename {src => packages/playwright-core/src}/server/page.ts (100%) rename {src => packages/playwright-core/src}/server/pipeTransport.ts (100%) rename {src => packages/playwright-core/src}/server/playwright.ts (100%) rename {src => packages/playwright-core/src}/server/progress.ts (100%) rename {src => packages/playwright-core/src}/server/screenshotter.ts (100%) rename {src => packages/playwright-core/src}/server/selectors.ts (100%) rename {src => packages/playwright-core/src}/server/snapshot/inMemorySnapshotter.ts (100%) rename {src => packages/playwright-core/src}/server/snapshot/snapshotRenderer.ts (100%) rename {src => packages/playwright-core/src}/server/snapshot/snapshotServer.ts (100%) rename {src => packages/playwright-core/src}/server/snapshot/snapshotStorage.ts (100%) rename {src => packages/playwright-core/src}/server/snapshot/snapshotTypes.ts (100%) rename {src => packages/playwright-core/src}/server/snapshot/snapshotter.ts (100%) rename {src => packages/playwright-core/src}/server/snapshot/snapshotterInjected.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/debugger.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/har/har.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/har/harRecorder.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/har/harTracer.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/injected/consoleApi.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/injected/recorder.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/codeGenerator.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/csharp.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/java.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/javascript.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/language.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/python.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/recorderActions.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/recorderApp.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/recorderTypes.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/recorderUtils.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorder/utils.ts (100%) rename {src => packages/playwright-core/src}/server/supplements/recorderSupplement.ts (100%) rename {src => packages/playwright-core/src}/server/trace/common/traceEvents.ts (100%) rename {src => packages/playwright-core/src}/server/trace/recorder/tracing.ts (100%) rename {src => packages/playwright-core/src}/server/trace/viewer/traceModel.ts (100%) rename {src => packages/playwright-core/src}/server/trace/viewer/traceViewer.ts (100%) rename {src => packages/playwright-core/src}/server/transport.ts (100%) rename {src => packages/playwright-core/src}/server/types.ts (100%) rename {src => packages/playwright-core/src}/server/usKeyboardLayout.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/protocol.d.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/webkit.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/wkAccessibility.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/wkBrowser.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/wkConnection.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/wkExecutionContext.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/wkInput.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/wkInterceptableRequest.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/wkPage.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/wkProvisionalPage.ts (100%) rename {src => packages/playwright-core/src}/server/webkit/wkWorkers.ts (100%) rename {src => packages/playwright-core/src}/third_party/diff_match_patch.js (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/README.md (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/LICENSE (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/core.js (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/highlight.js (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/index.d.ts (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/index.js (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/languages/csharp.js (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/languages/java.js (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/languages/javascript.js (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/languages/python.js (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/highlightjs/tomorrow.css (100%) rename {src => packages/playwright-core/src}/third_party/highlightjs/roll.sh (100%) rename {src => packages/playwright-core/src}/utils/async.ts (100%) rename {src => packages/playwright-core/src}/utils/browserFetcher.ts (100%) rename {src => packages/playwright-core/src}/utils/debugLogger.ts (100%) rename {src => packages/playwright-core/src}/utils/dependencies.ts (100%) rename {src => packages/playwright-core/src}/utils/errors.ts (100%) rename {src => packages/playwright-core/src}/utils/eventsHelper.ts (100%) rename {src => packages/playwright-core/src}/utils/httpServer.ts (100%) rename {src => packages/playwright-core/src}/utils/multimap.ts (100%) rename {src => packages/playwright-core/src}/utils/netUtils.ts (100%) rename {src => packages/playwright-core/src}/utils/processLauncher.ts (100%) rename {src => packages/playwright-core/src}/utils/registry.ts (100%) rename {src => packages/playwright-core/src}/utils/socksProxy.ts (100%) rename {src => packages/playwright-core/src}/utils/stackTrace.ts (95%) rename {src => packages/playwright-core/src}/utils/timeoutSettings.ts (100%) rename {src => packages/playwright-core/src}/utils/ubuntuVersion.ts (100%) rename {src => packages/playwright-core/src}/utils/utils.ts (99%) rename {src => packages/playwright-core/src}/utils/vfs.ts (100%) rename {src => packages/playwright-core/src}/web/common.css (100%) rename {src => packages/playwright-core/src}/web/components/expandable.tsx (100%) rename {src => packages/playwright-core/src}/web/components/source.css (100%) rename {src => packages/playwright-core/src}/web/components/source.tsx (100%) rename {src => packages/playwright-core/src}/web/components/splitView.css (100%) rename {src => packages/playwright-core/src}/web/components/splitView.tsx (100%) rename {src => packages/playwright-core/src}/web/components/toolbar.css (100%) rename {src => packages/playwright-core/src}/web/components/toolbar.tsx (100%) rename {src => packages/playwright-core/src}/web/components/toolbarButton.css (100%) rename {src => packages/playwright-core/src}/web/components/toolbarButton.tsx (100%) rename {src => packages/playwright-core/src}/web/components/treeItem.tsx (100%) rename {src => packages/playwright-core/src}/web/htmlReport/htmlReport.css (100%) rename {src => packages/playwright-core/src}/web/htmlReport/htmlReport.tsx (99%) rename {src => packages/playwright-core/src}/web/htmlReport/index.html (100%) rename {src => packages/playwright-core/src}/web/htmlReport/index.tsx (100%) rename {src => packages/playwright-core/src}/web/htmlReport/webpack.config.js (100%) rename {src => packages/playwright-core/src}/web/recorder/callLog.css (100%) rename {src => packages/playwright-core/src}/web/recorder/callLog.tsx (100%) rename {src => packages/playwright-core/src}/web/recorder/index.html (100%) rename {src => packages/playwright-core/src}/web/recorder/index.tsx (100%) rename {src => packages/playwright-core/src}/web/recorder/main.tsx (100%) rename {src => packages/playwright-core/src}/web/recorder/recorder.css (100%) rename {src => packages/playwright-core/src}/web/recorder/recorder.tsx (100%) rename {src => packages/playwright-core/src}/web/recorder/webpack.config.js (100%) rename {src => packages/playwright-core/src}/web/theme.ts (100%) rename {src => packages/playwright-core/src}/web/third_party/vscode/LICENSE.txt (100%) rename {src => packages/playwright-core/src}/web/third_party/vscode/codicon.css (100%) rename {src => packages/playwright-core/src}/web/third_party/vscode/codicon.ttf (100%) rename {src => packages/playwright-core/src}/web/traceViewer/geometry.ts (100%) rename {src => packages/playwright-core/src}/web/traceViewer/index.html (100%) rename {src => packages/playwright-core/src}/web/traceViewer/index.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/actionList.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/actionList.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/callTab.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/callTab.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/consoleTab.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/consoleTab.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/contextSelector.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/contextSelector.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/filmStrip.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/filmStrip.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/helpers.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/modelUtil.ts (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/networkResourceDetails.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/networkResourceDetails.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/networkTab.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/networkTab.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/snapshotTab.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/snapshotTab.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/sourceTab.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/sourceTab.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/stackTrace.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/stackTrace.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/tabbedPane.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/tabbedPane.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/timeline.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/timeline.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/workbench.css (100%) rename {src => packages/playwright-core/src}/web/traceViewer/ui/workbench.tsx (100%) rename {src => packages/playwright-core/src}/web/traceViewer/webpack.config.js (100%) rename {src => packages/playwright-core/src}/web/types.d.ts (100%) rename {src => packages/playwright-core/src}/web/uiUtils.ts (100%) rename {types => packages/playwright-core/types}/protocol.d.ts (100%) rename {types => packages/playwright-core/types}/structs.d.ts (100%) rename {types => packages/playwright-core/types}/test.d.ts (100%) rename {types => packages/playwright-core/types}/testExpect.d.ts (100%) rename {types => packages/playwright-core/types}/testReporter.d.ts (100%) rename {types => packages/playwright-core/types}/types.d.ts (100%) delete mode 100644 packages/playwright-firefox/README.md rename packages/{playwright-test/install.js => playwright-firefox/index.d.ts} (89%) create mode 100644 packages/playwright-firefox/index.js create mode 100644 packages/playwright-firefox/index.mjs create mode 100644 packages/playwright-firefox/install.js create mode 100644 packages/playwright-firefox/package.json delete mode 100644 packages/playwright-test/README.md create mode 100644 packages/playwright-test/package.json rename {src/test => packages/playwright-test/src}/cli.ts (100%) rename {src/test => packages/playwright-test/src}/dispatcher.ts (99%) rename {src/test => packages/playwright-test/src}/expect.ts (100%) rename {src/test => packages/playwright-test/src}/fixtures.ts (100%) rename {src/test => packages/playwright-test/src}/globals.ts (100%) rename {src/test => packages/playwright-test/src}/index.ts (98%) rename {src/test => packages/playwright-test/src}/ipc.ts (96%) rename {src/test => packages/playwright-test/src}/loader.ts (99%) rename {src/test => packages/playwright-test/src}/matchers/golden.ts (99%) rename {src/test => packages/playwright-test/src}/matchers/matchers.ts (98%) rename {src/test => packages/playwright-test/src}/matchers/toBeTruthy.ts (100%) rename {src/test => packages/playwright-test/src}/matchers/toEqual.ts (100%) rename {src/test => packages/playwright-test/src}/matchers/toMatchSnapshot.ts (100%) rename {src/test => packages/playwright-test/src}/matchers/toMatchText.ts (96%) rename {src/test => packages/playwright-test/src}/profiler.ts (100%) rename {src/test => packages/playwright-test/src}/project.ts (100%) rename {src/test => packages/playwright-test/src}/reporters/.eslintrc.json (100%) rename {src/test => packages/playwright-test/src}/reporters/base.ts (99%) rename {src/test => packages/playwright-test/src}/reporters/dot.ts (95%) rename {src/test => packages/playwright-test/src}/reporters/empty.ts (91%) rename {src/test => packages/playwright-test/src}/reporters/github.ts (97%) rename {src/test => packages/playwright-test/src}/reporters/html.ts (95%) rename {src/test => packages/playwright-test/src}/reporters/json.ts (98%) rename {src/test => packages/playwright-test/src}/reporters/junit.ts (99%) rename {src/test => packages/playwright-test/src}/reporters/line.ts (98%) rename {src/test => packages/playwright-test/src}/reporters/list.ts (99%) rename {src/test => packages/playwright-test/src}/reporters/multiplexer.ts (96%) rename {src/test => packages/playwright-test/src}/reporters/raw.ts (97%) rename {src/test => packages/playwright-test/src}/runner.ts (99%) rename {src/test => packages/playwright-test/src}/test.ts (97%) rename {src/test => packages/playwright-test/src}/testType.ts (100%) rename {src/test => packages/playwright-test/src}/transform.ts (100%) rename {src/test => packages/playwright-test/src}/types.ts (81%) rename {src/test => packages/playwright-test/src}/util.ts (98%) rename {src/test => packages/playwright-test/src}/webServer.ts (95%) rename {src/test => packages/playwright-test/src}/worker.ts (100%) rename {src/test => packages/playwright-test/src}/workerRunner.ts (99%) delete mode 100644 packages/playwright-webkit/README.md create mode 100644 packages/playwright-webkit/index.d.ts create mode 100644 packages/playwright-webkit/index.js create mode 100644 packages/playwright-webkit/index.mjs create mode 100644 packages/playwright-webkit/install.js create mode 100644 packages/playwright-webkit/package.json create mode 100644 packages/playwright/index.d.ts create mode 100644 packages/playwright/index.js create mode 100644 packages/playwright/index.mjs rename packages/{common => playwright}/install.js (87%) create mode 100644 packages/playwright/package.json delete mode 100644 tests/playwright-test/entry/index.d.ts delete mode 100644 tests/playwright-test/entry/index.js delete mode 100644 tests/playwright-test/entry/index.mjs create mode 100644 utils/build/clean.js create mode 100644 utils/list_packages.js create mode 100644 utils/pack_package.js create mode 100644 utils/prepare_packages.js diff --git a/.eslintignore b/.eslintignore index d1b58632bf..b7bf13a44e 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,9 +1,9 @@ test/assets/modernizr.js -lib/ +/packages/*/lib/ *.js -src/generated/* -src/third_party/ -/types/* +/packages/playwright-core/src/generated/* +/packages/playwright-core/src/third_party/ +/packages/playwright-core/types/* /index.d.ts utils/generate_types/overrides.d.ts utils/generate_types/test/test.ts diff --git a/.github/workflows/infra.yml b/.github/workflows/infra.yml index efd4448a73..355b4e7f8d 100644 --- a/.github/workflows/infra.yml +++ b/.github/workflows/infra.yml @@ -19,9 +19,10 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci - run: npm run build - - run: node lib/cli/cli install-deps + - run: npx playwright install-deps - run: npm run lint - name: Verify clean tree run: | diff --git a/.github/workflows/package_create_playwright.yml b/.github/workflows/package_create_playwright.yml index 964f79d2e1..bbd18525f9 100644 --- a/.github/workflows/package_create_playwright.yml +++ b/.github/workflows/package_create_playwright.yml @@ -21,6 +21,8 @@ jobs: with: node-version: 14 cache: 'npm' + - run: npm i -g npm@7 - run: npm ci + - run: npm i --no-save @playwright/test - run: npm run build - run: npm run test diff --git a/.github/workflows/publish_canary_driver.yml b/.github/workflows/publish_canary_driver.yml index 7730ebc3a1..edbf1dacf2 100644 --- a/.github/workflows/publish_canary_driver.yml +++ b/.github/workflows/publish_canary_driver.yml @@ -17,9 +17,10 @@ jobs: with: node-version: 12 registry-url: 'https://registry.npmjs.org' + - run: npm i -g npm@7 - run: npm ci - run: npm run build - - run: node lib/cli/cli install-deps + - run: npx playwright install-deps - run: node utils/build/update_canary_version.js --commit-timestamp - run: utils/build/build-playwright-driver.sh - run: utils/build/upload-playwright-driver.sh diff --git a/.github/workflows/publish_canary_npm.yml b/.github/workflows/publish_canary_npm.yml index 6c6c2c2a32..a79d98d810 100644 --- a/.github/workflows/publish_canary_npm.yml +++ b/.github/workflows/publish_canary_npm.yml @@ -19,9 +19,10 @@ jobs: with: node-version: 12 registry-url: 'https://registry.npmjs.org' + - run: npm i -g npm@7 - run: npm ci - run: npm run build - - run: node lib/cli/cli install-deps + - run: npx playwright install-deps - run: node utils/build/update_canary_version.js --today-date if: contains(github.ref, 'master') && github.event_name != 'workflow_dispatch' - run: node utils/build/update_canary_version.js --commit-timestamp diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index ca96e45f62..78d3f3366a 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -15,9 +15,10 @@ jobs: with: node-version: 12 registry-url: 'https://registry.npmjs.org' + - run: npm i -g npm@7 - run: npm ci - run: npm run build - - run: node lib/cli/cli install-deps + - run: npx playwright install-deps - run: utils/publish_all_packages.sh --release env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} @@ -32,9 +33,10 @@ jobs: with: node-version: 12 registry-url: 'https://registry.npmjs.org' + - run: npm i -g npm@7 - run: npm ci - run: npm run build - - run: node lib/cli/cli install-deps + - run: npx playwright install-deps - run: utils/build/build-playwright-driver.sh - run: utils/build/upload-playwright-driver.sh env: diff --git a/.github/workflows/roll_browser_into_playwright.yml b/.github/workflows/roll_browser_into_playwright.yml index 51490d13aa..bdf7ea1b4c 100644 --- a/.github/workflows/roll_browser_into_playwright.yml +++ b/.github/workflows/roll_browser_into_playwright.yml @@ -12,10 +12,11 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 16 + - run: npm i -g npm@7 - run: npm ci - run: npm run build - name: Install dependencies - run: node lib/cli/cli install-deps + run: npx playwright install-deps - name: Roll to new revision run: | ./utils/roll_browser.js ${{ github.event.client_payload.browser }} ${{ github.event.client_payload.revision }} diff --git a/.github/workflows/tests_docker.yml b/.github/workflows/tests_docker.yml index a526eab381..cae5189705 100644 --- a/.github/workflows/tests_docker.yml +++ b/.github/workflows/tests_docker.yml @@ -39,6 +39,7 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 14 + - run: npm i -g npm@7 - run: npm ci - run: npm run build - name: Build diff --git a/.github/workflows/tests_fyi.yml b/.github/workflows/tests_fyi.yml index 641bbe4ddb..ee6b48f476 100644 --- a/.github/workflows/tests_fyi.yml +++ b/.github/workflows/tests_fyi.yml @@ -24,12 +24,13 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps ${{ matrix.browser }} chromium + - run: npx playwright install --with-deps ${{ matrix.browser }} chromium - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test -- --project=${{ matrix.browser }} env: PWTEST_VIDEO: 1 @@ -53,11 +54,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 14 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install - run: npm run build - - run: node lib/cli/cli install-deps + - run: npx playwright install-deps - name: Create Android Emulator run: utils/avd_recreate.sh - name: Start Android Emulator diff --git a/.github/workflows/tests_primary.yml b/.github/workflows/tests_primary.yml index 80a52bc96f..6f88ed77fe 100644 --- a/.github/workflows/tests_primary.yml +++ b/.github/workflows/tests_primary.yml @@ -32,12 +32,13 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps ${{ matrix.browser }} chromium + - run: npx playwright install --with-deps ${{ matrix.browser }} chromium - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test -- --project=${{ matrix.browser }} - run: node tests/config/checkCoverage.js ${{ matrix.browser }} - run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json @@ -60,11 +61,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install - run: npm run build - - run: node lib/cli/cli install --with-deps + - run: npx playwright install --with-deps - run: npm run ttest if: matrix.os != 'ubuntu-latest' - run: xvfb-run npm run ttest diff --git a/.github/workflows/tests_secondary.yml b/.github/workflows/tests_secondary.yml index a06698a404..872501286a 100644 --- a/.github/workflows/tests_secondary.yml +++ b/.github/workflows/tests_secondary.yml @@ -33,12 +33,13 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps ${{ matrix.browser }} chromium + - run: npx playwright install --with-deps ${{ matrix.browser }} chromium - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test -- --project=${{ matrix.browser }} - run: node tests/config/checkCoverage.js ${{ matrix.browser }} - run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json @@ -62,12 +63,13 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps ${{ matrix.browser }} chromium + - run: npx playwright install --with-deps ${{ matrix.browser }} chromium - run: npm run test -- --project=${{ matrix.browser }} - run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json if: always() @@ -89,12 +91,13 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps ${{ matrix.browser }} chromium + - run: npx playwright install --with-deps ${{ matrix.browser }} chromium - run: npm run test -- --project=${{ matrix.browser }} shell: bash - run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json @@ -121,12 +124,13 @@ jobs: - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node_version }} + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install - run: npm run build - - run: node lib/cli/cli install-deps - - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- bash packages/installation-tests/installation-tests.sh + - run: npx playwright install-deps + - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- bash installation-tests/installation-tests.sh headful_linux: name: "Headful Linux" @@ -140,12 +144,13 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps ${{ matrix.browser }} chromium + - run: npx playwright install --with-deps ${{ matrix.browser }} chromium - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test -- --project=${{ matrix.browser }} if: ${{ always() }} env: @@ -170,12 +175,13 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps chromium + - run: npx playwright install --with-deps chromium - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run ctest env: PWTEST_MODE: ${{ matrix.mode }} @@ -199,12 +205,13 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: DEBUG: pw:install PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps ${{ matrix.browser }} chromium + - run: npx playwright install --with-deps ${{ matrix.browser }} chromium - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test -- --project=${{ matrix.browser }} env: PWTEST_TRACE: 1 @@ -219,11 +226,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps chrome + - run: npx playwright install --with-deps chrome - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run ctest env: PWTEST_CHANNEL: chrome @@ -243,11 +251,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps chrome + - run: npx playwright install --with-deps chrome - run: npm run ctest shell: bash env: @@ -269,11 +278,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps chrome + - run: npx playwright install --with-deps chrome - run: npm run ctest env: PWTEST_CHANNEL: chrome @@ -293,11 +303,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps firefox-beta chromium + - run: npx playwright install --with-deps firefox-beta chromium - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run ftest env: PWTEST_CHANNEL: firefox-beta @@ -317,11 +328,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps firefox-beta chromium + - run: npx playwright install --with-deps firefox-beta chromium - run: npm run ftest shell: bash env: @@ -343,11 +355,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps firefox-beta chromium + - run: npx playwright install --with-deps firefox-beta chromium - run: npm run ftest env: PWTEST_CHANNEL: firefox-beta @@ -367,11 +380,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps msedge + - run: npx playwright install --with-deps msedge - run: npm run ctest env: PWTEST_CHANNEL: msedge @@ -392,11 +406,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps msedge + - run: npx playwright install --with-deps msedge - run: npm run ctest shell: bash env: @@ -415,11 +430,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps msedge-beta + - run: npx playwright install --with-deps msedge-beta - run: npm run ctest env: PWTEST_CHANNEL: msedge-beta @@ -439,11 +455,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps msedge-beta + - run: npx playwright install --with-deps msedge-beta - run: npm run ctest shell: bash env: @@ -462,11 +479,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps msedge-beta + - run: npx playwright install --with-deps msedge-beta - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run ctest env: PWTEST_CHANNEL: msedge-beta @@ -486,11 +504,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps msedge-dev + - run: npx playwright install --with-deps msedge-dev - run: npm run ctest env: PWTEST_CHANNEL: msedge-dev @@ -510,11 +529,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps msedge-dev + - run: npx playwright install --with-deps msedge-dev - run: npm run ctest shell: bash env: @@ -533,11 +553,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps msedge-dev + - run: npx playwright install --with-deps msedge-dev - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run ctest env: PWTEST_CHANNEL: msedge-dev @@ -557,11 +578,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps chrome-beta + - run: npx playwright install --with-deps chrome-beta - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run ctest env: PWTEST_CHANNEL: chrome-beta @@ -581,11 +603,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps chrome-beta + - run: npx playwright install --with-deps chrome-beta - run: npm run ctest shell: bash env: @@ -607,11 +630,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps chrome-beta + - run: npx playwright install --with-deps chrome-beta - run: npm run ctest env: PWTEST_CHANNEL: chrome-beta @@ -631,11 +655,12 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - run: npm run build - - run: node lib/cli/cli install --with-deps chromium + - run: npx playwright install --with-deps chromium - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run etest - run: node tests/config/checkCoverage.js electron - run: ./utils/upload_flakiness_dashboard.sh ./test-results/report.json @@ -654,8 +679,9 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 12 + - run: npm i -g npm@7 - run: npm ci - run: npm run build - - run: node lib/cli/cli install-deps + - run: npx playwright install-deps - run: node utils/build/update_canary_version.js --today-date - run: utils/build/build-playwright-driver.sh diff --git a/.gitignore b/.gitignore index 52ac3fd320..71632f6aa2 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,7 @@ node_modules/ .vscode .idea yarn.lock -/src/generated/* +/packages/playwright-core/src/generated/* lib/ drivers/ .android-sdk/ @@ -20,3 +20,6 @@ nohup.out allure* playwright-report /demo/ +/packages/*/LICENSE +/packages/*/NOTICE +/packages/playwright/README.md diff --git a/babel.config.json b/babel.config.json index 4d8238bd94..db3716e3ae 100644 --- a/babel.config.json +++ b/babel.config.json @@ -13,6 +13,6 @@ ], "ignore": [ "**/*.d.ts", - "src/injected/**/*" + "packages/playwright-core/src/injected/**/*" ] } diff --git a/install-from-github.js b/install-from-github.js index 32e4bcefc1..90a8d0b2f9 100644 --- a/install-from-github.js +++ b/install-from-github.js @@ -17,7 +17,7 @@ // This file is only run when someone installs via the github repo -const {execSync} = require('child_process'); +const { execSync } = require('child_process'); const path = require('path'); console.log(`Updating test runner...`); @@ -30,18 +30,9 @@ try { process.exit(1); } -console.log(`Rebuilding installer...`); -try { - execSync('npm run build-installer', { - stdio: ['inherit', 'inherit', 'inherit'], - }); -} catch (e) { - process.exit(1); -} - console.log(`Downloading browsers...`); -const { installDefaultBrowsersForNpmInstall } = require('./lib/utils/registry'); -installDefaultBrowsersForNpmInstall().catch(e => { +const { installDefaultBrowsersForNpmInstall } = require('./packages/playwright-core/lib/utils/registry'); +installDefaultBrowsersForNpmInstall().catch(e => { console.error(`Failed to install browsers, caused by\n${e.stack}`); process.exit(1); }); diff --git a/packages/.gitignore b/installation-tests/.gitignore similarity index 100% rename from packages/.gitignore rename to installation-tests/.gitignore diff --git a/packages/installation-tests/README.md b/installation-tests/README.md similarity index 100% rename from packages/installation-tests/README.md rename to installation-tests/README.md diff --git a/packages/installation-tests/driver-client.js b/installation-tests/driver-client.js similarity index 95% rename from packages/installation-tests/driver-client.js rename to installation-tests/driver-client.js index 05129f9996..999899641f 100644 --- a/packages/installation-tests/driver-client.js +++ b/installation-tests/driver-client.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const { start } = require('playwright/lib/outofprocess.js'); +const { start } = require('playwright-core/lib/outofprocess'); (async () => { const playwright = await start(); diff --git a/packages/installation-tests/electron-app.js b/installation-tests/electron-app.js similarity index 100% rename from packages/installation-tests/electron-app.js rename to installation-tests/electron-app.js diff --git a/packages/installation-tests/esm-playwright-chromium.mjs b/installation-tests/esm-playwright-chromium.mjs similarity index 93% rename from packages/installation-tests/esm-playwright-chromium.mjs rename to installation-tests/esm-playwright-chromium.mjs index 821b386cd6..7e808b0c54 100644 --- a/packages/installation-tests/esm-playwright-chromium.mjs +++ b/installation-tests/esm-playwright-chromium.mjs @@ -16,7 +16,7 @@ import { chromium, firefox, webkit, selectors, devices, errors } from 'playwright-chromium'; import playwright from 'playwright-chromium'; -import errorsFile from 'playwright-chromium/lib/utils/errors.js'; +import errorsFile from 'playwright-core/lib/utils/errors'; import testESM from './esm.mjs'; testESM({ chromium, firefox, webkit, selectors, devices, errors, playwright, errorsFile }, [chromium]); diff --git a/packages/installation-tests/esm-playwright-firefox.mjs b/installation-tests/esm-playwright-firefox.mjs similarity index 93% rename from packages/installation-tests/esm-playwright-firefox.mjs rename to installation-tests/esm-playwright-firefox.mjs index 0818faec69..87fbff1c67 100644 --- a/packages/installation-tests/esm-playwright-firefox.mjs +++ b/installation-tests/esm-playwright-firefox.mjs @@ -16,7 +16,7 @@ import { chromium, firefox, webkit, selectors, devices, errors } from 'playwright-firefox'; import playwright from 'playwright-firefox'; -import errorsFile from 'playwright-firefox/lib/utils/errors.js'; +import errorsFile from 'playwright-core/lib/utils/errors'; import testESM from './esm.mjs'; testESM({ chromium, firefox, webkit, selectors, devices, errors, playwright, errorsFile }, [firefox]); diff --git a/packages/installation-tests/esm-playwright-test.mjs b/installation-tests/esm-playwright-test.mjs similarity index 95% rename from packages/installation-tests/esm-playwright-test.mjs rename to installation-tests/esm-playwright-test.mjs index 2799e11129..dd0ea23ea7 100644 --- a/packages/installation-tests/esm-playwright-test.mjs +++ b/installation-tests/esm-playwright-test.mjs @@ -17,7 +17,7 @@ import { chromium, firefox, webkit, selectors, devices, errors, test, expect } from '@playwright/test'; import * as playwright from '@playwright/test'; import defaultExport from '@playwright/test'; -import errorsFile from '@playwright/test/lib/utils/errors.js'; +import errorsFile from 'playwright-core/lib/utils/errors'; import testESM from './esm.mjs'; if (defaultExport !== test) { diff --git a/packages/installation-tests/esm-playwright-webkit.mjs b/installation-tests/esm-playwright-webkit.mjs similarity index 93% rename from packages/installation-tests/esm-playwright-webkit.mjs rename to installation-tests/esm-playwright-webkit.mjs index fff2213da7..8974f97306 100644 --- a/packages/installation-tests/esm-playwright-webkit.mjs +++ b/installation-tests/esm-playwright-webkit.mjs @@ -16,7 +16,7 @@ import { chromium, firefox, webkit, selectors, devices, errors } from 'playwright-webkit'; import playwright from 'playwright-webkit'; -import errorsFile from 'playwright-webkit/lib/utils/errors.js'; +import errorsFile from 'playwright-core/lib/utils/errors'; import testESM from './esm.mjs'; testESM({ chromium, firefox, webkit, selectors, devices, errors, playwright, errorsFile }, [webkit]); diff --git a/packages/installation-tests/esm-playwright.mjs b/installation-tests/esm-playwright.mjs similarity index 93% rename from packages/installation-tests/esm-playwright.mjs rename to installation-tests/esm-playwright.mjs index 9380f52b51..44d5c5a2ac 100644 --- a/packages/installation-tests/esm-playwright.mjs +++ b/installation-tests/esm-playwright.mjs @@ -16,7 +16,7 @@ import { chromium, firefox, webkit, selectors, devices, errors } from 'playwright'; import playwright from 'playwright'; -import errorsFile from 'playwright/lib/utils/errors.js'; +import errorsFile from 'playwright-core/lib/utils/errors'; import testESM from './esm.mjs'; testESM({ chromium, firefox, webkit, selectors, devices, errors, playwright, errorsFile }, [chromium, firefox, webkit]); diff --git a/packages/installation-tests/esm.mjs b/installation-tests/esm.mjs similarity index 100% rename from packages/installation-tests/esm.mjs rename to installation-tests/esm.mjs diff --git a/packages/installation-tests/inspector-custom-executable.js b/installation-tests/inspector-custom-executable.js similarity index 100% rename from packages/installation-tests/inspector-custom-executable.js rename to installation-tests/inspector-custom-executable.js diff --git a/packages/installation-tests/installation-tests.sh b/installation-tests/installation-tests.sh similarity index 90% rename from packages/installation-tests/installation-tests.sh rename to installation-tests/installation-tests.sh index 86bab8468a..4b78391fb9 100755 --- a/packages/installation-tests/installation-tests.sh +++ b/installation-tests/installation-tests.sh @@ -16,7 +16,7 @@ export PLAYWRIGHT_BROWSERS_PATH=0 # Pack all packages and put them in our output folder. echo "Building packages..." -PACKAGE_BUILDER="../../../packages/build_package.js" +PACKAGE_BUILDER="../../utils/pack_package.js" PLAYWRIGHT_CORE_TGZ="$(node ${PACKAGE_BUILDER} playwright-core ./playwright-core.tgz)" echo "playwright-core built" PLAYWRIGHT_TGZ="$(node ${PACKAGE_BUILDER} playwright ./playwright.tgz)" @@ -34,7 +34,7 @@ SCRIPTS_PATH="$(pwd -P)/.." TEST_ROOT="/tmp/playwright-installation-tests" rm -rf "${TEST_ROOT}" mkdir -p "${TEST_ROOT}" -NODE_VERSION="$(node --version)" +NODE_VERSION=$(node -e "console.log(process.version.slice(1).split('.')[0])") function copy_test_scripts { cp "${SCRIPTS_PATH}/inspector-custom-executable.js" . @@ -74,17 +74,12 @@ function run_tests { test_playwright_cli_install_should_work test_playwright_cli_codegen_should_work test_playwright_driver_should_work - # npm v7 that comes with Node v16 swallows output from install scripts, - # so the following tests won't work. - # See discussion at https://github.com/npm/cli/issues/1651 - if [[ "${NODE_VERSION}" != *"v16."* ]]; then - test_skip_browser_download - test_skip_browser_download_inspect_with_custom_executable - test_playwright_should_work - test_playwright_chromium_should_work - test_playwright_webkit_should_work - test_playwright_firefox_should_work - fi + test_skip_browser_download + test_skip_browser_download_inspect_with_custom_executable + test_playwright_should_work + test_playwright_chromium_should_work + test_playwright_webkit_should_work + test_playwright_firefox_should_work } function test_screencast { @@ -92,6 +87,7 @@ function test_screencast { copy_test_scripts local BROWSERS="$(pwd -P)/browsers" + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_BROWSERS_PATH="${BROWSERS}" npm install ${PLAYWRIGHT_TGZ} PLAYWRIGHT_BROWSERS_PATH="${BROWSERS}" npm install ${PLAYWRIGHT_FIREFOX_TGZ} PLAYWRIGHT_BROWSERS_PATH="${BROWSERS}" npm install ${PLAYWRIGHT_WEBKIT_TGZ} @@ -111,7 +107,7 @@ function test_typescript_types { copy_test_scripts # install all packages. - PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_CORE_TGZ} + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_FIREFOX_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_WEBKIT_TGZ} @@ -139,6 +135,7 @@ function test_playwright_global_installation { initialize_test "${FUNCNAME[0]}" local BROWSERS="$(pwd -P)/browsers" + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_BROWSERS_PATH="${BROWSERS}" npm install ${PLAYWRIGHT_TGZ} if [[ ! -d "${BROWSERS}" ]]; then echo "Directory for shared browsers was not created!" @@ -156,6 +153,7 @@ function test_playwright_global_installation { function test_playwright_global_installation_cross_package { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_FIREFOX_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_WEBKIT_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_CHROMIUM_TGZ} @@ -185,6 +183,7 @@ function test_playwright_global_installation_subsequent_installs { local BROWSERS="$(pwd -P)/browsers" mkdir install-1 && pushd install-1 && npm init -y + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_BROWSERS_PATH="${BROWSERS}" npm install ${PLAYWRIGHT_TGZ} # Note: the `npm install` would not actually crash, the error # is merely logged to the console. To reproduce the error, we should make @@ -199,7 +198,8 @@ function test_playwright_global_installation_subsequent_installs { function test_skip_browser_download { initialize_test "${FUNCNAME[0]}" - OUTPUT=$(PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_TGZ}) + npm install ${PLAYWRIGHT_CORE_TGZ} + OUTPUT=$(PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install --foreground-script ${PLAYWRIGHT_TGZ}) if [[ "${OUTPUT}" != *"Skipping browsers download because"* ]]; then echo "missing log message that browsers download is skipped" exit 1 @@ -217,7 +217,8 @@ function test_skip_browser_download_inspect_with_custom_executable { initialize_test "${FUNCNAME[0]}" copy_test_scripts - OUTPUT=$(PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_TGZ}) + npm install ${PLAYWRIGHT_CORE_TGZ} + OUTPUT=$(PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install --foreground-script ${PLAYWRIGHT_TGZ}) if [[ "${OUTPUT}" != *"Skipping browsers download because"* ]]; then echo "missing log message that browsers download is skipped" exit 1 @@ -242,7 +243,8 @@ function test_skip_browser_download_inspect_with_custom_executable { function test_playwright_should_work { initialize_test "${FUNCNAME[0]}" - OUTPUT=$(npm install ${PLAYWRIGHT_TGZ}) + npm install ${PLAYWRIGHT_CORE_TGZ} + OUTPUT=$(npm install --foreground-script ${PLAYWRIGHT_TGZ}) if [[ "${OUTPUT}" != *"chromium"* ]]; then echo "ERROR: should download chromium" exit 1 @@ -259,7 +261,7 @@ function test_playwright_should_work { echo "Running sanity.js" node sanity.js playwright - if [[ "${NODE_VERSION}" == *"v14."* ]]; then + if [[ ${NODE_VERSION} -ge 14 ]]; then echo "Running esm.js" node esm-playwright.mjs fi @@ -275,6 +277,7 @@ function test_playwright_should_work { function test_playwright_should_work_with_relative_home_path { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_BROWSERS_PATH="" HOME=. npm install ${PLAYWRIGHT_TGZ} copy_test_scripts echo "Running sanity.js" @@ -289,6 +292,7 @@ function test_playwright_should_work_with_relative_browsers_path { # Make sure that browsers path is resolved relative to the `npm install` call location. mkdir foo cd foo + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_BROWSERS_PATH="../relative" npm install ${PLAYWRIGHT_TGZ} cd .. @@ -301,7 +305,8 @@ function test_playwright_should_work_with_relative_browsers_path { function test_playwright_chromium_should_work { initialize_test "${FUNCNAME[0]}" - OUTPUT=$(npm install ${PLAYWRIGHT_CHROMIUM_TGZ}) + npm install ${PLAYWRIGHT_CORE_TGZ} + OUTPUT=$(npm install --foreground-script ${PLAYWRIGHT_CHROMIUM_TGZ}) if [[ "${OUTPUT}" != *"chromium"* ]]; then echo "ERROR: should download chromium" exit 1 @@ -318,7 +323,7 @@ function test_playwright_chromium_should_work { echo "Running sanity.js" node sanity.js playwright-chromium - if [[ "${NODE_VERSION}" == *"v14."* ]]; then + if [[ ${NODE_VERSION} -ge 14 ]]; then echo "Running esm.js" node esm-playwright-chromium.mjs fi @@ -329,7 +334,8 @@ function test_playwright_chromium_should_work { function test_playwright_webkit_should_work { initialize_test "${FUNCNAME[0]}" - OUTPUT=$(npm install ${PLAYWRIGHT_WEBKIT_TGZ}) + npm install ${PLAYWRIGHT_CORE_TGZ} + OUTPUT=$(npm install --foreground-script ${PLAYWRIGHT_WEBKIT_TGZ}) if [[ "${OUTPUT}" == *"chromium"* ]]; then echo "ERROR: should not download chromium" exit 1 @@ -346,7 +352,7 @@ function test_playwright_webkit_should_work { echo "Running sanity.js" node sanity.js playwright-webkit - if [[ "${NODE_VERSION}" == *"v14."* ]]; then + if [[ ${NODE_VERSION} -ge 14 ]]; then echo "Running esm.js" node esm-playwright-webkit.mjs fi @@ -357,7 +363,8 @@ function test_playwright_webkit_should_work { function test_playwright_firefox_should_work { initialize_test "${FUNCNAME[0]}" - OUTPUT=$(npm install ${PLAYWRIGHT_FIREFOX_TGZ}) + npm install ${PLAYWRIGHT_CORE_TGZ} + OUTPUT=$(npm install --foreground-script ${PLAYWRIGHT_FIREFOX_TGZ}) if [[ "${OUTPUT}" == *"chromium"* ]]; then echo "ERROR: should not download chromium" exit 1 @@ -374,7 +381,7 @@ function test_playwright_firefox_should_work { echo "Running sanity.js" node sanity.js playwright-firefox - if [[ "${NODE_VERSION}" == *"v14."* ]]; then + if [[ ${NODE_VERSION} -ge 14 ]]; then echo "Running esm.js" node esm-playwright-firefox.mjs fi @@ -385,6 +392,7 @@ function test_playwright_firefox_should_work { function test_playwright_validate_dependencies { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} npm install ${PLAYWRIGHT_TGZ} copy_test_scripts @@ -400,6 +408,7 @@ function test_playwright_validate_dependencies { function test_playwright_validate_dependencies_skip_executable_path { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} npm install ${PLAYWRIGHT_TGZ} copy_test_scripts @@ -415,6 +424,7 @@ function test_playwright_validate_dependencies_skip_executable_path { function test_playwright_electron_should_work { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_TGZ} npm install electron@9.0 copy_test_scripts @@ -427,10 +437,11 @@ function test_playwright_electron_should_work { function test_electron_types { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_TGZ} - npm install electron@9.0 + npm install electron@12 npm install -D typescript@3.8 - npm install -D @types/node@10.17 + npm install -D @types/node@14 echo "import { Page, _electron, ElectronApplication, Electron } from 'playwright';" > "test.ts" echo "Running tsc" @@ -442,9 +453,10 @@ function test_electron_types { function test_android_types { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_TGZ} npm install -D typescript@3.8 - npm install -D @types/node@10.17 + npm install -D @types/node@14 echo "import { AndroidDevice, _android, AndroidWebView, Page } from 'playwright';" > "test.ts" echo "Running tsc" @@ -456,6 +468,7 @@ function test_android_types { function test_playwright_cli_screenshot_should_work { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} npm install ${PLAYWRIGHT_TGZ} echo "Running playwright screenshot" @@ -478,6 +491,7 @@ function test_playwright_cli_screenshot_should_work { function test_playwright_cli_install_should_work { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_TGZ} local BROWSERS="$(pwd -P)/browsers" @@ -531,6 +545,7 @@ function test_playwright_cli_install_should_work { function test_playwright_cli_codegen_should_work { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} npm install ${PLAYWRIGHT_TGZ} echo "Running playwright codegen" @@ -561,6 +576,7 @@ function test_playwright_cli_codegen_should_work { function test_playwright_driver_should_work { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 npm install ${PLAYWRIGHT_TGZ} echo "Running playwright install" @@ -576,6 +592,7 @@ function test_playwright_driver_should_work { function test_playwright_test_should_work { initialize_test "${FUNCNAME[0]}" + npm install ${PLAYWRIGHT_CORE_TGZ} npm install ${PLAYWRIGHT_TEST_TGZ} copy_test_scripts diff --git a/packages/installation-tests/playwright-test-types.ts b/installation-tests/playwright-test-types.ts similarity index 100% rename from packages/installation-tests/playwright-test-types.ts rename to installation-tests/playwright-test-types.ts diff --git a/packages/installation-tests/read-json-report.js b/installation-tests/read-json-report.js similarity index 100% rename from packages/installation-tests/read-json-report.js rename to installation-tests/read-json-report.js diff --git a/packages/installation-tests/sample.spec.js b/installation-tests/sample.spec.js similarity index 100% rename from packages/installation-tests/sample.spec.js rename to installation-tests/sample.spec.js diff --git a/packages/installation-tests/sanity-electron.js b/installation-tests/sanity-electron.js similarity index 100% rename from packages/installation-tests/sanity-electron.js rename to installation-tests/sanity-electron.js diff --git a/packages/installation-tests/sanity.js b/installation-tests/sanity.js similarity index 94% rename from packages/installation-tests/sanity.js rename to installation-tests/sanity.js index 18860e41c3..6ad8c32ccc 100644 --- a/packages/installation-tests/sanity.js +++ b/installation-tests/sanity.js @@ -32,8 +32,8 @@ else if (process.argv[3]) const playwright = require(requireName); // Requiring internals should work. -const errors = require(requireName + '/lib/utils/errors'); -const registry = require(requireName + '/lib/utils/registry'); +const errors = require('playwright-core/lib/utils/errors'); +const registry = require('playwright-core/lib/utils/registry'); (async () => { for (const browserType of success) { diff --git a/packages/installation-tests/screencast.js b/installation-tests/screencast.js similarity index 100% rename from packages/installation-tests/screencast.js rename to installation-tests/screencast.js diff --git a/packages/installation-tests/validate-dependencies-skip-executable-path.js b/installation-tests/validate-dependencies-skip-executable-path.js similarity index 100% rename from packages/installation-tests/validate-dependencies-skip-executable-path.js rename to installation-tests/validate-dependencies-skip-executable-path.js diff --git a/packages/installation-tests/validate-dependencies.js b/installation-tests/validate-dependencies.js similarity index 100% rename from packages/installation-tests/validate-dependencies.js rename to installation-tests/validate-dependencies.js diff --git a/package-lock.json b/package-lock.json index e3789040c5..6786680f70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,52 +8,9 @@ "name": "playwright-internal", "version": "1.16.0-next", "license": "Apache-2.0", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/core": "^7.14.8", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-proposal-dynamic-import": "^7.14.5", - "@babel/plugin-proposal-export-namespace-from": "^7.14.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-private-methods": "^7.14.5", - "@babel/plugin-proposal-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.14.5", - "@babel/preset-typescript": "^7.14.5", - "colors": "^1.4.0", - "commander": "^8.2.0", - "debug": "^4.1.1", - "expect": "^27.2.5", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jest-matcher-utils": "^27.2.5", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", - "minimatch": "^3.0.3", - "ms": "^2.1.2", - "open": "^8.2.1", - "pirates": "^4.0.1", - "pixelmatch": "^5.2.1", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "source-map-support": "^0.4.18", - "stack-utils": "^2.0.3", - "ws": "^7.4.6", - "yauzl": "^2.10.0", - "yazl": "^2.5.1" - }, - "bin": { - "playwright": "lib/cli/cli.js" - }, + "workspaces": [ + "packages/*" + ], "devDependencies": { "@babel/cli": "^7.14.8", "@babel/plugin-transform-typescript": "^7.14.6", @@ -143,33 +100,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/cli/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@babel/cli/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/cli/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", @@ -218,22 +148,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/generator": { "version": "7.14.8", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", @@ -247,14 +161,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", @@ -283,14 +189,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.14.8", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.8.tgz", @@ -648,6 +546,9 @@ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-dynamic-import": { @@ -656,6 +557,9 @@ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-export-namespace-from": { @@ -664,6 +568,9 @@ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-json-strings": { @@ -672,6 +579,9 @@ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-jsx": { @@ -695,6 +605,9 @@ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { @@ -703,6 +616,9 @@ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-numeric-separator": { @@ -711,6 +627,9 @@ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-object-rest-spread": { @@ -719,6 +638,9 @@ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { @@ -727,6 +649,9 @@ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-chaining": { @@ -735,6 +660,9 @@ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-private-property-in-object": { @@ -931,14 +859,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { "version": "7.14.8", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", @@ -973,15 +893,6 @@ "global-tunnel-ng": "^2.7.1" } }, - "node_modules/@electron/get/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -1002,6 +913,33 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", @@ -1121,197 +1059,6 @@ "upath": "^1.1.1" } }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1347,6 +1094,10 @@ "node": ">= 8" } }, + "node_modules/@playwright/test": { + "resolved": "packages/playwright-test", + "link": true + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -1645,6 +1396,15 @@ "source-map": "^0.6.1" } }, + "node_modules/@types/uglify-js/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@types/webpack": { "version": "4.41.28", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.28.tgz", @@ -1679,6 +1439,15 @@ "node": ">= 8" } }, + "node_modules/@types/webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@types/ws": { "version": "7.2.6", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz", @@ -1719,12 +1488,6 @@ "@types/node": "*" } }, - "node_modules/@types/yauzl/node_modules/@types/node": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.3.tgz", - "integrity": "sha512-/WbxFeBU+0F79z9RdEOXH4CsDga+ibi5M8uEYr91u3CkT/pdWcV8MCook+4wDPnZBexRdwWS+PiVZ2xJviAzcQ==", - "optional": true - }, "node_modules/@types/yazl": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/@types/yazl/-/yazl-2.4.2.tgz", @@ -1765,6 +1528,39 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/experimental-utils": { "version": "4.31.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.2.tgz", @@ -1789,33 +1585,6 @@ "eslint": "*" } }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/parser": { "version": "4.31.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.2.tgz", @@ -1900,6 +1669,39 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "4.31.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.2.tgz", @@ -1917,13 +1719,13 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/@vercel/ncc": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.30.0.tgz", + "integrity": "sha512-16ePj2GkwjomvE0HLL5ny+d+sudOwvZNYW8vjpMh3cyWdFxoMI8KSQiolVxeHBULbU1C5mVxLK5nL9NtnnpIew==", "dev": true, - "engines": { - "node": ">=10" + "bin": { + "ncc": "dist/ncc/cli.js" } }, "node_modules/@webassemblyjs/ast": { @@ -2168,19 +1970,29 @@ "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } }, "node_modules/ansi-colors": { "version": "4.1.1", @@ -2225,26 +2037,28 @@ "node": ">=8.0.0" } }, - "node_modules/ansi-to-html/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, + "optional": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "remove-trailing-separator": "^1.0.1" }, "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, "node_modules/aproba": { @@ -2262,12 +2076,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, "node_modules/args": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", @@ -2389,12 +2197,6 @@ "node": ">=8" } }, - "node_modules/async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - }, "node_modules/async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", @@ -2442,74 +2244,6 @@ "webpack": ">=2" } }, - "node_modules/babel-loader/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/babel-loader/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/babel-loader/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-loader/node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -2525,48 +2259,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/babel-loader/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", @@ -2610,49 +2302,25 @@ "node": ">=0.10.0" } }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/basic-auth-parser": { "version": "0.0.2", @@ -2670,12 +2338,13 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, + "optional": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/bindings": { @@ -2723,14 +2392,24 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/brorand": { @@ -2821,7 +2500,21 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/browserify-zlib": { "version": "0.2.0", @@ -2914,15 +2607,6 @@ "y18n": "^4.0.0" } }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/cacache/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -2935,12 +2619,6 @@ "rimraf": "bin.js" } }, - "node_modules/cacache/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -2995,6 +2673,9 @@ "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/callsites": { @@ -3016,12 +2697,6 @@ "tslib": "^2.0.3" } }, - "node_modules/camel-case/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - }, "node_modules/camelcase": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", @@ -3053,25 +2728,6 @@ "node": ">=4" } }, - "node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/chokidar": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", @@ -3093,6 +2749,97 @@ "fsevents": "~2.3.1" } }, + "node_modules/chokidar/node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/chokidar/node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/chokidar/node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/chokidar/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -3167,6 +2914,53 @@ "node": ">=0.10.0" } }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/clean-css": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", @@ -3179,6 +2973,15 @@ "node": ">= 4.0" } }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -3188,100 +2991,15 @@ "node": ">=6" } }, - "node_modules/cli": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/cli/-/cli-0.4.5.tgz", - "integrity": "sha1-ePlIXNFhtWbppsctcXDEJw6B22E=", - "dev": true, - "dependencies": { - "glob": ">= 3.1.4" - }, - "engines": { - "node": ">=0.2.5" - } - }, - "node_modules/cliff": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", - "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=", - "dev": true, - "dependencies": { - "colors": "~1.0.3", - "eyes": "~0.1.8", - "winston": "0.8.x" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/cliff/node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/clone-response": { @@ -3333,11 +3051,12 @@ } }, "node_modules/commander": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", - "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, "engines": { - "node": ">= 12" + "node": ">= 6" } }, "node_modules/commondir": { @@ -3364,6 +3083,12 @@ "node": "*" } }, + "node_modules/commonmark/node_modules/entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "dev": true + }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -3456,17 +3181,6 @@ "node": ">=8" } }, - "node_modules/concurrently/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, "node_modules/concurrently/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3509,59 +3223,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/concurrently/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/concurrently/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/concurrently/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/config-chain": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", @@ -3633,7 +3294,12 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.12.1.tgz", "integrity": "sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw==", "dev": true, - "optional": true + "hasInstallScript": true, + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, "node_modules/core-util-is": { "version": "1.0.2", @@ -3684,6 +3350,10 @@ "sha.js": "^2.4.8" } }, + "node_modules/create-playwright": { + "resolved": "packages/create-playwright", + "link": true + }, "node_modules/cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -3766,6 +3436,32 @@ "webpack": "^4.27.0 || ^5.0.0" } }, + "node_modules/css-loader/node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/css-loader/node_modules/schema-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", @@ -3784,6 +3480,27 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/css-select": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", @@ -3803,6 +3520,9 @@ "dev": true, "engines": { "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, "node_modules/cssesc": { @@ -3823,15 +3543,6 @@ "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", "dev": true }, - "node_modules/cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -3860,6 +3571,11 @@ }, "engines": { "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/decamelize": { @@ -3936,44 +3652,6 @@ "node": ">=0.10.0" } }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/del": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", @@ -3996,6 +3674,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/del/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -4094,7 +3781,13 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, "node_modules/domain-browser": { "version": "1.2.0", @@ -4141,12 +3834,6 @@ "tslib": "^2.0.3" } }, - "node_modules/dot-case/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - }, "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -4188,12 +3875,6 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.785.tgz", "integrity": "sha512-WmCgAeURsMFiyoJ646eUaJQ7GNfvMRLXo+GamUyKVNEM4MqTAsXyC0f38JEB4N3BtbD0tlAKozGP5E2T9K3YGg==" }, - "node_modules/electron/node_modules/@types/node": { - "version": "14.17.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.20.tgz", - "integrity": "sha512-gI5Sl30tmhXsqkNvopFydP7ASc4c2cLfGNQrVKN3X90ADFWFsPEsotm/8JHSUJQKTHbwowAHtcJPeyVhtKv0TQ==", - "dev": true - }, "node_modules/electron/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -4292,6 +3973,19 @@ "node": ">=6.9.0" } }, + "node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, "node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -4305,10 +3999,13 @@ } }, "node_modules/entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", - "dev": true + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/env-paths": { "version": "2.2.1", @@ -4365,6 +4062,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-to-primitive": { @@ -4379,6 +4079,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es6-error": { @@ -4397,11 +4100,11 @@ } }, "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, "node_modules/eslint": { @@ -4470,6 +4173,9 @@ "find-root": "^1.1.0", "lodash": "^4.17.15", "metric-lcs": "^0.1.2" + }, + "peerDependencies": { + "eslint": ">=3.0.0" } }, "node_modules/eslint-plugin-react-hooks": { @@ -4479,6 +4185,9 @@ "dev": true, "engines": { "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "node_modules/eslint-scope": { @@ -4495,24 +4204,30 @@ } }, "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=6" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, "engines": { - "node": ">=4" + "node": ">=10" } }, "node_modules/eslint/node_modules/@babel/code-frame": { @@ -4534,12 +4249,15 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/eslint/node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -4547,6 +4265,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/eslint/node_modules/color-convert": { @@ -4579,13 +4300,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { + "node_modules/eslint/node_modules/eslint-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/has-flag": { @@ -4597,6 +4348,33 @@ "node": ">=8" } }, + "node_modules/eslint/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4609,6 +4387,24 @@ "node": ">=8" } }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", @@ -4623,6 +4419,15 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -4754,18 +4559,53 @@ "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/expand-brackets/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4812,25 +4652,12 @@ } }, "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" @@ -4867,56 +4694,6 @@ "node": ">=0.10.0" } }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -4936,15 +4713,6 @@ "@types/yauzl": "^2.9.1" } }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true, - "engines": { - "node": "> 0.1.90" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4967,6 +4735,64 @@ "node": ">=8" } }, + "node_modules/fast-glob/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-glob/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -5025,6 +4851,27 @@ }, "engines": { "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, "node_modules/file-loader/node_modules/schema-utils": { @@ -5039,6 +4886,10 @@ }, "engines": { "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/file-uri-to-path": { @@ -5049,28 +4900,50 @@ "optional": true }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "dependencies": { "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-root": { @@ -5080,15 +4953,16 @@ "dev": true }, "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/findup-sync": { @@ -5106,127 +4980,6 @@ "node": ">= 0.10" } }, - "node_modules/findup-sync/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -5289,7 +5042,10 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==", - "dev": true + "dev": true, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } }, "node_modules/fragment-cache": { "version": "0.2.1", @@ -5355,6 +5111,7 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, + "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -5399,6 +5156,9 @@ "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-stream": { @@ -5410,6 +5170,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-value": { @@ -5435,6 +5198,9 @@ }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { @@ -5468,6 +5234,42 @@ "node": ">=10.0" } }, + "node_modules/global-agent/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-agent/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true + }, "node_modules/global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", @@ -5480,7 +5282,7 @@ "node": ">=6" } }, - "node_modules/global-modules/node_modules/global-prefix": { + "node_modules/global-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", @@ -5494,30 +5296,11 @@ "node": ">=6" } }, - "node_modules/global-modules/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/global-prefix/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, "engines": { "node": ">=0.10.0" } @@ -5551,27 +5334,11 @@ } }, "node_modules/globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" + "node": ">=4" } }, "node_modules/globalthis": { @@ -5585,6 +5352,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/globby": { @@ -5616,6 +5386,15 @@ "node": ">= 4" } }, + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -5670,7 +5449,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/has-flag": { "version": "3.0.0", @@ -5686,6 +5468,9 @@ "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-value": { @@ -5715,30 +5500,6 @@ "node": ">=0.10.0" } }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -5783,7 +5544,21 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/hash.js": { "version": "1.1.7", @@ -5854,15 +5629,6 @@ "node": ">=6" } }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/html-webpack-plugin": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", @@ -5881,32 +5647,9 @@ }, "engines": { "node": ">=6.9" - } - }, - "node_modules/html-webpack-plugin/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/html-webpack-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, "node_modules/htmlparser2": { @@ -5983,7 +5726,21 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/iferr": { "version": "0.1.5", @@ -6032,6 +5789,64 @@ "node": ">=6" } }, + "node_modules/import-local/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6095,25 +5910,22 @@ } }, "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, "engines": { "node": ">=0.10.0" } @@ -6128,18 +5940,22 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, + "optional": true, "dependencies": { - "binary-extensions": "^2.0.0" + "binary-extensions": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/is-boolean-object": { @@ -6152,6 +5968,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-buffer": { @@ -6167,6 +5986,9 @@ "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-core-module": { @@ -6182,25 +6004,22 @@ } }, "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, "engines": { "node": ">=0.10.0" } @@ -6212,26 +6031,29 @@ "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6297,14 +6119,21 @@ "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, "engines": { - "node": ">=0.12.0" + "node": ">=0.10.0" } }, "node_modules/is-number-object": { @@ -6314,6 +6143,9 @@ "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-path-cwd": { @@ -6357,6 +6189,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-string": { @@ -6366,6 +6201,9 @@ "dev": true, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-symbol": { @@ -6378,6 +6216,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-url": { @@ -6439,12 +6280,6 @@ "node": ">=0.10.0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, "node_modules/jest-diff": { "version": "27.2.5", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.5.tgz", @@ -6642,6 +6477,17 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jest-message-util/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-message-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -6673,6 +6519,17 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/jest-message-util/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-message-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6681,6 +6538,34 @@ "node": ">=8" } }, + "node_modules/jest-message-util/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jest-message-util/node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6692,6 +6577,17 @@ "node": ">=8" } }, + "node_modules/jest-message-util/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/jest-regex-util": { "version": "27.0.6", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", @@ -6790,7 +6686,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, - "dependencies": { + "optionalDependencies": { "graceful-fs": "^4.1.6" } }, @@ -6804,10 +6700,13 @@ } }, "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, "engines": { "node": ">=0.10.0" } @@ -6850,30 +6749,41 @@ } }, "node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "json5": "^1.0.1" }, "engines": { - "node": ">=8.9.0" + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/lodash": { @@ -6921,12 +6831,6 @@ "tslib": "^2.0.3" } }, - "node_modules/lower-case/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -6937,15 +6841,12 @@ } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/make-dir": { @@ -6961,15 +6862,6 @@ "node": ">=6" } }, - "node_modules/make-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/make-dir/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -7021,6 +6913,9 @@ "optional": true, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/md5.js": { @@ -7041,16 +6936,13 @@ "dev": true }, "node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" } }, "node_modules/merge2": { @@ -7069,15 +6961,61 @@ "dev": true }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "engines": { - "node": ">=8.6" + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/miller-rabin": { @@ -7286,6 +7224,40 @@ "node": ">=0.10.0" } }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -7323,12 +7295,6 @@ "tslib": "^2.0.3" } }, - "node_modules/no-case/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - }, "node_modules/node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", @@ -7386,6 +7352,10 @@ "dev": true, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/antelle" } }, "node_modules/normalize-package-data": { @@ -7441,6 +7411,16 @@ "node": ">=4" } }, + "node_modules/npm-conf/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, "node_modules/nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -7485,23 +7465,61 @@ "node": ">=0.10.0" } }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/object-keys": { "version": "1.1.1", @@ -7535,6 +7553,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.getownpropertydescriptors": { @@ -7549,6 +7570,9 @@ }, "engines": { "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.pick": { @@ -7572,9 +7596,9 @@ } }, "node_modules/open": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.2.1.tgz", - "integrity": "sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.3.0.tgz", + "integrity": "sha512-7INcPWb1UcOwSQxAXTnBJ+FxVV4MPs/X++FWWBtgY69/J5lc+tCteMt/oFK1MnkyHC4VILLa9ntmwKTwDR4Q9w==", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -7640,18 +7664,21 @@ }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/p-map": { @@ -7705,12 +7732,6 @@ "tslib": "^2.0.3" } }, - "node_modules/param-case/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7773,12 +7794,6 @@ "tslib": "^2.0.3" } }, - "node_modules/pascal-case/node_modules/tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - }, "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", @@ -7802,12 +7817,12 @@ "optional": true }, "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-is-absolute": { @@ -7869,16 +7884,18 @@ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", "engines": { "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "optional": true, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/pirates": { @@ -7912,25 +7929,36 @@ } }, "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } + "node_modules/playwright": { + "resolved": "packages/playwright", + "link": true + }, + "node_modules/playwright-chromium": { + "resolved": "packages/playwright-chromium", + "link": true + }, + "node_modules/playwright-core": { + "resolved": "packages/playwright-core", + "link": true + }, + "node_modules/playwright-firefox": { + "resolved": "packages/playwright-firefox", + "link": true + }, + "node_modules/playwright-webkit": { + "resolved": "packages/playwright-webkit", + "link": true }, "node_modules/pngjs": { "version": "5.0.0", @@ -8232,6 +8260,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", "dev": true, "engines": { "node": ">=0.4.x" @@ -8307,6 +8336,9 @@ "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" } }, "node_modules/react-is": { @@ -8329,15 +8361,6 @@ "node": ">=8" } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -8354,15 +8377,18 @@ } }, "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, + "optional": true, "dependencies": { - "picomatch": "^2.2.1" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "engines": { - "node": ">=8.10.0" + "node": ">=0.10" } }, "node_modules/regex-not": { @@ -8378,6 +8404,31 @@ "node": ">=0.10.0" } }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", @@ -8385,6 +8436,9 @@ "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/relateurl": { @@ -8540,6 +8594,34 @@ "node": ">=0.10.0" } }, + "node_modules/resolve-dir/node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -8553,6 +8635,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, "node_modules/responselike": { @@ -8600,6 +8683,9 @@ }, "bin": { "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ripemd160": { @@ -8630,6 +8716,13 @@ "node": ">=8.0" } }, + "node_modules/roarr/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8674,6 +8767,12 @@ "npm": ">=2.0.0" } }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -8722,21 +8821,18 @@ }, "engines": { "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/semver-compare": { @@ -8757,6 +8853,22 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/serialize-javascript": { @@ -8789,18 +8901,6 @@ "node": ">=0.10.0" } }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -8847,11 +8947,12 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, "node_modules/slice-ansi": { @@ -8866,6 +8967,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/slice-ansi/node_modules/ansi-styles": { @@ -8878,6 +8982,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/slice-ansi/node_modules/color-convert": { @@ -8943,44 +9050,6 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", @@ -8993,18 +9062,6 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/snapdragon/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -9026,33 +9083,59 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/snapdragon/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/socksv5": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/socksv5/-/socksv5-0.0.6.tgz", @@ -9101,10 +9184,9 @@ "dev": true }, "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "engines": { "node": ">=0.10.0" } @@ -9132,17 +9214,20 @@ } }, "node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, "dependencies": { - "source-map": "^0.5.6" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "node_modules/source-map-support/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -9203,12 +9288,36 @@ "node": ">=0.10.0" } }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, - "optional": true + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "node_modules/ssri": { "version": "6.0.2", @@ -9219,15 +9328,6 @@ "figgy-pudding": "^3.5.1" } }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", @@ -9239,6 +9339,14 @@ "node": ">=10" } }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -9264,6 +9372,53 @@ "node": ">=0.10.0" } }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -9340,6 +9495,9 @@ "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { @@ -9350,6 +9508,9 @@ "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/strip-ansi": { @@ -9387,6 +9548,27 @@ }, "engines": { "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/style-loader/node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, "node_modules/sumchecker": { @@ -9402,15 +9584,14 @@ } }, "node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { "has-flag": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/table": { @@ -9440,6 +9621,10 @@ "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/table/node_modules/json-schema-traverse": { @@ -9502,6 +9687,81 @@ }, "engines": { "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { @@ -9518,20 +9778,28 @@ "node": ">= 4" } }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/terser/node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "engines": { + "node": ">=0.10.0" } }, "node_modules/text-table": { @@ -9588,18 +9856,6 @@ "node": ">=0.10.0" } }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -9625,14 +9881,41 @@ } }, "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, "dependencies": { - "is-number": "^7.0.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "engines": { - "node": ">=8.0" + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/tree-kill": { @@ -9645,9 +9928,9 @@ } }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", "dev": true }, "node_modules/tsutils": { @@ -9660,8 +9943,17 @@ }, "engines": { "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -9691,13 +9983,12 @@ } }, "node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "optional": true, "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/typedarray": { @@ -9729,6 +10020,9 @@ "has-bigints": "^1.0.1", "has-symbols": "^1.0.2", "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/union-value": { @@ -9845,6 +10139,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, "node_modules/url": { @@ -9949,11 +10244,11 @@ "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, "dependencies": { - "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" }, "optionalDependencies": { + "chokidar": "^3.4.1", "watchpack-chokidar2": "^2.0.1" } }, @@ -9967,86 +10262,17 @@ "chokidar": "^2.1.8" } }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/watchpack-chokidar2/node_modules/chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", "dev": true, "optional": true, "dependencies": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -10055,41 +10281,16 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "optionalDependencies": { + "fsevents": "^1.2.7" } }, "node_modules/watchpack-chokidar2/node_modules/fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", "dev": true, "hasInstallScript": true, "optional": true, @@ -10128,99 +10329,6 @@ "node": ">=0.10.0" } }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack": { "version": "4.46.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", @@ -10256,6 +10364,18 @@ }, "engines": { "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } } }, "node_modules/webpack-cli": { @@ -10281,6 +10401,29 @@ }, "engines": { "node": ">=6.11.5" + }, + "peerDependencies": { + "webpack": "4.x.x" + } + }, + "node_modules/webpack-cli/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "node_modules/webpack-cli/node_modules/cross-spawn": { @@ -10299,30 +10442,65 @@ "node": ">=4.8" } }, - "node_modules/webpack-cli/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } + "node_modules/webpack-cli/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true }, - "node_modules/webpack-cli/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "node_modules/webpack-cli/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "locate-path": "^3.0.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-cli/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" } }, "node_modules/webpack-cli/node_modules/path-key": { @@ -10364,6 +10542,44 @@ "node": ">=0.10.0" } }, + "node_modules/webpack-cli/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/webpack-cli/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -10376,6 +10592,48 @@ "which": "bin/which" } }, + "node_modules/webpack-cli/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/webpack-cli/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, "node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -10386,6 +10644,15 @@ "source-map": "~0.6.1" } }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack/node_modules/acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", @@ -10398,39 +10665,6 @@ "node": ">=0.4.0" } }, - "node_modules/webpack/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack/node_modules/eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", @@ -10444,117 +10678,6 @@ "node": ">=4.0.0" } }, - "node_modules/webpack/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/webpack/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack/node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack/node_modules/schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -10569,19 +10692,6 @@ "node": ">= 4" } }, - "node_modules/webpack/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -10608,6 +10718,9 @@ "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-module": { @@ -10616,33 +10729,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "node_modules/winston": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", - "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", - "dev": true, - "dependencies": { - "async": "0.2.x", - "colors": "0.6.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "pkginfo": "0.3.x", - "stack-trace": "0.0.x" - }, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/winston/node_modules/colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -10662,69 +10748,55 @@ } }, "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -10736,6 +10808,18 @@ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "engines": { "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/xml2js": { @@ -10776,9 +10860,9 @@ "dev": true }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yaml": { @@ -10791,90 +10875,39 @@ } }, "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "node_modules/yargs/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" + "node": ">=10" } }, "node_modules/yauzl": { @@ -10893,6 +10926,161 @@ "dependencies": { "buffer-crc32": "~0.2.3" } + }, + "packages/create-playwright": { + "version": "0.1.7", + "license": "MIT", + "bin": { + "create-playwright": "index.js" + }, + "devDependencies": { + "@types/node": "^16.9.0", + "@vercel/ncc": "^0.30.0", + "enquirer": "^2.3.6", + "typescript": "^4.4.2" + }, + "engines": { + "node": ">=12" + } + }, + "packages/create-playwright/node_modules/@types/node": { + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==", + "dev": true + }, + "packages/playwright": { + "version": "1.16.0-next", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "=1.16.0-next" + }, + "engines": { + "node": ">=12" + } + }, + "packages/playwright-chromium": { + "version": "1.16.0-next", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "=1.16.0-next" + }, + "engines": { + "node": ">=12" + } + }, + "packages/playwright-core": { + "version": "1.16.0-next", + "license": "Apache-2.0", + "dependencies": { + "commander": "^8.2.0", + "debug": "^4.1.1", + "extract-zip": "^2.0.1", + "https-proxy-agent": "^5.0.0", + "jpeg-js": "^0.4.2", + "mime": "^2.4.6", + "pngjs": "^5.0.0", + "progress": "^2.0.3", + "proper-lockfile": "^4.1.1", + "proxy-from-env": "^1.1.0", + "rimraf": "^3.0.2", + "stack-utils": "^2.0.3", + "ws": "^7.4.6", + "yauzl": "^2.10.0", + "yazl": "^2.5.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "packages/playwright-core/node_modules/commander": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", + "engines": { + "node": ">= 12" + } + }, + "packages/playwright-firefox": { + "version": "1.16.0-next", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "=1.16.0-next" + }, + "engines": { + "node": ">=12" + } + }, + "packages/playwright-test": { + "name": "@playwright/test", + "version": "1.16.0-next", + "license": "Apache-2.0", + "dependencies": { + "@babel/code-frame": "^7.14.5", + "@babel/core": "^7.14.8", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/preset-typescript": "^7.14.5", + "colors": "^1.4.0", + "commander": "^8.2.0", + "expect": "^27.2.5", + "jest-matcher-utils": "^27.2.5", + "minimatch": "^3.0.3", + "ms": "^2.1.2", + "open": "^8.3.0", + "pirates": "^4.0.1", + "pixelmatch": "^5.2.1", + "playwright-core": "=1.16.0-next", + "source-map-support": "^0.4.18" + }, + "engines": { + "node": ">=12" + } + }, + "packages/playwright-test/node_modules/commander": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", + "engines": { + "node": ">= 12" + } + }, + "packages/playwright-test/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "packages/playwright-webkit": { + "version": "1.16.0-next", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "=1.16.0-next" + }, + "engines": { + "node": ">=12" + } } }, "dependencies": { @@ -10911,26 +11099,6 @@ "make-dir": "^2.1.0", "slash": "^2.0.0", "source-map": "^0.5.0" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } } }, "@babel/code-frame": { @@ -10966,18 +11134,6 @@ "json5": "^2.1.2", "semver": "^6.3.0", "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "@babel/generator": { @@ -10988,13 +11144,6 @@ "@babel/types": "^7.14.8", "jsesc": "^2.5.1", "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "@babel/helper-annotate-as-pure": { @@ -11014,13 +11163,6 @@ "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/helper-create-class-features-plugin": { @@ -11475,13 +11617,6 @@ "@babel/types": "^7.14.8", "debug": "^4.1.0", "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - } } }, "@babel/types": { @@ -11508,14 +11643,6 @@ "progress": "^2.0.3", "semver": "^6.2.0", "sumchecker": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "@eslint/eslintrc": { @@ -11533,6 +11660,23 @@ "js-yaml": "^3.13.1", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } } }, "@humanwhocodes/config-array": { @@ -11627,171 +11771,6 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } } }, "@nodelib/fs.scandir": { @@ -11820,6 +11799,54 @@ "fastq": "^1.6.0" } }, + "@playwright/test": { + "version": "file:packages/playwright-test", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/core": "^7.14.8", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/preset-typescript": "^7.14.5", + "colors": "^1.4.0", + "commander": "^8.2.0", + "expect": "^27.2.5", + "jest-matcher-utils": "^27.2.5", + "minimatch": "^3.0.3", + "ms": "^2.1.2", + "open": "^8.3.0", + "pirates": "^4.0.1", + "pixelmatch": "^5.2.1", + "playwright-core": "=1.16.0-next", + "source-map-support": "^0.4.18" + }, + "dependencies": { + "commander": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==" + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "^0.5.6" + } + } + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -12110,6 +12137,14 @@ "dev": true, "requires": { "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "@types/webpack": { @@ -12124,6 +12159,14 @@ "@types/uglify-js": "*", "@types/webpack-sources": "*", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "@types/webpack-sources": { @@ -12183,14 +12226,6 @@ "optional": true, "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.3.tgz", - "integrity": "sha512-/WbxFeBU+0F79z9RdEOXH4CsDga+ibi5M8uEYr91u3CkT/pdWcV8MCook+4wDPnZBexRdwWS+PiVZ2xJviAzcQ==", - "optional": true - } } }, "@types/yazl": { @@ -12215,6 +12250,32 @@ "regexpp": "^3.1.0", "semver": "^7.3.5", "tsutils": "^3.21.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/experimental-utils": { @@ -12229,23 +12290,6 @@ "@typescript-eslint/typescript-estree": "4.31.2", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } } }, "@typescript-eslint/parser": { @@ -12289,6 +12333,32 @@ "is-glob": "^4.0.1", "semver": "^7.3.5", "tsutils": "^3.21.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "@typescript-eslint/visitor-keys": { @@ -12299,16 +12369,14 @@ "requires": { "@typescript-eslint/types": "4.31.2", "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } } }, + "@vercel/ncc": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.30.0.tgz", + "integrity": "sha512-16ePj2GkwjomvE0HLL5ny+d+sudOwvZNYW8vjpMh3cyWdFxoMI8KSQiolVxeHBULbU1C5mVxLK5nL9NtnnpIew==", + "dev": true + }, "@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", @@ -12543,13 +12611,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true + "dev": true, + "requires": {} }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "ansi-colors": { "version": "4.1.1", @@ -12577,24 +12647,29 @@ "dev": true, "requires": { "entities": "^2.2.0" - }, - "dependencies": { - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, + "optional": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, "aproba": { @@ -12610,14 +12685,6 @@ "dev": true, "requires": { "sprintf-js": "~1.0.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - } } }, "args": { @@ -12721,12 +12788,6 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", @@ -12761,56 +12822,6 @@ "schema-utils": "^2.6.5" }, "dependencies": { - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -12819,36 +12830,6 @@ "requires": { "semver": "^6.0.0" } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true } } }, @@ -12888,35 +12869,6 @@ "requires": { "is-descriptor": "^1.0.0" } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } } } }, @@ -12939,10 +12891,11 @@ "dev": true }, "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true }, "bindings": { "version": "1.5.0", @@ -12989,11 +12942,21 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "requires": { - "fill-range": "^7.0.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, "brorand": { @@ -13163,15 +13126,6 @@ "y18n": "^4.0.0" }, "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -13180,12 +13134,6 @@ "requires": { "glob": "^7.1.3" } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, @@ -13252,14 +13200,6 @@ "requires": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - } } }, "camelcase": { @@ -13281,21 +13221,6 @@ "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "chokidar": { @@ -13312,6 +13237,75 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.5.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "chownr": { @@ -13371,6 +13365,43 @@ "requires": { "is-descriptor": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } } } }, @@ -13381,6 +13412,14 @@ "dev": true, "requires": { "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "clean-stack": { @@ -13389,83 +13428,15 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, - "cli": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/cli/-/cli-0.4.5.tgz", - "integrity": "sha1-ePlIXNFhtWbppsctcXDEJw6B22E=", - "dev": true, - "requires": { - "glob": ">= 3.1.4" - } - }, - "cliff": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", - "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=", - "dev": true, - "requires": { - "colors": "~1.0.3", - "eyes": "~0.1.8", - "winston": "0.8.x" - }, - "dependencies": { - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - } - } - }, "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "clone-response": { @@ -13511,9 +13482,10 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "commander": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", - "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true }, "commondir": { "version": "1.0.1", @@ -13531,6 +13503,14 @@ "mdurl": "~1.0.1", "minimist": ">=1.2.2", "string.prototype.repeat": "^0.2.0" + }, + "dependencies": { + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "dev": true + } } }, "component-emitter": { @@ -13603,17 +13583,6 @@ } } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -13643,44 +13612,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -13804,6 +13735,23 @@ "sha.js": "^2.4.8" } }, + "create-playwright": { + "version": "file:packages/create-playwright", + "requires": { + "@types/node": "^16.9.0", + "@vercel/ncc": "^0.30.0", + "enquirer": "^2.3.6", + "typescript": "^4.4.2" + }, + "dependencies": { + "@types/node": { + "version": "16.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", + "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==", + "dev": true + } + } + }, "cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -13861,6 +13809,26 @@ "semver": "^7.3.5" }, "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "schema-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", @@ -13871,6 +13839,21 @@ "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -13904,12 +13887,6 @@ "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", "dev": true }, - "cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "dev": true - }, "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -13984,37 +13961,6 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } } }, "del": { @@ -14031,6 +13977,14 @@ "p-map": "^4.0.0", "rimraf": "^3.0.2", "slash": "^3.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } } }, "des.js": { @@ -14164,14 +14118,6 @@ "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - } } }, "duplexer3": { @@ -14203,12 +14149,6 @@ "extract-zip": "^1.0.3" }, "dependencies": { - "@types/node": { - "version": "14.17.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.20.tgz", - "integrity": "sha512-gI5Sl30tmhXsqkNvopFydP7ASc4c2cLfGNQrVKN3X90ADFWFsPEsotm/8JHSUJQKTHbwowAHtcJPeyVhtKv0TQ==", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -14302,6 +14242,18 @@ "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } } }, "enquirer": { @@ -14314,9 +14266,9 @@ } }, "entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true }, "env-paths": { @@ -14391,9 +14343,9 @@ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { "version": "7.31.0", @@ -14462,9 +14414,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -14492,11 +14444,31 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "eslint-visitor-keys": { + "eslint-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } }, "has-flag": { "version": "4.0.0", @@ -14504,6 +14476,24 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14512,6 +14502,18 @@ "requires": { "has-flag": "^4.0.0" } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -14530,7 +14532,8 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==", - "dev": true + "dev": true, + "requires": {} }, "eslint-scope": { "version": "5.1.1", @@ -14543,18 +14546,18 @@ } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" } }, "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "espree": { @@ -14566,6 +14569,14 @@ "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "esprima": { @@ -14669,13 +14680,41 @@ "is-descriptor": "^0.1.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "ms": { @@ -14716,24 +14755,12 @@ } }, "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "is-extendable": "^0.1.0" } }, "extglob": { @@ -14760,44 +14787,6 @@ "requires": { "is-descriptor": "^1.0.0" } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } } } }, @@ -14812,12 +14801,6 @@ "yauzl": "^2.10.0" } }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -14835,6 +14818,51 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "fast-json-stable-stringify": { @@ -14891,6 +14919,17 @@ "schema-utils": "^3.0.0" }, "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "schema-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", @@ -14912,22 +14951,37 @@ "optional": true }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } }, "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + } } }, "find-root": { @@ -14937,12 +14991,13 @@ "dev": true }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "findup-sync": { @@ -14955,111 +15010,6 @@ "is-glob": "^4.0.0", "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } } }, "flat-cache": { @@ -15248,6 +15198,35 @@ "roarr": "^2.15.3", "semver": "^7.3.2", "serialize-error": "^7.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true + } } }, "global-modules": { @@ -15257,43 +15236,25 @@ "dev": true, "requires": { "global-prefix": "^3.0.0" - }, - "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } } }, "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -15319,21 +15280,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - }, - "dependencies": { - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globalthis": { "version": "1.0.2", @@ -15364,6 +15313,12 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true } } }, @@ -15447,26 +15402,6 @@ "kind-of": "^4.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -15563,14 +15498,6 @@ "param-case": "^3.0.3", "relateurl": "^0.2.7", "terser": "^4.6.3" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - } } }, "html-webpack-plugin": { @@ -15588,28 +15515,6 @@ "pretty-error": "^2.1.1", "tapable": "^1.1.3", "util.promisify": "1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } } }, "htmlparser2": { @@ -15709,6 +15614,51 @@ "requires": { "pkg-dir": "^3.0.0", "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } } }, "imurmurhash": { @@ -15762,22 +15712,19 @@ "dev": true }, "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "^6.0.0" }, "dependencies": { "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true } } }, @@ -15794,12 +15741,13 @@ "dev": true }, "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, + "optional": true, "requires": { - "binary-extensions": "^2.0.0" + "binary-extensions": "^1.0.0" } }, "is-boolean-object": { @@ -15833,22 +15781,19 @@ } }, "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "^6.0.0" }, "dependencies": { "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true } } }, @@ -15859,20 +15804,20 @@ "dev": true }, "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true } } @@ -15916,9 +15861,13 @@ "dev": true }, "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } }, "is-number-object": { "version": "1.0.5", @@ -16019,12 +15968,6 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, "jest-diff": { "version": "27.2.5", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.2.5.tgz", @@ -16166,6 +16109,14 @@ "color-convert": "^2.0.1" } }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -16188,11 +16139,38 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -16200,6 +16178,14 @@ "requires": { "has-flag": "^4.0.0" } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } } } }, @@ -16297,10 +16283,13 @@ } }, "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } }, "leven": { "version": "2.1.0", @@ -16331,24 +16320,34 @@ "dev": true }, "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -16391,14 +16390,6 @@ "dev": true, "requires": { "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - } } }, "lowercase-keys": { @@ -16408,12 +16399,12 @@ "dev": true }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, "make-dir": { @@ -16426,12 +16417,6 @@ "semver": "^5.6.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -16492,9 +16477,9 @@ "dev": true }, "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { "errno": "^0.1.3", @@ -16514,12 +16499,51 @@ "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } } }, "miller-rabin": { @@ -16690,6 +16714,33 @@ "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } } }, "natural-compare": { @@ -16724,14 +16775,6 @@ "requires": { "lower-case": "^2.0.2", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - } } }, "node-libs-browser": { @@ -16830,6 +16873,15 @@ "requires": { "config-chain": "^1.1.11", "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "optional": true + } } }, "nth-check": { @@ -16867,13 +16919,41 @@ "is-descriptor": "^0.1.0" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } } } @@ -16938,9 +17018,9 @@ } }, "open": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.2.1.tgz", - "integrity": "sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.3.0.tgz", + "integrity": "sha512-7INcPWb1UcOwSQxAXTnBJ+FxVV4MPs/X++FWWBtgY69/J5lc+tCteMt/oFK1MnkyHC4VILLa9ntmwKTwDR4Q9w==", "requires": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -16993,12 +17073,12 @@ } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-map": { @@ -17041,14 +17121,6 @@ "requires": { "dot-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - } } }, "parent-module": { @@ -17099,14 +17171,6 @@ "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - } } }, "pascalcase": { @@ -17129,9 +17193,9 @@ "optional": true }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { @@ -17181,11 +17245,10 @@ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "optional": true + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true }, "pirates": { "version": "4.0.1", @@ -17211,19 +17274,64 @@ } }, "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" } }, - "pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", - "dev": true + "playwright": { + "version": "file:packages/playwright", + "requires": { + "playwright-core": "=1.16.0-next" + } + }, + "playwright-chromium": { + "version": "file:packages/playwright-chromium", + "requires": { + "playwright-core": "=1.16.0-next" + } + }, + "playwright-core": { + "version": "file:packages/playwright-core", + "requires": { + "commander": "^8.2.0", + "debug": "^4.1.1", + "extract-zip": "^2.0.1", + "https-proxy-agent": "^5.0.0", + "jpeg-js": "^0.4.2", + "mime": "^2.4.6", + "pngjs": "^5.0.0", + "progress": "^2.0.3", + "proper-lockfile": "^4.1.1", + "proxy-from-env": "^1.1.0", + "rimraf": "^3.0.2", + "stack-utils": "^2.0.3", + "ws": "^7.4.6", + "yauzl": "^2.10.0", + "yazl": "^2.5.1" + }, + "dependencies": { + "commander": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==" + } + } + }, + "playwright-firefox": { + "version": "file:packages/playwright-firefox", + "requires": { + "playwright-core": "=1.16.0-next" + } + }, + "playwright-webkit": { + "version": "file:packages/playwright-webkit", + "requires": { + "playwright-core": "=1.16.0-next" + } }, "pngjs": { "version": "5.0.0", @@ -17534,14 +17642,6 @@ "normalize-package-data": "^2.5.0", "parse-json": "^5.0.0", "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } } }, "readable-stream": { @@ -17560,12 +17660,15 @@ } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, + "optional": true, "requires": { - "picomatch": "^2.2.1" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "regex-not": { @@ -17576,6 +17679,27 @@ "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "regexpp": { @@ -17704,6 +17828,28 @@ "is-windows": "^1.0.1", "resolve-dir": "^1.0.0" } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -17776,6 +17922,15 @@ "json-stringify-safe": "^5.0.1", "semver-compare": "^1.0.0", "sprintf-js": "^1.1.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + } } }, "run-parallel": { @@ -17803,6 +17958,14 @@ "dev": true, "requires": { "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "safe-buffer": { @@ -17853,13 +18016,9 @@ } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "semver-compare": { "version": "1.0.0", @@ -17876,6 +18035,15 @@ "optional": true, "requires": { "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true + } } }, "serialize-javascript": { @@ -17903,17 +18071,6 @@ "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } } }, "setimmediate": { @@ -17953,9 +18110,10 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true }, "slice-ansi": { "version": "4.0.0", @@ -18028,13 +18186,41 @@ "is-descriptor": "^0.1.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "ms": { @@ -18042,12 +18228,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true } } }, @@ -18070,35 +18250,6 @@ "requires": { "is-descriptor": "^1.0.0" } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } } } }, @@ -18109,17 +18260,6 @@ "dev": true, "requires": { "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "socksv5": { @@ -18157,10 +18297,9 @@ "dev": true }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-js": { "version": "0.6.2", @@ -18182,17 +18321,20 @@ } }, "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, "requires": { - "source-map": "^0.5.6" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -18247,14 +18389,34 @@ "dev": true, "requires": { "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, - "optional": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "ssri": { "version": "6.0.2", @@ -18265,18 +18427,19 @@ "figgy-pudding": "^3.5.1" } }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, "stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", "requires": { "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } } }, "static-extend": { @@ -18297,6 +18460,43 @@ "requires": { "is-descriptor": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } } } }, @@ -18408,6 +18608,19 @@ "requires": { "loader-utils": "^2.0.0", "schema-utils": "^2.7.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } } }, "sumchecker": { @@ -18420,10 +18633,9 @@ } }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } @@ -18495,15 +18707,11 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -18524,6 +18732,60 @@ "worker-farm": "^1.7.0" }, "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -18534,6 +18796,12 @@ "ajv-errors": "^1.0.0", "ajv-keywords": "^3.1.0" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -18580,17 +18848,6 @@ "dev": true, "requires": { "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "to-readable-stream": { @@ -18609,14 +18866,37 @@ "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, "requires": { - "is-number": "^7.0.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "tree-kill": { @@ -18626,9 +18906,9 @@ "dev": true }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", "dev": true }, "tsutils": { @@ -18638,6 +18918,14 @@ "dev": true, "requires": { "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "tty-browserify": { @@ -18663,11 +18951,10 @@ } }, "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, - "optional": true + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true }, "typedarray": { "version": "0.0.6", @@ -18907,67 +19194,6 @@ "chokidar": "^2.1.8" }, "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", @@ -18989,31 +19215,6 @@ "upath": "^1.1.1" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", @@ -19047,83 +19248,6 @@ } } } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } } } }, @@ -19164,35 +19288,6 @@ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", @@ -19203,100 +19298,6 @@ "estraverse": "^4.1.1" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -19307,16 +19308,6 @@ "ajv-errors": "^1.0.0", "ajv-keywords": "^3.1.0" } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } } } }, @@ -19339,6 +19330,23 @@ "yargs": "^13.3.2" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -19352,26 +19360,52 @@ "which": "^1.2.9" } }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "minimist": "^1.2.0" + "locate-path": "^3.0.0" } }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -19399,6 +19433,35 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -19407,6 +19470,45 @@ "requires": { "isexe": "^2.0.0" } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, @@ -19418,6 +19520,14 @@ "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "which": { @@ -19448,29 +19558,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "winston": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", - "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", - "dev": true, - "requires": { - "async": "0.2.x", - "colors": "0.6.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "pkginfo": "0.3.x", - "stack-trace": "0.0.x" - }, - "dependencies": { - "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", - "dev": true - } - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -19487,53 +19574,39 @@ } }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "color-convert": "^2.0.1" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "color-name": "~1.1.4" } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true } } }, @@ -19545,7 +19618,8 @@ "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "requires": {} }, "xml2js": { "version": "0.4.23", @@ -19576,9 +19650,9 @@ "dev": true }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yaml": { @@ -19588,80 +19662,33 @@ "dev": true }, "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } } } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true }, "yauzl": { "version": "2.10.0", diff --git a/package.json b/package.json index 4d94404274..28d1781e5e 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,12 @@ "engines": { "node": ">=12" }, + "author": { + "name": "Microsoft Corporation" + }, + "license": "Apache-2.0", "scripts": { - "basetest": "cross-env PWTEST_CLI_ALLOW_TEST_COMMAND=1 node ./lib/cli/cli test", + "basetest": "cross-env PWTEST_CLI_ALLOW_TEST_COMMAND=1 playwright test", "ctest": "npm run basetest -- --config=tests/config/default.config.ts --project=chromium", "ftest": "npm run basetest -- --config=tests/config/default.config.ts --project=firefox", "wtest": "npm run basetest -- --config=tests/config/default.config.ts --project=webkit", @@ -19,11 +23,12 @@ "test": "npm run basetest -- --config=tests/config/default.config.ts", "eslint": "[ \"$CI\" = true ] && eslint --quiet -f codeframe --ext ts,tsx . || eslint --ext ts,tsx .", "tsc": "tsc -p .", - "build-installer": "babel -s --extensions \".ts\" --out-dir lib/utils/ src/utils", + "build-installer": "babel -s --extensions \".ts\" --out-dir packages/playwright-core/lib/utils/ packages/playwright-core/src/utils", "doc": "node utils/doclint/cli.js", - "lint": "npm run eslint && npm run tsc && npm run doc && npm run check-deps && node utils/generate_channels.js && node utils/generate_types/ --check-clean && npm run test-types", - "flint": "concurrently -s all \"npm run eslint\" \"npm run tsc\" \"npm run doc\" \"npm run check-deps\" \"node utils/generate_channels.js\" \"node utils/generate_types/ --check-clean\" \"npm run test-types\"", - "clean": "rimraf lib && rimraf src/generated/", + "lint": "npm run eslint && npm run tsc && npm run doc && npm run check-deps && node utils/generate_channels.js && node utils/generate_types/ --check-clean && npm run test-types && npm run lint-packages", + "lint-packages": "node utils/prepare_packages.js --check-clean", + "flint": "concurrently \"npm run eslint\" \"npm run tsc\" \"npm run doc\" \"npm run check-deps\" \"node utils/generate_channels.js\" \"node utils/generate_types/ --check-clean\" \"npm run test-types\" \"npm run lint-packages\"", + "clean": "rimraf packages/playwright-core/lib && rimraf packages/playwright-test/lib && rimraf packages/playwright-core/src/generated/", "prepare": "node install-from-github.js", "build": "node utils/build/build.js", "watch": "node utils/build/build.js --watch --lint", @@ -32,57 +37,9 @@ "check-deps": "node utils/check_deps.js", "build-android-driver": "./utils/build_android_driver.sh" }, - "author": { - "name": "Microsoft Corporation" - }, - "license": "Apache-2.0", - "bin": { - "playwright": "./lib/cli/cli.js" - }, - "DEPS-NOTE": "Any non-test dependency must be added to the build_package.js script as well", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/core": "^7.14.8", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-proposal-dynamic-import": "^7.14.5", - "@babel/plugin-proposal-export-namespace-from": "^7.14.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-private-methods": "^7.14.5", - "@babel/plugin-proposal-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.14.5", - "@babel/preset-typescript": "^7.14.5", - "colors": "^1.4.0", - "commander": "^8.2.0", - "debug": "^4.1.1", - "expect": "^27.2.5", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jest-matcher-utils": "^27.2.5", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", - "minimatch": "^3.0.3", - "ms": "^2.1.2", - "open": "^8.2.1", - "pirates": "^4.0.1", - "pixelmatch": "^5.2.1", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "source-map-support": "^0.4.18", - "stack-utils": "^2.0.3", - "ws": "^7.4.6", - "yauzl": "^2.10.0", - "yazl": "^2.5.1" - }, + "workspaces": [ + "packages/*" + ], "devDependencies": { "@babel/cli": "^7.14.8", "@babel/plugin-transform-typescript": "^7.14.6", diff --git a/packages/README.md b/packages/README.md deleted file mode 100644 index c46e765e9b..0000000000 --- a/packages/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Managing and Publishing Playwright Packages - -## Overview - -- Playwright ships multiple packages to NPM. All packages that are published to NPM are listed as folders under [`//packages/`](../packages). -- Playwright's [root package.json](../package.json) is **never published to NPM**. It is only used for devmode, e.g. when running `npm install` with no arguments or installing from github. -- Playwright dependencies for all packages are the same and are managed with the [`root package.json`](../package.json). -- Playwright browser versions for all packages are the same and are managed with the [`browsers.json`](../browsers.json). - -> **NOTE** As of May 20, 2020, the only exception is the `playwright-electron` package that -> doesn't follow the pack and is published manually. This is due to it's pre-1.0 status. - - -## Building NPM package - -To build a package that will be shipped to NPM, use [`//packages/build_package.js`](./build_package.js) script. -The script populates package folder with contents, and then uses `npm pack` to archive the folder. - -As of May 20, 2020, [`//packages/build_package.js`](./build_package.js) does the following: -- copies certain files and folders from `playwright-internal` to the subpackage (e.g. `//lib`, `//types`, `//LICENSE` etc) -- generates `package.json` and puts it in the subpackage -- generates `browsers.json` and puts it in the subpackage -- uses `npm pack` to pack the subpackage folder -- removes all the files that were added during the process - -To build `playwright` package and save result as `./playwright.tgz` file: - -```bash -./packages/build_package.js playwright ./playwright.tgz -``` - -To debug what files are put into the folder, use `--no-cleanup` flag and inspect the package folder: - -```bash -./packages/build_package.js playwright ./playwright.tgz --no-cleanup -ls ./packages/playwright # inspect the folder -``` - - -## Testing packages - -To test packages, use [`//packages/installation-tests/installation-tests.sh`](./installation-tests/installation-tests.sh). - - -## Publishing packages - - All package publishing happens **exclusively** over CI/CD using the [`//utils/publish_all_packages.sh`](../utils/publish_all_packages.sh) script. - diff --git a/packages/build_package.js b/packages/build_package.js deleted file mode 100755 index c2d0447215..0000000000 --- a/packages/build_package.js +++ /dev/null @@ -1,229 +0,0 @@ -#!/usr/bin/env node -/** - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const fs = require('fs'); -const os = require('os'); -const path = require('path'); -const rmSync = require('rimraf').sync; -const ncp = require('ncp'); -const {spawnSync} = require('child_process'); -const util = require('util'); - -const writeFileAsync = util.promisify(fs.writeFile.bind(fs)); -const cpAsync = util.promisify(ncp); - -const SCRIPT_NAME = path.basename(__filename); -const ROOT_PATH = path.join(__dirname, '..'); - -const PLAYWRIGHT_CORE_FILES = ['bin', 'lib', 'types', 'NOTICE', 'LICENSE', ]; - -const PACKAGES = { - 'playwright': { - description: 'A high-level API to automate web browsers', - browsers: ['chromium', 'firefox', 'webkit', 'ffmpeg'], - // We copy README.md additionally for Playwright so that it looks nice on NPM. - files: [...PLAYWRIGHT_CORE_FILES, 'README.md'], - }, - 'playwright-core': { - description: 'A high-level API to automate web browsers', - browsers: [], - files: PLAYWRIGHT_CORE_FILES, - }, - 'playwright-test': { - description: 'Playwright Test', - browsers: ['chromium', 'firefox', 'webkit', 'ffmpeg'], - files: PLAYWRIGHT_CORE_FILES, - name: '@playwright/test', - }, - 'playwright-webkit': { - description: 'A high-level API to automate WebKit', - browsers: ['webkit'], - files: PLAYWRIGHT_CORE_FILES, - }, - 'playwright-firefox': { - description: 'A high-level API to automate Firefox', - browsers: ['firefox'], - files: PLAYWRIGHT_CORE_FILES, - }, - 'playwright-chromium': { - description: 'A high-level API to automate Chromium', - browsers: ['chromium', 'ffmpeg'], - files: PLAYWRIGHT_CORE_FILES, - }, -}; - -const DEPENDENCIES = [ - 'commander', - 'debug', - 'extract-zip', - 'https-proxy-agent', - 'jpeg-js', - 'mime', - 'pngjs', - 'progress', - 'proper-lockfile', - 'proxy-from-env', - 'rimraf', - 'stack-utils', - 'ws', - 'yazl', -]; - -// 1. Parse CLI arguments -const args = process.argv.slice(2); -if (args.some(arg => arg === '--help')) { - console.log(usage()); - process.exit(1); -} else if (args.length < 1) { - console.log(`Please specify package name, e.g. 'playwright' or 'playwright-chromium'.`); - console.log(`Try running ${SCRIPT_NAME} --help`); - process.exit(1); -} else if (args.length < 2) { - console.log(`Please specify output path`); - console.log(`Try running ${SCRIPT_NAME} --help`); - process.exit(1); -} - -const packageName = args[0]; -const outputPath = path.resolve(args[1]); -const packagePath = path.join(__dirname, 'output', packageName); -const package = PACKAGES[packageName]; -if (!package) { - console.log(`ERROR: unknown package ${packageName}`); - process.exit(1); -} - -// 2. Setup cleanup if needed -if (!args.some(arg => arg === '--no-cleanup')) { - process.on('exit', () => { - rmSync(packagePath, {}); - }); - process.on('SIGINT', () => process.exit(2)); - process.on('SIGHUP', () => process.exit(3)); - process.on('SIGTERM', () => process.exit(4)); - process.on('uncaughtException', error => { - console.error(error); - process.exit(5); - }); - process.on('unhandledRejection', error => { - console.error(error); - process.exit(6); - }); -} - -(async () => { - // 3. Copy package files. - rmSync(packagePath, {}); - fs.mkdirSync(packagePath, { recursive: true }); - await copyToPackage(path.join(__dirname, 'common') + path.sep, packagePath + path.sep); - if (fs.existsSync(path.join(__dirname, packageName))) { - // Copy package-specific files, these can overwrite common ones. - await copyToPackage(path.join(__dirname, packageName) + path.sep, packagePath + path.sep); - } - for (const file of package.files) - await copyToPackage(path.join(ROOT_PATH, file), path.join(packagePath, file)); - - // 4. Generate package.json - const pwInternalJSON = require(path.join(ROOT_PATH, 'package.json')); - const depNames = packageName === 'playwright-test' ? Object.keys(pwInternalJSON.dependencies) : DEPENDENCIES; - const dependencies = {}; - for (const dep of depNames) { - if (!pwInternalJSON.dependencies[dep]) - throw new Error(`Dependecy ${dep} was removed from package.json, but not build_package.js`); - dependencies[dep] = pwInternalJSON.dependencies[dep]; - } - await writeToPackage('package.json', JSON.stringify({ - name: package.name || packageName, - version: pwInternalJSON.version, - description: package.description, - repository: pwInternalJSON.repository, - engines: pwInternalJSON.engines, - homepage: pwInternalJSON.homepage, - main: 'index.js', - bin: { - playwright: './lib/cli/cli.js', - }, - exports: { - // Root import: we have a wrapper ES Module to support the following syntax. - // const { chromium } = require('playwright'); - // import { chromium } from 'playwright'; - '.': { - import: './index.mjs', - require: './index.js', - }, - // Anything else can be required/imported by providing a relative path. - './': './', - }, - scripts: { - install: 'node install.js', - }, - author: pwInternalJSON.author, - license: pwInternalJSON.license, - dependencies, - }, null, 2)); - - // 5. Generate browsers.json - const browsersJSON = require(path.join(ROOT_PATH, 'browsers.json')); - for (const browser of browsersJSON.browsers) - browser.installByDefault = package.browsers.includes(browser.name); - await writeToPackage('browsers.json', JSON.stringify(browsersJSON, null, 2)); - - // 6. Bake commit SHA into the package - const commitSHA = spawnSync('git', ['rev-parse', 'HEAD'], {cwd: __dirname, encoding: 'utf8'}); - await writeToPackage('commitinfo', commitSHA.stdout.trim()); - - // 7. Run npm pack - const shell = os.platform() === 'win32'; - const {stdout, stderr, status} = spawnSync('npm', ['pack'], {cwd: packagePath, encoding: 'utf8', shell}); - if (status !== 0) { - console.log(`ERROR: "npm pack" failed`); - console.log(stderr); - process.exit(1); - } - const tgzName = stdout.trim(); - - // 7. Move result to the outputPath - fs.renameSync(path.join(packagePath, tgzName), outputPath); - console.log(outputPath); -})(); - -async function writeToPackage(fileName, content) { - const toPath = path.join(packagePath, fileName); - await writeFileAsync(toPath, content); -} - -async function copyToPackage(fromPath, toPath) { - try { - fs.mkdirSync(path.dirname(toPath), { recursive: true }); - } catch (e) { - // the folder might exist already - } - await cpAsync(fromPath, toPath); -} - -function usage() { - return ` -usage: ${SCRIPT_NAME} [--no-cleanup] - -Creates a .tgz of the package and saves it at the given output path - - --no-cleanup skip cleaning up generated files from package directory - -Example: - ${SCRIPT_NAME} playwright ./playwright.tgz -`; -} - diff --git a/packages/create-playwright/package-lock.json b/packages/create-playwright/package-lock.json index 7f2bdb75b5..799a38dbf0 100644 --- a/packages/create-playwright/package-lock.json +++ b/packages/create-playwright/package-lock.json @@ -12,7 +12,7 @@ "create-playwright": "index.js" }, "devDependencies": { - "@playwright/test": "^1.15.0-next-alpha-sep-10-2021", + "@playwright/test": "file:../playwright-test", "@types/node": "^16.9.0", "@vercel/ncc": "^0.30.0", "enquirer": "^2.3.6", @@ -22,820 +22,11 @@ "node": ">=12" } }, - "node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "../playwright-test": { + "name": "@playwright/test", + "version": "1.16.0-next", "dev": true, - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", - "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", - "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", - "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", - "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", - "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", - "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", - "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz", - "integrity": "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.15.0.tgz", - "integrity": "sha512-lt0Y/8V3y06Wq/8H/u0WakrqciZ7Fz7mwPDHWUJAXlABL5hiUG42BNlRXiELNjeWjO5rWmnNKlx+yzJvxezHow==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-typescript": "^7.15.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@playwright/test": { - "version": "1.15.0-next-alpha-sep-10-2021", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.15.0-next-alpha-sep-10-2021.tgz", - "integrity": "sha512-lLqwacA/r4g6mzpYUoZnJ7LaYQsU8OMQoIAY0aNY8MCS5HS0HEMzK8Lq4T8gbwjtT6Rqsr80kcVmt2l0qUdihg==", - "dev": true, - "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "@babel/code-frame": "^7.14.5", "@babel/core": "^7.14.8", @@ -855,58 +46,23 @@ "@babel/plugin-transform-modules-commonjs": "^7.14.5", "@babel/preset-typescript": "^7.14.5", "colors": "^1.4.0", - "commander": "^6.1.0", - "debug": "^4.1.1", - "expect": "^26.4.2", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jest-matcher-utils": "^26.4.2", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", + "expect": "^27.2.5", + "jest-matcher-utils": "^27.2.5", "minimatch": "^3.0.3", "ms": "^2.1.2", + "open": "^8.3.0", "pirates": "^4.0.1", "pixelmatch": "^5.2.1", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "source-map-support": "^0.4.18", - "stack-utils": "^2.0.3", - "ws": "^7.4.6", - "yazl": "^2.5.1" - }, - "bin": { - "playwright": "lib/cli/cli.js" + "playwright-core": "=1.16.0-next", + "source-map-support": "^0.4.18" }, "engines": { "node": ">=12" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } + "node_modules/@playwright/test": { + "resolved": "../playwright-test", + "link": true }, "node_modules/@types/node": { "version": "16.9.0", @@ -914,37 +70,6 @@ "integrity": "sha512-nmP+VR4oT0pJUPFbKE4SXj3Yb4Q/kz3M9dSAO1GGMebRKWHQxLfDNmU/yh3xxCJha3N60nQ/JwXWwOE/ZSEVag==", "dev": true }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "node_modules/@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@vercel/ncc": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.30.0.tgz", @@ -954,18 +79,6 @@ "ncc": "dist/ncc/cli.js" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -975,246 +88,6 @@ "node": ">=6" } }, - "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001256", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001256.tgz", - "integrity": "sha512-QirrvMLmB4txNnxiaG/xbm6FSzv9LqOZ3Jp9VtCYb3oPIfCHpr/oGn38pFq0udwlkctvXQgPthaXqJ76DaYGnA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.3.835", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.835.tgz", - "integrity": "sha512-rHQszGg2KLMqOWPNTpwCnlp7Kb85haJa8j089DJCreZueykoSN/in+EMlay3SSDMNKR4VGPvfskxofHV18xVJg==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -1227,973 +100,6 @@ "node": ">=8.6" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/expect/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jpeg-js": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", - "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", - "dev": true - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pixelmatch": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz", - "integrity": "sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==", - "dev": true, - "dependencies": { - "pngjs": "^4.0.1" - }, - "bin": { - "pixelmatch": "bin/pixelmatch" - } - }, - "node_modules/pixelmatch/node_modules/pngjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz", - "integrity": "sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/pretty-format/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/typescript": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", @@ -2206,638 +112,11 @@ "engines": { "node": ">=4.2.0" } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3" - } } }, "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "dev": true - }, - "@babel/core": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", - "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz", - "integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", - "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", - "dev": true, - "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz", - "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==", - "dev": true - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", - "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", - "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", - "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", - "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", - "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz", - "integrity": "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.15.4.tgz", - "integrity": "sha512-sM1/FEjwYjXvMwu1PJStH11kJ154zd/lpY56NQJ5qH2D0mabMv1CAy/kdvS9RP4Xgfj9fBBA3JiSLdDHgXdzOA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.14.5" - } - }, - "@babel/preset-typescript": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.15.0.tgz", - "integrity": "sha512-lt0Y/8V3y06Wq/8H/u0WakrqciZ7Fz7mwPDHWUJAXlABL5hiUG42BNlRXiELNjeWjO5rWmnNKlx+yzJvxezHow==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-typescript": "^7.15.0" - } - }, - "@babel/template": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "@playwright/test": { - "version": "1.15.0-next-alpha-sep-10-2021", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.15.0-next-alpha-sep-10-2021.tgz", - "integrity": "sha512-lLqwacA/r4g6mzpYUoZnJ7LaYQsU8OMQoIAY0aNY8MCS5HS0HEMzK8Lq4T8gbwjtT6Rqsr80kcVmt2l0qUdihg==", - "dev": true, + "version": "file:../playwright-test", "requires": { "@babel/code-frame": "^7.14.5", "@babel/core": "^7.14.8", @@ -2857,51 +136,15 @@ "@babel/plugin-transform-modules-commonjs": "^7.14.5", "@babel/preset-typescript": "^7.14.5", "colors": "^1.4.0", - "commander": "^6.1.0", - "debug": "^4.1.1", - "expect": "^26.4.2", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.0", - "jest-matcher-utils": "^26.4.2", - "jpeg-js": "^0.4.2", - "mime": "^2.4.6", + "expect": "^27.2.5", + "jest-matcher-utils": "^27.2.5", "minimatch": "^3.0.3", "ms": "^2.1.2", + "open": "^8.3.0", "pirates": "^4.0.1", "pixelmatch": "^5.2.1", - "pngjs": "^5.0.0", - "progress": "^2.0.3", - "proper-lockfile": "^4.1.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "source-map-support": "^0.4.18", - "stack-utils": "^2.0.3", - "ws": "^7.4.6", - "yazl": "^2.5.1" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" + "playwright-core": "=1.16.0-next", + "source-map-support": "^0.4.18" } }, "@types/node": { @@ -2910,248 +153,18 @@ "integrity": "sha512-nmP+VR4oT0pJUPFbKE4SXj3Yb4Q/kz3M9dSAO1GGMebRKWHQxLfDNmU/yh3xxCJha3N60nQ/JwXWwOE/ZSEVag==", "dev": true }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, "@vercel/ncc": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.30.0.tgz", "integrity": "sha512-16ePj2GkwjomvE0HLL5ny+d+sudOwvZNYW8vjpMh3cyWdFxoMI8KSQiolVxeHBULbU1C5mVxLK5nL9NtnnpIew==", "dev": true }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caniuse-lite": { - "version": "1.0.30001256", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001256.tgz", - "integrity": "sha512-QirrvMLmB4txNnxiaG/xbm6FSzv9LqOZ3Jp9VtCYb3oPIfCHpr/oGn38pFq0udwlkctvXQgPthaXqJ76DaYGnA==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.835", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.835.tgz", - "integrity": "sha512-rHQszGg2KLMqOWPNTpwCnlp7Kb85haJa8j089DJCreZueykoSN/in+EMlay3SSDMNKR4VGPvfskxofHV18xVJg==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -3161,773 +174,11 @@ "ansi-colors": "^4.1.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jpeg-js": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", - "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pixelmatch": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz", - "integrity": "sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==", - "dev": true, - "requires": { - "pngjs": "^4.0.1" - }, - "dependencies": { - "pngjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz", - "integrity": "sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==", - "dev": true - } - } - }, - "pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, "typescript": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "dev": true, - "requires": {} - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3" - } } } } diff --git a/packages/create-playwright/package.json b/packages/create-playwright/package.json index 26782ea50f..3b6e794d58 100644 --- a/packages/create-playwright/package.json +++ b/packages/create-playwright/package.json @@ -20,7 +20,6 @@ "test": "npx playwright test" }, "devDependencies": { - "@playwright/test": "^1.15.0-next-alpha-sep-10-2021", "@types/node": "^16.9.0", "@vercel/ncc": "^0.30.0", "enquirer": "^2.3.6", diff --git a/packages/create-playwright/tests/integration.spec.ts b/packages/create-playwright/tests/integration.spec.ts index aa06108a25..db488c04f1 100644 --- a/packages/create-playwright/tests/integration.spec.ts +++ b/packages/create-playwright/tests/integration.spec.ts @@ -26,7 +26,7 @@ type TestFixtures = { }; type RunResult = { - exitCode: number, + exitCode: number|null, dir: string, stderr: string, stdout: string, diff --git a/packages/installation-tests/.gitignore b/packages/installation-tests/.gitignore deleted file mode 100644 index 53752db253..0000000000 --- a/packages/installation-tests/.gitignore +++ /dev/null @@ -1 +0,0 @@ -output diff --git a/packages/playwright-chromium/README.md b/packages/playwright-chromium/README.md deleted file mode 100644 index eae526c301..0000000000 --- a/packages/playwright-chromium/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# playwright-chromium -This package contains the [Chromium](https://www.chromium.org/) flavor of [Playwright](http://github.com/microsoft/playwright). diff --git a/packages/common/index.d.ts b/packages/playwright-chromium/index.d.ts similarity index 94% rename from packages/common/index.d.ts rename to packages/playwright-chromium/index.d.ts index 97c1493608..e2add353db 100644 --- a/packages/common/index.d.ts +++ b/packages/playwright-chromium/index.d.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export * from './types/types'; +export * from 'playwright-core'; diff --git a/packages/common/index.js b/packages/playwright-chromium/index.js similarity index 93% rename from packages/common/index.js rename to packages/playwright-chromium/index.js index 4b9607bba4..e263df6ab1 100644 --- a/packages/common/index.js +++ b/packages/playwright-chromium/index.js @@ -14,4 +14,4 @@ * limitations under the License. */ -module.exports = require('./lib/inprocess'); +module.exports = require('playwright-core'); diff --git a/packages/playwright-chromium/index.mjs b/packages/playwright-chromium/index.mjs new file mode 100644 index 0000000000..c736e9d13a --- /dev/null +++ b/packages/playwright-chromium/index.mjs @@ -0,0 +1,18 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from 'playwright-core'; +import playwright from 'playwright-core'; +export default playwright; diff --git a/packages/playwright-core/install.js b/packages/playwright-chromium/install.js similarity index 80% rename from packages/playwright-core/install.js rename to packages/playwright-chromium/install.js index a2cf310458..7bfb93fa07 100644 --- a/packages/playwright-core/install.js +++ b/packages/playwright-chromium/install.js @@ -14,5 +14,6 @@ * limitations under the License. */ -// Explicitly empty install.js to avoid touching browser registry at all. -// See https://github.com/microsoft/playwright/issues/4083 +const { installBrowsersForNpmInstall } = require('playwright-core/lib/utils/registry'); + +installBrowsersForNpmInstall(['chromium', 'ffmpeg']); diff --git a/packages/playwright-chromium/package.json b/packages/playwright-chromium/package.json new file mode 100644 index 0000000000..43ba940e82 --- /dev/null +++ b/packages/playwright-chromium/package.json @@ -0,0 +1,27 @@ +{ + "name": "playwright-chromium", + "version": "1.16.0-next", + "description": "A high-level API to automate web browsers", + "repository": "github:Microsoft/playwright", + "homepage": "https://playwright.dev", + "engines": { + "node": ">=12" + }, + "author": { + "name": "Microsoft Corporation" + }, + "license": "Apache-2.0", + "exports": { + ".": { + "import": "./index.mjs", + "require": "./index.js" + }, + "./": "./" + }, + "scripts": { + "install": "node install.js" + }, + "dependencies": { + "playwright-core": "=1.16.0-next" + } +} diff --git a/packages/common/.npmignore b/packages/playwright-core/.npmignore similarity index 79% rename from packages/common/.npmignore rename to packages/playwright-core/.npmignore index d1993fb2a6..0d183a6b81 100644 --- a/packages/common/.npmignore +++ b/packages/playwright-core/.npmignore @@ -1,7 +1,3 @@ -# NOTE: theoretically, we can remove this file, because we always create -# a directory for each package and only copy necessary files there. -# However, we keep it to double check the list of files. -# # This ignores everything by default, except for package.json and LICENSE and README.md. # See https://docs.npmjs.com/misc/developers **/* @@ -37,7 +33,5 @@ lib/**/injected/ !NOTICE # Include browser descriptors. !browsers.json -# Include commit info -!commitinfo # Include generated devices descriptors !deviceDescriptorsSource.json diff --git a/bin/PrintDeps.exe b/packages/playwright-core/bin/PrintDeps.exe similarity index 100% rename from bin/PrintDeps.exe rename to packages/playwright-core/bin/PrintDeps.exe diff --git a/bin/README.md b/packages/playwright-core/bin/README.md similarity index 100% rename from bin/README.md rename to packages/playwright-core/bin/README.md diff --git a/bin/android-driver-target.apk b/packages/playwright-core/bin/android-driver-target.apk similarity index 100% rename from bin/android-driver-target.apk rename to packages/playwright-core/bin/android-driver-target.apk diff --git a/bin/android-driver.apk b/packages/playwright-core/bin/android-driver.apk similarity index 100% rename from bin/android-driver.apk rename to packages/playwright-core/bin/android-driver.apk diff --git a/bin/install_media_pack.ps1 b/packages/playwright-core/bin/install_media_pack.ps1 similarity index 100% rename from bin/install_media_pack.ps1 rename to packages/playwright-core/bin/install_media_pack.ps1 diff --git a/bin/reinstall_chrome_beta_linux.sh b/packages/playwright-core/bin/reinstall_chrome_beta_linux.sh similarity index 100% rename from bin/reinstall_chrome_beta_linux.sh rename to packages/playwright-core/bin/reinstall_chrome_beta_linux.sh diff --git a/bin/reinstall_chrome_beta_mac.sh b/packages/playwright-core/bin/reinstall_chrome_beta_mac.sh similarity index 100% rename from bin/reinstall_chrome_beta_mac.sh rename to packages/playwright-core/bin/reinstall_chrome_beta_mac.sh diff --git a/bin/reinstall_chrome_beta_win.ps1 b/packages/playwright-core/bin/reinstall_chrome_beta_win.ps1 similarity index 100% rename from bin/reinstall_chrome_beta_win.ps1 rename to packages/playwright-core/bin/reinstall_chrome_beta_win.ps1 diff --git a/bin/reinstall_chrome_stable_linux.sh b/packages/playwright-core/bin/reinstall_chrome_stable_linux.sh similarity index 100% rename from bin/reinstall_chrome_stable_linux.sh rename to packages/playwright-core/bin/reinstall_chrome_stable_linux.sh diff --git a/bin/reinstall_chrome_stable_mac.sh b/packages/playwright-core/bin/reinstall_chrome_stable_mac.sh similarity index 100% rename from bin/reinstall_chrome_stable_mac.sh rename to packages/playwright-core/bin/reinstall_chrome_stable_mac.sh diff --git a/bin/reinstall_chrome_stable_win.ps1 b/packages/playwright-core/bin/reinstall_chrome_stable_win.ps1 similarity index 100% rename from bin/reinstall_chrome_stable_win.ps1 rename to packages/playwright-core/bin/reinstall_chrome_stable_win.ps1 diff --git a/bin/reinstall_msedge_beta_linux.sh b/packages/playwright-core/bin/reinstall_msedge_beta_linux.sh similarity index 100% rename from bin/reinstall_msedge_beta_linux.sh rename to packages/playwright-core/bin/reinstall_msedge_beta_linux.sh diff --git a/bin/reinstall_msedge_beta_mac.sh b/packages/playwright-core/bin/reinstall_msedge_beta_mac.sh similarity index 100% rename from bin/reinstall_msedge_beta_mac.sh rename to packages/playwright-core/bin/reinstall_msedge_beta_mac.sh diff --git a/bin/reinstall_msedge_beta_win.ps1 b/packages/playwright-core/bin/reinstall_msedge_beta_win.ps1 similarity index 100% rename from bin/reinstall_msedge_beta_win.ps1 rename to packages/playwright-core/bin/reinstall_msedge_beta_win.ps1 diff --git a/bin/reinstall_msedge_dev_linux.sh b/packages/playwright-core/bin/reinstall_msedge_dev_linux.sh similarity index 100% rename from bin/reinstall_msedge_dev_linux.sh rename to packages/playwright-core/bin/reinstall_msedge_dev_linux.sh diff --git a/bin/reinstall_msedge_dev_mac.sh b/packages/playwright-core/bin/reinstall_msedge_dev_mac.sh similarity index 100% rename from bin/reinstall_msedge_dev_mac.sh rename to packages/playwright-core/bin/reinstall_msedge_dev_mac.sh diff --git a/bin/reinstall_msedge_dev_win.ps1 b/packages/playwright-core/bin/reinstall_msedge_dev_win.ps1 similarity index 100% rename from bin/reinstall_msedge_dev_win.ps1 rename to packages/playwright-core/bin/reinstall_msedge_dev_win.ps1 diff --git a/bin/reinstall_msedge_stable_mac.sh b/packages/playwright-core/bin/reinstall_msedge_stable_mac.sh similarity index 100% rename from bin/reinstall_msedge_stable_mac.sh rename to packages/playwright-core/bin/reinstall_msedge_stable_mac.sh diff --git a/bin/reinstall_msedge_stable_win.ps1 b/packages/playwright-core/bin/reinstall_msedge_stable_win.ps1 similarity index 100% rename from bin/reinstall_msedge_stable_win.ps1 rename to packages/playwright-core/bin/reinstall_msedge_stable_win.ps1 diff --git a/browsers.json b/packages/playwright-core/browsers.json similarity index 100% rename from browsers.json rename to packages/playwright-core/browsers.json diff --git a/packages/playwright-core/cli.js b/packages/playwright-core/cli.js new file mode 100755 index 0000000000..7867c0a901 --- /dev/null +++ b/packages/playwright-core/cli.js @@ -0,0 +1,17 @@ +#!/usr/bin/env node +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +module.exports = require('./lib/cli/cli'); diff --git a/index.d.ts b/packages/playwright-core/index.d.ts similarity index 100% rename from index.d.ts rename to packages/playwright-core/index.d.ts diff --git a/index.js b/packages/playwright-core/index.js similarity index 100% rename from index.js rename to packages/playwright-core/index.js diff --git a/packages/common/index.mjs b/packages/playwright-core/index.mjs similarity index 100% rename from packages/common/index.mjs rename to packages/playwright-core/index.mjs diff --git a/packages/playwright-core/package.json b/packages/playwright-core/package.json new file mode 100644 index 0000000000..936d72f278 --- /dev/null +++ b/packages/playwright-core/package.json @@ -0,0 +1,46 @@ +{ + "name": "playwright-core", + "version": "1.16.0-next", + "description": "A high-level API to automate web browsers", + "repository": "github:Microsoft/playwright", + "homepage": "https://playwright.dev", + "engines": { + "node": ">=12" + }, + "scripts": { + "prepare": "babel --config-file ../../babel.config.json -s --extensions \".ts\" --out-dir lib/utils/ src/utils" + }, + "author": { + "name": "Microsoft Corporation" + }, + "license": "Apache-2.0", + "exports": { + ".": { + "import": "./index.mjs", + "require": "./index.js" + }, + "./src/*": "./lib/*.js", + "./*": "./*.js" + }, + "types": "types/types.d.ts", + "bin": { + "playwright": "./cli.js" + }, + "dependencies": { + "commander": "^8.2.0", + "debug": "^4.1.1", + "extract-zip": "^2.0.1", + "https-proxy-agent": "^5.0.0", + "jpeg-js": "^0.4.2", + "mime": "^2.4.6", + "pngjs": "^5.0.0", + "progress": "^2.0.3", + "proper-lockfile": "^4.1.1", + "proxy-from-env": "^1.1.0", + "rimraf": "^3.0.2", + "stack-utils": "^2.0.3", + "ws": "^7.4.6", + "yazl": "^2.5.1", + "yauzl": "^2.10.0" + } +} diff --git a/src/.eslintrc.js b/packages/playwright-core/src/.eslintrc.js similarity index 91% rename from src/.eslintrc.js rename to packages/playwright-core/src/.eslintrc.js index 91f49549f9..ee857ae4fc 100644 --- a/src/.eslintrc.js +++ b/packages/playwright-core/src/.eslintrc.js @@ -1,5 +1,5 @@ module.exports = { - "extends": "../.eslintrc.js", + "extends": "../../../.eslintrc.js", /** * ESLint rules * diff --git a/src/browserServerImpl.ts b/packages/playwright-core/src/browserServerImpl.ts similarity index 100% rename from src/browserServerImpl.ts rename to packages/playwright-core/src/browserServerImpl.ts diff --git a/src/cli/cli.ts b/packages/playwright-core/src/cli/cli.ts similarity index 98% rename from src/cli/cli.ts rename to packages/playwright-core/src/cli/cli.ts index 361372e96d..e1b7ad9196 100755 --- a/src/cli/cli.ts +++ b/packages/playwright-core/src/cli/cli.ts @@ -228,14 +228,9 @@ Examples: if (!process.env.PW_CLI_TARGET_LANG) { let playwrightTestPackagePath = null; try { - const isLocal = packageJSON.name === '@playwright/test' || process.env.PWTEST_CLI_ALLOW_TEST_COMMAND; - if (isLocal) { - playwrightTestPackagePath = '../test/cli'; - } else { - playwrightTestPackagePath = require.resolve('@playwright/test/lib/test/cli', { - paths: [__dirname, process.cwd()] - }); - } + playwrightTestPackagePath = require.resolve('@playwright/test/lib/cli', { + paths: [__dirname, process.cwd()] + }); } catch {} if (playwrightTestPackagePath) { diff --git a/src/cli/driver.ts b/packages/playwright-core/src/cli/driver.ts similarity index 100% rename from src/cli/driver.ts rename to packages/playwright-core/src/cli/driver.ts diff --git a/src/client/accessibility.ts b/packages/playwright-core/src/client/accessibility.ts similarity index 100% rename from src/client/accessibility.ts rename to packages/playwright-core/src/client/accessibility.ts diff --git a/src/client/android.ts b/packages/playwright-core/src/client/android.ts similarity index 100% rename from src/client/android.ts rename to packages/playwright-core/src/client/android.ts diff --git a/src/client/api.ts b/packages/playwright-core/src/client/api.ts similarity index 100% rename from src/client/api.ts rename to packages/playwright-core/src/client/api.ts diff --git a/src/client/artifact.ts b/packages/playwright-core/src/client/artifact.ts similarity index 100% rename from src/client/artifact.ts rename to packages/playwright-core/src/client/artifact.ts diff --git a/src/client/browser.ts b/packages/playwright-core/src/client/browser.ts similarity index 100% rename from src/client/browser.ts rename to packages/playwright-core/src/client/browser.ts diff --git a/src/client/browserContext.ts b/packages/playwright-core/src/client/browserContext.ts similarity index 100% rename from src/client/browserContext.ts rename to packages/playwright-core/src/client/browserContext.ts diff --git a/src/client/browserType.ts b/packages/playwright-core/src/client/browserType.ts similarity index 100% rename from src/client/browserType.ts rename to packages/playwright-core/src/client/browserType.ts diff --git a/src/client/cdpSession.ts b/packages/playwright-core/src/client/cdpSession.ts similarity index 100% rename from src/client/cdpSession.ts rename to packages/playwright-core/src/client/cdpSession.ts diff --git a/src/client/channelOwner.ts b/packages/playwright-core/src/client/channelOwner.ts similarity index 100% rename from src/client/channelOwner.ts rename to packages/playwright-core/src/client/channelOwner.ts diff --git a/src/client/clientHelper.ts b/packages/playwright-core/src/client/clientHelper.ts similarity index 100% rename from src/client/clientHelper.ts rename to packages/playwright-core/src/client/clientHelper.ts diff --git a/src/client/connection.ts b/packages/playwright-core/src/client/connection.ts similarity index 100% rename from src/client/connection.ts rename to packages/playwright-core/src/client/connection.ts diff --git a/src/client/consoleMessage.ts b/packages/playwright-core/src/client/consoleMessage.ts similarity index 100% rename from src/client/consoleMessage.ts rename to packages/playwright-core/src/client/consoleMessage.ts diff --git a/src/client/coverage.ts b/packages/playwright-core/src/client/coverage.ts similarity index 100% rename from src/client/coverage.ts rename to packages/playwright-core/src/client/coverage.ts diff --git a/src/client/dialog.ts b/packages/playwright-core/src/client/dialog.ts similarity index 100% rename from src/client/dialog.ts rename to packages/playwright-core/src/client/dialog.ts diff --git a/src/client/download.ts b/packages/playwright-core/src/client/download.ts similarity index 100% rename from src/client/download.ts rename to packages/playwright-core/src/client/download.ts diff --git a/src/client/electron.ts b/packages/playwright-core/src/client/electron.ts similarity index 100% rename from src/client/electron.ts rename to packages/playwright-core/src/client/electron.ts diff --git a/src/client/elementHandle.ts b/packages/playwright-core/src/client/elementHandle.ts similarity index 100% rename from src/client/elementHandle.ts rename to packages/playwright-core/src/client/elementHandle.ts diff --git a/src/client/events.ts b/packages/playwright-core/src/client/events.ts similarity index 100% rename from src/client/events.ts rename to packages/playwright-core/src/client/events.ts diff --git a/src/client/fetch.ts b/packages/playwright-core/src/client/fetch.ts similarity index 100% rename from src/client/fetch.ts rename to packages/playwright-core/src/client/fetch.ts diff --git a/src/client/fileChooser.ts b/packages/playwright-core/src/client/fileChooser.ts similarity index 100% rename from src/client/fileChooser.ts rename to packages/playwright-core/src/client/fileChooser.ts diff --git a/src/client/frame.ts b/packages/playwright-core/src/client/frame.ts similarity index 100% rename from src/client/frame.ts rename to packages/playwright-core/src/client/frame.ts diff --git a/src/client/input.ts b/packages/playwright-core/src/client/input.ts similarity index 100% rename from src/client/input.ts rename to packages/playwright-core/src/client/input.ts diff --git a/src/client/jsHandle.ts b/packages/playwright-core/src/client/jsHandle.ts similarity index 100% rename from src/client/jsHandle.ts rename to packages/playwright-core/src/client/jsHandle.ts diff --git a/src/client/jsonPipe.ts b/packages/playwright-core/src/client/jsonPipe.ts similarity index 100% rename from src/client/jsonPipe.ts rename to packages/playwright-core/src/client/jsonPipe.ts diff --git a/src/client/locator.ts b/packages/playwright-core/src/client/locator.ts similarity index 100% rename from src/client/locator.ts rename to packages/playwright-core/src/client/locator.ts diff --git a/src/client/network.ts b/packages/playwright-core/src/client/network.ts similarity index 100% rename from src/client/network.ts rename to packages/playwright-core/src/client/network.ts diff --git a/src/client/page.ts b/packages/playwright-core/src/client/page.ts similarity index 100% rename from src/client/page.ts rename to packages/playwright-core/src/client/page.ts diff --git a/src/client/playwright.ts b/packages/playwright-core/src/client/playwright.ts similarity index 100% rename from src/client/playwright.ts rename to packages/playwright-core/src/client/playwright.ts diff --git a/src/client/selectors.ts b/packages/playwright-core/src/client/selectors.ts similarity index 100% rename from src/client/selectors.ts rename to packages/playwright-core/src/client/selectors.ts diff --git a/src/client/stream.ts b/packages/playwright-core/src/client/stream.ts similarity index 100% rename from src/client/stream.ts rename to packages/playwright-core/src/client/stream.ts diff --git a/src/client/tracing.ts b/packages/playwright-core/src/client/tracing.ts similarity index 100% rename from src/client/tracing.ts rename to packages/playwright-core/src/client/tracing.ts diff --git a/src/client/types.ts b/packages/playwright-core/src/client/types.ts similarity index 100% rename from src/client/types.ts rename to packages/playwright-core/src/client/types.ts diff --git a/src/client/video.ts b/packages/playwright-core/src/client/video.ts similarity index 100% rename from src/client/video.ts rename to packages/playwright-core/src/client/video.ts diff --git a/src/client/waiter.ts b/packages/playwright-core/src/client/waiter.ts similarity index 100% rename from src/client/waiter.ts rename to packages/playwright-core/src/client/waiter.ts diff --git a/src/client/worker.ts b/packages/playwright-core/src/client/worker.ts similarity index 100% rename from src/client/worker.ts rename to packages/playwright-core/src/client/worker.ts diff --git a/src/common/types.ts b/packages/playwright-core/src/common/types.ts similarity index 100% rename from src/common/types.ts rename to packages/playwright-core/src/common/types.ts diff --git a/src/dispatchers/androidDispatcher.ts b/packages/playwright-core/src/dispatchers/androidDispatcher.ts similarity index 100% rename from src/dispatchers/androidDispatcher.ts rename to packages/playwright-core/src/dispatchers/androidDispatcher.ts diff --git a/src/dispatchers/artifactDispatcher.ts b/packages/playwright-core/src/dispatchers/artifactDispatcher.ts similarity index 100% rename from src/dispatchers/artifactDispatcher.ts rename to packages/playwright-core/src/dispatchers/artifactDispatcher.ts diff --git a/src/dispatchers/browserContextDispatcher.ts b/packages/playwright-core/src/dispatchers/browserContextDispatcher.ts similarity index 100% rename from src/dispatchers/browserContextDispatcher.ts rename to packages/playwright-core/src/dispatchers/browserContextDispatcher.ts diff --git a/src/dispatchers/browserDispatcher.ts b/packages/playwright-core/src/dispatchers/browserDispatcher.ts similarity index 100% rename from src/dispatchers/browserDispatcher.ts rename to packages/playwright-core/src/dispatchers/browserDispatcher.ts diff --git a/src/dispatchers/browserTypeDispatcher.ts b/packages/playwright-core/src/dispatchers/browserTypeDispatcher.ts similarity index 100% rename from src/dispatchers/browserTypeDispatcher.ts rename to packages/playwright-core/src/dispatchers/browserTypeDispatcher.ts diff --git a/src/dispatchers/cdpSessionDispatcher.ts b/packages/playwright-core/src/dispatchers/cdpSessionDispatcher.ts similarity index 100% rename from src/dispatchers/cdpSessionDispatcher.ts rename to packages/playwright-core/src/dispatchers/cdpSessionDispatcher.ts diff --git a/src/dispatchers/consoleMessageDispatcher.ts b/packages/playwright-core/src/dispatchers/consoleMessageDispatcher.ts similarity index 100% rename from src/dispatchers/consoleMessageDispatcher.ts rename to packages/playwright-core/src/dispatchers/consoleMessageDispatcher.ts diff --git a/src/dispatchers/dialogDispatcher.ts b/packages/playwright-core/src/dispatchers/dialogDispatcher.ts similarity index 100% rename from src/dispatchers/dialogDispatcher.ts rename to packages/playwright-core/src/dispatchers/dialogDispatcher.ts diff --git a/src/dispatchers/dispatcher.ts b/packages/playwright-core/src/dispatchers/dispatcher.ts similarity index 100% rename from src/dispatchers/dispatcher.ts rename to packages/playwright-core/src/dispatchers/dispatcher.ts diff --git a/src/dispatchers/electronDispatcher.ts b/packages/playwright-core/src/dispatchers/electronDispatcher.ts similarity index 100% rename from src/dispatchers/electronDispatcher.ts rename to packages/playwright-core/src/dispatchers/electronDispatcher.ts diff --git a/src/dispatchers/elementHandlerDispatcher.ts b/packages/playwright-core/src/dispatchers/elementHandlerDispatcher.ts similarity index 100% rename from src/dispatchers/elementHandlerDispatcher.ts rename to packages/playwright-core/src/dispatchers/elementHandlerDispatcher.ts diff --git a/src/dispatchers/frameDispatcher.ts b/packages/playwright-core/src/dispatchers/frameDispatcher.ts similarity index 100% rename from src/dispatchers/frameDispatcher.ts rename to packages/playwright-core/src/dispatchers/frameDispatcher.ts diff --git a/src/dispatchers/jsHandleDispatcher.ts b/packages/playwright-core/src/dispatchers/jsHandleDispatcher.ts similarity index 100% rename from src/dispatchers/jsHandleDispatcher.ts rename to packages/playwright-core/src/dispatchers/jsHandleDispatcher.ts diff --git a/src/dispatchers/jsonPipeDispatcher.ts b/packages/playwright-core/src/dispatchers/jsonPipeDispatcher.ts similarity index 100% rename from src/dispatchers/jsonPipeDispatcher.ts rename to packages/playwright-core/src/dispatchers/jsonPipeDispatcher.ts diff --git a/src/dispatchers/networkDispatchers.ts b/packages/playwright-core/src/dispatchers/networkDispatchers.ts similarity index 100% rename from src/dispatchers/networkDispatchers.ts rename to packages/playwright-core/src/dispatchers/networkDispatchers.ts diff --git a/src/dispatchers/pageDispatcher.ts b/packages/playwright-core/src/dispatchers/pageDispatcher.ts similarity index 100% rename from src/dispatchers/pageDispatcher.ts rename to packages/playwright-core/src/dispatchers/pageDispatcher.ts diff --git a/src/dispatchers/playwrightDispatcher.ts b/packages/playwright-core/src/dispatchers/playwrightDispatcher.ts similarity index 100% rename from src/dispatchers/playwrightDispatcher.ts rename to packages/playwright-core/src/dispatchers/playwrightDispatcher.ts diff --git a/src/dispatchers/selectorsDispatcher.ts b/packages/playwright-core/src/dispatchers/selectorsDispatcher.ts similarity index 100% rename from src/dispatchers/selectorsDispatcher.ts rename to packages/playwright-core/src/dispatchers/selectorsDispatcher.ts diff --git a/src/dispatchers/streamDispatcher.ts b/packages/playwright-core/src/dispatchers/streamDispatcher.ts similarity index 100% rename from src/dispatchers/streamDispatcher.ts rename to packages/playwright-core/src/dispatchers/streamDispatcher.ts diff --git a/src/grid/gridAgent.ts b/packages/playwright-core/src/grid/gridAgent.ts similarity index 100% rename from src/grid/gridAgent.ts rename to packages/playwright-core/src/grid/gridAgent.ts diff --git a/src/grid/gridClient.ts b/packages/playwright-core/src/grid/gridClient.ts similarity index 100% rename from src/grid/gridClient.ts rename to packages/playwright-core/src/grid/gridClient.ts diff --git a/src/grid/gridServer.ts b/packages/playwright-core/src/grid/gridServer.ts similarity index 99% rename from src/grid/gridServer.ts rename to packages/playwright-core/src/grid/gridServer.ts index e9a160d890..443c734fbc 100644 --- a/src/grid/gridServer.ts +++ b/packages/playwright-core/src/grid/gridServer.ts @@ -106,7 +106,7 @@ class GridAgent extends EventEmitter { private _log: debug.Debugger; private _agentCreationTimeout: NodeJS.Timeout; - constructor(capacity = Infinity, creationTimeout = 5 * 60_000) { + constructor(capacity = Infinity, creationTimeout = 5 * 60000) { super(); this._capacity = capacity; this._log = debug(`[agent ${this.agentId}]`); diff --git a/src/grid/gridWorker.ts b/packages/playwright-core/src/grid/gridWorker.ts similarity index 100% rename from src/grid/gridWorker.ts rename to packages/playwright-core/src/grid/gridWorker.ts diff --git a/src/grid/simpleGridFactory.ts b/packages/playwright-core/src/grid/simpleGridFactory.ts similarity index 97% rename from src/grid/simpleGridFactory.ts rename to packages/playwright-core/src/grid/simpleGridFactory.ts index 6b0827f1d3..268ddaa30c 100644 --- a/src/grid/simpleGridFactory.ts +++ b/packages/playwright-core/src/grid/simpleGridFactory.ts @@ -20,7 +20,7 @@ import path from 'path'; export const name = 'Agents co-located with grid'; export const capacity = Infinity; -export const timeout = 10_000; +export const timeout = 10000; export function launch({ agentId, gridURL }: GridAgentLaunchOptions) { child_process.spawn(process.argv[0], [ path.join(__dirname, '..', 'cli', 'cli.js'), diff --git a/src/inProcessFactory.ts b/packages/playwright-core/src/inProcessFactory.ts similarity index 100% rename from src/inProcessFactory.ts rename to packages/playwright-core/src/inProcessFactory.ts diff --git a/src/inprocess.ts b/packages/playwright-core/src/inprocess.ts similarity index 100% rename from src/inprocess.ts rename to packages/playwright-core/src/inprocess.ts diff --git a/src/nativeDeps.ts b/packages/playwright-core/src/nativeDeps.ts similarity index 100% rename from src/nativeDeps.ts rename to packages/playwright-core/src/nativeDeps.ts diff --git a/src/outofprocess.ts b/packages/playwright-core/src/outofprocess.ts similarity index 100% rename from src/outofprocess.ts rename to packages/playwright-core/src/outofprocess.ts diff --git a/src/protocol/callMetadata.ts b/packages/playwright-core/src/protocol/callMetadata.ts similarity index 100% rename from src/protocol/callMetadata.ts rename to packages/playwright-core/src/protocol/callMetadata.ts diff --git a/src/protocol/channels.ts b/packages/playwright-core/src/protocol/channels.ts similarity index 100% rename from src/protocol/channels.ts rename to packages/playwright-core/src/protocol/channels.ts diff --git a/src/protocol/protocol.yml b/packages/playwright-core/src/protocol/protocol.yml similarity index 100% rename from src/protocol/protocol.yml rename to packages/playwright-core/src/protocol/protocol.yml diff --git a/src/protocol/serializers.ts b/packages/playwright-core/src/protocol/serializers.ts similarity index 100% rename from src/protocol/serializers.ts rename to packages/playwright-core/src/protocol/serializers.ts diff --git a/src/protocol/transport.ts b/packages/playwright-core/src/protocol/transport.ts similarity index 100% rename from src/protocol/transport.ts rename to packages/playwright-core/src/protocol/transport.ts diff --git a/src/protocol/validator.ts b/packages/playwright-core/src/protocol/validator.ts similarity index 100% rename from src/protocol/validator.ts rename to packages/playwright-core/src/protocol/validator.ts diff --git a/src/protocol/validatorPrimitives.ts b/packages/playwright-core/src/protocol/validatorPrimitives.ts similarity index 100% rename from src/protocol/validatorPrimitives.ts rename to packages/playwright-core/src/protocol/validatorPrimitives.ts diff --git a/src/remote/playwrightClient.ts b/packages/playwright-core/src/remote/playwrightClient.ts similarity index 100% rename from src/remote/playwrightClient.ts rename to packages/playwright-core/src/remote/playwrightClient.ts diff --git a/src/remote/playwrightServer.ts b/packages/playwright-core/src/remote/playwrightServer.ts similarity index 100% rename from src/remote/playwrightServer.ts rename to packages/playwright-core/src/remote/playwrightServer.ts diff --git a/src/server/accessibility.ts b/packages/playwright-core/src/server/accessibility.ts similarity index 100% rename from src/server/accessibility.ts rename to packages/playwright-core/src/server/accessibility.ts diff --git a/src/server/android/android.ts b/packages/playwright-core/src/server/android/android.ts similarity index 100% rename from src/server/android/android.ts rename to packages/playwright-core/src/server/android/android.ts diff --git a/src/server/android/backendAdb.ts b/packages/playwright-core/src/server/android/backendAdb.ts similarity index 100% rename from src/server/android/backendAdb.ts rename to packages/playwright-core/src/server/android/backendAdb.ts diff --git a/src/server/android/driver/.gitignore b/packages/playwright-core/src/server/android/driver/.gitignore similarity index 100% rename from src/server/android/driver/.gitignore rename to packages/playwright-core/src/server/android/driver/.gitignore diff --git a/src/server/android/driver/app/.gitignore b/packages/playwright-core/src/server/android/driver/app/.gitignore similarity index 100% rename from src/server/android/driver/app/.gitignore rename to packages/playwright-core/src/server/android/driver/app/.gitignore diff --git a/src/server/android/driver/app/build.gradle b/packages/playwright-core/src/server/android/driver/app/build.gradle similarity index 100% rename from src/server/android/driver/app/build.gradle rename to packages/playwright-core/src/server/android/driver/app/build.gradle diff --git a/src/server/android/driver/app/proguard-rules.pro b/packages/playwright-core/src/server/android/driver/app/proguard-rules.pro similarity index 100% rename from src/server/android/driver/app/proguard-rules.pro rename to packages/playwright-core/src/server/android/driver/app/proguard-rules.pro diff --git a/src/server/android/driver/app/src/androidTest/java/com/microsoft/playwright/androiddriver/InstrumentedTest.java b/packages/playwright-core/src/server/android/driver/app/src/androidTest/java/com/microsoft/playwright/androiddriver/InstrumentedTest.java similarity index 100% rename from src/server/android/driver/app/src/androidTest/java/com/microsoft/playwright/androiddriver/InstrumentedTest.java rename to packages/playwright-core/src/server/android/driver/app/src/androidTest/java/com/microsoft/playwright/androiddriver/InstrumentedTest.java diff --git a/src/server/android/driver/app/src/main/AndroidManifest.xml b/packages/playwright-core/src/server/android/driver/app/src/main/AndroidManifest.xml similarity index 100% rename from src/server/android/driver/app/src/main/AndroidManifest.xml rename to packages/playwright-core/src/server/android/driver/app/src/main/AndroidManifest.xml diff --git a/src/server/android/driver/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/packages/playwright-core/src/server/android/driver/app/src/main/res/drawable-v24/ic_launcher_foreground.xml similarity index 100% rename from src/server/android/driver/app/src/main/res/drawable-v24/ic_launcher_foreground.xml rename to packages/playwright-core/src/server/android/driver/app/src/main/res/drawable-v24/ic_launcher_foreground.xml diff --git a/src/server/android/driver/app/src/main/res/drawable/ic_launcher_background.xml b/packages/playwright-core/src/server/android/driver/app/src/main/res/drawable/ic_launcher_background.xml similarity index 100% rename from src/server/android/driver/app/src/main/res/drawable/ic_launcher_background.xml rename to packages/playwright-core/src/server/android/driver/app/src/main/res/drawable/ic_launcher_background.xml diff --git a/src/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/packages/playwright-core/src/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from src/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to packages/playwright-core/src/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/src/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/packages/playwright-core/src/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from src/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to packages/playwright-core/src/server/android/driver/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/src/server/android/driver/build.gradle b/packages/playwright-core/src/server/android/driver/build.gradle similarity index 100% rename from src/server/android/driver/build.gradle rename to packages/playwright-core/src/server/android/driver/build.gradle diff --git a/src/server/android/driver/gradle.properties b/packages/playwright-core/src/server/android/driver/gradle.properties similarity index 100% rename from src/server/android/driver/gradle.properties rename to packages/playwright-core/src/server/android/driver/gradle.properties diff --git a/src/server/android/driver/gradle/wrapper/gradle-wrapper.jar b/packages/playwright-core/src/server/android/driver/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from src/server/android/driver/gradle/wrapper/gradle-wrapper.jar rename to packages/playwright-core/src/server/android/driver/gradle/wrapper/gradle-wrapper.jar diff --git a/src/server/android/driver/gradle/wrapper/gradle-wrapper.properties b/packages/playwright-core/src/server/android/driver/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from src/server/android/driver/gradle/wrapper/gradle-wrapper.properties rename to packages/playwright-core/src/server/android/driver/gradle/wrapper/gradle-wrapper.properties diff --git a/src/server/android/driver/gradlew b/packages/playwright-core/src/server/android/driver/gradlew similarity index 100% rename from src/server/android/driver/gradlew rename to packages/playwright-core/src/server/android/driver/gradlew diff --git a/src/server/android/driver/gradlew.bat b/packages/playwright-core/src/server/android/driver/gradlew.bat similarity index 100% rename from src/server/android/driver/gradlew.bat rename to packages/playwright-core/src/server/android/driver/gradlew.bat diff --git a/src/server/android/driver/settings.gradle b/packages/playwright-core/src/server/android/driver/settings.gradle similarity index 100% rename from src/server/android/driver/settings.gradle rename to packages/playwright-core/src/server/android/driver/settings.gradle diff --git a/src/server/artifact.ts b/packages/playwright-core/src/server/artifact.ts similarity index 100% rename from src/server/artifact.ts rename to packages/playwright-core/src/server/artifact.ts diff --git a/src/server/browser.ts b/packages/playwright-core/src/server/browser.ts similarity index 100% rename from src/server/browser.ts rename to packages/playwright-core/src/server/browser.ts diff --git a/src/server/browserContext.ts b/packages/playwright-core/src/server/browserContext.ts similarity index 100% rename from src/server/browserContext.ts rename to packages/playwright-core/src/server/browserContext.ts diff --git a/src/server/browserType.ts b/packages/playwright-core/src/server/browserType.ts similarity index 100% rename from src/server/browserType.ts rename to packages/playwright-core/src/server/browserType.ts diff --git a/src/server/chromium/appIcon.png b/packages/playwright-core/src/server/chromium/appIcon.png similarity index 100% rename from src/server/chromium/appIcon.png rename to packages/playwright-core/src/server/chromium/appIcon.png diff --git a/src/server/chromium/chromium.ts b/packages/playwright-core/src/server/chromium/chromium.ts similarity index 100% rename from src/server/chromium/chromium.ts rename to packages/playwright-core/src/server/chromium/chromium.ts diff --git a/src/server/chromium/crAccessibility.ts b/packages/playwright-core/src/server/chromium/crAccessibility.ts similarity index 100% rename from src/server/chromium/crAccessibility.ts rename to packages/playwright-core/src/server/chromium/crAccessibility.ts diff --git a/src/server/chromium/crApp.ts b/packages/playwright-core/src/server/chromium/crApp.ts similarity index 100% rename from src/server/chromium/crApp.ts rename to packages/playwright-core/src/server/chromium/crApp.ts diff --git a/src/server/chromium/crBrowser.ts b/packages/playwright-core/src/server/chromium/crBrowser.ts similarity index 100% rename from src/server/chromium/crBrowser.ts rename to packages/playwright-core/src/server/chromium/crBrowser.ts diff --git a/src/server/chromium/crConnection.ts b/packages/playwright-core/src/server/chromium/crConnection.ts similarity index 100% rename from src/server/chromium/crConnection.ts rename to packages/playwright-core/src/server/chromium/crConnection.ts diff --git a/src/server/chromium/crCoverage.ts b/packages/playwright-core/src/server/chromium/crCoverage.ts similarity index 100% rename from src/server/chromium/crCoverage.ts rename to packages/playwright-core/src/server/chromium/crCoverage.ts diff --git a/src/server/chromium/crDevTools.ts b/packages/playwright-core/src/server/chromium/crDevTools.ts similarity index 100% rename from src/server/chromium/crDevTools.ts rename to packages/playwright-core/src/server/chromium/crDevTools.ts diff --git a/src/server/chromium/crDragDrop.ts b/packages/playwright-core/src/server/chromium/crDragDrop.ts similarity index 100% rename from src/server/chromium/crDragDrop.ts rename to packages/playwright-core/src/server/chromium/crDragDrop.ts diff --git a/src/server/chromium/crExecutionContext.ts b/packages/playwright-core/src/server/chromium/crExecutionContext.ts similarity index 100% rename from src/server/chromium/crExecutionContext.ts rename to packages/playwright-core/src/server/chromium/crExecutionContext.ts diff --git a/src/server/chromium/crInput.ts b/packages/playwright-core/src/server/chromium/crInput.ts similarity index 100% rename from src/server/chromium/crInput.ts rename to packages/playwright-core/src/server/chromium/crInput.ts diff --git a/src/server/chromium/crNetworkManager.ts b/packages/playwright-core/src/server/chromium/crNetworkManager.ts similarity index 100% rename from src/server/chromium/crNetworkManager.ts rename to packages/playwright-core/src/server/chromium/crNetworkManager.ts diff --git a/src/server/chromium/crPage.ts b/packages/playwright-core/src/server/chromium/crPage.ts similarity index 100% rename from src/server/chromium/crPage.ts rename to packages/playwright-core/src/server/chromium/crPage.ts diff --git a/src/server/chromium/crPdf.ts b/packages/playwright-core/src/server/chromium/crPdf.ts similarity index 100% rename from src/server/chromium/crPdf.ts rename to packages/playwright-core/src/server/chromium/crPdf.ts diff --git a/src/server/chromium/crProtocolHelper.ts b/packages/playwright-core/src/server/chromium/crProtocolHelper.ts similarity index 100% rename from src/server/chromium/crProtocolHelper.ts rename to packages/playwright-core/src/server/chromium/crProtocolHelper.ts diff --git a/src/server/chromium/protocol.d.ts b/packages/playwright-core/src/server/chromium/protocol.d.ts similarity index 100% rename from src/server/chromium/protocol.d.ts rename to packages/playwright-core/src/server/chromium/protocol.d.ts diff --git a/src/server/chromium/videoRecorder.ts b/packages/playwright-core/src/server/chromium/videoRecorder.ts similarity index 100% rename from src/server/chromium/videoRecorder.ts rename to packages/playwright-core/src/server/chromium/videoRecorder.ts diff --git a/src/server/common/README.md b/packages/playwright-core/src/server/common/README.md similarity index 100% rename from src/server/common/README.md rename to packages/playwright-core/src/server/common/README.md diff --git a/src/server/common/componentUtils.ts b/packages/playwright-core/src/server/common/componentUtils.ts similarity index 100% rename from src/server/common/componentUtils.ts rename to packages/playwright-core/src/server/common/componentUtils.ts diff --git a/src/server/common/cssParser.ts b/packages/playwright-core/src/server/common/cssParser.ts similarity index 100% rename from src/server/common/cssParser.ts rename to packages/playwright-core/src/server/common/cssParser.ts diff --git a/src/server/common/cssTokenizer.d.ts b/packages/playwright-core/src/server/common/cssTokenizer.d.ts similarity index 100% rename from src/server/common/cssTokenizer.d.ts rename to packages/playwright-core/src/server/common/cssTokenizer.d.ts diff --git a/src/server/common/cssTokenizer.js b/packages/playwright-core/src/server/common/cssTokenizer.js similarity index 100% rename from src/server/common/cssTokenizer.js rename to packages/playwright-core/src/server/common/cssTokenizer.js diff --git a/src/server/common/protocolError.ts b/packages/playwright-core/src/server/common/protocolError.ts similarity index 100% rename from src/server/common/protocolError.ts rename to packages/playwright-core/src/server/common/protocolError.ts diff --git a/src/server/common/selectorParser.ts b/packages/playwright-core/src/server/common/selectorParser.ts similarity index 100% rename from src/server/common/selectorParser.ts rename to packages/playwright-core/src/server/common/selectorParser.ts diff --git a/src/server/common/utilityScriptSerializers.ts b/packages/playwright-core/src/server/common/utilityScriptSerializers.ts similarity index 100% rename from src/server/common/utilityScriptSerializers.ts rename to packages/playwright-core/src/server/common/utilityScriptSerializers.ts diff --git a/src/server/console.ts b/packages/playwright-core/src/server/console.ts similarity index 100% rename from src/server/console.ts rename to packages/playwright-core/src/server/console.ts diff --git a/src/server/cookieStore.ts b/packages/playwright-core/src/server/cookieStore.ts similarity index 100% rename from src/server/cookieStore.ts rename to packages/playwright-core/src/server/cookieStore.ts diff --git a/src/server/deviceDescriptors.js b/packages/playwright-core/src/server/deviceDescriptors.js similarity index 100% rename from src/server/deviceDescriptors.js rename to packages/playwright-core/src/server/deviceDescriptors.js diff --git a/src/server/deviceDescriptorsSource.json b/packages/playwright-core/src/server/deviceDescriptorsSource.json similarity index 100% rename from src/server/deviceDescriptorsSource.json rename to packages/playwright-core/src/server/deviceDescriptorsSource.json diff --git a/src/server/dialog.ts b/packages/playwright-core/src/server/dialog.ts similarity index 100% rename from src/server/dialog.ts rename to packages/playwright-core/src/server/dialog.ts diff --git a/src/server/dom.ts b/packages/playwright-core/src/server/dom.ts similarity index 100% rename from src/server/dom.ts rename to packages/playwright-core/src/server/dom.ts diff --git a/src/server/download.ts b/packages/playwright-core/src/server/download.ts similarity index 100% rename from src/server/download.ts rename to packages/playwright-core/src/server/download.ts diff --git a/src/server/electron/electron.ts b/packages/playwright-core/src/server/electron/electron.ts similarity index 100% rename from src/server/electron/electron.ts rename to packages/playwright-core/src/server/electron/electron.ts diff --git a/src/server/fetch.ts b/packages/playwright-core/src/server/fetch.ts similarity index 100% rename from src/server/fetch.ts rename to packages/playwright-core/src/server/fetch.ts diff --git a/src/server/fileChooser.ts b/packages/playwright-core/src/server/fileChooser.ts similarity index 100% rename from src/server/fileChooser.ts rename to packages/playwright-core/src/server/fileChooser.ts diff --git a/src/server/firefox/ffAccessibility.ts b/packages/playwright-core/src/server/firefox/ffAccessibility.ts similarity index 100% rename from src/server/firefox/ffAccessibility.ts rename to packages/playwright-core/src/server/firefox/ffAccessibility.ts diff --git a/src/server/firefox/ffBrowser.ts b/packages/playwright-core/src/server/firefox/ffBrowser.ts similarity index 100% rename from src/server/firefox/ffBrowser.ts rename to packages/playwright-core/src/server/firefox/ffBrowser.ts diff --git a/src/server/firefox/ffConnection.ts b/packages/playwright-core/src/server/firefox/ffConnection.ts similarity index 100% rename from src/server/firefox/ffConnection.ts rename to packages/playwright-core/src/server/firefox/ffConnection.ts diff --git a/src/server/firefox/ffExecutionContext.ts b/packages/playwright-core/src/server/firefox/ffExecutionContext.ts similarity index 100% rename from src/server/firefox/ffExecutionContext.ts rename to packages/playwright-core/src/server/firefox/ffExecutionContext.ts diff --git a/src/server/firefox/ffInput.ts b/packages/playwright-core/src/server/firefox/ffInput.ts similarity index 100% rename from src/server/firefox/ffInput.ts rename to packages/playwright-core/src/server/firefox/ffInput.ts diff --git a/src/server/firefox/ffNetworkManager.ts b/packages/playwright-core/src/server/firefox/ffNetworkManager.ts similarity index 100% rename from src/server/firefox/ffNetworkManager.ts rename to packages/playwright-core/src/server/firefox/ffNetworkManager.ts diff --git a/src/server/firefox/ffPage.ts b/packages/playwright-core/src/server/firefox/ffPage.ts similarity index 100% rename from src/server/firefox/ffPage.ts rename to packages/playwright-core/src/server/firefox/ffPage.ts diff --git a/src/server/firefox/firefox.ts b/packages/playwright-core/src/server/firefox/firefox.ts similarity index 100% rename from src/server/firefox/firefox.ts rename to packages/playwright-core/src/server/firefox/firefox.ts diff --git a/src/server/firefox/protocol.d.ts b/packages/playwright-core/src/server/firefox/protocol.d.ts similarity index 100% rename from src/server/firefox/protocol.d.ts rename to packages/playwright-core/src/server/firefox/protocol.d.ts diff --git a/src/server/formData.ts b/packages/playwright-core/src/server/formData.ts similarity index 100% rename from src/server/formData.ts rename to packages/playwright-core/src/server/formData.ts diff --git a/src/server/frames.ts b/packages/playwright-core/src/server/frames.ts similarity index 100% rename from src/server/frames.ts rename to packages/playwright-core/src/server/frames.ts diff --git a/src/server/helper.ts b/packages/playwright-core/src/server/helper.ts similarity index 100% rename from src/server/helper.ts rename to packages/playwright-core/src/server/helper.ts diff --git a/src/server/injected/README.md b/packages/playwright-core/src/server/injected/README.md similarity index 100% rename from src/server/injected/README.md rename to packages/playwright-core/src/server/injected/README.md diff --git a/src/server/injected/injectedScript.ts b/packages/playwright-core/src/server/injected/injectedScript.ts similarity index 100% rename from src/server/injected/injectedScript.ts rename to packages/playwright-core/src/server/injected/injectedScript.ts diff --git a/src/server/injected/reactSelectorEngine.ts b/packages/playwright-core/src/server/injected/reactSelectorEngine.ts similarity index 100% rename from src/server/injected/reactSelectorEngine.ts rename to packages/playwright-core/src/server/injected/reactSelectorEngine.ts diff --git a/src/server/injected/selectorEngine.ts b/packages/playwright-core/src/server/injected/selectorEngine.ts similarity index 100% rename from src/server/injected/selectorEngine.ts rename to packages/playwright-core/src/server/injected/selectorEngine.ts diff --git a/src/server/injected/selectorEvaluator.ts b/packages/playwright-core/src/server/injected/selectorEvaluator.ts similarity index 100% rename from src/server/injected/selectorEvaluator.ts rename to packages/playwright-core/src/server/injected/selectorEvaluator.ts diff --git a/src/server/injected/selectorGenerator.ts b/packages/playwright-core/src/server/injected/selectorGenerator.ts similarity index 100% rename from src/server/injected/selectorGenerator.ts rename to packages/playwright-core/src/server/injected/selectorGenerator.ts diff --git a/src/server/injected/utilityScript.ts b/packages/playwright-core/src/server/injected/utilityScript.ts similarity index 100% rename from src/server/injected/utilityScript.ts rename to packages/playwright-core/src/server/injected/utilityScript.ts diff --git a/src/server/injected/vueSelectorEngine.ts b/packages/playwright-core/src/server/injected/vueSelectorEngine.ts similarity index 100% rename from src/server/injected/vueSelectorEngine.ts rename to packages/playwright-core/src/server/injected/vueSelectorEngine.ts diff --git a/src/server/injected/webpack.config.js b/packages/playwright-core/src/server/injected/webpack.config.js similarity index 100% rename from src/server/injected/webpack.config.js rename to packages/playwright-core/src/server/injected/webpack.config.js diff --git a/src/server/injected/xpathSelectorEngine.ts b/packages/playwright-core/src/server/injected/xpathSelectorEngine.ts similarity index 100% rename from src/server/injected/xpathSelectorEngine.ts rename to packages/playwright-core/src/server/injected/xpathSelectorEngine.ts diff --git a/src/server/input.ts b/packages/playwright-core/src/server/input.ts similarity index 100% rename from src/server/input.ts rename to packages/playwright-core/src/server/input.ts diff --git a/src/server/instrumentation.ts b/packages/playwright-core/src/server/instrumentation.ts similarity index 100% rename from src/server/instrumentation.ts rename to packages/playwright-core/src/server/instrumentation.ts diff --git a/src/server/javascript.ts b/packages/playwright-core/src/server/javascript.ts similarity index 100% rename from src/server/javascript.ts rename to packages/playwright-core/src/server/javascript.ts diff --git a/src/server/macEditingCommands.ts b/packages/playwright-core/src/server/macEditingCommands.ts similarity index 100% rename from src/server/macEditingCommands.ts rename to packages/playwright-core/src/server/macEditingCommands.ts diff --git a/src/server/network.ts b/packages/playwright-core/src/server/network.ts similarity index 100% rename from src/server/network.ts rename to packages/playwright-core/src/server/network.ts diff --git a/src/server/page.ts b/packages/playwright-core/src/server/page.ts similarity index 100% rename from src/server/page.ts rename to packages/playwright-core/src/server/page.ts diff --git a/src/server/pipeTransport.ts b/packages/playwright-core/src/server/pipeTransport.ts similarity index 100% rename from src/server/pipeTransport.ts rename to packages/playwright-core/src/server/pipeTransport.ts diff --git a/src/server/playwright.ts b/packages/playwright-core/src/server/playwright.ts similarity index 100% rename from src/server/playwright.ts rename to packages/playwright-core/src/server/playwright.ts diff --git a/src/server/progress.ts b/packages/playwright-core/src/server/progress.ts similarity index 100% rename from src/server/progress.ts rename to packages/playwright-core/src/server/progress.ts diff --git a/src/server/screenshotter.ts b/packages/playwright-core/src/server/screenshotter.ts similarity index 100% rename from src/server/screenshotter.ts rename to packages/playwright-core/src/server/screenshotter.ts diff --git a/src/server/selectors.ts b/packages/playwright-core/src/server/selectors.ts similarity index 100% rename from src/server/selectors.ts rename to packages/playwright-core/src/server/selectors.ts diff --git a/src/server/snapshot/inMemorySnapshotter.ts b/packages/playwright-core/src/server/snapshot/inMemorySnapshotter.ts similarity index 100% rename from src/server/snapshot/inMemorySnapshotter.ts rename to packages/playwright-core/src/server/snapshot/inMemorySnapshotter.ts diff --git a/src/server/snapshot/snapshotRenderer.ts b/packages/playwright-core/src/server/snapshot/snapshotRenderer.ts similarity index 100% rename from src/server/snapshot/snapshotRenderer.ts rename to packages/playwright-core/src/server/snapshot/snapshotRenderer.ts diff --git a/src/server/snapshot/snapshotServer.ts b/packages/playwright-core/src/server/snapshot/snapshotServer.ts similarity index 100% rename from src/server/snapshot/snapshotServer.ts rename to packages/playwright-core/src/server/snapshot/snapshotServer.ts diff --git a/src/server/snapshot/snapshotStorage.ts b/packages/playwright-core/src/server/snapshot/snapshotStorage.ts similarity index 100% rename from src/server/snapshot/snapshotStorage.ts rename to packages/playwright-core/src/server/snapshot/snapshotStorage.ts diff --git a/src/server/snapshot/snapshotTypes.ts b/packages/playwright-core/src/server/snapshot/snapshotTypes.ts similarity index 100% rename from src/server/snapshot/snapshotTypes.ts rename to packages/playwright-core/src/server/snapshot/snapshotTypes.ts diff --git a/src/server/snapshot/snapshotter.ts b/packages/playwright-core/src/server/snapshot/snapshotter.ts similarity index 100% rename from src/server/snapshot/snapshotter.ts rename to packages/playwright-core/src/server/snapshot/snapshotter.ts diff --git a/src/server/snapshot/snapshotterInjected.ts b/packages/playwright-core/src/server/snapshot/snapshotterInjected.ts similarity index 100% rename from src/server/snapshot/snapshotterInjected.ts rename to packages/playwright-core/src/server/snapshot/snapshotterInjected.ts diff --git a/src/server/supplements/debugger.ts b/packages/playwright-core/src/server/supplements/debugger.ts similarity index 100% rename from src/server/supplements/debugger.ts rename to packages/playwright-core/src/server/supplements/debugger.ts diff --git a/src/server/supplements/har/har.ts b/packages/playwright-core/src/server/supplements/har/har.ts similarity index 100% rename from src/server/supplements/har/har.ts rename to packages/playwright-core/src/server/supplements/har/har.ts diff --git a/src/server/supplements/har/harRecorder.ts b/packages/playwright-core/src/server/supplements/har/harRecorder.ts similarity index 100% rename from src/server/supplements/har/harRecorder.ts rename to packages/playwright-core/src/server/supplements/har/harRecorder.ts diff --git a/src/server/supplements/har/harTracer.ts b/packages/playwright-core/src/server/supplements/har/harTracer.ts similarity index 100% rename from src/server/supplements/har/harTracer.ts rename to packages/playwright-core/src/server/supplements/har/harTracer.ts diff --git a/src/server/supplements/injected/consoleApi.ts b/packages/playwright-core/src/server/supplements/injected/consoleApi.ts similarity index 100% rename from src/server/supplements/injected/consoleApi.ts rename to packages/playwright-core/src/server/supplements/injected/consoleApi.ts diff --git a/src/server/supplements/injected/recorder.ts b/packages/playwright-core/src/server/supplements/injected/recorder.ts similarity index 100% rename from src/server/supplements/injected/recorder.ts rename to packages/playwright-core/src/server/supplements/injected/recorder.ts diff --git a/src/server/supplements/recorder/codeGenerator.ts b/packages/playwright-core/src/server/supplements/recorder/codeGenerator.ts similarity index 100% rename from src/server/supplements/recorder/codeGenerator.ts rename to packages/playwright-core/src/server/supplements/recorder/codeGenerator.ts diff --git a/src/server/supplements/recorder/csharp.ts b/packages/playwright-core/src/server/supplements/recorder/csharp.ts similarity index 100% rename from src/server/supplements/recorder/csharp.ts rename to packages/playwright-core/src/server/supplements/recorder/csharp.ts diff --git a/src/server/supplements/recorder/java.ts b/packages/playwright-core/src/server/supplements/recorder/java.ts similarity index 100% rename from src/server/supplements/recorder/java.ts rename to packages/playwright-core/src/server/supplements/recorder/java.ts diff --git a/src/server/supplements/recorder/javascript.ts b/packages/playwright-core/src/server/supplements/recorder/javascript.ts similarity index 100% rename from src/server/supplements/recorder/javascript.ts rename to packages/playwright-core/src/server/supplements/recorder/javascript.ts diff --git a/src/server/supplements/recorder/language.ts b/packages/playwright-core/src/server/supplements/recorder/language.ts similarity index 100% rename from src/server/supplements/recorder/language.ts rename to packages/playwright-core/src/server/supplements/recorder/language.ts diff --git a/src/server/supplements/recorder/python.ts b/packages/playwright-core/src/server/supplements/recorder/python.ts similarity index 100% rename from src/server/supplements/recorder/python.ts rename to packages/playwright-core/src/server/supplements/recorder/python.ts diff --git a/src/server/supplements/recorder/recorderActions.ts b/packages/playwright-core/src/server/supplements/recorder/recorderActions.ts similarity index 100% rename from src/server/supplements/recorder/recorderActions.ts rename to packages/playwright-core/src/server/supplements/recorder/recorderActions.ts diff --git a/src/server/supplements/recorder/recorderApp.ts b/packages/playwright-core/src/server/supplements/recorder/recorderApp.ts similarity index 100% rename from src/server/supplements/recorder/recorderApp.ts rename to packages/playwright-core/src/server/supplements/recorder/recorderApp.ts diff --git a/src/server/supplements/recorder/recorderTypes.ts b/packages/playwright-core/src/server/supplements/recorder/recorderTypes.ts similarity index 100% rename from src/server/supplements/recorder/recorderTypes.ts rename to packages/playwright-core/src/server/supplements/recorder/recorderTypes.ts diff --git a/src/server/supplements/recorder/recorderUtils.ts b/packages/playwright-core/src/server/supplements/recorder/recorderUtils.ts similarity index 100% rename from src/server/supplements/recorder/recorderUtils.ts rename to packages/playwright-core/src/server/supplements/recorder/recorderUtils.ts diff --git a/src/server/supplements/recorder/utils.ts b/packages/playwright-core/src/server/supplements/recorder/utils.ts similarity index 100% rename from src/server/supplements/recorder/utils.ts rename to packages/playwright-core/src/server/supplements/recorder/utils.ts diff --git a/src/server/supplements/recorderSupplement.ts b/packages/playwright-core/src/server/supplements/recorderSupplement.ts similarity index 100% rename from src/server/supplements/recorderSupplement.ts rename to packages/playwright-core/src/server/supplements/recorderSupplement.ts diff --git a/src/server/trace/common/traceEvents.ts b/packages/playwright-core/src/server/trace/common/traceEvents.ts similarity index 100% rename from src/server/trace/common/traceEvents.ts rename to packages/playwright-core/src/server/trace/common/traceEvents.ts diff --git a/src/server/trace/recorder/tracing.ts b/packages/playwright-core/src/server/trace/recorder/tracing.ts similarity index 100% rename from src/server/trace/recorder/tracing.ts rename to packages/playwright-core/src/server/trace/recorder/tracing.ts diff --git a/src/server/trace/viewer/traceModel.ts b/packages/playwright-core/src/server/trace/viewer/traceModel.ts similarity index 100% rename from src/server/trace/viewer/traceModel.ts rename to packages/playwright-core/src/server/trace/viewer/traceModel.ts diff --git a/src/server/trace/viewer/traceViewer.ts b/packages/playwright-core/src/server/trace/viewer/traceViewer.ts similarity index 100% rename from src/server/trace/viewer/traceViewer.ts rename to packages/playwright-core/src/server/trace/viewer/traceViewer.ts diff --git a/src/server/transport.ts b/packages/playwright-core/src/server/transport.ts similarity index 100% rename from src/server/transport.ts rename to packages/playwright-core/src/server/transport.ts diff --git a/src/server/types.ts b/packages/playwright-core/src/server/types.ts similarity index 100% rename from src/server/types.ts rename to packages/playwright-core/src/server/types.ts diff --git a/src/server/usKeyboardLayout.ts b/packages/playwright-core/src/server/usKeyboardLayout.ts similarity index 100% rename from src/server/usKeyboardLayout.ts rename to packages/playwright-core/src/server/usKeyboardLayout.ts diff --git a/src/server/webkit/protocol.d.ts b/packages/playwright-core/src/server/webkit/protocol.d.ts similarity index 100% rename from src/server/webkit/protocol.d.ts rename to packages/playwright-core/src/server/webkit/protocol.d.ts diff --git a/src/server/webkit/webkit.ts b/packages/playwright-core/src/server/webkit/webkit.ts similarity index 100% rename from src/server/webkit/webkit.ts rename to packages/playwright-core/src/server/webkit/webkit.ts diff --git a/src/server/webkit/wkAccessibility.ts b/packages/playwright-core/src/server/webkit/wkAccessibility.ts similarity index 100% rename from src/server/webkit/wkAccessibility.ts rename to packages/playwright-core/src/server/webkit/wkAccessibility.ts diff --git a/src/server/webkit/wkBrowser.ts b/packages/playwright-core/src/server/webkit/wkBrowser.ts similarity index 100% rename from src/server/webkit/wkBrowser.ts rename to packages/playwright-core/src/server/webkit/wkBrowser.ts diff --git a/src/server/webkit/wkConnection.ts b/packages/playwright-core/src/server/webkit/wkConnection.ts similarity index 100% rename from src/server/webkit/wkConnection.ts rename to packages/playwright-core/src/server/webkit/wkConnection.ts diff --git a/src/server/webkit/wkExecutionContext.ts b/packages/playwright-core/src/server/webkit/wkExecutionContext.ts similarity index 100% rename from src/server/webkit/wkExecutionContext.ts rename to packages/playwright-core/src/server/webkit/wkExecutionContext.ts diff --git a/src/server/webkit/wkInput.ts b/packages/playwright-core/src/server/webkit/wkInput.ts similarity index 100% rename from src/server/webkit/wkInput.ts rename to packages/playwright-core/src/server/webkit/wkInput.ts diff --git a/src/server/webkit/wkInterceptableRequest.ts b/packages/playwright-core/src/server/webkit/wkInterceptableRequest.ts similarity index 100% rename from src/server/webkit/wkInterceptableRequest.ts rename to packages/playwright-core/src/server/webkit/wkInterceptableRequest.ts diff --git a/src/server/webkit/wkPage.ts b/packages/playwright-core/src/server/webkit/wkPage.ts similarity index 100% rename from src/server/webkit/wkPage.ts rename to packages/playwright-core/src/server/webkit/wkPage.ts diff --git a/src/server/webkit/wkProvisionalPage.ts b/packages/playwright-core/src/server/webkit/wkProvisionalPage.ts similarity index 100% rename from src/server/webkit/wkProvisionalPage.ts rename to packages/playwright-core/src/server/webkit/wkProvisionalPage.ts diff --git a/src/server/webkit/wkWorkers.ts b/packages/playwright-core/src/server/webkit/wkWorkers.ts similarity index 100% rename from src/server/webkit/wkWorkers.ts rename to packages/playwright-core/src/server/webkit/wkWorkers.ts diff --git a/src/third_party/diff_match_patch.js b/packages/playwright-core/src/third_party/diff_match_patch.js similarity index 100% rename from src/third_party/diff_match_patch.js rename to packages/playwright-core/src/third_party/diff_match_patch.js diff --git a/src/third_party/highlightjs/README.md b/packages/playwright-core/src/third_party/highlightjs/README.md similarity index 100% rename from src/third_party/highlightjs/README.md rename to packages/playwright-core/src/third_party/highlightjs/README.md diff --git a/src/third_party/highlightjs/highlightjs/LICENSE b/packages/playwright-core/src/third_party/highlightjs/highlightjs/LICENSE similarity index 100% rename from src/third_party/highlightjs/highlightjs/LICENSE rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/LICENSE diff --git a/src/third_party/highlightjs/highlightjs/core.js b/packages/playwright-core/src/third_party/highlightjs/highlightjs/core.js similarity index 100% rename from src/third_party/highlightjs/highlightjs/core.js rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/core.js diff --git a/src/third_party/highlightjs/highlightjs/highlight.js b/packages/playwright-core/src/third_party/highlightjs/highlightjs/highlight.js similarity index 100% rename from src/third_party/highlightjs/highlightjs/highlight.js rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/highlight.js diff --git a/src/third_party/highlightjs/highlightjs/index.d.ts b/packages/playwright-core/src/third_party/highlightjs/highlightjs/index.d.ts similarity index 100% rename from src/third_party/highlightjs/highlightjs/index.d.ts rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/index.d.ts diff --git a/src/third_party/highlightjs/highlightjs/index.js b/packages/playwright-core/src/third_party/highlightjs/highlightjs/index.js similarity index 100% rename from src/third_party/highlightjs/highlightjs/index.js rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/index.js diff --git a/src/third_party/highlightjs/highlightjs/languages/csharp.js b/packages/playwright-core/src/third_party/highlightjs/highlightjs/languages/csharp.js similarity index 100% rename from src/third_party/highlightjs/highlightjs/languages/csharp.js rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/languages/csharp.js diff --git a/src/third_party/highlightjs/highlightjs/languages/java.js b/packages/playwright-core/src/third_party/highlightjs/highlightjs/languages/java.js similarity index 100% rename from src/third_party/highlightjs/highlightjs/languages/java.js rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/languages/java.js diff --git a/src/third_party/highlightjs/highlightjs/languages/javascript.js b/packages/playwright-core/src/third_party/highlightjs/highlightjs/languages/javascript.js similarity index 100% rename from src/third_party/highlightjs/highlightjs/languages/javascript.js rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/languages/javascript.js diff --git a/src/third_party/highlightjs/highlightjs/languages/python.js b/packages/playwright-core/src/third_party/highlightjs/highlightjs/languages/python.js similarity index 100% rename from src/third_party/highlightjs/highlightjs/languages/python.js rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/languages/python.js diff --git a/src/third_party/highlightjs/highlightjs/tomorrow.css b/packages/playwright-core/src/third_party/highlightjs/highlightjs/tomorrow.css similarity index 100% rename from src/third_party/highlightjs/highlightjs/tomorrow.css rename to packages/playwright-core/src/third_party/highlightjs/highlightjs/tomorrow.css diff --git a/src/third_party/highlightjs/roll.sh b/packages/playwright-core/src/third_party/highlightjs/roll.sh similarity index 100% rename from src/third_party/highlightjs/roll.sh rename to packages/playwright-core/src/third_party/highlightjs/roll.sh diff --git a/src/utils/async.ts b/packages/playwright-core/src/utils/async.ts similarity index 100% rename from src/utils/async.ts rename to packages/playwright-core/src/utils/async.ts diff --git a/src/utils/browserFetcher.ts b/packages/playwright-core/src/utils/browserFetcher.ts similarity index 100% rename from src/utils/browserFetcher.ts rename to packages/playwright-core/src/utils/browserFetcher.ts diff --git a/src/utils/debugLogger.ts b/packages/playwright-core/src/utils/debugLogger.ts similarity index 100% rename from src/utils/debugLogger.ts rename to packages/playwright-core/src/utils/debugLogger.ts diff --git a/src/utils/dependencies.ts b/packages/playwright-core/src/utils/dependencies.ts similarity index 100% rename from src/utils/dependencies.ts rename to packages/playwright-core/src/utils/dependencies.ts diff --git a/src/utils/errors.ts b/packages/playwright-core/src/utils/errors.ts similarity index 100% rename from src/utils/errors.ts rename to packages/playwright-core/src/utils/errors.ts diff --git a/src/utils/eventsHelper.ts b/packages/playwright-core/src/utils/eventsHelper.ts similarity index 100% rename from src/utils/eventsHelper.ts rename to packages/playwright-core/src/utils/eventsHelper.ts diff --git a/src/utils/httpServer.ts b/packages/playwright-core/src/utils/httpServer.ts similarity index 100% rename from src/utils/httpServer.ts rename to packages/playwright-core/src/utils/httpServer.ts diff --git a/src/utils/multimap.ts b/packages/playwright-core/src/utils/multimap.ts similarity index 100% rename from src/utils/multimap.ts rename to packages/playwright-core/src/utils/multimap.ts diff --git a/src/utils/netUtils.ts b/packages/playwright-core/src/utils/netUtils.ts similarity index 100% rename from src/utils/netUtils.ts rename to packages/playwright-core/src/utils/netUtils.ts diff --git a/src/utils/processLauncher.ts b/packages/playwright-core/src/utils/processLauncher.ts similarity index 100% rename from src/utils/processLauncher.ts rename to packages/playwright-core/src/utils/processLauncher.ts diff --git a/src/utils/registry.ts b/packages/playwright-core/src/utils/registry.ts similarity index 100% rename from src/utils/registry.ts rename to packages/playwright-core/src/utils/registry.ts diff --git a/src/utils/socksProxy.ts b/packages/playwright-core/src/utils/socksProxy.ts similarity index 100% rename from src/utils/socksProxy.ts rename to packages/playwright-core/src/utils/socksProxy.ts diff --git a/src/utils/stackTrace.ts b/packages/playwright-core/src/utils/stackTrace.ts similarity index 95% rename from src/utils/stackTrace.ts rename to packages/playwright-core/src/utils/stackTrace.ts index a64ed2a7f1..5fdf5977a4 100644 --- a/src/utils/stackTrace.ts +++ b/packages/playwright-core/src/utils/stackTrace.ts @@ -30,9 +30,9 @@ export function rewriteErrorMessage(e: E, newMessage: string): return e; } -const ROOT_DIR = path.resolve(__dirname, '..', '..'); -const CLIENT_LIB = path.join(ROOT_DIR, 'lib', 'client'); -const CLIENT_SRC = path.join(ROOT_DIR, 'src', 'client'); +const CORE_DIR = path.resolve(__dirname, '..', '..'); +const CLIENT_LIB = path.join(CORE_DIR, 'lib', 'client'); +const CLIENT_SRC = path.join(CORE_DIR, 'src', 'client'); export type ParsedStackTrace = { allFrames: StackFrame[]; diff --git a/src/utils/timeoutSettings.ts b/packages/playwright-core/src/utils/timeoutSettings.ts similarity index 100% rename from src/utils/timeoutSettings.ts rename to packages/playwright-core/src/utils/timeoutSettings.ts diff --git a/src/utils/ubuntuVersion.ts b/packages/playwright-core/src/utils/ubuntuVersion.ts similarity index 100% rename from src/utils/ubuntuVersion.ts rename to packages/playwright-core/src/utils/ubuntuVersion.ts diff --git a/src/utils/utils.ts b/packages/playwright-core/src/utils/utils.ts similarity index 99% rename from src/utils/utils.ts rename to packages/playwright-core/src/utils/utils.ts index dee2df8636..dc684b8bc9 100644 --- a/src/utils/utils.ts +++ b/packages/playwright-core/src/utils/utils.ts @@ -423,9 +423,9 @@ export function createGuid(): string { return crypto.randomBytes(16).toString('hex'); } -export async function removeFolders(dirs: string[]): Promise> { +export async function removeFolders(dirs: string[]): Promise> { return await Promise.all(dirs.map((dir: string) => { - return new Promise(fulfill => { + return new Promise(fulfill => { removeFolder(dir, { maxBusyTries: 10 }, error => { fulfill(error ?? undefined); }); diff --git a/src/utils/vfs.ts b/packages/playwright-core/src/utils/vfs.ts similarity index 100% rename from src/utils/vfs.ts rename to packages/playwright-core/src/utils/vfs.ts diff --git a/src/web/common.css b/packages/playwright-core/src/web/common.css similarity index 100% rename from src/web/common.css rename to packages/playwright-core/src/web/common.css diff --git a/src/web/components/expandable.tsx b/packages/playwright-core/src/web/components/expandable.tsx similarity index 100% rename from src/web/components/expandable.tsx rename to packages/playwright-core/src/web/components/expandable.tsx diff --git a/src/web/components/source.css b/packages/playwright-core/src/web/components/source.css similarity index 100% rename from src/web/components/source.css rename to packages/playwright-core/src/web/components/source.css diff --git a/src/web/components/source.tsx b/packages/playwright-core/src/web/components/source.tsx similarity index 100% rename from src/web/components/source.tsx rename to packages/playwright-core/src/web/components/source.tsx diff --git a/src/web/components/splitView.css b/packages/playwright-core/src/web/components/splitView.css similarity index 100% rename from src/web/components/splitView.css rename to packages/playwright-core/src/web/components/splitView.css diff --git a/src/web/components/splitView.tsx b/packages/playwright-core/src/web/components/splitView.tsx similarity index 100% rename from src/web/components/splitView.tsx rename to packages/playwright-core/src/web/components/splitView.tsx diff --git a/src/web/components/toolbar.css b/packages/playwright-core/src/web/components/toolbar.css similarity index 100% rename from src/web/components/toolbar.css rename to packages/playwright-core/src/web/components/toolbar.css diff --git a/src/web/components/toolbar.tsx b/packages/playwright-core/src/web/components/toolbar.tsx similarity index 100% rename from src/web/components/toolbar.tsx rename to packages/playwright-core/src/web/components/toolbar.tsx diff --git a/src/web/components/toolbarButton.css b/packages/playwright-core/src/web/components/toolbarButton.css similarity index 100% rename from src/web/components/toolbarButton.css rename to packages/playwright-core/src/web/components/toolbarButton.css diff --git a/src/web/components/toolbarButton.tsx b/packages/playwright-core/src/web/components/toolbarButton.tsx similarity index 100% rename from src/web/components/toolbarButton.tsx rename to packages/playwright-core/src/web/components/toolbarButton.tsx diff --git a/src/web/components/treeItem.tsx b/packages/playwright-core/src/web/components/treeItem.tsx similarity index 100% rename from src/web/components/treeItem.tsx rename to packages/playwright-core/src/web/components/treeItem.tsx diff --git a/src/web/htmlReport/htmlReport.css b/packages/playwright-core/src/web/htmlReport/htmlReport.css similarity index 100% rename from src/web/htmlReport/htmlReport.css rename to packages/playwright-core/src/web/htmlReport/htmlReport.css diff --git a/src/web/htmlReport/htmlReport.tsx b/packages/playwright-core/src/web/htmlReport/htmlReport.tsx similarity index 99% rename from src/web/htmlReport/htmlReport.tsx rename to packages/playwright-core/src/web/htmlReport/htmlReport.tsx index 620ccacebf..138904073c 100644 --- a/src/web/htmlReport/htmlReport.tsx +++ b/packages/playwright-core/src/web/htmlReport/htmlReport.tsx @@ -21,7 +21,7 @@ import { SplitView } from '../components/splitView'; import { TreeItem } from '../components/treeItem'; import { TabbedPane } from '../traceViewer/ui/tabbedPane'; import { msToString } from '../uiUtils'; -import type { ProjectTreeItem, SuiteTreeItem, TestCase, TestResult, TestStep, TestTreeItem, Location, TestFile, Stats, TestAttachment } from '../../test/reporters/html'; +import type { ProjectTreeItem, SuiteTreeItem, TestCase, TestResult, TestStep, TestTreeItem, Location, TestFile, Stats, TestAttachment } from '@playwright/test/src/reporters/html'; type Filter = 'Failing' | 'All'; diff --git a/src/web/htmlReport/index.html b/packages/playwright-core/src/web/htmlReport/index.html similarity index 100% rename from src/web/htmlReport/index.html rename to packages/playwright-core/src/web/htmlReport/index.html diff --git a/src/web/htmlReport/index.tsx b/packages/playwright-core/src/web/htmlReport/index.tsx similarity index 100% rename from src/web/htmlReport/index.tsx rename to packages/playwright-core/src/web/htmlReport/index.tsx diff --git a/src/web/htmlReport/webpack.config.js b/packages/playwright-core/src/web/htmlReport/webpack.config.js similarity index 100% rename from src/web/htmlReport/webpack.config.js rename to packages/playwright-core/src/web/htmlReport/webpack.config.js diff --git a/src/web/recorder/callLog.css b/packages/playwright-core/src/web/recorder/callLog.css similarity index 100% rename from src/web/recorder/callLog.css rename to packages/playwright-core/src/web/recorder/callLog.css diff --git a/src/web/recorder/callLog.tsx b/packages/playwright-core/src/web/recorder/callLog.tsx similarity index 100% rename from src/web/recorder/callLog.tsx rename to packages/playwright-core/src/web/recorder/callLog.tsx diff --git a/src/web/recorder/index.html b/packages/playwright-core/src/web/recorder/index.html similarity index 100% rename from src/web/recorder/index.html rename to packages/playwright-core/src/web/recorder/index.html diff --git a/src/web/recorder/index.tsx b/packages/playwright-core/src/web/recorder/index.tsx similarity index 100% rename from src/web/recorder/index.tsx rename to packages/playwright-core/src/web/recorder/index.tsx diff --git a/src/web/recorder/main.tsx b/packages/playwright-core/src/web/recorder/main.tsx similarity index 100% rename from src/web/recorder/main.tsx rename to packages/playwright-core/src/web/recorder/main.tsx diff --git a/src/web/recorder/recorder.css b/packages/playwright-core/src/web/recorder/recorder.css similarity index 100% rename from src/web/recorder/recorder.css rename to packages/playwright-core/src/web/recorder/recorder.css diff --git a/src/web/recorder/recorder.tsx b/packages/playwright-core/src/web/recorder/recorder.tsx similarity index 100% rename from src/web/recorder/recorder.tsx rename to packages/playwright-core/src/web/recorder/recorder.tsx diff --git a/src/web/recorder/webpack.config.js b/packages/playwright-core/src/web/recorder/webpack.config.js similarity index 100% rename from src/web/recorder/webpack.config.js rename to packages/playwright-core/src/web/recorder/webpack.config.js diff --git a/src/web/theme.ts b/packages/playwright-core/src/web/theme.ts similarity index 100% rename from src/web/theme.ts rename to packages/playwright-core/src/web/theme.ts diff --git a/src/web/third_party/vscode/LICENSE.txt b/packages/playwright-core/src/web/third_party/vscode/LICENSE.txt similarity index 100% rename from src/web/third_party/vscode/LICENSE.txt rename to packages/playwright-core/src/web/third_party/vscode/LICENSE.txt diff --git a/src/web/third_party/vscode/codicon.css b/packages/playwright-core/src/web/third_party/vscode/codicon.css similarity index 100% rename from src/web/third_party/vscode/codicon.css rename to packages/playwright-core/src/web/third_party/vscode/codicon.css diff --git a/src/web/third_party/vscode/codicon.ttf b/packages/playwright-core/src/web/third_party/vscode/codicon.ttf similarity index 100% rename from src/web/third_party/vscode/codicon.ttf rename to packages/playwright-core/src/web/third_party/vscode/codicon.ttf diff --git a/src/web/traceViewer/geometry.ts b/packages/playwright-core/src/web/traceViewer/geometry.ts similarity index 100% rename from src/web/traceViewer/geometry.ts rename to packages/playwright-core/src/web/traceViewer/geometry.ts diff --git a/src/web/traceViewer/index.html b/packages/playwright-core/src/web/traceViewer/index.html similarity index 100% rename from src/web/traceViewer/index.html rename to packages/playwright-core/src/web/traceViewer/index.html diff --git a/src/web/traceViewer/index.tsx b/packages/playwright-core/src/web/traceViewer/index.tsx similarity index 100% rename from src/web/traceViewer/index.tsx rename to packages/playwright-core/src/web/traceViewer/index.tsx diff --git a/src/web/traceViewer/ui/actionList.css b/packages/playwright-core/src/web/traceViewer/ui/actionList.css similarity index 100% rename from src/web/traceViewer/ui/actionList.css rename to packages/playwright-core/src/web/traceViewer/ui/actionList.css diff --git a/src/web/traceViewer/ui/actionList.tsx b/packages/playwright-core/src/web/traceViewer/ui/actionList.tsx similarity index 100% rename from src/web/traceViewer/ui/actionList.tsx rename to packages/playwright-core/src/web/traceViewer/ui/actionList.tsx diff --git a/src/web/traceViewer/ui/callTab.css b/packages/playwright-core/src/web/traceViewer/ui/callTab.css similarity index 100% rename from src/web/traceViewer/ui/callTab.css rename to packages/playwright-core/src/web/traceViewer/ui/callTab.css diff --git a/src/web/traceViewer/ui/callTab.tsx b/packages/playwright-core/src/web/traceViewer/ui/callTab.tsx similarity index 100% rename from src/web/traceViewer/ui/callTab.tsx rename to packages/playwright-core/src/web/traceViewer/ui/callTab.tsx diff --git a/src/web/traceViewer/ui/consoleTab.css b/packages/playwright-core/src/web/traceViewer/ui/consoleTab.css similarity index 100% rename from src/web/traceViewer/ui/consoleTab.css rename to packages/playwright-core/src/web/traceViewer/ui/consoleTab.css diff --git a/src/web/traceViewer/ui/consoleTab.tsx b/packages/playwright-core/src/web/traceViewer/ui/consoleTab.tsx similarity index 100% rename from src/web/traceViewer/ui/consoleTab.tsx rename to packages/playwright-core/src/web/traceViewer/ui/consoleTab.tsx diff --git a/src/web/traceViewer/ui/contextSelector.css b/packages/playwright-core/src/web/traceViewer/ui/contextSelector.css similarity index 100% rename from src/web/traceViewer/ui/contextSelector.css rename to packages/playwright-core/src/web/traceViewer/ui/contextSelector.css diff --git a/src/web/traceViewer/ui/contextSelector.tsx b/packages/playwright-core/src/web/traceViewer/ui/contextSelector.tsx similarity index 100% rename from src/web/traceViewer/ui/contextSelector.tsx rename to packages/playwright-core/src/web/traceViewer/ui/contextSelector.tsx diff --git a/src/web/traceViewer/ui/filmStrip.css b/packages/playwright-core/src/web/traceViewer/ui/filmStrip.css similarity index 100% rename from src/web/traceViewer/ui/filmStrip.css rename to packages/playwright-core/src/web/traceViewer/ui/filmStrip.css diff --git a/src/web/traceViewer/ui/filmStrip.tsx b/packages/playwright-core/src/web/traceViewer/ui/filmStrip.tsx similarity index 100% rename from src/web/traceViewer/ui/filmStrip.tsx rename to packages/playwright-core/src/web/traceViewer/ui/filmStrip.tsx diff --git a/src/web/traceViewer/ui/helpers.tsx b/packages/playwright-core/src/web/traceViewer/ui/helpers.tsx similarity index 100% rename from src/web/traceViewer/ui/helpers.tsx rename to packages/playwright-core/src/web/traceViewer/ui/helpers.tsx diff --git a/src/web/traceViewer/ui/modelUtil.ts b/packages/playwright-core/src/web/traceViewer/ui/modelUtil.ts similarity index 100% rename from src/web/traceViewer/ui/modelUtil.ts rename to packages/playwright-core/src/web/traceViewer/ui/modelUtil.ts diff --git a/src/web/traceViewer/ui/networkResourceDetails.css b/packages/playwright-core/src/web/traceViewer/ui/networkResourceDetails.css similarity index 100% rename from src/web/traceViewer/ui/networkResourceDetails.css rename to packages/playwright-core/src/web/traceViewer/ui/networkResourceDetails.css diff --git a/src/web/traceViewer/ui/networkResourceDetails.tsx b/packages/playwright-core/src/web/traceViewer/ui/networkResourceDetails.tsx similarity index 100% rename from src/web/traceViewer/ui/networkResourceDetails.tsx rename to packages/playwright-core/src/web/traceViewer/ui/networkResourceDetails.tsx diff --git a/src/web/traceViewer/ui/networkTab.css b/packages/playwright-core/src/web/traceViewer/ui/networkTab.css similarity index 100% rename from src/web/traceViewer/ui/networkTab.css rename to packages/playwright-core/src/web/traceViewer/ui/networkTab.css diff --git a/src/web/traceViewer/ui/networkTab.tsx b/packages/playwright-core/src/web/traceViewer/ui/networkTab.tsx similarity index 100% rename from src/web/traceViewer/ui/networkTab.tsx rename to packages/playwright-core/src/web/traceViewer/ui/networkTab.tsx diff --git a/src/web/traceViewer/ui/snapshotTab.css b/packages/playwright-core/src/web/traceViewer/ui/snapshotTab.css similarity index 100% rename from src/web/traceViewer/ui/snapshotTab.css rename to packages/playwright-core/src/web/traceViewer/ui/snapshotTab.css diff --git a/src/web/traceViewer/ui/snapshotTab.tsx b/packages/playwright-core/src/web/traceViewer/ui/snapshotTab.tsx similarity index 100% rename from src/web/traceViewer/ui/snapshotTab.tsx rename to packages/playwright-core/src/web/traceViewer/ui/snapshotTab.tsx diff --git a/src/web/traceViewer/ui/sourceTab.css b/packages/playwright-core/src/web/traceViewer/ui/sourceTab.css similarity index 100% rename from src/web/traceViewer/ui/sourceTab.css rename to packages/playwright-core/src/web/traceViewer/ui/sourceTab.css diff --git a/src/web/traceViewer/ui/sourceTab.tsx b/packages/playwright-core/src/web/traceViewer/ui/sourceTab.tsx similarity index 100% rename from src/web/traceViewer/ui/sourceTab.tsx rename to packages/playwright-core/src/web/traceViewer/ui/sourceTab.tsx diff --git a/src/web/traceViewer/ui/stackTrace.css b/packages/playwright-core/src/web/traceViewer/ui/stackTrace.css similarity index 100% rename from src/web/traceViewer/ui/stackTrace.css rename to packages/playwright-core/src/web/traceViewer/ui/stackTrace.css diff --git a/src/web/traceViewer/ui/stackTrace.tsx b/packages/playwright-core/src/web/traceViewer/ui/stackTrace.tsx similarity index 100% rename from src/web/traceViewer/ui/stackTrace.tsx rename to packages/playwright-core/src/web/traceViewer/ui/stackTrace.tsx diff --git a/src/web/traceViewer/ui/tabbedPane.css b/packages/playwright-core/src/web/traceViewer/ui/tabbedPane.css similarity index 100% rename from src/web/traceViewer/ui/tabbedPane.css rename to packages/playwright-core/src/web/traceViewer/ui/tabbedPane.css diff --git a/src/web/traceViewer/ui/tabbedPane.tsx b/packages/playwright-core/src/web/traceViewer/ui/tabbedPane.tsx similarity index 100% rename from src/web/traceViewer/ui/tabbedPane.tsx rename to packages/playwright-core/src/web/traceViewer/ui/tabbedPane.tsx diff --git a/src/web/traceViewer/ui/timeline.css b/packages/playwright-core/src/web/traceViewer/ui/timeline.css similarity index 100% rename from src/web/traceViewer/ui/timeline.css rename to packages/playwright-core/src/web/traceViewer/ui/timeline.css diff --git a/src/web/traceViewer/ui/timeline.tsx b/packages/playwright-core/src/web/traceViewer/ui/timeline.tsx similarity index 100% rename from src/web/traceViewer/ui/timeline.tsx rename to packages/playwright-core/src/web/traceViewer/ui/timeline.tsx diff --git a/src/web/traceViewer/ui/workbench.css b/packages/playwright-core/src/web/traceViewer/ui/workbench.css similarity index 100% rename from src/web/traceViewer/ui/workbench.css rename to packages/playwright-core/src/web/traceViewer/ui/workbench.css diff --git a/src/web/traceViewer/ui/workbench.tsx b/packages/playwright-core/src/web/traceViewer/ui/workbench.tsx similarity index 100% rename from src/web/traceViewer/ui/workbench.tsx rename to packages/playwright-core/src/web/traceViewer/ui/workbench.tsx diff --git a/src/web/traceViewer/webpack.config.js b/packages/playwright-core/src/web/traceViewer/webpack.config.js similarity index 100% rename from src/web/traceViewer/webpack.config.js rename to packages/playwright-core/src/web/traceViewer/webpack.config.js diff --git a/src/web/types.d.ts b/packages/playwright-core/src/web/types.d.ts similarity index 100% rename from src/web/types.d.ts rename to packages/playwright-core/src/web/types.d.ts diff --git a/src/web/uiUtils.ts b/packages/playwright-core/src/web/uiUtils.ts similarity index 100% rename from src/web/uiUtils.ts rename to packages/playwright-core/src/web/uiUtils.ts diff --git a/types/protocol.d.ts b/packages/playwright-core/types/protocol.d.ts similarity index 100% rename from types/protocol.d.ts rename to packages/playwright-core/types/protocol.d.ts diff --git a/types/structs.d.ts b/packages/playwright-core/types/structs.d.ts similarity index 100% rename from types/structs.d.ts rename to packages/playwright-core/types/structs.d.ts diff --git a/types/test.d.ts b/packages/playwright-core/types/test.d.ts similarity index 100% rename from types/test.d.ts rename to packages/playwright-core/types/test.d.ts diff --git a/types/testExpect.d.ts b/packages/playwright-core/types/testExpect.d.ts similarity index 100% rename from types/testExpect.d.ts rename to packages/playwright-core/types/testExpect.d.ts diff --git a/types/testReporter.d.ts b/packages/playwright-core/types/testReporter.d.ts similarity index 100% rename from types/testReporter.d.ts rename to packages/playwright-core/types/testReporter.d.ts diff --git a/types/types.d.ts b/packages/playwright-core/types/types.d.ts similarity index 100% rename from types/types.d.ts rename to packages/playwright-core/types/types.d.ts diff --git a/packages/playwright-firefox/README.md b/packages/playwright-firefox/README.md deleted file mode 100644 index 04305b8761..0000000000 --- a/packages/playwright-firefox/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# playwright-firefox -This package contains the [Firefox](https://www.mozilla.org/firefox/) flavor of [Playwright](http://github.com/microsoft/playwright). diff --git a/packages/playwright-test/install.js b/packages/playwright-firefox/index.d.ts similarity index 89% rename from packages/playwright-test/install.js rename to packages/playwright-firefox/index.d.ts index 045b2ac8f9..e2add353db 100644 --- a/packages/playwright-test/install.js +++ b/packages/playwright-firefox/index.d.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -// Explicitly empty install.js to avoid touching browser registry at all. +export * from 'playwright-core'; diff --git a/packages/playwright-firefox/index.js b/packages/playwright-firefox/index.js new file mode 100644 index 0000000000..e263df6ab1 --- /dev/null +++ b/packages/playwright-firefox/index.js @@ -0,0 +1,17 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports = require('playwright-core'); diff --git a/packages/playwright-firefox/index.mjs b/packages/playwright-firefox/index.mjs new file mode 100644 index 0000000000..c736e9d13a --- /dev/null +++ b/packages/playwright-firefox/index.mjs @@ -0,0 +1,18 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from 'playwright-core'; +import playwright from 'playwright-core'; +export default playwright; diff --git a/packages/playwright-firefox/install.js b/packages/playwright-firefox/install.js new file mode 100644 index 0000000000..a59fe86db0 --- /dev/null +++ b/packages/playwright-firefox/install.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { installBrowsersForNpmInstall } = require('playwright-core/lib/utils/registry'); + +installBrowsersForNpmInstall(['firefox']); diff --git a/packages/playwright-firefox/package.json b/packages/playwright-firefox/package.json new file mode 100644 index 0000000000..bc5eac3eaa --- /dev/null +++ b/packages/playwright-firefox/package.json @@ -0,0 +1,27 @@ +{ + "name": "playwright-firefox", + "version": "1.16.0-next", + "description": "A high-level API to automate web browsers", + "repository": "github:Microsoft/playwright", + "homepage": "https://playwright.dev", + "engines": { + "node": ">=12" + }, + "author": { + "name": "Microsoft Corporation" + }, + "license": "Apache-2.0", + "exports": { + ".": { + "import": "./index.mjs", + "require": "./index.js" + }, + "./": "./" + }, + "scripts": { + "install": "node install.js" + }, + "dependencies": { + "playwright-core": "=1.16.0-next" + } +} diff --git a/packages/playwright-test/README.md b/packages/playwright-test/README.md deleted file mode 100644 index 71d411e0ba..0000000000 --- a/packages/playwright-test/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# @playwright/test - -This package contains [Playwright Test](https://playwright.dev/docs/test-intro). diff --git a/packages/playwright-test/index.d.ts b/packages/playwright-test/index.d.ts index 12e0a59518..919358305d 100644 --- a/packages/playwright-test/index.d.ts +++ b/packages/playwright-test/index.d.ts @@ -14,6 +14,7 @@ * limitations under the License. */ -export * from './types/types'; -export * from './types/test'; -export { default } from './types/test'; +export * from 'playwright-core'; +export * from 'playwright-core/types/test'; +export { default } from 'playwright-core/types/test'; + \ No newline at end of file diff --git a/packages/playwright-test/index.js b/packages/playwright-test/index.js index 58d1d3a765..2b678b4eae 100644 --- a/packages/playwright-test/index.js +++ b/packages/playwright-test/index.js @@ -13,8 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const pwt = require('./lib/test/index'); -const playwright = require('./lib/inprocess'); + +const pwt = require('./lib/index'); +const playwright = require('playwright-core/lib/inprocess'); const combinedExports = { ...playwright, ...pwt, diff --git a/packages/playwright-test/index.mjs b/packages/playwright-test/index.mjs index e0a7cf3731..6fea6264a5 100644 --- a/packages/playwright-test/index.mjs +++ b/packages/playwright-test/index.mjs @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import playwright from './index.js'; export const chromium = playwright.chromium; diff --git a/packages/playwright-test/package.json b/packages/playwright-test/package.json new file mode 100644 index 0000000000..982f9adffb --- /dev/null +++ b/packages/playwright-test/package.json @@ -0,0 +1,53 @@ +{ + "name": "@playwright/test", + "version": "1.16.0-next", + "description": "A high-level API to automate web browsers", + "repository": "github:Microsoft/playwright", + "homepage": "https://playwright.dev", + "engines": { + "node": ">=12" + }, + "main": "index.js", + "exports": { + ".": { + "import": "./index.mjs", + "require": "./index.js" + }, + "./src/*": "./lib/*.js", + "./*": "./*.js" + }, + "author": { + "name": "Microsoft Corporation" + }, + "license": "Apache-2.0", + "dependencies": { + "@babel/code-frame": "^7.14.5", + "@babel/core": "^7.14.8", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/preset-typescript": "^7.14.5", + "colors": "^1.4.0", + "commander": "^8.2.0", + "expect": "^27.2.5", + "jest-matcher-utils": "^27.2.5", + "minimatch": "^3.0.3", + "ms": "^2.1.2", + "open": "^8.3.0", + "pirates": "^4.0.1", + "pixelmatch": "^5.2.1", + "playwright-core": "=1.16.0-next", + "source-map-support": "^0.4.18" + } +} diff --git a/packages/playwright-test/reporter.d.ts b/packages/playwright-test/reporter.d.ts index 29a927d48e..b59dcc116c 100644 --- a/packages/playwright-test/reporter.d.ts +++ b/packages/playwright-test/reporter.d.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export * from './types/testReporter'; +export * from 'playwright-core/types/testReporter'; diff --git a/src/test/cli.ts b/packages/playwright-test/src/cli.ts similarity index 100% rename from src/test/cli.ts rename to packages/playwright-test/src/cli.ts diff --git a/src/test/dispatcher.ts b/packages/playwright-test/src/dispatcher.ts similarity index 99% rename from src/test/dispatcher.ts rename to packages/playwright-test/src/dispatcher.ts index 8b184c76c0..531573c35c 100644 --- a/src/test/dispatcher.ts +++ b/packages/playwright-test/src/dispatcher.ts @@ -18,7 +18,7 @@ import child_process from 'child_process'; import path from 'path'; import { EventEmitter } from 'events'; import { RunPayload, TestBeginPayload, TestEndPayload, DonePayload, TestOutputPayload, WorkerInitParams, StepBeginPayload, StepEndPayload } from './ipc'; -import type { TestResult, Reporter, TestStep } from '../../types/testReporter'; +import type { TestResult, Reporter, TestStep } from 'playwright-core/types/testReporter'; import { Suite, TestCase } from './test'; import { Loader } from './loader'; diff --git a/src/test/expect.ts b/packages/playwright-test/src/expect.ts similarity index 100% rename from src/test/expect.ts rename to packages/playwright-test/src/expect.ts diff --git a/src/test/fixtures.ts b/packages/playwright-test/src/fixtures.ts similarity index 100% rename from src/test/fixtures.ts rename to packages/playwright-test/src/fixtures.ts diff --git a/src/test/globals.ts b/packages/playwright-test/src/globals.ts similarity index 100% rename from src/test/globals.ts rename to packages/playwright-test/src/globals.ts diff --git a/src/test/index.ts b/packages/playwright-test/src/index.ts similarity index 98% rename from src/test/index.ts rename to packages/playwright-test/src/index.ts index 992e48d712..bbb6f8e751 100644 --- a/src/test/index.ts +++ b/packages/playwright-test/src/index.ts @@ -16,12 +16,12 @@ import * as fs from 'fs'; import * as path from 'path'; -import type { LaunchOptions, BrowserContextOptions, Page, BrowserContext, BrowserType } from '../../types/types'; -import type { TestType, PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWorkerArgs, PlaywrightWorkerOptions, TestInfo } from '../../types/test'; +import type { LaunchOptions, BrowserContextOptions, Page, BrowserContext, BrowserType } from 'playwright-core'; +import type { TestType, PlaywrightTestArgs, PlaywrightTestOptions, PlaywrightWorkerArgs, PlaywrightWorkerOptions, TestInfo } from 'playwright-core/types/test'; import { rootTestType } from './testType'; -import { assert, createGuid, removeFolders } from '../utils/utils'; -import { GridClient } from '../grid/gridClient'; -import { Browser } from '../..'; +import { assert, createGuid, removeFolders } from 'playwright-core/src/utils/utils'; +import { GridClient } from 'playwright-core/src/grid/gridClient'; +import { Browser } from 'playwright-core'; export { expect } from './expect'; export const _baseTest: TestType<{}, {}> = rootTestType.test; @@ -127,7 +127,7 @@ export const test = _baseTest.extend({ await use(gridClient.playwright() as any); await gridClient.close(); } else { - await use(require('../inprocess')); + await use(require('playwright-core/lib/inprocess')); } }, { scope: 'worker' } ], headless: [ undefined, { scope: 'worker' } ], diff --git a/src/test/ipc.ts b/packages/playwright-test/src/ipc.ts similarity index 96% rename from src/test/ipc.ts rename to packages/playwright-test/src/ipc.ts index 5431302830..bff9ec0618 100644 --- a/src/test/ipc.ts +++ b/packages/playwright-test/src/ipc.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import type { TestError } from '../../types/testReporter'; +import type { TestError } from 'playwright-core/types/testReporter'; import type { Config, TestStatus } from './types'; export type SerializedLoaderData = { diff --git a/src/test/loader.ts b/packages/playwright-test/src/loader.ts similarity index 99% rename from src/test/loader.ts rename to packages/playwright-test/src/loader.ts index a637383eb7..48a5dde911 100644 --- a/src/test/loader.ts +++ b/packages/playwright-test/src/loader.ts @@ -24,9 +24,9 @@ import * as path from 'path'; import * as url from 'url'; import * as fs from 'fs'; import { ProjectImpl } from './project'; -import { Reporter } from '../../types/testReporter'; +import { Reporter } from 'playwright-core/types/testReporter'; import { BuiltInReporter, builtInReporters } from './runner'; -import { isRegExp } from '../utils/utils'; +import { isRegExp } from 'playwright-core/src/utils/utils'; export class Loader { private _defaultConfig: Config; diff --git a/src/test/matchers/golden.ts b/packages/playwright-test/src/matchers/golden.ts similarity index 99% rename from src/test/matchers/golden.ts rename to packages/playwright-test/src/matchers/golden.ts index d1a04c36ff..ad1af02912 100644 --- a/src/test/matchers/golden.ts +++ b/packages/playwright-test/src/matchers/golden.ts @@ -21,7 +21,7 @@ import fs from 'fs'; import path from 'path'; import jpeg from 'jpeg-js'; import pixelmatch from 'pixelmatch'; -import { diff_match_patch, DIFF_INSERT, DIFF_DELETE, DIFF_EQUAL } from '../../third_party/diff_match_patch'; +import { diff_match_patch, DIFF_INSERT, DIFF_DELETE, DIFF_EQUAL } from 'playwright-core/src/third_party/diff_match_patch'; import { TestInfoImpl, UpdateSnapshots } from '../types'; import { addSuffixToFilePath } from '../util'; diff --git a/src/test/matchers/matchers.ts b/packages/playwright-test/src/matchers/matchers.ts similarity index 98% rename from src/test/matchers/matchers.ts rename to packages/playwright-test/src/matchers/matchers.ts index 9f67c534f1..71c9463823 100644 --- a/src/test/matchers/matchers.ts +++ b/packages/playwright-test/src/matchers/matchers.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import * as channels from '../../protocol/channels'; -import { Locator, Page } from '../../..'; -import { constructURLBasedOnBaseURL } from '../../utils/utils'; +import * as channels from 'playwright-core/src/protocol/channels'; +import { Locator, Page } from 'playwright-core'; +import { constructURLBasedOnBaseURL } from 'playwright-core/src/utils/utils'; import type { Expect } from '../types'; import { toBeTruthy } from './toBeTruthy'; import { toEqual } from './toEqual'; diff --git a/src/test/matchers/toBeTruthy.ts b/packages/playwright-test/src/matchers/toBeTruthy.ts similarity index 100% rename from src/test/matchers/toBeTruthy.ts rename to packages/playwright-test/src/matchers/toBeTruthy.ts diff --git a/src/test/matchers/toEqual.ts b/packages/playwright-test/src/matchers/toEqual.ts similarity index 100% rename from src/test/matchers/toEqual.ts rename to packages/playwright-test/src/matchers/toEqual.ts diff --git a/src/test/matchers/toMatchSnapshot.ts b/packages/playwright-test/src/matchers/toMatchSnapshot.ts similarity index 100% rename from src/test/matchers/toMatchSnapshot.ts rename to packages/playwright-test/src/matchers/toMatchSnapshot.ts diff --git a/src/test/matchers/toMatchText.ts b/packages/playwright-test/src/matchers/toMatchText.ts similarity index 96% rename from src/test/matchers/toMatchText.ts rename to packages/playwright-test/src/matchers/toMatchText.ts index 79a56d2b3d..77d615185e 100644 --- a/src/test/matchers/toMatchText.ts +++ b/packages/playwright-test/src/matchers/toMatchText.ts @@ -16,8 +16,8 @@ import colors from 'colors/safe'; -import { ExpectedTextValue } from '../../protocol/channels'; -import { isRegExp, isString } from '../../utils/utils'; +import { ExpectedTextValue } from 'playwright-core/src/protocol/channels'; +import { isRegExp, isString } from 'playwright-core/src/utils/utils'; import { currentTestInfo } from '../globals'; import type { Expect } from '../types'; import { expectType } from '../util'; diff --git a/src/test/profiler.ts b/packages/playwright-test/src/profiler.ts similarity index 100% rename from src/test/profiler.ts rename to packages/playwright-test/src/profiler.ts diff --git a/src/test/project.ts b/packages/playwright-test/src/project.ts similarity index 100% rename from src/test/project.ts rename to packages/playwright-test/src/project.ts diff --git a/src/test/reporters/.eslintrc.json b/packages/playwright-test/src/reporters/.eslintrc.json similarity index 100% rename from src/test/reporters/.eslintrc.json rename to packages/playwright-test/src/reporters/.eslintrc.json diff --git a/src/test/reporters/base.ts b/packages/playwright-test/src/reporters/base.ts similarity index 99% rename from src/test/reporters/base.ts rename to packages/playwright-test/src/reporters/base.ts index 093a57f1c4..7b57de5cb9 100644 --- a/src/test/reporters/base.ts +++ b/packages/playwright-test/src/reporters/base.ts @@ -20,7 +20,7 @@ import fs from 'fs'; import milliseconds from 'ms'; import path from 'path'; import StackUtils from 'stack-utils'; -import { FullConfig, TestCase, Suite, TestResult, TestError, Reporter, FullResult, TestStep } from '../../../types/testReporter'; +import { FullConfig, TestCase, Suite, TestResult, TestError, Reporter, FullResult, TestStep } from 'playwright-core/types/testReporter'; const stackUtils = new StackUtils(); diff --git a/src/test/reporters/dot.ts b/packages/playwright-test/src/reporters/dot.ts similarity index 95% rename from src/test/reporters/dot.ts rename to packages/playwright-test/src/reporters/dot.ts index 1105423313..896cf77d39 100644 --- a/src/test/reporters/dot.ts +++ b/packages/playwright-test/src/reporters/dot.ts @@ -16,7 +16,7 @@ import colors from 'colors/safe'; import { BaseReporter } from './base'; -import { FullResult, TestCase, TestResult } from '../../../types/testReporter'; +import { FullResult, TestCase, TestResult } from 'playwright-core/types/testReporter'; class DotReporter extends BaseReporter { private _counter = 0; diff --git a/src/test/reporters/empty.ts b/packages/playwright-test/src/reporters/empty.ts similarity index 91% rename from src/test/reporters/empty.ts rename to packages/playwright-test/src/reporters/empty.ts index 7dc691080f..0bcec667ac 100644 --- a/src/test/reporters/empty.ts +++ b/packages/playwright-test/src/reporters/empty.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Reporter } from '../../../types/testReporter'; +import { Reporter } from 'playwright-core/types/testReporter'; class EmptyReporter implements Reporter { } diff --git a/src/test/reporters/github.ts b/packages/playwright-test/src/reporters/github.ts similarity index 97% rename from src/test/reporters/github.ts rename to packages/playwright-test/src/reporters/github.ts index b345fd2f59..e59067daed 100644 --- a/src/test/reporters/github.ts +++ b/packages/playwright-test/src/reporters/github.ts @@ -17,7 +17,7 @@ import milliseconds from 'ms'; import path from 'path'; import { BaseReporter, formatFailure } from './base'; -import { TestCase, FullResult } from '../../../types/testReporter'; +import { TestCase, FullResult } from 'playwright-core/types/testReporter'; type GitHubLogType = 'debug' | 'notice' | 'warning' | 'error'; diff --git a/src/test/reporters/html.ts b/packages/playwright-test/src/reporters/html.ts similarity index 95% rename from src/test/reporters/html.ts rename to packages/playwright-test/src/reporters/html.ts index cd997a1fc9..6d714c5f7d 100644 --- a/src/test/reporters/html.ts +++ b/packages/playwright-test/src/reporters/html.ts @@ -18,10 +18,10 @@ import colors from 'colors/safe'; import fs from 'fs'; import open from 'open'; import path from 'path'; -import { FullConfig, Suite } from '../../../types/testReporter'; -import { HttpServer } from '../../utils/httpServer'; -import { calculateSha1, removeFolders } from '../../utils/utils'; -import { toPosixPath } from '../reporters/json'; +import { FullConfig, Suite } from 'playwright-core/types/testReporter'; +import { HttpServer } from 'playwright-core/src/utils/httpServer'; +import { calculateSha1, removeFolders } from 'playwright-core/src/utils/utils'; +import { toPosixPath } from './json'; import RawReporter, { JsonReport, JsonSuite, JsonTestCase, JsonTestResult, JsonTestStep, JsonAttachment } from './raw'; export type Stats = { @@ -149,7 +149,7 @@ class HtmlBuilder { this._reportFolder = path.resolve(process.cwd(), outputDir); this._dataFolder = path.join(this._reportFolder, 'data'); fs.mkdirSync(this._dataFolder, { recursive: true }); - const appFolder = path.join(__dirname, '..', '..', 'web', 'htmlReport'); + const appFolder = path.join(require.resolve('playwright-core'), '..', 'lib', 'web', 'htmlReport'); for (const file of fs.readdirSync(appFolder)) fs.copyFileSync(path.join(appFolder, file), path.join(this._reportFolder, file)); diff --git a/src/test/reporters/json.ts b/packages/playwright-test/src/reporters/json.ts similarity index 98% rename from src/test/reporters/json.ts rename to packages/playwright-test/src/reporters/json.ts index 69baddbdc9..b321719f17 100644 --- a/src/test/reporters/json.ts +++ b/packages/playwright-test/src/reporters/json.ts @@ -16,7 +16,7 @@ import fs from 'fs'; import path from 'path'; -import { FullConfig, TestCase, Suite, TestResult, TestError, TestStep, FullResult, TestStatus, Location, Reporter } from '../../../types/testReporter'; +import { FullConfig, TestCase, Suite, TestResult, TestError, TestStep, FullResult, TestStatus, Location, Reporter } from 'playwright-core/types/testReporter'; import { PositionInFile, prepareErrorStack } from './base'; export interface JSONReport { diff --git a/src/test/reporters/junit.ts b/packages/playwright-test/src/reporters/junit.ts similarity index 99% rename from src/test/reporters/junit.ts rename to packages/playwright-test/src/reporters/junit.ts index d4e93b317b..d995d3fadf 100644 --- a/src/test/reporters/junit.ts +++ b/packages/playwright-test/src/reporters/junit.ts @@ -16,7 +16,7 @@ import fs from 'fs'; import path from 'path'; -import { FullConfig, FullResult, Reporter, Suite, TestCase } from '../../../types/testReporter'; +import { FullConfig, FullResult, Reporter, Suite, TestCase } from 'playwright-core/types/testReporter'; import { monotonicTime } from '../util'; import { formatFailure, formatTestTitle, stripAnsiEscapes } from './base'; diff --git a/src/test/reporters/line.ts b/packages/playwright-test/src/reporters/line.ts similarity index 98% rename from src/test/reporters/line.ts rename to packages/playwright-test/src/reporters/line.ts index cf442c6c8a..77420e7a46 100644 --- a/src/test/reporters/line.ts +++ b/packages/playwright-test/src/reporters/line.ts @@ -16,7 +16,7 @@ import colors from 'colors/safe'; import { BaseReporter, formatFailure, formatTestTitle } from './base'; -import { FullConfig, TestCase, Suite, TestResult, FullResult } from '../../../types/testReporter'; +import { FullConfig, TestCase, Suite, TestResult, FullResult } from 'playwright-core/types/testReporter'; class LineReporter extends BaseReporter { private _total = 0; diff --git a/src/test/reporters/list.ts b/packages/playwright-test/src/reporters/list.ts similarity index 99% rename from src/test/reporters/list.ts rename to packages/playwright-test/src/reporters/list.ts index 83f2122df1..39b2b41969 100644 --- a/src/test/reporters/list.ts +++ b/packages/playwright-test/src/reporters/list.ts @@ -18,7 +18,7 @@ import colors from 'colors/safe'; import milliseconds from 'ms'; import { BaseReporter, formatTestTitle } from './base'; -import { FullConfig, FullResult, Suite, TestCase, TestResult, TestStep } from '../../../types/testReporter'; +import { FullConfig, FullResult, Suite, TestCase, TestResult, TestStep } from 'playwright-core/types/testReporter'; // Allow it in the Visual Studio Code Terminal and the new Windows Terminal const DOES_NOT_SUPPORT_UTF8_IN_TERMINAL = process.platform === 'win32' && process.env.TERM_PROGRAM !== 'vscode' && !process.env.WT_SESSION; diff --git a/src/test/reporters/multiplexer.ts b/packages/playwright-test/src/reporters/multiplexer.ts similarity index 96% rename from src/test/reporters/multiplexer.ts rename to packages/playwright-test/src/reporters/multiplexer.ts index 1af69a1b71..f996d8d34b 100644 --- a/src/test/reporters/multiplexer.ts +++ b/packages/playwright-test/src/reporters/multiplexer.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { FullConfig, Suite, TestCase, TestError, TestResult, Reporter, FullResult, TestStep } from '../../../types/testReporter'; +import { FullConfig, Suite, TestCase, TestError, TestResult, Reporter, FullResult, TestStep } from 'playwright-core/types/testReporter'; export class Multiplexer implements Reporter { private _reporters: Reporter[]; diff --git a/src/test/reporters/raw.ts b/packages/playwright-test/src/reporters/raw.ts similarity index 97% rename from src/test/reporters/raw.ts rename to packages/playwright-test/src/reporters/raw.ts index ae306b1a5c..9eb8dc6b11 100644 --- a/src/test/reporters/raw.ts +++ b/packages/playwright-test/src/reporters/raw.ts @@ -16,9 +16,9 @@ import fs from 'fs'; import path from 'path'; -import { FullProject } from '../../../types/test'; -import { FullConfig, Location, Suite, TestCase, TestResult, TestStatus, TestStep } from '../../../types/testReporter'; -import { assert, calculateSha1 } from '../../utils/utils'; +import { FullProject } from 'playwright-core/types/test'; +import { FullConfig, Location, Suite, TestCase, TestResult, TestStatus, TestStep } from 'playwright-core/types/testReporter'; +import { assert, calculateSha1 } from 'playwright-core/src/utils/utils'; import { sanitizeForFilePath } from '../util'; import { formatResultFailure } from './base'; import { serializePatterns } from './json'; diff --git a/src/test/runner.ts b/packages/playwright-test/src/runner.ts similarity index 99% rename from src/test/runner.ts rename to packages/playwright-test/src/runner.ts index e29c80572f..dec52fdfb5 100644 --- a/src/test/runner.ts +++ b/packages/playwright-test/src/runner.ts @@ -24,7 +24,7 @@ import { Dispatcher, TestGroup } from './dispatcher'; import { createFileMatcher, createTitleMatcher, FilePatternFilter, monotonicTime } from './util'; import { TestCase, Suite } from './test'; import { Loader } from './loader'; -import { Reporter } from '../../types/testReporter'; +import { Reporter } from 'playwright-core/types/testReporter'; import { Multiplexer } from './reporters/multiplexer'; import DotReporter from './reporters/dot'; import GitHubReporter from './reporters/github'; @@ -37,7 +37,7 @@ import { ProjectImpl } from './project'; import { Minimatch } from 'minimatch'; import { FullConfig } from './types'; import { WebServer } from './webServer'; -import { raceAgainstDeadline } from '../utils/async'; +import { raceAgainstDeadline } from 'playwright-core/src/utils/async'; const removeFolderAsync = promisify(rimraf); const readDirAsync = promisify(fs.readdir); diff --git a/src/test/test.ts b/packages/playwright-test/src/test.ts similarity index 97% rename from src/test/test.ts rename to packages/playwright-test/src/test.ts index 01a04ae8fe..4f72a8d9d9 100644 --- a/src/test/test.ts +++ b/packages/playwright-test/src/test.ts @@ -15,10 +15,10 @@ */ import type { FixturePool } from './fixtures'; -import * as reporterTypes from '../../types/testReporter'; +import * as reporterTypes from 'playwright-core/types/testReporter'; import type { TestTypeImpl } from './testType'; import { Annotations, FixturesWithLocation, Location } from './types'; -import { FullProject } from '../../types/test'; +import { FullProject } from 'playwright-core/types/test'; class Base { title: string; diff --git a/src/test/testType.ts b/packages/playwright-test/src/testType.ts similarity index 100% rename from src/test/testType.ts rename to packages/playwright-test/src/testType.ts diff --git a/src/test/transform.ts b/packages/playwright-test/src/transform.ts similarity index 100% rename from src/test/transform.ts rename to packages/playwright-test/src/transform.ts diff --git a/src/test/types.ts b/packages/playwright-test/src/types.ts similarity index 81% rename from src/test/types.ts rename to packages/playwright-test/src/types.ts index 480a0c957a..ed7ffd7d1e 100644 --- a/src/test/types.ts +++ b/packages/playwright-test/src/types.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import type { Fixtures, TestError, TestInfo } from '../../types/test'; -import type { Location } from '../../types/testReporter'; -export * from '../../types/test'; -export { Location } from '../../types/testReporter'; +import type { Fixtures, TestError, TestInfo } from 'playwright-core/types/test'; +import type { Location } from 'playwright-core/types/testReporter'; +export * from 'playwright-core/types/test'; +export { Location } from 'playwright-core/types/testReporter'; export type FixturesWithLocation = { fixtures: Fixtures; diff --git a/src/test/util.ts b/packages/playwright-test/src/util.ts similarity index 98% rename from src/test/util.ts rename to packages/playwright-test/src/util.ts index a7c84ebdfc..d2638db60b 100644 --- a/src/test/util.ts +++ b/packages/playwright-test/src/util.ts @@ -20,7 +20,7 @@ import url from 'url'; import type { TestError, Location } from './types'; import { default as minimatch } from 'minimatch'; import debug from 'debug'; -import { isRegExp } from '../utils/utils'; +import { isRegExp } from 'playwright-core/src/utils/utils'; export function serializeError(error: Error | any): TestError { if (error instanceof Error) { diff --git a/src/test/webServer.ts b/packages/playwright-test/src/webServer.ts similarity index 95% rename from src/test/webServer.ts rename to packages/playwright-test/src/webServer.ts index b02d3586b6..7d6fa78565 100644 --- a/src/test/webServer.ts +++ b/packages/playwright-test/src/webServer.ts @@ -18,9 +18,9 @@ import net from 'net'; import os from 'os'; import stream from 'stream'; import { monotonicTime } from './util'; -import { raceAgainstDeadline } from '../utils/async'; -import { WebServerConfig } from '../../types/test'; -import { launchProcess } from '../utils/processLauncher'; +import { raceAgainstDeadline } from 'playwright-core/src/utils/async'; +import { WebServerConfig } from 'playwright-core/types/test'; +import { launchProcess } from 'playwright-core/src/utils/processLauncher'; const DEFAULT_ENVIRONMENT_VARIABLES = { 'BROWSER': 'none', // Disable that create-react-app will open the page in the browser diff --git a/src/test/worker.ts b/packages/playwright-test/src/worker.ts similarity index 100% rename from src/test/worker.ts rename to packages/playwright-test/src/worker.ts diff --git a/src/test/workerRunner.ts b/packages/playwright-test/src/workerRunner.ts similarity index 99% rename from src/test/workerRunner.ts rename to packages/playwright-test/src/workerRunner.ts index 6555c449c8..1fadc58af3 100644 --- a/src/test/workerRunner.ts +++ b/packages/playwright-test/src/workerRunner.ts @@ -28,7 +28,7 @@ import { Modifier, Suite, TestCase } from './test'; import { Annotations, TestError, TestInfo, TestInfoImpl, TestStepInternal, WorkerInfo } from './types'; import { ProjectImpl } from './project'; import { FixturePool, FixtureRunner } from './fixtures'; -import { DeadlineRunner, raceAgainstDeadline } from '../utils/async'; +import { DeadlineRunner, raceAgainstDeadline } from 'playwright-core/src/utils/async'; const removeFolderAsync = util.promisify(rimraf); diff --git a/packages/playwright-webkit/README.md b/packages/playwright-webkit/README.md deleted file mode 100644 index 1b7b9ee2a2..0000000000 --- a/packages/playwright-webkit/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# playwright-webkit -This package contains the [WebKit](https://www.webkit.org/) flavor of [Playwright](http://github.com/microsoft/playwright). diff --git a/packages/playwright-webkit/index.d.ts b/packages/playwright-webkit/index.d.ts new file mode 100644 index 0000000000..e2add353db --- /dev/null +++ b/packages/playwright-webkit/index.d.ts @@ -0,0 +1,17 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from 'playwright-core'; diff --git a/packages/playwright-webkit/index.js b/packages/playwright-webkit/index.js new file mode 100644 index 0000000000..e263df6ab1 --- /dev/null +++ b/packages/playwright-webkit/index.js @@ -0,0 +1,17 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports = require('playwright-core'); diff --git a/packages/playwright-webkit/index.mjs b/packages/playwright-webkit/index.mjs new file mode 100644 index 0000000000..c736e9d13a --- /dev/null +++ b/packages/playwright-webkit/index.mjs @@ -0,0 +1,18 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from 'playwright-core'; +import playwright from 'playwright-core'; +export default playwright; diff --git a/packages/playwright-webkit/install.js b/packages/playwright-webkit/install.js new file mode 100644 index 0000000000..5340ee1776 --- /dev/null +++ b/packages/playwright-webkit/install.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { installBrowsersForNpmInstall } = require('playwright-core/lib/utils/registry'); + +installBrowsersForNpmInstall(['webkit']); diff --git a/packages/playwright-webkit/package.json b/packages/playwright-webkit/package.json new file mode 100644 index 0000000000..7a36c37dd6 --- /dev/null +++ b/packages/playwright-webkit/package.json @@ -0,0 +1,27 @@ +{ + "name": "playwright-webkit", + "version": "1.16.0-next", + "description": "A high-level API to automate web browsers", + "repository": "github:Microsoft/playwright", + "homepage": "https://playwright.dev", + "engines": { + "node": ">=12" + }, + "author": { + "name": "Microsoft Corporation" + }, + "license": "Apache-2.0", + "exports": { + ".": { + "import": "./index.mjs", + "require": "./index.js" + }, + "./": "./" + }, + "scripts": { + "install": "node install.js" + }, + "dependencies": { + "playwright-core": "=1.16.0-next" + } +} diff --git a/packages/playwright/index.d.ts b/packages/playwright/index.d.ts new file mode 100644 index 0000000000..e2add353db --- /dev/null +++ b/packages/playwright/index.d.ts @@ -0,0 +1,17 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from 'playwright-core'; diff --git a/packages/playwright/index.js b/packages/playwright/index.js new file mode 100644 index 0000000000..e263df6ab1 --- /dev/null +++ b/packages/playwright/index.js @@ -0,0 +1,17 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports = require('playwright-core'); diff --git a/packages/playwright/index.mjs b/packages/playwright/index.mjs new file mode 100644 index 0000000000..c736e9d13a --- /dev/null +++ b/packages/playwright/index.mjs @@ -0,0 +1,18 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from 'playwright-core'; +import playwright from 'playwright-core'; +export default playwright; diff --git a/packages/common/install.js b/packages/playwright/install.js similarity index 87% rename from packages/common/install.js rename to packages/playwright/install.js index 8fd9adb039..eb7b13a93d 100644 --- a/packages/common/install.js +++ b/packages/playwright/install.js @@ -14,6 +14,6 @@ * limitations under the License. */ -const { installDefaultBrowsersForNpmInstall } = require('./lib/utils/registry'); +const { installDefaultBrowsersForNpmInstall } = require('playwright-core/lib/utils/registry'); installDefaultBrowsersForNpmInstall(); diff --git a/packages/playwright/package.json b/packages/playwright/package.json new file mode 100644 index 0000000000..d89e7bb12e --- /dev/null +++ b/packages/playwright/package.json @@ -0,0 +1,27 @@ +{ + "name": "playwright", + "version": "1.16.0-next", + "description": "A high-level API to automate web browsers", + "repository": "github:Microsoft/playwright", + "homepage": "https://playwright.dev", + "engines": { + "node": ">=12" + }, + "author": { + "name": "Microsoft Corporation" + }, + "license": "Apache-2.0", + "exports": { + ".": { + "import": "./index.mjs", + "require": "./index.js" + }, + "./": "./" + }, + "scripts": { + "install": "node install.js" + }, + "dependencies": { + "playwright-core": "=1.16.0-next" + } +} diff --git a/tests/android/androidTest.ts b/tests/android/androidTest.ts index 0aa4166c89..72171fa21c 100644 --- a/tests/android/androidTest.ts +++ b/tests/android/androidTest.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import type { AndroidDevice, BrowserContext } from '../../index'; +import type { AndroidDevice, BrowserContext } from 'playwright-core'; import { CommonWorkerFixtures, baseTest } from '../config/baseTest'; -import type { Fixtures } from '../config/test-runner'; +import type { Fixtures } from '@playwright/test'; import { PageTestFixtures } from '../page/pageTest'; -export { expect } from '../config/test-runner'; +export { expect } from '@playwright/test'; type AndroidWorkerFixtures = { androidDevice: AndroidDevice; diff --git a/tests/browsertype-connect.spec.ts b/tests/browsertype-connect.spec.ts index 70954cd66d..b11af6892f 100644 --- a/tests/browsertype-connect.spec.ts +++ b/tests/browsertype-connect.spec.ts @@ -18,7 +18,7 @@ import { playwrightTest as test, expect } from './config/browserTest'; import fs from 'fs'; import * as path from 'path'; -import { getUserAgent } from '../lib/utils/utils'; +import { getUserAgent } from 'playwright-core/lib/utils/utils'; import WebSocket from 'ws'; import { suppressCertificateWarning } from './config/utils'; diff --git a/tests/browsertype-launch-selenium.spec.ts b/tests/browsertype-launch-selenium.spec.ts index bbc1f7ec8c..c2c5560326 100644 --- a/tests/browsertype-launch-selenium.spec.ts +++ b/tests/browsertype-launch-selenium.spec.ts @@ -15,10 +15,10 @@ */ import { playwrightTest as test, expect } from './config/browserTest'; -import type { TestInfo } from '../types/test'; +import type { TestInfo } from 'playwright-core/types/test'; import path from 'path'; import fs from 'fs'; -import { start } from '../lib/outofprocess'; +import { start } from 'playwright-core/lib/outofprocess'; const chromeDriver = require('chromedriver').path; const brokenDriver = path.join(__dirname, 'assets', 'selenium-grid', 'broken-selenium-driver.js'); diff --git a/tests/chromium/chromium.spec.ts b/tests/chromium/chromium.spec.ts index 08887a6b63..38d3de592c 100644 --- a/tests/chromium/chromium.spec.ts +++ b/tests/chromium/chromium.spec.ts @@ -18,7 +18,7 @@ import { contextTest as test, expect } from '../config/browserTest'; import { playwrightTest } from '../config/browserTest'; import http from 'http'; -import { getUserAgent } from '../../lib/utils/utils'; +import { getUserAgent } from 'playwright-core/lib/utils/utils'; import { suppressCertificateWarning } from '../config/utils'; test('should create a worker from a service worker', async ({ page, server }) => { diff --git a/tests/component-parser.spec.ts b/tests/component-parser.spec.ts index 82b64240f5..a480140fdc 100644 --- a/tests/component-parser.spec.ts +++ b/tests/component-parser.spec.ts @@ -15,7 +15,7 @@ */ import { playwrightTest as it, expect } from './config/browserTest'; -import { parseComponentSelector, ParsedComponentSelector } from '../src/server/common/componentUtils'; +import { parseComponentSelector, ParsedComponentSelector } from 'playwright-core/lib/server/common/componentUtils'; const parse = parseComponentSelector; const serialize = (parsed: ParsedComponentSelector) => { diff --git a/tests/config/android.config.ts b/tests/config/android.config.ts index df8a766f39..00cffa0aeb 100644 --- a/tests/config/android.config.ts +++ b/tests/config/android.config.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import type { Config } from './test-runner'; +import type { Config } from '@playwright/test'; import * as path from 'path'; import { test as pageTest } from '../page/pageTest'; import { androidFixtures } from '../android/androidTest'; diff --git a/tests/config/baseTest.ts b/tests/config/baseTest.ts index b2bdf210f3..61219a2e47 100644 --- a/tests/config/baseTest.ts +++ b/tests/config/baseTest.ts @@ -15,15 +15,15 @@ */ import { TestServer } from '../../utils/testserver'; -import { Fixtures, _baseTest } from './test-runner'; +import { Fixtures, _baseTest } from '@playwright/test'; import * as path from 'path'; import * as fs from 'fs'; import socks from 'socksv5'; import { installCoverageHooks } from './coverage'; import * as childProcess from 'child_process'; -import { start } from '../../lib/outofprocess'; -import { PlaywrightClient } from '../../lib/remote/playwrightClient'; -import type { LaunchOptions } from '../../index'; +import { start } from 'playwright-core/lib/outofprocess'; +import { PlaywrightClient } from 'playwright-core/lib/remote/playwrightClient'; +import type { LaunchOptions } from 'playwright-core'; import { TestProxy } from './proxy'; import { commonFixtures, CommonFixtures } from './commonFixtures'; @@ -39,7 +39,7 @@ type BaseOptions = { }; type BaseFixtures = { platform: 'win32' | 'darwin' | 'linux'; - playwright: typeof import('../../index'); + playwright: typeof import('playwright-core'); toImpl: (rpcObject: any) => any; isWindows: boolean; isMac: boolean; @@ -60,12 +60,12 @@ class DriverMode { } class ServiceMode { - private _client: import('../../src/remote/playwrightClient').PlaywrightClient; + private _client: import('playwright-core/src/remote/playwrightClient').PlaywrightClient; private _serviceProcess: childProcess.ChildProcess; async setup(workerIndex: number) { const port = 10507 + workerIndex; - this._serviceProcess = childProcess.fork(path.join(__dirname, '..', '..', 'lib', 'cli', 'cli.js'), ['run-server', String(port)], { + this._serviceProcess = childProcess.fork(path.join(__dirname, '..', '..', 'packages', 'playwright-core', 'lib', 'cli', 'cli.js'), ['run-server', String(port)], { stdio: 'pipe' }); this._serviceProcess.stderr.pipe(process.stderr); @@ -95,7 +95,7 @@ class ServiceMode { class DefaultMode { async setup(workerIndex: number) { - return require('../../index'); + return require('playwright-core'); } async teardown() { @@ -116,7 +116,7 @@ const baseFixtures: Fixtures<{}, BaseOptions & BaseFixtures> = { service: new ServiceMode(), driver: new DriverMode(), }[mode]; - require('../../lib/utils/utils').setUnderTest(); + require('playwright-core/lib/utils/utils').setUnderTest(); const playwright = await modeImpl.setup(workerInfo.workerIndex); await run(playwright); await modeImpl.teardown(); diff --git a/tests/config/browserTest.ts b/tests/config/browserTest.ts index 59f6da1e44..0cbf684963 100644 --- a/tests/config/browserTest.ts +++ b/tests/config/browserTest.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import type { Fixtures } from './test-runner'; -import type { Browser, BrowserContext, BrowserContextOptions, BrowserType, LaunchOptions, Page } from '../../index'; -import { removeFolders } from '../../lib/utils/utils'; -import { ReuseBrowserContextStorage } from '../../lib/test/index'; +import type { Fixtures } from '@playwright/test'; +import type { Browser, BrowserContext, BrowserContextOptions, BrowserType, LaunchOptions, Page } from 'playwright-core'; +import { removeFolders } from 'playwright-core/lib/utils/utils'; +import { ReuseBrowserContextStorage } from '@playwright/test/src/index'; import * as path from 'path'; import * as fs from 'fs'; import * as os from 'os'; @@ -207,4 +207,4 @@ export const playwrightTest = test; export const browserTest = test; export const contextTest = test; -export { expect } from './test-runner'; +export { expect } from '@playwright/test'; diff --git a/tests/config/commonFixtures.ts b/tests/config/commonFixtures.ts index 46fd2e22c4..519d08511d 100644 --- a/tests/config/commonFixtures.ts +++ b/tests/config/commonFixtures.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import type { Fixtures } from './test-runner'; +import type { Fixtures } from '@playwright/test'; import { spawn, ChildProcess, execSync } from 'child_process'; import net from 'net'; diff --git a/tests/config/coverage.js b/tests/config/coverage.js index 48c3965da7..14742dded8 100644 --- a/tests/config/coverage.js +++ b/tests/config/coverage.js @@ -63,8 +63,8 @@ function traceAPICoverage(apiCoverage, api, events) { * @param {string} browserName */ function apiForBrowser(browserName) { - const events = require('../../lib/client/events').Events; - const api = require('../../lib/client/api'); + const events = require('playwright-core/lib/client/events').Events; + const api = require('playwright-core/lib/client/api'); const otherBrowsers = ['chromium', 'webkit', 'firefox'].filter(name => name.toLowerCase() !== browserName.toLowerCase()); const filteredKeys = Object.keys(api).filter(apiName => { if (apiName.toLowerCase().startsWith('android')) diff --git a/tests/config/default.config.ts b/tests/config/default.config.ts index 918de01c64..0db460447d 100644 --- a/tests/config/default.config.ts +++ b/tests/config/default.config.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import type { Config } from './test-runner'; +import type { Config } from '@playwright/test'; import * as path from 'path'; import { PlaywrightOptions, playwrightFixtures } from './browserTest'; import { test as pageTest } from '../page/pageTest'; diff --git a/tests/config/electron.config.ts b/tests/config/electron.config.ts index f64a885e42..79d2c6abd0 100644 --- a/tests/config/electron.config.ts +++ b/tests/config/electron.config.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import type { Config } from './test-runner'; +import type { Config } from '@playwright/test'; import * as path from 'path'; import { electronFixtures } from '../electron/electronTest'; import { test as pageTest } from '../page/pageTest'; diff --git a/tests/config/remote-server-impl.js b/tests/config/remote-server-impl.js index 70a5ffaf72..65082e7e13 100644 --- a/tests/config/remote-server-impl.js +++ b/tests/config/remote-server-impl.js @@ -1,15 +1,15 @@ const cluster = require('cluster'); async function start() { - const { playwrightPath, browserTypeName, launchOptions, stallOnClose, disconnectOnSIGHUP } = JSON.parse(process.argv[2]); + const { browserTypeName, launchOptions, stallOnClose, disconnectOnSIGHUP } = JSON.parse(process.argv[2]); if (stallOnClose) { launchOptions.__testHookGracefullyClose = () => { console.log(`(stalled=>true)`); - return new Promise(() => {}); + return new Promise(() => { }); }; } - const playwright = require(require('path').join(playwrightPath, 'index')); + const playwright = require('playwright-core'); if (disconnectOnSIGHUP) launchOptions.handleSIGHUP = false; diff --git a/tests/config/remoteServer.ts b/tests/config/remoteServer.ts index cc2f677f39..7773e187dd 100644 --- a/tests/config/remoteServer.ts +++ b/tests/config/remoteServer.ts @@ -15,11 +15,9 @@ */ import path from 'path'; -import type { BrowserType, Browser, LaunchOptions } from '../../index'; +import type { BrowserType, Browser, LaunchOptions } from 'playwright-core'; import { CommonFixtures, TestChildProcess } from './commonFixtures'; -const playwrightPath = path.join(__dirname, '..', '..'); - export type RemoteServerOptions = { stallOnClose?: boolean; disconnectOnSIGHUP?: boolean; @@ -54,7 +52,6 @@ export class RemoteServer { logger: undefined, }; const options = { - playwrightPath, browserTypeName: browserType.name(), launchOptions, ...remoteServerOptions, diff --git a/tests/config/test-runner.d.ts b/tests/config/test-runner.d.ts index a71f8c7e54..7dc4a48bc9 100644 --- a/tests/config/test-runner.d.ts +++ b/tests/config/test-runner.d.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export * from '../../types/test'; +export * from 'playwright-core/types/test'; diff --git a/tests/config/test-runner.js b/tests/config/test-runner.js index 6c0035a8cf..1c932e7b82 100644 --- a/tests/config/test-runner.js +++ b/tests/config/test-runner.js @@ -14,4 +14,4 @@ * limitations under the License. */ -module.exports = require('../../lib/test/index'); +module.exports = require('@playwright/test'); diff --git a/tests/config/utils.ts b/tests/config/utils.ts index 89d0315895..d98e91e1b9 100644 --- a/tests/config/utils.ts +++ b/tests/config/utils.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { expect } from './test-runner'; -import type { Frame, Page } from '../../index'; +import { expect } from '@playwright/test'; +import type { Frame, Page } from 'playwright-core'; export async function attachFrame(page: Page, frameId: string, url: string): Promise { const handle = await page.evaluateHandle(async ({ frameId, url }) => { diff --git a/tests/css-parser.spec.ts b/tests/css-parser.spec.ts index 771aa1e1e5..c401559dc4 100644 --- a/tests/css-parser.spec.ts +++ b/tests/css-parser.spec.ts @@ -15,7 +15,7 @@ */ import { playwrightTest as it, expect } from './config/browserTest'; -import { parseCSS, serializeSelector as serialize } from '../src/server/common/cssParser'; +import { parseCSS, serializeSelector as serialize } from 'playwright-core/lib/server/common/cssParser'; const parse = (selector: string) => { return parseCSS(selector, new Set(['text', 'not', 'has', 'react', 'scope', 'right-of', 'is'])).selector; diff --git a/tests/download.spec.ts b/tests/download.spec.ts index 959ed52fa6..b4272b4903 100644 --- a/tests/download.spec.ts +++ b/tests/download.spec.ts @@ -18,7 +18,7 @@ import { browserTest as it, expect } from './config/browserTest'; import fs from 'fs'; import path from 'path'; import crypto from 'crypto'; -import { Download } from '..'; +import type { Download } from 'playwright-core'; it.describe('download event', () => { it.beforeEach(async ({ server }) => { diff --git a/tests/electron/electronTest.ts b/tests/electron/electronTest.ts index 151316a10d..d49e57e2aa 100644 --- a/tests/electron/electronTest.ts +++ b/tests/electron/electronTest.ts @@ -15,11 +15,11 @@ */ import { baseTest, CommonWorkerFixtures } from '../config/baseTest'; -import { ElectronApplication, Page } from '../../index'; -import type { Fixtures } from '../config/test-runner'; +import { ElectronApplication, Page } from 'playwright-core'; +import type { Fixtures } from '@playwright/test'; import * as path from 'path'; import { PageTestFixtures } from '../page/pageTest'; -export { expect } from '../config/test-runner'; +export { expect } from '@playwright/test'; type ElectronTestFixtures = PageTestFixtures & { electronApp: ElectronApplication; diff --git a/tests/global-fetch-cookie.spec.ts b/tests/global-fetch-cookie.spec.ts index 24167e5563..6947125481 100644 --- a/tests/global-fetch-cookie.spec.ts +++ b/tests/global-fetch-cookie.spec.ts @@ -16,7 +16,7 @@ import fs from 'fs'; import http from 'http'; -import { ApiRequestContext } from '../index'; +import type { ApiRequestContext } from 'playwright-core'; import { expect, playwrightTest } from './config/browserTest'; export type GlobalFetchFixtures = { diff --git a/tests/global-fetch.spec.ts b/tests/global-fetch.spec.ts index 43b2e503cb..f6b6ec89af 100644 --- a/tests/global-fetch.spec.ts +++ b/tests/global-fetch.spec.ts @@ -15,7 +15,7 @@ */ import http from 'http'; -import { getPlaywrightVersion } from '../lib/utils/utils'; +import { getPlaywrightVersion } from 'playwright-core/lib/utils/utils'; import { expect, playwrightTest as it } from './config/browserTest'; it.skip(({ mode }) => mode !== 'default'); diff --git a/tests/har.spec.ts b/tests/har.spec.ts index fdff14f50c..fcf2efb8e4 100644 --- a/tests/har.spec.ts +++ b/tests/har.spec.ts @@ -19,9 +19,9 @@ import { browserTest as it, expect } from './config/browserTest'; import * as path from 'path'; import fs from 'fs'; import http2 from 'http2'; -import type { BrowserContext, BrowserContextOptions } from '../index'; +import type { BrowserContext, BrowserContextOptions } from 'playwright-core'; import type { AddressInfo } from 'net'; -import type { Log } from '../src/server/supplements/har/har'; +import type { Log } from 'playwright-core/src/server/supplements/har/har'; async function pageWithHar(contextFactory: (options?: BrowserContextOptions) => Promise, testInfo: any, outputPath: string = 'test.har') { const harPath = testInfo.outputPath(outputPath); diff --git a/tests/inspector/inspectorTest.ts b/tests/inspector/inspectorTest.ts index fdf1498c59..558f2a3090 100644 --- a/tests/inspector/inspectorTest.ts +++ b/tests/inspector/inspectorTest.ts @@ -15,11 +15,11 @@ */ import { contextTest } from '../config/browserTest'; -import type { Page } from '../../index'; +import type { Page } from 'playwright-core'; import * as path from 'path'; -import type { Source } from '../../src/server/supplements/recorder/recorderTypes'; +import type { Source } from 'playwright-core/src/server/supplements/recorder/recorderTypes'; import { CommonFixtures, TestChildProcess } from '../config/commonFixtures'; -export { expect } from '../config/test-runner'; +export { expect } from '@playwright/test'; type CLITestArgs = { recorderPageGetter: () => Promise; @@ -28,7 +28,7 @@ type CLITestArgs = { runCLI: (args: string[]) => CLIMock; }; -const playwrightToAutomateInspector = require('../../lib/inProcessFactory').createInProcessPlaywright(); +const playwrightToAutomateInspector = require('playwright-core/lib/inProcessFactory').createInProcessPlaywright(); export const test = contextTest.extend({ recorderPageGetter: async ({ context, toImpl, mode }, run, testInfo) => { @@ -186,7 +186,7 @@ class CLIMock { constructor(childProcess: CommonFixtures['childProcess'], browserName: string, channel: string | undefined, headless: boolean | undefined, args: string[], executablePath: string | undefined) { const nodeArgs = [ 'node', - path.join(__dirname, '..', '..', 'lib', 'cli', 'cli.js'), + path.join(__dirname, '..', '..', 'packages', 'playwright-core', 'lib', 'cli', 'cli.js'), 'codegen', ...args, `--browser=${browserName}`, diff --git a/tests/inspector/pause.spec.ts b/tests/inspector/pause.spec.ts index 93e108d7d7..d6c949b03d 100644 --- a/tests/inspector/pause.spec.ts +++ b/tests/inspector/pause.spec.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Page } from '../../index'; +import { Page } from 'playwright-core'; import { test as it, expect } from './inspectorTest'; diff --git a/tests/launcher.spec.ts b/tests/launcher.spec.ts index 24403e063b..622d53c788 100644 --- a/tests/launcher.spec.ts +++ b/tests/launcher.spec.ts @@ -18,12 +18,12 @@ import { playwrightTest as it, expect } from './config/browserTest'; it('should require top-level Errors', async ({}) => { - const Errors = require('../lib/utils/errors.js'); + const Errors = require('playwright-core/lib/utils/errors'); expect(String(Errors.TimeoutError)).toContain('TimeoutError'); }); it('should require top-level DeviceDescriptors', async ({ playwright }) => { - const Devices = require('../lib/server/deviceDescriptors.js'); + const Devices = require('playwright-core/lib/server/deviceDescriptors'); expect(Devices['iPhone 6']).toBeTruthy(); expect(Devices['iPhone 6']).toEqual(playwright.devices['iPhone 6']); expect(playwright.devices['iPhone 6'].defaultBrowserType).toBe('webkit'); diff --git a/tests/page/frame-hierarchy.spec.ts b/tests/page/frame-hierarchy.spec.ts index 195f05b704..1e4926af79 100644 --- a/tests/page/frame-hierarchy.spec.ts +++ b/tests/page/frame-hierarchy.spec.ts @@ -17,7 +17,7 @@ import { test as it, expect } from './pageTest'; import { attachFrame, detachFrame } from '../config/utils'; -import type { Frame } from '../../index'; +import type { Frame } from 'playwright-core'; function dumpFrames(frame: Frame, indentation: string = ''): string[] { let description = frame.url().replace(/:\d+\//, ':/'); diff --git a/tests/page/interception.spec.ts b/tests/page/interception.spec.ts index 93e638ecb6..a15c103497 100644 --- a/tests/page/interception.spec.ts +++ b/tests/page/interception.spec.ts @@ -16,7 +16,7 @@ */ import { test as it, expect } from './pageTest'; -import { globToRegex } from '../../lib/client/clientHelper'; +import { globToRegex } from 'playwright-core/lib/client/clientHelper'; import vm from 'vm'; it('should work with navigation', async ({ page, server }) => { diff --git a/tests/page/jshandle-properties.spec.ts b/tests/page/jshandle-properties.spec.ts index 7e24f553a7..7c26e83aa0 100644 --- a/tests/page/jshandle-properties.spec.ts +++ b/tests/page/jshandle-properties.spec.ts @@ -16,7 +16,7 @@ */ import { test as it, expect } from './pageTest'; -import type { ElementHandle } from '../../index'; +import type { ElementHandle } from 'playwright-core'; it('should work', async ({ page }) => { const aHandle = await page.evaluateHandle(() => ({ diff --git a/tests/page/page-drag.spec.ts b/tests/page/page-drag.spec.ts index 593e3b5864..e3a6a98987 100644 --- a/tests/page/page-drag.spec.ts +++ b/tests/page/page-drag.spec.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import type { ElementHandle, Route } from '../../index'; +import type { ElementHandle, Route } from 'playwright-core'; import { test as it, expect } from './pageTest'; import { attachFrame } from '../config/utils'; diff --git a/tests/page/page-expose-function.spec.ts b/tests/page/page-expose-function.spec.ts index 3c9b1aabc3..2dbf0dc662 100644 --- a/tests/page/page-expose-function.spec.ts +++ b/tests/page/page-expose-function.spec.ts @@ -16,7 +16,7 @@ */ import { test as it, expect } from './pageTest'; -import type { ElementHandle } from '../../index'; +import type { ElementHandle } from 'playwright-core'; it('exposeBinding should work', async ({ page }) => { let bindingSource; diff --git a/tests/page/page-network-idle.spec.ts b/tests/page/page-network-idle.spec.ts index 618ad92a00..e711cd5f6e 100644 --- a/tests/page/page-network-idle.spec.ts +++ b/tests/page/page-network-idle.spec.ts @@ -16,7 +16,7 @@ */ import { test as it, expect } from './pageTest'; -import type { Frame } from '../../index'; +import type { Frame } from 'playwright-core'; import { TestServer } from '../../utils/testserver'; it('should navigate to empty page with networkidle', async ({ page, server }) => { diff --git a/tests/page/page-request-intercept.spec.ts b/tests/page/page-request-intercept.spec.ts index 702ba5a0ef..52442d101b 100644 --- a/tests/page/page-request-intercept.spec.ts +++ b/tests/page/page-request-intercept.spec.ts @@ -17,7 +17,7 @@ import { fail } from 'assert'; import os from 'os'; -import type { Route, Response } from '../../index'; +import type { Route, Response } from 'playwright-core'; import { expect, test as it } from './pageTest'; it('should fulfill intercepted response', async ({ page, server, browserName }) => { diff --git a/tests/page/page-wait-for-load-state.spec.ts b/tests/page/page-wait-for-load-state.spec.ts index 9bd7862daf..4d631ae349 100644 --- a/tests/page/page-wait-for-load-state.spec.ts +++ b/tests/page/page-wait-for-load-state.spec.ts @@ -16,7 +16,7 @@ */ import { test as it, expect } from './pageTest'; -import type { Route } from '../../index'; +import type { Route } from 'playwright-core'; it('should pick up ongoing navigation', async ({ page, server }) => { let response = null; diff --git a/tests/page/page-wait-for-navigation.spec.ts b/tests/page/page-wait-for-navigation.spec.ts index b69b31e7fd..e09e15400e 100644 --- a/tests/page/page-wait-for-navigation.spec.ts +++ b/tests/page/page-wait-for-navigation.spec.ts @@ -16,7 +16,7 @@ */ import { test as it, expect } from './pageTest'; -import type { Frame } from '../../index'; +import type { Frame } from 'playwright-core'; import { expectedSSLError } from '../config/utils'; it('should work', async ({ page, server }) => { diff --git a/tests/page/pageTest.ts b/tests/page/pageTest.ts index 5e8f21ad79..6e265ac3de 100644 --- a/tests/page/pageTest.ts +++ b/tests/page/pageTest.ts @@ -15,8 +15,8 @@ */ import { baseTest } from '../config/baseTest'; -import type { Page } from '../../index'; -export { expect } from '../config/test-runner'; +import type { Page } from 'playwright-core'; +export { expect } from '@playwright/test'; // Page test does not guarantee an isolated context, just a new page (because Android). export type PageTestFixtures = { diff --git a/tests/page/wheel.spec.ts b/tests/page/wheel.spec.ts index 9e239917c2..12d59e99e9 100644 --- a/tests/page/wheel.spec.ts +++ b/tests/page/wheel.spec.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import type { Page } from '../../'; +import type { Page } from 'playwright-core'; import { test as it, expect } from './pageTest'; it.skip(({ isElectron, browserMajorVersion }) => { // Old Electron has flaky wheel events. diff --git a/tests/page/workers.spec.ts b/tests/page/workers.spec.ts index fbb1046e26..0b6c8870fc 100644 --- a/tests/page/workers.spec.ts +++ b/tests/page/workers.spec.ts @@ -17,7 +17,7 @@ import { test as it, expect } from './pageTest'; import { attachFrame } from '../config/utils'; -import type { ConsoleMessage } from '../../index'; +import type { ConsoleMessage } from 'playwright-core'; it('Page.workers', async function({ page, server }) { await Promise.all([ diff --git a/tests/playwright-test/basic.spec.ts b/tests/playwright-test/basic.spec.ts index dcab594d77..6d1ae12c22 100644 --- a/tests/playwright-test/basic.spec.ts +++ b/tests/playwright-test/basic.spec.ts @@ -15,7 +15,6 @@ */ import { test, expect, stripAscii } from './playwright-test-fixtures'; -import * as path from 'path'; test('should fail', async ({ runInlineTest }) => { const result = await runInlineTest({ @@ -241,7 +240,7 @@ test('should focus test from one project', async ({ runInlineTest }) => { test('should work with default export', async ({ runInlineTest }) => { const result = await runInlineTest({ 'file.spec.ts': ` - import t from ${JSON.stringify(path.join(__dirname, 'entry'))}; + import t from '@playwright/test'; t('passed', () => { t.expect(1 + 1).toBe(2); }); diff --git a/tests/playwright-test/entry/index.d.ts b/tests/playwright-test/entry/index.d.ts deleted file mode 100644 index 4b50fb5f5d..0000000000 --- a/tests/playwright-test/entry/index.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export * from '../../../types/test'; -export * from '../../../types/types'; -export { default } from '../../../types/test'; diff --git a/tests/playwright-test/entry/index.js b/tests/playwright-test/entry/index.js deleted file mode 100644 index fede33784a..0000000000 --- a/tests/playwright-test/entry/index.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const pwt = require('../../../lib/test/index'); -const playwright = require('../../../lib/inprocess'); -const combinedExports = { - ...playwright, - ...pwt, -}; -Object.defineProperty(combinedExports, '__esModule', { value: true }); -module.exports = combinedExports; diff --git a/tests/playwright-test/entry/index.mjs b/tests/playwright-test/entry/index.mjs deleted file mode 100644 index 8d90fcd9e4..0000000000 --- a/tests/playwright-test/entry/index.mjs +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import playwright from './index.js'; - -export const test = playwright.test; -export const expect = playwright.expect; -export default playwright.test; \ No newline at end of file diff --git a/tests/playwright-test/github-reporter.spec.ts b/tests/playwright-test/github-reporter.spec.ts index b1c7e88586..5682135ddc 100644 --- a/tests/playwright-test/github-reporter.spec.ts +++ b/tests/playwright-test/github-reporter.spec.ts @@ -15,7 +15,13 @@ */ import { test, expect, stripAscii } from './playwright-test-fixtures'; -import { relativeFilePath } from '../../src/test/util'; +import path from 'path'; + +function relativeFilePath(file: string): string { + if (!path.isAbsolute(file)) + return file; + return path.relative(process.cwd(), file); +} test('print GitHub annotations for success', async ({ runInlineTest }) => { const result = await runInlineTest({ @@ -59,7 +65,7 @@ test('print GitHub annotations for failed tests', async ({ runInlineTest }, test ` }, { retries: 3, reporter: 'github' }, { GITHUB_ACTION: 'true', GITHUB_WORKSPACE: process.cwd() }); const text = stripAscii(result.output); - const testPath = relativeFilePath(testInfo.outputPath('a.test.js')); + const testPath = relativeFilePath(testInfo.outputPath('a.test.js')); expect(text).toContain(`::error file=${testPath},title=a.test.js:6:7 › example,line=7,col=23:: 1) a.test.js:6:7 › example =======================================================================%0A%0A Retry #1`); expect(text).toContain(`::error file=${testPath},title=a.test.js:6:7 › example,line=7,col=23:: 1) a.test.js:6:7 › example =======================================================================%0A%0A Retry #2`); expect(text).toContain(`::error file=${testPath},title=a.test.js:6:7 › example,line=7,col=23:: 1) a.test.js:6:7 › example =======================================================================%0A%0A Retry #3`); diff --git a/tests/playwright-test/html-reporter.spec.ts b/tests/playwright-test/html-reporter.spec.ts index 1b289847fd..77d6af2d64 100644 --- a/tests/playwright-test/html-reporter.spec.ts +++ b/tests/playwright-test/html-reporter.spec.ts @@ -18,7 +18,7 @@ import fs from 'fs'; import path from 'path'; import { test, expect } from './playwright-test-fixtures'; -const kHTMLReporterPath = path.join(__dirname, '..', '..', 'lib', 'test', 'reporters', 'html.js'); +const kHTMLReporterPath = path.join(__dirname, '..', '..', 'packages', 'playwright-test', 'lib', 'reporters', 'html.js'); test('should generate report', async ({ runInlineTest }, testInfo) => { await runInlineTest({ diff --git a/tests/playwright-test/playwright-test-fixtures.ts b/tests/playwright-test/playwright-test-fixtures.ts index 3a607843a9..a7bb07a8e4 100644 --- a/tests/playwright-test/playwright-test-fixtures.ts +++ b/tests/playwright-test/playwright-test-fixtures.ts @@ -19,10 +19,9 @@ import { CommonFixtures, commonFixtures } from '../config/commonFixtures'; import * as fs from 'fs'; import * as path from 'path'; import * as os from 'os'; -import type { JSONReport, JSONReportSuite } from '../../src/test/reporters/json'; +import type { JSONReport, JSONReportSuite } from '@playwright/test/src/reporters/json'; import rimraf from 'rimraf'; import { promisify } from 'util'; -import * as url from 'url'; import { serverFixtures, ServerFixtures } from '../config/baseTest'; const removeFolderAsync = promisify(rimraf); @@ -50,15 +49,14 @@ type Env = { [key: string]: string | number | boolean | undefined }; async function writeFiles(testInfo: TestInfo, files: Files) { const baseDir = testInfo.outputPath(); - const internalPath = JSON.stringify(path.join(__dirname, 'entry')); const headerJS = ` - const pwt = require(${internalPath}); + const pwt = require('@playwright/test'); `; const headerTS = ` - import * as pwt from ${internalPath}; + import * as pwt from '@playwright/test'; `; const headerMJS = ` - import * as pwt from ${JSON.stringify(url.pathToFileURL(path.join(__dirname, 'entry', 'index.mjs')))}; + import * as pwt from '@playwright/test'; `; const hasConfig = Object.keys(files).some(name => name.includes('.config.')); @@ -102,7 +100,7 @@ async function runPlaywrightTest(childProcess: CommonFixtures['childProcess'], b } const outputDir = path.join(baseDir, 'test-results'); const reportFile = path.join(outputDir, 'report.json'); - const args = ['node', path.join(__dirname, '..', '..', 'lib', 'cli', 'cli.js'), 'test']; + const args = ['npx', 'playwright', 'test']; if (!options.usesCustomOutputDir) args.push('--output=' + outputDir); args.push( @@ -119,7 +117,6 @@ async function runPlaywrightTest(childProcess: CommonFixtures['childProcess'], b ...process.env, PLAYWRIGHT_JSON_OUTPUT_NAME: reportFile, PWTEST_CACHE_DIR: cacheDir, - PWTEST_CLI_ALLOW_TEST_COMMAND: '1', PWTEST_SKIP_TEST_OUTPUT: '1', ...env, }, diff --git a/tests/playwright-test/playwright.spec.ts b/tests/playwright-test/playwright.spec.ts index 31c1a13a95..da41d7d81c 100644 --- a/tests/playwright-test/playwright.spec.ts +++ b/tests/playwright-test/playwright.spec.ts @@ -18,7 +18,7 @@ import { test, expect, stripAscii } from './playwright-test-fixtures'; import fs from 'fs'; import path from 'path'; import { spawnSync } from 'child_process'; -import { registry } from '../../src/utils/registry'; +import { registry } from 'playwright-core/lib/utils/registry'; const ffmpeg = registry.findExecutable('ffmpeg')!.executablePath(); diff --git a/tests/playwright-test/raw-reporter.spec.ts b/tests/playwright-test/raw-reporter.spec.ts index 903eeafa2d..e6a492a48d 100644 --- a/tests/playwright-test/raw-reporter.spec.ts +++ b/tests/playwright-test/raw-reporter.spec.ts @@ -18,7 +18,7 @@ import fs from 'fs'; import path from 'path'; import { test, expect } from './playwright-test-fixtures'; -const kRawReporterPath = path.join(__dirname, '..', '..', 'lib', 'test', 'reporters', 'raw.js'); +const kRawReporterPath = path.join(__dirname, '..', '..', 'packages', 'playwright-test', 'lib', 'reporters', 'raw.js'); test('should generate raw report', async ({ runInlineTest }, testInfo) => { const result = await runInlineTest({ diff --git a/tests/port-forwarding-server.spec.ts b/tests/port-forwarding-server.spec.ts index dcd87cf79a..95bcff16ca 100644 --- a/tests/port-forwarding-server.spec.ts +++ b/tests/port-forwarding-server.spec.ts @@ -20,15 +20,15 @@ import path from 'path'; import net from 'net'; import { contextTest, expect } from './config/browserTest'; -import { PlaywrightClient } from '../lib/remote/playwrightClient'; -import type { Page } from '..'; +import { PlaywrightClient } from 'playwright-core/lib/remote/playwrightClient'; +import type { Page } from 'playwright-core'; class OutOfProcessPlaywrightServer { private _driverProcess: childProcess.ChildProcess; private _receivedPortPromise: Promise; constructor(port: number, proxyPort: number) { - this._driverProcess = childProcess.fork(path.join(__dirname, '..', 'lib', 'cli', 'cli.js'), ['run-server', port.toString()], { + this._driverProcess = childProcess.fork(path.join(__dirname, '..', 'packages', 'playwright-core', 'lib', 'cli', 'cli.js'), ['run-server', port.toString()], { stdio: 'pipe', detached: true, env: { diff --git a/tests/selector-generator.spec.ts b/tests/selector-generator.spec.ts index 56624ea28e..8f44da4277 100644 --- a/tests/selector-generator.spec.ts +++ b/tests/selector-generator.spec.ts @@ -15,7 +15,7 @@ */ import { contextTest as it, expect } from './config/browserTest'; -import type { Page, Frame } from '../index'; +import type { Page, Frame } from 'playwright-core'; async function generate(pageOrFrame: Page | Frame, target: string): Promise { return pageOrFrame.$eval(target, e => (window as any).playwright.selector(e)); diff --git a/tests/snapshotter.spec.ts b/tests/snapshotter.spec.ts index d726d464ce..42b393dfd5 100644 --- a/tests/snapshotter.spec.ts +++ b/tests/snapshotter.spec.ts @@ -15,10 +15,10 @@ */ import { contextTest, expect } from './config/browserTest'; -import { InMemorySnapshotter } from '../lib/server/snapshot/inMemorySnapshotter'; -import { HttpServer } from '../lib/utils/httpServer'; -import { SnapshotServer } from '../lib/server/snapshot/snapshotServer'; -import type { Frame } from '..'; +import { InMemorySnapshotter } from 'playwright-core/lib/server/snapshot/inMemorySnapshotter'; +import { HttpServer } from 'playwright-core/lib/utils/httpServer'; +import { SnapshotServer } from 'playwright-core/lib/server/snapshot/snapshotServer'; +import type { Frame } from 'playwright-core'; const it = contextTest.extend<{ snapshotPort: number, snapshotter: InMemorySnapshotter, showSnapshot: (snapshot: any) => Promise }>({ snapshotPort: async ({}, run, testInfo) => { diff --git a/tests/tap.spec.ts b/tests/tap.spec.ts index f6bc0925c9..a530d73890 100644 --- a/tests/tap.spec.ts +++ b/tests/tap.spec.ts @@ -15,7 +15,7 @@ */ import { contextTest as it, expect } from './config/browserTest'; -import { ElementHandle } from '../index'; +import { ElementHandle } from 'playwright-core'; import type { ServerResponse } from 'http'; it.use({ hasTouch: true }); diff --git a/tests/trace-viewer/trace-viewer.spec.ts b/tests/trace-viewer/trace-viewer.spec.ts index b84b81235e..eaf9674915 100644 --- a/tests/trace-viewer/trace-viewer.spec.ts +++ b/tests/trace-viewer/trace-viewer.spec.ts @@ -15,8 +15,8 @@ */ import path from 'path'; -import type { Browser, Locator, Page } from '../../index'; -import { showTraceViewer } from '../../lib/server/trace/viewer/traceViewer'; +import type { Browser, Locator, Page } from 'playwright-core'; +import { showTraceViewer } from 'playwright-core/lib/server/trace/viewer/traceViewer'; import { playwrightTest, expect } from '../config/browserTest'; class TraceViewerPage { diff --git a/tests/tracing.spec.ts b/tests/tracing.spec.ts index 7ed91ce2e3..d28be17205 100644 --- a/tests/tracing.spec.ts +++ b/tests/tracing.spec.ts @@ -15,7 +15,7 @@ */ import { expect, contextTest as test, browserTest } from './config/browserTest'; -import { ZipFileSystem } from '../lib/utils/vfs'; +import { ZipFileSystem } from 'playwright-core/lib/utils/vfs'; import jpeg from 'jpeg-js'; test.skip(({ trace }) => !!trace); diff --git a/tests/tsconfig.json b/tests/tsconfig.json index f189210d6d..47b0c03736 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -8,6 +8,7 @@ "strictNullChecks": false, "strictBindCallApply": true, "allowSyntheticDefaultImports": true, + "useUnknownInCatchVariables": false, }, "include": ["**/*.spec.js", "**/*.ts", "index.d.ts"], "exclude": ["playwright-test/"] diff --git a/tests/video.spec.ts b/tests/video.spec.ts index d290753de7..8e7896c035 100644 --- a/tests/video.spec.ts +++ b/tests/video.spec.ts @@ -19,7 +19,7 @@ import fs from 'fs'; import path from 'path'; import { spawnSync } from 'child_process'; import { PNG } from 'pngjs'; -import { registry } from '../src/utils/registry'; +import { registry } from 'playwright-core/lib/utils/registry'; const ffmpeg = registry.findExecutable('ffmpeg')!.executablePath(); diff --git a/tsconfig.json b/tsconfig.json index e052c9bc4d..551f8ad168 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,10 @@ "target": "ES2019", "module": "commonjs", "lib": ["esnext", "dom", "DOM.Iterable"], + "baseUrl": ".", + "paths": { + "*": ["./packages/*/"] + }, "esModuleInterop": true, "strict": true, "allowJs": true, @@ -13,6 +17,6 @@ "useUnknownInCatchVariables": false, }, "compileOnSave": true, - "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/server/deviceDescriptorsSource.json"], - "exclude": ["node_modules", "src/.eslintrc.js", "src/**/*webpack.config.js"] + "include": ["packages"], + "exclude": ["packages/*/lib"] } diff --git a/utils/build/build-playwright-driver.sh b/utils/build/build-playwright-driver.sh index d444261f89..890dbf8011 100755 --- a/utils/build/build-playwright-driver.sh +++ b/utils/build/build-playwright-driver.sh @@ -11,12 +11,12 @@ PACKAGE_VERSION=$(node -p "require('../../package.json').version") rm -rf ./output mkdir -p ./output -echo "Building playwright package" -../../packages/build_package.js playwright ./output/playwright.tgz +echo "Building playwright-core package" +node ../../utils/pack_package.js playwright-core ./output/playwright-core.tgz echo "Building api.json and protocol.yml" node ../../utils/doclint/generateApiJson.js > ./output/api.json -cp ../../src/protocol/protocol.yml ./output/ +cp ../../packages/playwright-core/src/protocol/protocol.yml ./output/ function build { NODE_DIR=$1 @@ -30,7 +30,7 @@ function build { cd ${SCRIPT_PATH} mkdir -p ./output/playwright-${SUFFIX} - tar -xzf ./output/playwright.tgz -C ./output/playwright-${SUFFIX}/ + tar -xzf ./output/playwright-core.tgz -C ./output/playwright-${SUFFIX}/ curl ${NODE_URL} -o ./output/${NODE_DIR}.${ARCHIVE} NPM_PATH="" diff --git a/utils/build/build.js b/utils/build/build.js index 8587b919df..3f5710a9a6 100644 --- a/utils/build/build.js +++ b/utils/build/build.js @@ -20,6 +20,7 @@ const child_process = require('child_process'); const path = require('path'); const chokidar = require('chokidar'); const fs = require('fs'); +const { packages } = require('../list_packages'); /** * @typedef {{ @@ -55,21 +56,23 @@ function runWatch() { callback(); } - const spawns = []; - for (const step of steps) - spawns.push(child_process.spawn(step.command, step.args, { stdio: 'inherit', shell: step.shell, env: { - ...process.env, - ...step.env, - } })); - process.on('exit', () => spawns.forEach(s => s.kill())); - for (const onChange of onChanges) - runOnChanges(onChange.inputs, onChange.script); - for (const {files, from, to, ignored} of copyFiles) { - const watcher = chokidar.watch([filePath(files)], {ignored}); + for (const { files, from, to, ignored } of copyFiles) { + const watcher = chokidar.watch([filePath(files)], { ignored }); watcher.on('all', (event, file) => { copyFile(file, from, to); }); } + const spawns = []; + for (const step of steps) + spawns.push(child_process.spawn(step.command, step.args, { + stdio: 'inherit', shell: step.shell, env: { + ...process.env, + ...step.env, + } + })); + process.on('exit', () => spawns.forEach(s => s.kill())); + for (const onChange of onChanges) + runOnChanges(onChange.inputs, onChange.script); } async function runBuild() { @@ -77,21 +80,17 @@ async function runBuild() { * @param {Step} step */ function runStep(step) { - const out = child_process.spawnSync(step.command, step.args, { stdio: 'inherit', shell: step.shell, env: { - ...process.env, - ...step.env - } }); + const out = child_process.spawnSync(step.command, step.args, { + stdio: 'inherit', shell: step.shell, env: { + ...process.env, + ...step.env + } + }); if (out.status) process.exit(out.status); } - for (const step of steps) - runStep(step); - for (const onChange of onChanges) { - if (!onChange.committed) - runStep({ command: 'node', args: [filePath(onChange.script)], shell: false }); - } - for (const {files, from, to, ignored} of copyFiles) { + for (const { files, from, to, ignored } of copyFiles) { const watcher = chokidar.watch([filePath(files)], { ignored }); @@ -101,6 +100,12 @@ async function runBuild() { await new Promise(x => watcher.once('ready', x)); watcher.close(); } + for (const step of steps) + runStep(step); + for (const onChange of onChanges) { + if (!onChange.committed) + runStep({ command: 'node', args: [filePath(onChange.script)], shell: false }); + } } function copyFile(file, from, to) { @@ -111,10 +116,10 @@ function copyFile(file, from, to) { // Build injected scripts. const webPackFiles = [ - 'src/server/injected/webpack.config.js', - 'src/web/traceViewer/webpack.config.js', - 'src/web/recorder/webpack.config.js', - 'src/web/htmlReport/webpack.config.js', + 'packages/playwright-core/src/server/injected/webpack.config.js', + 'packages/playwright-core/src/web/traceViewer/webpack.config.js', + 'packages/playwright-core/src/web/recorder/webpack.config.js', + 'packages/playwright-core/src/web/htmlReport/webpack.config.js', ]; for (const file of webPackFiles) { steps.push({ @@ -128,17 +133,22 @@ for (const file of webPackFiles) { } // Run Babel. -steps.push({ - command: 'npx', - args: ['babel', ...(watchMode ? ['-w', '--source-maps'] : []), '--extensions', '.ts', '--out-dir', filePath('./lib/'), filePath('./src/')], - shell: true, -}); +for (const packageDir of packages) { + if (!fs.existsSync(path.join(packageDir, 'src'))) + continue; + steps.push({ + command: 'npx', + args: ['babel', ...(watchMode ? ['-w', '--source-maps'] : []), '--extensions', '.ts', '--out-dir', path.join(packageDir, 'lib'), path.join(packageDir, 'src')], + shell: true, + }); +} + // Generate channels. onChanges.push({ committed: false, inputs: [ - 'src/protocol/protocol.yml' + 'packages/playwright-core/src/protocol/protocol.yml' ], script: 'utils/generate_channels.js', }); @@ -154,34 +164,34 @@ onChanges.push({ 'utils/generate_types/overrides-test.d.ts', 'utils/generate_types/overrides-testReporter.d.ts', 'utils/generate_types/exported.json', - 'src/server/chromium/protocol.d.ts', + 'packages/playwright-core/src/server/chromium/protocol.d.ts', ], script: 'utils/generate_types/index.js', }); // The recorder and trace viewer have an app_icon.png that needs to be copied. copyFiles.push({ - files: 'src/server/chromium/*.png', - from: 'src', - to: 'lib', + files: 'packages/playwright-core/src/server/chromium/*.png', + from: 'packages/playwright-core/src', + to: 'packages/playwright-core/lib', }); // Babel doesn't touch JS files, so copy them manually. // For example: diff_match_patch.js copyFiles.push({ - files: 'src/**/*.js', - from: 'src', - to: 'lib', + files: 'packages/playwright-core/src/**/*.js', + from: 'packages/playwright-core/src', + to: 'packages/playwright-core/lib', ignored: ['**/.eslintrc.js', '**/*webpack.config.js', '**/injected/**/*'] }); // Sometimes we require JSON files that babel ignores. // For example, deviceDescriptorsSource.json copyFiles.push({ - files: 'src/**/*.json', + files: 'packages/playwright-core/src/**/*.json', ignored: ['**/injected/**/*'], - from: 'src', - to: 'lib', + from: 'packages/playwright-core/src', + to: 'packages/playwright-core/lib', }); if (lintMode) { diff --git a/utils/build/clean.js b/utils/build/clean.js new file mode 100644 index 0000000000..1f161c7b8f --- /dev/null +++ b/utils/build/clean.js @@ -0,0 +1,6 @@ +const { packages } = require("../list_packages"); +const path = require('path'); +const rimraf = require('rimraf'); +for (const packageDir of packages) { + rimraf.sync(path.join(packageDir, 'lib')); +} \ No newline at end of file diff --git a/utils/check_deps.js b/utils/check_deps.js index 25b3998094..ed819f2bb3 100644 --- a/utils/check_deps.js +++ b/utils/check_deps.js @@ -21,8 +21,8 @@ const ts = require('typescript'); const path = require('path'); async function checkDeps() { - const root = path.normalize(path.join(__dirname, '..')); - const src = path.normalize(path.join(__dirname, '..', 'src')); + const root = path.normalize(path.join(__dirname, '..', 'packages', 'playwright-core')); + const src = path.normalize(path.join(__dirname, '..', 'packages', 'playwright-core', 'src')); const packageJSON = require(path.join(root, 'package.json')); const program = ts.createProgram({ options: { @@ -192,12 +192,16 @@ DEPS['src/server/trace/common/'] = ['src/server/snapshot/', ...DEPS['src/server/ DEPS['src/server/trace/recorder/'] = ['src/server/trace/common/', ...DEPS['src/server/trace/common/']]; DEPS['src/server/trace/viewer/'] = ['src/server/trace/common/', 'src/server/trace/recorder/', 'src/server/chromium/', ...DEPS['src/server/trace/common/']]; -// Playwright Test -DEPS['src/test/'] = ['src/test/**', 'src/utils/utils.ts', 'src/utils/**', 'src/protocol/channels.ts']; -DEPS['src/test/index.ts'] = [... DEPS['src/test/'], 'src/grid/gridClient.ts' ]; +// TODO(einbinder) re-enable these checks +// // Playwright Test +// DEPS['src/test/'] = ['src/test/**', 'src/utils/utils.ts', 'src/utils/**', 'src/protocol/channels.ts']; +// DEPS['src/test/index.ts'] = [... DEPS['src/test/'], 'src/grid/gridClient.ts' ]; // HTML report -DEPS['src/web/htmlReport/'] = ['src/test/**', 'src/web/']; +DEPS['src/web/htmlReport/'] = [ + // 'src/test/**', + 'src/web/' +]; // Grid DEPS['src/grid/'] = ['src/utils/**', 'src/dispatchers/**', 'src/server/', 'src/client/']; diff --git a/utils/docker/Dockerfile.bionic b/utils/docker/Dockerfile.bionic index 5333c50f68..c30e4b4aaf 100644 --- a/utils/docker/Dockerfile.bionic +++ b/utils/docker/Dockerfile.bionic @@ -31,7 +31,7 @@ ENV DEBIAN_FRONTEND=noninteractive # 1. Add tip-of-tree Playwright package to install its browsers. # The package should be built beforehand from tip-of-tree Playwright. -COPY ./playwright.tar.gz /tmp/playwright.tar.gz +COPY ./playwright-core.tar.gz /tmp/playwright-core.tar.gz # 2. Install playwright and then delete the installation. # Browsers will remain downloaded in `/ms-playwright`. @@ -39,7 +39,8 @@ COPY ./playwright.tar.gz /tmp/playwright.tar.gz # registry. RUN mkdir /ms-playwright && \ mkdir /tmp/pw && cd /tmp/pw && npm init -y && \ - npm i /tmp/playwright.tar.gz && \ + npm i /tmp/playwright-core.tar.gz && \ + npx playwright install && \ DEBIAN_FRONTEND=noninteractive npx playwright install-deps && \ - rm -rf /tmp/pw && rm /tmp/playwright.tar.gz && \ + rm -rf /tmp/pw && rm /tmp/playwright-core.tar.gz && \ chmod -R 777 /ms-playwright diff --git a/utils/docker/Dockerfile.focal b/utils/docker/Dockerfile.focal index 5a83f54a30..1b8f3d2486 100644 --- a/utils/docker/Dockerfile.focal +++ b/utils/docker/Dockerfile.focal @@ -30,7 +30,7 @@ ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright # 1. Add tip-of-tree Playwright package to install its browsers. # The package should be built beforehand from tip-of-tree Playwright. -COPY ./playwright.tar.gz /tmp/playwright.tar.gz +COPY ./playwright-core.tar.gz /tmp/playwright-core.tar.gz # 2. Install playwright and then delete the installation. # Browsers will remain downloaded in `/ms-playwright`. @@ -38,7 +38,8 @@ COPY ./playwright.tar.gz /tmp/playwright.tar.gz # registry. RUN mkdir /ms-playwright && \ mkdir /tmp/pw && cd /tmp/pw && npm init -y && \ - npm i /tmp/playwright.tar.gz && \ + npm i /tmp/playwright-core.tar.gz && \ + npx playwright install && \ DEBIAN_FRONTEND=noninteractive npx playwright install-deps && \ - rm -rf /tmp/pw && rm /tmp/playwright.tar.gz && \ + rm -rf /tmp/pw && rm /tmp/playwright-core.tar.gz && \ chmod -R 777 /ms-playwright diff --git a/utils/docker/build.sh b/utils/docker/build.sh index 78142b6267..21b4344211 100755 --- a/utils/docker/build.sh +++ b/utils/docker/build.sh @@ -23,8 +23,8 @@ function cleanup() { trap "cleanup; cd $(pwd -P)" EXIT cd "$(dirname "$0")" -# We rely on `./playwright.tar.gz` to download browsers into the docker +# We rely on `./playwright-core.tar.gz` to download browsers into the docker # image. -node ../../packages/build_package.js playwright ./playwright.tar.gz +node ../../utils/pack_package.js playwright-core ./playwright-core.tar.gz docker build -t "$2" -f "Dockerfile.$1" . diff --git a/utils/doclint/cli.js b/utils/doclint/cli.js index 005e9cc696..76ac7831fe 100755 --- a/utils/doclint/cli.js +++ b/utils/doclint/cli.js @@ -17,7 +17,7 @@ //@ts-check -const playwright = require('../../'); +const playwright = require('playwright-core'); const fs = require('fs'); const path = require('path'); const { parseApi } = require('./api_parser'); @@ -62,7 +62,7 @@ async function run() { // Update device descriptors { - const devicesDescriptorsSourceFile = path.join(PROJECT_DIR, 'src', 'server', 'deviceDescriptorsSource.json') + const devicesDescriptorsSourceFile = path.join(PROJECT_DIR, 'packages', 'playwright-core', 'src', 'server', 'deviceDescriptorsSource.json') const devicesDescriptors = require(devicesDescriptorsSourceFile) for (const deviceName of Object.keys(devicesDescriptors)) { switch (devicesDescriptors[deviceName].defaultBrowserType) { @@ -131,7 +131,7 @@ async function run() { { const apiDocumentation = parseApi(path.join(PROJECT_DIR, 'docs', 'src', 'api')); apiDocumentation.filterForLanguage('js'); - const srcClient = path.join(PROJECT_DIR, 'src', 'client'); + const srcClient = path.join(PROJECT_DIR, 'packages', 'playwright-core', 'src', 'client'); const sources = fs.readdirSync(srcClient).map(n => path.join(srcClient, n)); const errors = missingDocs(apiDocumentation, sources, path.join(srcClient, 'api.ts')); if (errors.length) { diff --git a/utils/generate_channels.js b/utils/generate_channels.js index 9ca66cbcb2..2f28d50319 100755 --- a/utils/generate_channels.js +++ b/utils/generate_channels.js @@ -172,7 +172,7 @@ export function createScheme(tChannel: (name: string) => Validator): Scheme { const tracingSnapshots = []; const pausesBeforeInputActions = []; -const yml = fs.readFileSync(path.join(__dirname, '..', 'src', 'protocol', 'protocol.yml'), 'utf-8'); +const yml = fs.readFileSync(path.join(__dirname, '..', 'packages', 'playwright-core', 'src', 'protocol', 'protocol.yml'), 'utf-8'); const protocol = yaml.parse(yml); function addScheme(name, s) { @@ -301,6 +301,6 @@ function writeFile(filePath, content) { fs.writeFileSync(filePath, content, 'utf8'); } -writeFile(path.join(__dirname, '..', 'src', 'protocol', 'channels.ts'), channels_ts.join('\n')); -writeFile(path.join(__dirname, '..', 'src', 'protocol', 'validator.ts'), validator_ts.join('\n')); +writeFile(path.join(__dirname, '..', 'packages', 'playwright-core', 'src', 'protocol', 'channels.ts'), channels_ts.join('\n')); +writeFile(path.join(__dirname, '..', 'packages', 'playwright-core', 'src', 'protocol', 'validator.ts'), validator_ts.join('\n')); process.exit(hasChanges ? 1 : 0); diff --git a/utils/generate_types/index.js b/utils/generate_types/index.js index 8dee323843..e7a60615e4 100644 --- a/utils/generate_types/index.js +++ b/utils/generate_types/index.js @@ -18,11 +18,11 @@ const path = require('path'); const os = require('os'); const toKebabCase = require('lodash/kebabCase') -const devices = require('../../src/server/deviceDescriptors'); +const devices = require('playwright-core/lib/server/deviceDescriptors'); const Documentation = require('../doclint/documentation'); const PROJECT_DIR = path.join(__dirname, '..', '..'); const fs = require('fs'); -const {parseOverrides} = require('./parseOverrides'); +const { parseOverrides } = require('./parseOverrides'); const exported = require('./exported.json'); const { parseApi } = require('../doclint/api_parser'); @@ -147,7 +147,7 @@ class TypesGenerator { const parts = []; const internalWords = new Set(overriddes.split(/[^\w$]/g)); while ((definition = this.objectDefinitions.pop())) { - const {name, properties} = definition; + const { name, properties } = definition; const shouldExport = !!exported[name]; const usedInternally = internalWords.has(name); if (!usedInternally && !shouldExport) @@ -234,12 +234,12 @@ class TypesGenerator { } const indent = exportMembersAsGlobals ? '' : ' '; for (const method of ['on', 'once', 'addListener', 'removeListener', 'off']) { - for (const {eventName, params, comment} of eventDescriptions) { - if ((method === 'on' || method === 'addListener') && comment) - parts.push(this.writeComment(comment, indent)); - else - parts.push(this.writeComment(commentForMethod[method], indent)); - parts.push(` ${method}(event: '${eventName}', listener: (${params}) => void): this;\n`); + for (const { eventName, params, comment } of eventDescriptions) { + if ((method === 'on' || method === 'addListener') && comment) + parts.push(this.writeComment(comment, indent)); + else + parts.push(this.writeComment(commentForMethod[method], indent)); + parts.push(` ${method}(event: '${eventName}', listener: (${params}) => void): this;\n`); } } @@ -249,7 +249,7 @@ class TypesGenerator { return ''; if (member.alias === 'waitForEvent') { const parts = []; - for (const {eventName, params, comment, type} of eventDescriptions) { + for (const { eventName, params, comment, type } of eventDescriptions) { if (comment) parts.push(this.writeComment(comment, indent)); parts.push(` ${member.alias}(event: '${eventName}', optionsOrPredicate?: { predicate?: (${params}) => boolean | Promise, timeout?: number } | ((${params}) => boolean | Promise)): Promise<${type}>;\n`); @@ -345,7 +345,7 @@ class TypesGenerator { stringifyObjectType(properties, name, indent = '') { const parts = []; parts.push(`{`); - parts.push(properties.map(member => `${this.memberJSDOC(member, indent + ' ')}${this.nameForProperty(member)}${this.argsFromMember(member, indent + ' ', name)}: ${this.stringifyComplexType(member.type, indent + ' ', name, member.name)};`).join('\n\n')); + parts.push(properties.map(member => `${this.memberJSDOC(member, indent + ' ')}${this.nameForProperty(member)}${this.argsFromMember(member, indent + ' ', name)}: ${this.stringifyComplexType(member.type, indent + ' ', name, member.name)};`).join('\n\n')); parts.push(indent + '}'); return parts.join('\n'); } @@ -369,8 +369,8 @@ class TypesGenerator { if (type.name === 'Object' && type.properties && type.properties.length) { const name = namespace.map(n => n[0].toUpperCase() + n.substring(1)).join(''); const shouldExport = exported[name]; - const properties = namespace[namespace.length -1] === 'options' ? type.sortedProperties() : type.properties; - this.objectDefinitions.push({name, properties}); + const properties = namespace[namespace.length - 1] === 'options' ? type.sortedProperties() : type.properties; + this.objectDefinitions.push({ name, properties }); if (shouldExport) { out = name; } else { @@ -383,7 +383,7 @@ class TypesGenerator { type: this.stringifySimpleType(a, indent, ...namespace), name: a.name.toLowerCase() })); - out = `((${stringArgs.map(({name, type}) => `${name}: ${type}`).join(', ')}) => ${this.stringifySimpleType(type.returnType, indent, ...namespace)})`; + out = `((${stringArgs.map(({ name, type }) => `${name}: ${type}`).join(', ')}) => ${this.stringifySimpleType(type.returnType, indent, ...namespace)})`; } else if (type.name === 'function') { out = 'Function'; } @@ -451,7 +451,7 @@ class TypesGenerator { } } -(async function() { +(async function () { let hadChanges = false; /** @@ -469,10 +469,10 @@ class TypesGenerator { fs.writeFileSync(filePath, content, 'utf8'); } - const typesDir = path.join(PROJECT_DIR, 'types'); + const typesDir = path.join(PROJECT_DIR, 'packages', 'playwright-core', 'types'); if (!fs.existsSync(typesDir)) fs.mkdirSync(typesDir) - writeFile(path.join(typesDir, 'protocol.d.ts'), fs.readFileSync(path.join(PROJECT_DIR, 'src', 'server', 'chromium', 'protocol.d.ts'), 'utf8')); + writeFile(path.join(typesDir, 'protocol.d.ts'), fs.readFileSync(path.join(PROJECT_DIR, 'packages', 'playwright-core', 'src', 'server', 'chromium', 'protocol.d.ts'), 'utf8')); const apiDocumentation = parseApi(path.join(PROJECT_DIR, 'docs', 'src', 'api')); apiDocumentation.index(); diff --git a/utils/generate_types/test/test.ts b/utils/generate_types/test/test.ts index 13766f939c..b34f1fa91e 100644 --- a/utils/generate_types/test/test.ts +++ b/utils/generate_types/test/test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as playwright from '../../../index'; +import * as playwright from 'playwright'; type AssertType = S extends T ? AssertNotAny : false; type AssertNotAny = {notRealProperty: number} extends S ? false : true; @@ -819,4 +819,4 @@ import { ViewportSize, Geolocation, HTTPCredentials, -} from '../../../'; +} from 'playwright'; diff --git a/utils/linux-browser-dependencies/inside_docker/list_dependencies.js b/utils/linux-browser-dependencies/inside_docker/list_dependencies.js index 8fe5129cce..bd8fd5bbd9 100644 --- a/utils/linux-browser-dependencies/inside_docker/list_dependencies.js +++ b/utils/linux-browser-dependencies/inside_docker/list_dependencies.js @@ -4,7 +4,7 @@ const fs = require('fs'); const util = require('util'); const path = require('path'); const {spawn} = require('child_process'); -const {registryDirectory} = require('playwright/lib/utils/registry.js'); +const {registryDirectory} = require('playwright-core/lib/utils/registry.js'); const readdirAsync = util.promisify(fs.readdir.bind(fs)); const readFileAsync = util.promisify(fs.readFile.bind(fs)); diff --git a/utils/linux-browser-dependencies/inside_docker/process.sh b/utils/linux-browser-dependencies/inside_docker/process.sh index d814db8ca1..8a5585a800 100755 --- a/utils/linux-browser-dependencies/inside_docker/process.sh +++ b/utils/linux-browser-dependencies/inside_docker/process.sh @@ -11,8 +11,8 @@ apt-get update && apt-get install -y curl && \ # Install apt-file apt-get update && apt-get install -y apt-file && apt-file update -# Install tip-of-tree playwright -mkdir /root/tmp && cd /root/tmp && npm init -y && npm i /root/hostfolder/playwright.tar.gz +# Install tip-of-tree playwright-core and browsers +mkdir /root/tmp && cd /root/tmp && npm init -y && npm i /root/hostfolder/playwright-core.tar.gz && npx playwright install cp /root/hostfolder/inside_docker/list_dependencies.js /root/tmp/list_dependencies.js diff --git a/utils/linux-browser-dependencies/run.sh b/utils/linux-browser-dependencies/run.sh index 03a64e0ee7..9d587ecc2c 100755 --- a/utils/linux-browser-dependencies/run.sh +++ b/utils/linux-browser-dependencies/run.sh @@ -28,8 +28,9 @@ function cleanup() { trap "cleanup; cd $(pwd -P)" EXIT cd "$(dirname "$0")" -# We rely on `./playwright.tar.gz` to download browsers into the docker image. -node ../../packages/build_package.js playwright ./playwright.tar.gz +# We rely on `./playwright-core.tar.gz` to download browsers into the docker +# image. +node ../../utils/pack_package.js playwright-core ./playwright-core.tar.gz docker run -v $PWD:/root/hostfolder --rm -it "$1" /root/hostfolder/inside_docker/process.sh "$2" diff --git a/utils/list_packages.js b/utils/list_packages.js new file mode 100644 index 0000000000..5c5a83107a --- /dev/null +++ b/utils/list_packages.js @@ -0,0 +1,38 @@ +const fs = require('fs'); +const path = require('path'); +const packageDir = path.join(__dirname, '..', 'packages'); +const packages = fs.readdirSync(packageDir) + .filter(packageDir => !packageDir.startsWith('.')) + .map(name => path.join(packageDir, name)); + +const packagePathToJSON = new Map(); +const packageNameToPath = new Map(); +const packagePathToDependencies = new Map(); +for (const packagePath of packages) { + const packageJSON = require(path.join(packagePath, 'package.json')); + packageNameToPath.set(packageJSON.name, packagePath); + packagePathToJSON.set(packagePath, packageJSON); +} + +for (const packagePath of packages) + packagePathToDependencies.set(packagePath, new Set(internalDependencies(packagePath))); + +// Sort packages by their interdependence. +packages.sort((a, b) => { + if (packagePathToDependencies.get(a).has(b)) + return 1; + if (packagePathToDependencies.get(b).has(a)) + return -1; + return 0; +}); + +function* internalDependencies(packagePath) { + yield packagePath; + for (const dependency of Object.keys(packagePathToJSON.get(packagePath).dependencies || {})) { + const dependencyPath = packageNameToPath.get(dependency); + if (dependencyPath) + yield* internalDependencies(dependencyPath); + } +} + +module.exports = { packages, packageNameToPath }; \ No newline at end of file diff --git a/utils/pack_package.js b/utils/pack_package.js new file mode 100644 index 0000000000..5989b49867 --- /dev/null +++ b/utils/pack_package.js @@ -0,0 +1,52 @@ +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const fs = require('fs'); +const os = require('os'); +const path = require('path'); +const { spawnSync } = require('child_process'); + +// 1. Parse CLI arguments +const args = process.argv.slice(2); +if (args.some(arg => arg === '--help')) { + console.log(usage()); + process.exit(1); +} else if (args.length < 1) { + console.log(`Please specify package name, e.g. 'playwright' or 'playwright-chromium'.`); + console.log(`Try running ${SCRIPT_NAME} --help`); + process.exit(1); +} else if (args.length < 2) { + console.log(`Please specify output path`); + console.log(`Try running ${SCRIPT_NAME} --help`); + process.exit(1); +} + +const packageName = args[0]; +const outputPath = path.resolve(args[1]); +const packagePath = path.join(__dirname, '..', 'packages', packageName); + +const shell = os.platform() === 'win32'; +const { stdout, stderr, status } = spawnSync('npm', ['pack'], { cwd: packagePath, encoding: 'utf8', shell }); +if (status !== 0) { + console.log(`ERROR: "npm pack" failed`); + console.log(stderr); + process.exit(1); +} +const tgzName = stdout.trim(); + +// 7. Move result to the outputPath +fs.renameSync(path.join(packagePath, tgzName), outputPath); +console.log(outputPath); diff --git a/utils/prepare_packages.js b/utils/prepare_packages.js new file mode 100644 index 0000000000..f32fb3fcf3 --- /dev/null +++ b/utils/prepare_packages.js @@ -0,0 +1,130 @@ +#!/usr/bin/env node +/** + * Copyright (c) Microsoft Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +//@ts-check +const fs = require('fs'); +const path = require('path'); +const ncp = require('ncp'); +const util = require('util'); +const { packageNameToPath } = require('./list_packages'); + +const cpAsync = util.promisify(ncp); + +const ROOT_PATH = path.join(__dirname, '..'); + +const LICENSE_FILES = ['NOTICE', 'LICENSE']; + + +const PACKAGES = { + 'playwright': { + browsers: ['chromium', 'firefox', 'webkit', 'ffmpeg'], + // We copy README.md additionally for Playwright so that it looks nice on NPM. + files: [...LICENSE_FILES, 'README.md'], + }, + 'playwright-core': { + browsers: [], + files: LICENSE_FILES, + }, + '@playwright/test': { + browsers: ['chromium', 'firefox', 'webkit', 'ffmpeg'], + files: LICENSE_FILES, + name: '@playwright/test', + }, + 'playwright-webkit': { + browsers: ['webkit'], + files: LICENSE_FILES, + }, + 'playwright-firefox': { + browsers: ['firefox'], + files: LICENSE_FILES, + }, + 'playwright-chromium': { + browsers: ['chromium', 'ffmpeg'], + files: LICENSE_FILES, + }, + 'create-playwright': { + browsers: [], + files: [], + ignore: true, + } +}; + +const dirtyFiles = []; + +(async function () { + for (const packagePath of require('./list_packages').packages) { + const packageJSON = require(path.join(packagePath, 'package.json')); + packageNameToPath.set(packageJSON.name, packagePath); + } + for (const packageName of packageNameToPath.keys()) + await lintPackage(packageName); + for (const file of dirtyFiles) { + console.warn('Updated', path.relative(ROOT_PATH, file)); + } + if (dirtyFiles.length && process.argv.includes('--check-clean')) + process.exit(1); +})(); + + +/** + * @param {string} packageName + */ +async function lintPackage(packageName) { + const packagePath = packageNameToPath.get(packageName); + const package = PACKAGES[packageName]; + if (package.ignore) + return; + if (!package) { + console.log(`ERROR: unknown package ${packageName}`); + process.exit(1); + } + + // 3. Copy package files. + for (const file of package.files) + await copyToPackage(path.join(ROOT_PATH, file), path.join(packagePath, file)); + + // 4. Generate package.json + const pwInternalJSON = require(path.join(ROOT_PATH, 'package.json')); + const currentPackageJSON = require(path.join(packagePath, 'package.json')); + currentPackageJSON.version = pwInternalJSON.version; + currentPackageJSON.description = pwInternalJSON.description; + currentPackageJSON.repository = pwInternalJSON.repository; + currentPackageJSON.engines = pwInternalJSON.engines; + currentPackageJSON.homepage = pwInternalJSON.homepage; + currentPackageJSON.author = pwInternalJSON.author; + currentPackageJSON.license = pwInternalJSON.license; + for (const name of Object.keys(currentPackageJSON.dependencies)) { + if (name in PACKAGES) + currentPackageJSON.dependencies[name] = `=${pwInternalJSON.version}`; + } + await writeToPackage('package.json', JSON.stringify(currentPackageJSON, null, 2) + '\n'); + + async function writeToPackage(fileName, content) { + const toPath = path.join(packagePath, fileName); + const currentContent = await fs.promises.readFile(toPath, 'utf8').catch(e => null); + if (currentContent === content) + return; + dirtyFiles.push(toPath); + await fs.promises.writeFile(toPath, content); + } + +} + +async function copyToPackage(fromPath, toPath) { + await fs.promises.mkdir(path.dirname(toPath), { recursive: true }); + await cpAsync(fromPath, toPath); +} + diff --git a/utils/print_versions.js b/utils/print_versions.js index bbd85616fc..7151560d3f 100755 --- a/utils/print_versions.js +++ b/utils/print_versions.js @@ -16,8 +16,6 @@ */ const pw = require('..'); -const child_process = require('child_process'); - async function browserVersion(browserType) { const browser = await browserType.launch(); diff --git a/utils/protocol-types-generator/index.js b/utils/protocol-types-generator/index.js index af94a5670b..f475ed941e 100644 --- a/utils/protocol-types-generator/index.js +++ b/utils/protocol-types-generator/index.js @@ -15,8 +15,8 @@ async function generateProtocol(name, executablePath) { } async function generateChromiumProtocol(executablePath) { - const outputPath = path.join(__dirname, '../../src/server/chromium/protocol.d.ts'); - const playwright = require('../../index').chromium; + const outputPath = path.join(__dirname, '../../packages/playwright-core/src/server/chromium/protocol.d.ts'); + const playwright = require('playwright-core').chromium; const browser = await playwright.launch({ executablePath, args: ['--remote-debugging-port=9339'] }); const page = await browser.newPage(); await page.goto(`http://localhost:9339/json/protocol`); diff --git a/utils/publish_all_packages.sh b/utils/publish_all_packages.sh index eb42231614..902bfbee3e 100755 --- a/utils/publish_all_packages.sh +++ b/utils/publish_all_packages.sh @@ -80,28 +80,11 @@ else exit 1 fi -echo "==================== Building version ${VERSION} ================" - -PLAYWRIGHT_TGZ="$PWD/playwright.tgz" -PLAYWRIGHT_CORE_TGZ="$PWD/playwright-core.tgz" -PLAYWRIGHT_WEBKIT_TGZ="$PWD/playwright-webkit.tgz" -PLAYWRIGHT_FIREFOX_TGZ="$PWD/playwright-firefox.tgz" -PLAYWRIGHT_CHROMIUM_TGZ="$PWD/playwright-chromium.tgz" -PLAYWRIGHT_TEST_TGZ="$PWD/playwright-test.tgz" -node ./packages/build_package.js playwright "${PLAYWRIGHT_TGZ}" -node ./packages/build_package.js playwright-core "${PLAYWRIGHT_CORE_TGZ}" -node ./packages/build_package.js playwright-webkit "${PLAYWRIGHT_WEBKIT_TGZ}" -node ./packages/build_package.js playwright-firefox "${PLAYWRIGHT_FIREFOX_TGZ}" -node ./packages/build_package.js playwright-chromium "${PLAYWRIGHT_CHROMIUM_TGZ}" -node ./packages/build_package.js playwright-test "${PLAYWRIGHT_TEST_TGZ}" - echo "==================== Publishing version ${VERSION} ================" - -npm publish ${PLAYWRIGHT_TGZ} --tag="${NPM_PUBLISH_TAG}" -npm publish ${PLAYWRIGHT_CORE_TGZ} --tag="${NPM_PUBLISH_TAG}" -npm publish ${PLAYWRIGHT_WEBKIT_TGZ} --tag="${NPM_PUBLISH_TAG}" -npm publish ${PLAYWRIGHT_FIREFOX_TGZ} --tag="${NPM_PUBLISH_TAG}" -npm publish ${PLAYWRIGHT_CHROMIUM_TGZ} --tag="${NPM_PUBLISH_TAG}" -npm publish ${PLAYWRIGHT_TEST_TGZ} --tag="${NPM_PUBLISH_TAG}" +node ./utils/prepare_packages.js +node -e "console.log(require('./utils/list_packages').packages.join('\\n'))" | while read package +do + npm publish ${package} --tag="${NPM_PUBLISH_TAG}" +done echo "Done." diff --git a/utils/roll_browser.js b/utils/roll_browser.js index 1ab6f7eceb..44d9bce967 100755 --- a/utils/roll_browser.js +++ b/utils/roll_browser.js @@ -17,13 +17,13 @@ */ const path = require('path'); -const {Registry} = require('../lib/utils/registry'); +const {Registry} = require('../packages/playwright-core/lib/utils/registry'); const fs = require('fs'); const protocolGenerator = require('./protocol-types-generator'); const {execSync} = require('child_process'); const SCRIPT_NAME = path.basename(__filename); -const ROOT_PATH = path.resolve(path.join(__dirname, '..')); +const CORE_PATH = path.resolve(path.join(__dirname, '..', 'packages', 'playwright-core')); function usage() { return ` @@ -52,7 +52,7 @@ Example: console.log(`Try running ${SCRIPT_NAME} --help`); process.exit(1); } - const browsersJSON = require(path.join(ROOT_PATH, 'browsers.json')); + const browsersJSON = require(path.join(CORE_PATH, 'browsers.json')); const browserName = args[0].toLowerCase(); const descriptor = browsersJSON.browsers.find(b => b.name === browserName); if (!descriptor) { @@ -68,7 +68,7 @@ Example: descriptor.revision = String(revision); if (browserName === 'chromium') browsersJSON.browsers.find(b => b.name === 'chromium-with-symbols').revision = String(revision); - fs.writeFileSync(path.join(ROOT_PATH, 'browsers.json'), JSON.stringify(browsersJSON, null, 2) + '\n'); + fs.writeFileSync(path.join(CORE_PATH, 'browsers.json'), JSON.stringify(browsersJSON, null, 2) + '\n'); if (descriptor.installByDefault) { // 3. Download new browser.