From fc1e986811461b83590cc0c1e515874a49b1cdce Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Fri, 13 Dec 2024 15:08:56 -0800 Subject: [PATCH] chore: migrate '@web' to @playwright/web --- package-lock.json | 9 ++++---- packages/html-reporter/src/DEPS.list | 2 +- packages/html-reporter/src/chip.tsx | 2 +- packages/html-reporter/src/index.tsx | 2 +- packages/html-reporter/src/links.tsx | 4 ++-- packages/html-reporter/src/tabbedPane.tsx | 2 +- packages/html-reporter/src/testCaseView.tsx | 4 ++-- packages/html-reporter/src/testErrorView.css | 2 +- packages/html-reporter/src/testErrorView.tsx | 6 ++--- packages/html-reporter/src/testFileView.tsx | 2 +- packages/html-reporter/src/testResultView.tsx | 4 ++-- packages/html-reporter/tsconfig.json | 1 - packages/recorder/src/DEPS.list | 2 +- packages/recorder/src/callLog.tsx | 2 +- packages/recorder/src/index.tsx | 6 ++--- packages/recorder/src/recorder.tsx | 18 +++++++-------- packages/recorder/tsconfig.json | 1 - packages/trace-viewer/src/DEPS.list | 2 +- packages/trace-viewer/src/index.tsx | 6 ++--- packages/trace-viewer/src/recorder.tsx | 6 ++--- packages/trace-viewer/src/ui/DEPS.list | 2 +- packages/trace-viewer/src/ui/actionList.tsx | 8 +++---- .../trace-viewer/src/ui/annotationsTab.tsx | 2 +- .../trace-viewer/src/ui/attachmentsTab.tsx | 10 ++++---- packages/trace-viewer/src/ui/callTab.tsx | 2 +- packages/trace-viewer/src/ui/consoleTab.tsx | 6 ++--- .../trace-viewer/src/ui/copyToClipboard.tsx | 2 +- packages/trace-viewer/src/ui/errorsTab.tsx | 2 +- packages/trace-viewer/src/ui/filmStrip.tsx | 2 +- packages/trace-viewer/src/ui/inspectorTab.tsx | 8 +++---- packages/trace-viewer/src/ui/logTab.tsx | 4 ++-- packages/trace-viewer/src/ui/metadataView.tsx | 2 +- .../src/ui/networkResourceDetails.tsx | 6 ++--- packages/trace-viewer/src/ui/networkTab.tsx | 6 ++--- .../trace-viewer/src/ui/recorder/DEPS.list | 2 +- .../src/ui/recorder/actionListView.tsx | 2 +- .../src/ui/recorder/modelContext.tsx | 2 +- .../src/ui/recorder/recorderView.tsx | 16 ++++++------- packages/trace-viewer/src/ui/snapshotTab.tsx | 8 +++---- packages/trace-viewer/src/ui/sourceTab.tsx | 12 +++++----- packages/trace-viewer/src/ui/stackTrace.tsx | 2 +- packages/trace-viewer/src/ui/tag.tsx | 2 +- packages/trace-viewer/src/ui/timeline.tsx | 4 ++-- .../trace-viewer/src/ui/uiModeFiltersView.tsx | 8 +++---- .../src/ui/uiModeTestListView.tsx | 14 +++++------ .../trace-viewer/src/ui/uiModeTraceView.tsx | 4 ++-- packages/trace-viewer/src/ui/uiModeView.tsx | 18 +++++++-------- packages/trace-viewer/src/ui/workbench.tsx | 10 ++++---- .../trace-viewer/src/ui/workbenchLoader.tsx | 4 ++-- packages/trace-viewer/src/uiMode.tsx | 6 ++--- packages/trace-viewer/tsconfig.json | 1 - packages/trace-viewer/vite.config.ts | 1 - packages/trace-viewer/vite.sw.config.ts | 1 - packages/web/package.json | 2 +- packages/web/src/components/errorMessage.tsx | 2 +- packages/web/src/components/gridView.tsx | 2 +- packages/web/src/components/listView.tsx | 2 +- packages/web/src/components/tabbedPane.tsx | 2 +- packages/web/src/components/toolbar.tsx | 2 +- packages/web/src/components/toolbarButton.tsx | 2 +- packages/web/src/components/treeView.tsx | 2 +- packages/web/src/components/xtermWrapper.tsx | 4 ++-- tests/tsconfig.json | 1 - tsconfig.json | 1 - utils/check_deps.js | 23 ++++++++++++++----- 65 files changed, 156 insertions(+), 151 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c4d97edad..d59d6c6873 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1507,6 +1507,10 @@ "resolved": "packages/playwright-test", "link": true }, + "node_modules/@playwright/web": { + "resolved": "packages/web", + "link": true + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.22.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", @@ -7486,10 +7490,6 @@ } } }, - "node_modules/web": { - "resolved": "packages/web", - "link": true - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7967,6 +7967,7 @@ "version": "0.0.0" }, "packages/web": { + "name": "@playwright/web", "version": "0.0.0", "dependencies": { "codemirror": "5.65.18", diff --git a/packages/html-reporter/src/DEPS.list b/packages/html-reporter/src/DEPS.list index c7e0c4943d..d39a2c0f01 100644 --- a/packages/html-reporter/src/DEPS.list +++ b/packages/html-reporter/src/DEPS.list @@ -1,6 +1,6 @@ [*] @playwright/experimental-ct-react -@web/** +@playwright/web/** [chip.spec.tsx] *** diff --git a/packages/html-reporter/src/chip.tsx b/packages/html-reporter/src/chip.tsx index f94dcbc6d6..3ae88db040 100644 --- a/packages/html-reporter/src/chip.tsx +++ b/packages/html-reporter/src/chip.tsx @@ -19,7 +19,7 @@ import './chip.css'; import './colors.css'; import './common.css'; import * as icons from './icons'; -import { clsx } from '@web/uiUtils'; +import { clsx } from '@playwright/web/src/uiUtils'; import { useAnchor } from './links'; export const Chip: React.FC<{ diff --git a/packages/html-reporter/src/index.tsx b/packages/html-reporter/src/index.tsx index 4ae3b02591..88854d8693 100644 --- a/packages/html-reporter/src/index.tsx +++ b/packages/html-reporter/src/index.tsx @@ -26,7 +26,7 @@ import { ReportView } from './reportView'; // @ts-ignore const zipjs = zipImport as typeof zip; -import logo from '@web/assets/playwright-logo.svg'; +import logo from '@playwright/web/src/assets/playwright-logo.svg'; import { SearchParamsProvider } from './links'; const link = document.createElement('link'); link.rel = 'shortcut icon'; diff --git a/packages/html-reporter/src/links.tsx b/packages/html-reporter/src/links.tsx index 1e5cad48c1..52dd18cd2e 100644 --- a/packages/html-reporter/src/links.tsx +++ b/packages/html-reporter/src/links.tsx @@ -20,8 +20,8 @@ import * as icons from './icons'; import { TreeItem } from './treeItem'; import { CopyToClipboard } from './copyToClipboard'; import './links.css'; -import { linkifyText } from '@web/renderUtils'; -import { clsx } from '@web/uiUtils'; +import { linkifyText } from '@playwright/web/src/renderUtils'; +import { clsx } from '@playwright/web/src/uiUtils'; export function navigate(href: string | URL) { window.history.pushState({}, '', href); diff --git a/packages/html-reporter/src/tabbedPane.tsx b/packages/html-reporter/src/tabbedPane.tsx index 02d0c6f3b1..5b5761408e 100644 --- a/packages/html-reporter/src/tabbedPane.tsx +++ b/packages/html-reporter/src/tabbedPane.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { clsx } from '@web/uiUtils'; +import { clsx } from '@playwright/web/src/uiUtils'; import './tabbedPane.css'; import * as React from 'react'; diff --git a/packages/html-reporter/src/testCaseView.tsx b/packages/html-reporter/src/testCaseView.tsx index 4e9785ad8a..d24eefb9ab 100644 --- a/packages/html-reporter/src/testCaseView.tsx +++ b/packages/html-reporter/src/testCaseView.tsx @@ -23,9 +23,9 @@ import { Link, ProjectLink, SearchParamsContext } from './links'; import { statusIcon } from './statusIcon'; import './testCaseView.css'; import { TestResultView } from './testResultView'; -import { linkifyText } from '@web/renderUtils'; +import { linkifyText } from '@playwright/web/src/renderUtils'; import { hashStringToInt, msToString } from './utils'; -import { clsx } from '@web/uiUtils'; +import { clsx } from '@playwright/web/src/uiUtils'; import { CopyToClipboardContainer } from './copyToClipboard'; export const TestCaseView: React.FC<{ diff --git a/packages/html-reporter/src/testErrorView.css b/packages/html-reporter/src/testErrorView.css index e29ea2a18b..60720018db 100644 --- a/packages/html-reporter/src/testErrorView.css +++ b/packages/html-reporter/src/testErrorView.css @@ -14,7 +14,7 @@ limitations under the License. */ -@import '@web/third_party/vscode/colors.css'; +@import '@playwright/web/src/third_party/vscode/colors.css'; .test-error-view { white-space: pre; diff --git a/packages/html-reporter/src/testErrorView.tsx b/packages/html-reporter/src/testErrorView.tsx index ea402106a8..ebeeda5627 100644 --- a/packages/html-reporter/src/testErrorView.tsx +++ b/packages/html-reporter/src/testErrorView.tsx @@ -14,11 +14,11 @@ limitations under the License. */ -import { ansi2html } from '@web/ansi2html'; +import { ansi2html } from '@playwright/web/src/ansi2html'; import * as React from 'react'; import './testErrorView.css'; -import type { ImageDiff } from '@web/shared/imageDiffView'; -import { ImageDiffView } from '@web/shared/imageDiffView'; +import type { ImageDiff } from '@playwright/web/src/shared/imageDiffView'; +import { ImageDiffView } from '@playwright/web/src/shared/imageDiffView'; export const TestErrorView: React.FC<{ error: string; diff --git a/packages/html-reporter/src/testFileView.tsx b/packages/html-reporter/src/testFileView.tsx index 6b31d2ebe2..19655550b8 100644 --- a/packages/html-reporter/src/testFileView.tsx +++ b/packages/html-reporter/src/testFileView.tsx @@ -23,7 +23,7 @@ import { generateTraceUrl, Link, navigate, ProjectLink, SearchParamsContext } fr import { statusIcon } from './statusIcon'; import './testFileView.css'; import { video, image, trace } from './icons'; -import { clsx } from '@web/uiUtils'; +import { clsx } from '@playwright/web/src/uiUtils'; export const TestFileView: React.FC; diff --git a/packages/trace-viewer/src/ui/metadataView.tsx b/packages/trace-viewer/src/ui/metadataView.tsx index c1802a4b4d..df259a6fca 100644 --- a/packages/trace-viewer/src/ui/metadataView.tsx +++ b/packages/trace-viewer/src/ui/metadataView.tsx @@ -14,7 +14,7 @@ limitations under the License. */ -import { msToString } from '@web/uiUtils'; +import { msToString } from '@playwright/web/src/uiUtils'; import * as React from 'react'; import type { MultiTraceModel } from './modelUtil'; import './callTab.css'; diff --git a/packages/trace-viewer/src/ui/networkResourceDetails.tsx b/packages/trace-viewer/src/ui/networkResourceDetails.tsx index 0c4af4e969..2500c6ebad 100644 --- a/packages/trace-viewer/src/ui/networkResourceDetails.tsx +++ b/packages/trace-viewer/src/ui/networkResourceDetails.tsx @@ -17,9 +17,9 @@ import type { ResourceSnapshot } from '@trace/snapshot'; import * as React from 'react'; import './networkResourceDetails.css'; -import { TabbedPane } from '@web/components/tabbedPane'; -import { CodeMirrorWrapper } from '@web/components/codeMirrorWrapper'; -import { ToolbarButton } from '@web/components/toolbarButton'; +import { TabbedPane } from '@playwright/web/src/components/tabbedPane'; +import { CodeMirrorWrapper } from '@playwright/web/src/components/codeMirrorWrapper'; +import { ToolbarButton } from '@playwright/web/src/components/toolbarButton'; import { generateCurlCommand, generateFetchCall } from '../third_party/devtools'; import { CopyToClipboardTextButton } from './copyToClipboard'; import { getAPIRequestCodeGen } from './codegen'; diff --git a/packages/trace-viewer/src/ui/networkTab.tsx b/packages/trace-viewer/src/ui/networkTab.tsx index 56cf9325b4..2cb1c2fda5 100644 --- a/packages/trace-viewer/src/ui/networkTab.tsx +++ b/packages/trace-viewer/src/ui/networkTab.tsx @@ -19,11 +19,11 @@ import * as React from 'react'; import type { Boundaries } from './geometry'; import './networkTab.css'; import { NetworkResourceDetails } from './networkResourceDetails'; -import { bytesToString, msToString } from '@web/uiUtils'; +import { bytesToString, msToString } from '@playwright/web/src/uiUtils'; import { PlaceholderPanel } from './placeholderPanel'; import { context, type MultiTraceModel } from './modelUtil'; -import { GridView, type RenderedGridCell } from '@web/components/gridView'; -import { SplitView } from '@web/components/splitView'; +import { GridView, type RenderedGridCell } from '@playwright/web/src/components/gridView'; +import { SplitView } from '@playwright/web/src/components/splitView'; import type { ContextEntry } from '../types/entries'; import { NetworkFilters, defaultFilterState, type FilterState, type ResourceType } from './networkFilters'; import type { Language } from '@isomorphic/locatorGenerators'; diff --git a/packages/trace-viewer/src/ui/recorder/DEPS.list b/packages/trace-viewer/src/ui/recorder/DEPS.list index a504a7dba1..1e6a008e14 100644 --- a/packages/trace-viewer/src/ui/recorder/DEPS.list +++ b/packages/trace-viewer/src/ui/recorder/DEPS.list @@ -1,5 +1,5 @@ [*] @isomorphic/** @trace/** -@web/** +@playwright/web/** ../** diff --git a/packages/trace-viewer/src/ui/recorder/actionListView.tsx b/packages/trace-viewer/src/ui/recorder/actionListView.tsx index 8e9fa0df45..bec311440b 100644 --- a/packages/trace-viewer/src/ui/recorder/actionListView.tsx +++ b/packages/trace-viewer/src/ui/recorder/actionListView.tsx @@ -15,7 +15,7 @@ */ import type * as actionTypes from '@recorder/actions'; -import { ListView } from '@web/components/listView'; +import { ListView } from '@playwright/web/src/components/listView'; import * as React from 'react'; import '../actionList.css'; import { traceParamsForAction } from '@isomorphic/recorderUtils'; diff --git a/packages/trace-viewer/src/ui/recorder/modelContext.tsx b/packages/trace-viewer/src/ui/recorder/modelContext.tsx index 98f450361b..2ecead9529 100644 --- a/packages/trace-viewer/src/ui/recorder/modelContext.tsx +++ b/packages/trace-viewer/src/ui/recorder/modelContext.tsx @@ -14,7 +14,7 @@ limitations under the License. */ -import { sha1 } from '@web/uiUtils'; +import { sha1 } from '@playwright/web/src/uiUtils'; import * as React from 'react'; import type { ContextEntry } from '../../types/entries'; import { MultiTraceModel } from '../modelUtil'; diff --git a/packages/trace-viewer/src/ui/recorder/recorderView.tsx b/packages/trace-viewer/src/ui/recorder/recorderView.tsx index e9014a6cea..49e083aa72 100644 --- a/packages/trace-viewer/src/ui/recorder/recorderView.tsx +++ b/packages/trace-viewer/src/ui/recorder/recorderView.tsx @@ -15,14 +15,14 @@ */ import type * as actionTypes from '@recorder/actions'; -import { SourceChooser } from '@web/components/sourceChooser'; -import { SplitView } from '@web/components/splitView'; -import type { TabbedPaneTabModel } from '@web/components/tabbedPane'; -import { TabbedPane } from '@web/components/tabbedPane'; -import { Toolbar } from '@web/components/toolbar'; -import { ToolbarButton, ToolbarSeparator } from '@web/components/toolbarButton'; -import { toggleTheme } from '@web/theme'; -import { copy, useSetting } from '@web/uiUtils'; +import { SourceChooser } from '@playwright/web/src/components/sourceChooser'; +import { SplitView } from '@playwright/web/src/components/splitView'; +import type { TabbedPaneTabModel } from '@playwright/web/src/components/tabbedPane'; +import { TabbedPane } from '@playwright/web/src/components/tabbedPane'; +import { Toolbar } from '@playwright/web/src/components/toolbar'; +import { ToolbarButton, ToolbarSeparator } from '@playwright/web/src/components/toolbarButton'; +import { toggleTheme } from '@playwright/web/src/theme'; +import { copy, useSetting } from '@playwright/web/src/uiUtils'; import * as React from 'react'; import { ConsoleTab, useConsoleTabModel } from '../consoleTab'; import type { Boundaries } from '../geometry'; diff --git a/packages/trace-viewer/src/ui/snapshotTab.tsx b/packages/trace-viewer/src/ui/snapshotTab.tsx index 995e2d173f..cc30548889 100644 --- a/packages/trace-viewer/src/ui/snapshotTab.tsx +++ b/packages/trace-viewer/src/ui/snapshotTab.tsx @@ -18,16 +18,16 @@ import './snapshotTab.css'; import * as React from 'react'; import type { ActionTraceEvent } from '@trace/trace'; import { context, type MultiTraceModel, prevInList } from './modelUtil'; -import { Toolbar } from '@web/components/toolbar'; -import { ToolbarButton } from '@web/components/toolbarButton'; -import { clsx, useMeasure } from '@web/uiUtils'; +import { Toolbar } from '@playwright/web/src/components/toolbar'; +import { ToolbarButton } from '@playwright/web/src/components/toolbarButton'; +import { clsx, useMeasure } from '@playwright/web/src/uiUtils'; import { InjectedScript } from '@injected/injectedScript'; import { Recorder } from '@injected/recorder/recorder'; import ConsoleAPI from '@injected/consoleApi'; import { asLocator } from '@isomorphic/locatorGenerators'; import type { Language } from '@isomorphic/locatorGenerators'; import { locatorOrSelectorAsSelector } from '@isomorphic/locatorParser'; -import { TabbedPaneTab } from '@web/components/tabbedPane'; +import { TabbedPaneTab } from '@playwright/web/src/components/tabbedPane'; import { BrowserFrame } from './browserFrame'; import type { ElementInfo } from '@recorder/recorderTypes'; diff --git a/packages/trace-viewer/src/ui/sourceTab.tsx b/packages/trace-viewer/src/ui/sourceTab.tsx index 1dd9170f67..aedba3f7c6 100644 --- a/packages/trace-viewer/src/ui/sourceTab.tsx +++ b/packages/trace-viewer/src/ui/sourceTab.tsx @@ -14,18 +14,18 @@ * limitations under the License. */ -import { SplitView } from '@web/components/splitView'; +import { SplitView } from '@playwright/web/src/components/splitView'; import * as React from 'react'; -import { useAsyncMemo } from '@web/uiUtils'; +import { useAsyncMemo } from '@playwright/web/src/uiUtils'; import './sourceTab.css'; import { StackTraceView } from './stackTrace'; -import { CodeMirrorWrapper } from '@web/components/codeMirrorWrapper'; -import type { SourceHighlight } from '@web/components/codeMirrorWrapper'; +import { CodeMirrorWrapper } from '@playwright/web/src/components/codeMirrorWrapper'; +import type { SourceHighlight } from '@playwright/web/src/components/codeMirrorWrapper'; import type { SourceLocation, SourceModel } from './modelUtil'; import type { StackFrame } from '@protocol/channels'; import { CopyToClipboard } from './copyToClipboard'; -import { ToolbarButton } from '@web/components/toolbarButton'; -import { Toolbar } from '@web/components/toolbar'; +import { ToolbarButton } from '@playwright/web/src/components/toolbarButton'; +import { Toolbar } from '@playwright/web/src/components/toolbar'; export const SourceTab: React.FunctionComponent<{ stack?: StackFrame[], diff --git a/packages/trace-viewer/src/ui/stackTrace.tsx b/packages/trace-viewer/src/ui/stackTrace.tsx index 6a0bad1672..650ff94d41 100644 --- a/packages/trace-viewer/src/ui/stackTrace.tsx +++ b/packages/trace-viewer/src/ui/stackTrace.tsx @@ -16,7 +16,7 @@ import * as React from 'react'; import './stackTrace.css'; -import { ListView } from '@web/components/listView'; +import { ListView } from '@playwright/web/src/components/listView'; import type { StackFrame } from '@protocol/channels'; const StackFrameListView = ListView; diff --git a/packages/trace-viewer/src/ui/tag.tsx b/packages/trace-viewer/src/ui/tag.tsx index 057d70ac66..31eda45a04 100644 --- a/packages/trace-viewer/src/ui/tag.tsx +++ b/packages/trace-viewer/src/ui/tag.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { clsx } from '@web/uiUtils'; +import { clsx } from '@playwright/web/src/uiUtils'; import './tag.css'; export const TagView = ({ tag, style, onClick }: { tag: string, style?: React.CSSProperties, onClick?: (e: React.MouseEvent) => void }) => { diff --git a/packages/trace-viewer/src/ui/timeline.tsx b/packages/trace-viewer/src/ui/timeline.tsx index e2dbfed8c1..842aad8a1d 100644 --- a/packages/trace-viewer/src/ui/timeline.tsx +++ b/packages/trace-viewer/src/ui/timeline.tsx @@ -14,8 +14,8 @@ * limitations under the License. */ -import { clsx, msToString, useMeasure } from '@web/uiUtils'; -import { GlassPane } from '@web/shared/glassPane'; +import { clsx, msToString, useMeasure } from '@playwright/web/src/uiUtils'; +import { GlassPane } from '@playwright/web/src/shared/glassPane'; import * as React from 'react'; import type { Boundaries } from './geometry'; import { FilmStrip } from './filmStrip'; diff --git a/packages/trace-viewer/src/ui/uiModeFiltersView.tsx b/packages/trace-viewer/src/ui/uiModeFiltersView.tsx index 8ed0f47982..dfc7ab11ce 100644 --- a/packages/trace-viewer/src/ui/uiModeFiltersView.tsx +++ b/packages/trace-viewer/src/ui/uiModeFiltersView.tsx @@ -14,10 +14,10 @@ * limitations under the License. */ -import '@web/common.css'; -import { Expandable } from '@web/components/expandable'; -import '@web/third_party/vscode/codicon.css'; -import { settings } from '@web/uiUtils'; +import '@playwright/web/src/common.css'; +import { Expandable } from '@playwright/web/src/components/expandable'; +import '@playwright/web/src/third_party/vscode/codicon.css'; +import { settings } from '@playwright/web/src/uiUtils'; import React from 'react'; import './uiModeFiltersView.css'; import type { TeleSuiteUpdaterTestModel } from '@testIsomorphic/teleSuiteUpdater'; diff --git a/packages/trace-viewer/src/ui/uiModeTestListView.tsx b/packages/trace-viewer/src/ui/uiModeTestListView.tsx index 1d6ddd850c..4d6a96e1e8 100644 --- a/packages/trace-viewer/src/ui/uiModeTestListView.tsx +++ b/packages/trace-viewer/src/ui/uiModeTestListView.tsx @@ -16,13 +16,13 @@ import type { TreeItem } from '@testIsomorphic/testTree'; import type { TestTree } from '@testIsomorphic/testTree'; -import '@web/common.css'; -import { Toolbar } from '@web/components/toolbar'; -import { ToolbarButton } from '@web/components/toolbarButton'; -import type { TreeState } from '@web/components/treeView'; -import { TreeView } from '@web/components/treeView'; -import '@web/third_party/vscode/codicon.css'; -import { msToString } from '@web/uiUtils'; +import '@playwright/web/src/common.css'; +import { Toolbar } from '@playwright/web/src/components/toolbar'; +import { ToolbarButton } from '@playwright/web/src/components/toolbarButton'; +import type { TreeState } from '@playwright/web/src/components/treeView'; +import { TreeView } from '@playwright/web/src/components/treeView'; +import '@playwright/web/src/third_party/vscode/codicon.css'; +import { msToString } from '@playwright/web/src/uiUtils'; import type * as reporterTypes from 'playwright/types/testReporter'; import React from 'react'; import type { SourceLocation } from './modelUtil'; diff --git a/packages/trace-viewer/src/ui/uiModeTraceView.tsx b/packages/trace-viewer/src/ui/uiModeTraceView.tsx index cf35d89007..1c4a72b2fe 100644 --- a/packages/trace-viewer/src/ui/uiModeTraceView.tsx +++ b/packages/trace-viewer/src/ui/uiModeTraceView.tsx @@ -16,8 +16,8 @@ import { artifactsFolderName } from '@testIsomorphic/folders'; import type { TreeItem } from '@testIsomorphic/testTree'; -import '@web/common.css'; -import '@web/third_party/vscode/codicon.css'; +import '@playwright/web/src/common.css'; +import '@playwright/web/src/third_party/vscode/codicon.css'; import type * as reporterTypes from 'playwright/types/testReporter'; import React from 'react'; import type { ContextEntry } from '../types/entries'; diff --git a/packages/trace-viewer/src/ui/uiModeView.tsx b/packages/trace-viewer/src/ui/uiModeView.tsx index aa15e5a0a5..c786fbb130 100644 --- a/packages/trace-viewer/src/ui/uiModeView.tsx +++ b/packages/trace-viewer/src/ui/uiModeView.tsx @@ -14,22 +14,22 @@ * limitations under the License. */ -import '@web/third_party/vscode/codicon.css'; -import '@web/common.css'; +import '@playwright/web/src/third_party/vscode/codicon.css'; +import '@playwright/web/src/common.css'; import React from 'react'; import { TeleSuite } from '@testIsomorphic/teleReceiver'; import { TeleSuiteUpdater, type TeleSuiteUpdaterProgress, type TeleSuiteUpdaterTestModel } from '@testIsomorphic/teleSuiteUpdater'; import type { TeleTestCase } from '@testIsomorphic/teleReceiver'; import type * as reporterTypes from 'playwright/types/testReporter'; -import { SplitView } from '@web/components/splitView'; +import { SplitView } from '@playwright/web/src/components/splitView'; import type { SourceLocation } from './modelUtil'; import './uiModeView.css'; -import { ToolbarButton } from '@web/components/toolbarButton'; -import { Toolbar } from '@web/components/toolbar'; -import type { XtermDataSource } from '@web/components/xtermWrapper'; -import { XtermWrapper } from '@web/components/xtermWrapper'; -import { useDarkModeSetting } from '@web/theme'; -import { clsx, settings, useSetting } from '@web/uiUtils'; +import { ToolbarButton } from '@playwright/web/src/components/toolbarButton'; +import { Toolbar } from '@playwright/web/src/components/toolbar'; +import type { XtermDataSource } from '@playwright/web/src/components/xtermWrapper'; +import { XtermWrapper } from '@playwright/web/src/components/xtermWrapper'; +import { useDarkModeSetting } from '@playwright/web/src/theme'; +import { clsx, settings, useSetting } from '@playwright/web/src/uiUtils'; import { statusEx, TestTree } from '@testIsomorphic/testTree'; import type { TreeItem } from '@testIsomorphic/testTree'; import { TestServerConnection, WebSocketTestServerTransport } from '@testIsomorphic/testServerConnection'; diff --git a/packages/trace-viewer/src/ui/workbench.tsx b/packages/trace-viewer/src/ui/workbench.tsx index ad8a099ea4..3f01945a95 100644 --- a/packages/trace-viewer/src/ui/workbench.tsx +++ b/packages/trace-viewer/src/ui/workbench.tsx @@ -14,7 +14,7 @@ limitations under the License. */ -import { SplitView } from '@web/components/splitView'; +import { SplitView } from '@playwright/web/src/components/splitView'; import * as React from 'react'; import { ActionList } from './actionList'; import { CallTab } from './callTab'; @@ -27,16 +27,16 @@ import type * as modelUtil from './modelUtil'; import { NetworkTab, useNetworkTabModel } from './networkTab'; import { SnapshotTabsView } from './snapshotTab'; import { SourceTab } from './sourceTab'; -import { TabbedPane } from '@web/components/tabbedPane'; -import type { TabbedPaneTabModel } from '@web/components/tabbedPane'; +import { TabbedPane } from '@playwright/web/src/components/tabbedPane'; +import type { TabbedPaneTabModel } from '@playwright/web/src/components/tabbedPane'; import { Timeline } from './timeline'; import { MetadataView } from './metadataView'; import { AttachmentsTab } from './attachmentsTab'; import { AnnotationsTab } from './annotationsTab'; import type { Boundaries } from './geometry'; import { InspectorTab } from './inspectorTab'; -import { ToolbarButton } from '@web/components/toolbarButton'; -import { useSetting, msToString, clsx } from '@web/uiUtils'; +import { ToolbarButton } from '@playwright/web/src/components/toolbarButton'; +import { useSetting, msToString, clsx } from '@playwright/web/src/uiUtils'; import type { Entry } from '@trace/har'; import './workbench.css'; import { testStatusIcon, testStatusText } from './testUtils'; diff --git a/packages/trace-viewer/src/ui/workbenchLoader.tsx b/packages/trace-viewer/src/ui/workbenchLoader.tsx index 9f3fe83fc4..f588055bee 100644 --- a/packages/trace-viewer/src/ui/workbenchLoader.tsx +++ b/packages/trace-viewer/src/ui/workbenchLoader.tsx @@ -14,12 +14,12 @@ limitations under the License. */ -import { ToolbarButton } from '@web/components/toolbarButton'; +import { ToolbarButton } from '@playwright/web/src/components/toolbarButton'; import * as React from 'react'; import type { ContextEntry } from '../types/entries'; import { MultiTraceModel } from './modelUtil'; import './workbenchLoader.css'; -import { toggleTheme } from '@web/theme'; +import { toggleTheme } from '@playwright/web/src/theme'; import { Workbench } from './workbench'; import { TestServerConnection, WebSocketTestServerTransport } from '@testIsomorphic/testServerConnection'; diff --git a/packages/trace-viewer/src/uiMode.tsx b/packages/trace-viewer/src/uiMode.tsx index 5dac2082e8..a0df75b9a5 100644 --- a/packages/trace-viewer/src/uiMode.tsx +++ b/packages/trace-viewer/src/uiMode.tsx @@ -14,9 +14,9 @@ * limitations under the License. */ -import '@web/common.css'; -import { applyTheme } from '@web/theme'; -import '@web/third_party/vscode/codicon.css'; +import '@playwright/web/src/common.css'; +import { applyTheme } from '@playwright/web/src/theme'; +import '@playwright/web/src/third_party/vscode/codicon.css'; import * as ReactDOM from 'react-dom/client'; import { UIModeView } from './ui/uiModeView'; diff --git a/packages/trace-viewer/tsconfig.json b/packages/trace-viewer/tsconfig.json index 41b2ed3948..4fb81135bd 100644 --- a/packages/trace-viewer/tsconfig.json +++ b/packages/trace-viewer/tsconfig.json @@ -22,7 +22,6 @@ "@recorder/*": ["../recorder/src/*"], "@testIsomorphic/*": ["../playwright/src/isomorphic/*"], "@trace/*": ["../trace/src/*"], - "@web/*": ["../web/src/*"], // Resolving type dependencies will start processing types in @playwright/test // which in turn will start parsing the files and hence stumble upon the core // imports. diff --git a/packages/trace-viewer/vite.config.ts b/packages/trace-viewer/vite.config.ts index c26e020fde..34a4f9ddfc 100644 --- a/packages/trace-viewer/vite.config.ts +++ b/packages/trace-viewer/vite.config.ts @@ -36,7 +36,6 @@ export default defineConfig({ '@protocol': path.resolve(__dirname, '../protocol/src'), '@testIsomorphic': path.resolve(__dirname, '../playwright/src/isomorphic'), '@trace': path.resolve(__dirname, '../trace/src'), - '@web': path.resolve(__dirname, '../web/src'), }, }, build: { diff --git a/packages/trace-viewer/vite.sw.config.ts b/packages/trace-viewer/vite.sw.config.ts index 60e90b96ac..6a57c42b1d 100644 --- a/packages/trace-viewer/vite.sw.config.ts +++ b/packages/trace-viewer/vite.sw.config.ts @@ -32,7 +32,6 @@ export default defineConfig({ '@protocol': path.resolve(__dirname, '../protocol/src'), '@testIsomorphic': path.resolve(__dirname, '../playwright-core/src/utils/testIsomorphic'), '@trace': path.resolve(__dirname, '../trace/src'), - '@web': path.resolve(__dirname, '../web/src'), }, }, publicDir: false, diff --git a/packages/web/package.json b/packages/web/package.json index 0465fdf4c4..eba828b332 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,5 +1,5 @@ { - "name": "web", + "name": "@playwright/web", "private": true, "version": "0.0.0", "scripts": {}, diff --git a/packages/web/src/components/errorMessage.tsx b/packages/web/src/components/errorMessage.tsx index c9f4500ece..a37f28e2ec 100644 --- a/packages/web/src/components/errorMessage.tsx +++ b/packages/web/src/components/errorMessage.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ansi2html } from '@web/ansi2html'; +import { ansi2html } from '../ansi2html'; import * as React from 'react'; import './errorMessage.css'; diff --git a/packages/web/src/components/gridView.tsx b/packages/web/src/components/gridView.tsx index 10fc48c247..303de4b8d3 100644 --- a/packages/web/src/components/gridView.tsx +++ b/packages/web/src/components/gridView.tsx @@ -18,7 +18,7 @@ import * as React from 'react'; import { ListView } from './listView'; import type { ListViewProps } from './listView'; import './gridView.css'; -import { ResizeView } from '@web/shared/resizeView'; +import { ResizeView } from '../shared/resizeView'; export type Sorting = { by: keyof T, negate: boolean }; diff --git a/packages/web/src/components/listView.tsx b/packages/web/src/components/listView.tsx index 73f9b65b8f..079936c4a1 100644 --- a/packages/web/src/components/listView.tsx +++ b/packages/web/src/components/listView.tsx @@ -16,7 +16,7 @@ import * as React from 'react'; import './listView.css'; -import { clsx, scrollIntoViewIfNeeded } from '@web/uiUtils'; +import { clsx, scrollIntoViewIfNeeded } from '../uiUtils'; export type ListViewProps = { name: string, diff --git a/packages/web/src/components/tabbedPane.tsx b/packages/web/src/components/tabbedPane.tsx index fca5852110..2f5966cc51 100644 --- a/packages/web/src/components/tabbedPane.tsx +++ b/packages/web/src/components/tabbedPane.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { clsx } from '@web/uiUtils'; +import { clsx } from '../uiUtils'; import './tabbedPane.css'; import { Toolbar } from './toolbar'; import * as React from 'react'; diff --git a/packages/web/src/components/toolbar.tsx b/packages/web/src/components/toolbar.tsx index a81b834f4a..32a4227d7f 100644 --- a/packages/web/src/components/toolbar.tsx +++ b/packages/web/src/components/toolbar.tsx @@ -14,7 +14,7 @@ limitations under the License. */ -import { clsx } from '@web/uiUtils'; +import { clsx } from '../uiUtils'; import './toolbar.css'; import * as React from 'react'; diff --git a/packages/web/src/components/toolbarButton.tsx b/packages/web/src/components/toolbarButton.tsx index 2cdd85b9b7..521951bfee 100644 --- a/packages/web/src/components/toolbarButton.tsx +++ b/packages/web/src/components/toolbarButton.tsx @@ -17,7 +17,7 @@ import './toolbarButton.css'; import '../third_party/vscode/codicon.css'; import * as React from 'react'; -import { clsx } from '@web/uiUtils'; +import { clsx } from '../uiUtils'; export interface ToolbarButtonProps { title: string, diff --git a/packages/web/src/components/treeView.tsx b/packages/web/src/components/treeView.tsx index 14f2e35195..f478ba4025 100644 --- a/packages/web/src/components/treeView.tsx +++ b/packages/web/src/components/treeView.tsx @@ -15,7 +15,7 @@ */ import * as React from 'react'; -import { clsx, scrollIntoViewIfNeeded } from '@web/uiUtils'; +import { clsx, scrollIntoViewIfNeeded } from '../uiUtils'; import './treeView.css'; export type TreeItem = { diff --git a/packages/web/src/components/xtermWrapper.tsx b/packages/web/src/components/xtermWrapper.tsx index 70a3e47114..9293c558d0 100644 --- a/packages/web/src/components/xtermWrapper.tsx +++ b/packages/web/src/components/xtermWrapper.tsx @@ -19,8 +19,8 @@ import './xtermWrapper.css'; import type { ITheme, Terminal } from 'xterm'; import type { FitAddon } from 'xterm-addon-fit'; import type { XtermModule } from './xtermModule'; -import { currentTheme, addThemeListener, removeThemeListener } from '@web/theme'; -import { useMeasure } from '@web/uiUtils'; +import { currentTheme, addThemeListener, removeThemeListener } from '../theme'; +import { useMeasure } from '../uiUtils'; export type XtermDataSource = { pending: (string | Uint8Array)[]; diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 1a1e3d7527..4ba02a2be1 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -15,7 +15,6 @@ "@protocol/*": ["packages/protocol/src/*"], "@recorder/*": ["packages/recorder/src/*"], "@trace/*": ["packages/trace/src/*"], - "@web/*": ["packages/web/src/*"], }, }, "include": ["**/*.spec.js", "**/*.ts"], diff --git a/tsconfig.json b/tsconfig.json index acb0e0d63d..8d59f05e4f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,7 +17,6 @@ "@recorder/*": ["./packages/recorder/src/*"], "@testIsomorphic/*": ["./packages/playwright/src/isomorphic/*"], "@trace/*": ["./packages/trace/src/*"], - "@web/*": ["./packages/web/src/*"], "playwright-core/lib/*": ["./packages/playwright-core/src/*"], "playwright/lib/*": ["./packages/playwright/src/*"], }, diff --git a/utils/check_deps.js b/utils/check_deps.js index 79eca03062..7db56e48e8 100644 --- a/utils/check_deps.js +++ b/utils/check_deps.js @@ -26,7 +26,7 @@ const builtins = new Set(Module.builtinModules); const packagesDir = path.resolve(path.join(__dirname, '..', 'packages')); const packages = new Map(); -packages.set('web', packagesDir + '/web/src/'); +packages.set('@playwright/web', packagesDir + '/web/'); packages.set('injected', packagesDir + '/playwright-core/src/server/injected/'); packages.set('isomorphic', packagesDir + '/playwright-core/src/utils/isomorphic/'); packages.set('testIsomorphic', packagesDir + '/playwright/src/isomorphic/'); @@ -128,14 +128,24 @@ async function innerCheckDeps(root) { importPath = path.resolve(path.dirname(fileName), importName); } else if (importName.startsWith('@')) { const tokens = importName.substring(1).split('/'); - const package = tokens[0]; - if (packages.has(package)) - importPath = packages.get(package) + tokens.slice(1).join('/'); + if (packages.has(`@${tokens[0]}/${tokens[1]}`)) { + // Namespaced package. + importPath = packages.get(`@${tokens[0]}/${tokens[1]}`) + tokens.slice(2).join('/'); + } else if (packages.has(tokens[0])) { + // Aliases. + importPath = packages.get(tokens[0]) + tokens.slice(1).join('/'); + } } const mergedDeps = calculateDeps(fileName); if (mergedDeps.includes('***')) return; + + // Unresolved import. + if (allowImport(fileName, importName, mergedDeps)) + return; + + // Resolved import. if (importPath) { if (!fs.existsSync(importPath)) { if (fs.existsSync(importPath + '.ts')) @@ -192,8 +202,9 @@ async function innerCheckDeps(root) { } if (line === '***') group.push('***'); - else if (line.startsWith('@')) - group.push(line.replace(/@([\w-]+)\/(.*)/, (_, arg1, arg2) => packages.get(arg1) + arg2)); + else if (line.startsWith('@')) { + group.push(line); + } else group.push(path.resolve(depsDirectory, line)); }