diff --git a/extension/package.json b/extension/package.json index e7d891a105..80b9ea872b 100644 --- a/extension/package.json +++ b/extension/package.json @@ -1635,7 +1635,7 @@ "vscode-languageclient": "8.1.0" }, "devDependencies": { - "@swc/core": "1.3.38", + "@swc/core": "1.3.39", "@swc/jest": "0.2.24", "@types/chai": "4.3.4", "@types/chai-as-promised": "7.1.5", @@ -1659,8 +1659,8 @@ "@types/vscode": "1.64.0", "@vscode/test-electron": "2.3.0", "@vscode/vsce": "2.18.0", - "@wdio/cli": "8.5.7", - "@wdio/local-runner": "8.5.7", + "@wdio/cli": "8.5.8", + "@wdio/local-runner": "8.5.8", "@wdio/mocha-framework": "8.5.6", "@wdio/spec-reporter": "8.4.0", "chai": "4.3.7", @@ -1670,7 +1670,7 @@ "fork-ts-checker-webpack-plugin": "8.0.0", "jest": "29.5.0", "jest-environment-node": "29.5.0", - "lint-staged": "13.1.4", + "lint-staged": "13.2.0", "mocha": "10.2.0", "mock-require": "3.0.3", "process-exists": "4.1.0", @@ -1680,7 +1680,7 @@ "ts-loader": "9.4.2", "vscode-uri": "3.0.7", "wdio-vscode-service": "5.0.0", - "webdriverio": "8.5.7", + "webdriverio": "8.5.8", "webpack": "5.76.0", "webpack-cli": "5.0.1" }, diff --git a/extension/src/fileSystem/index.ts b/extension/src/fileSystem/index.ts index 0b21c904d1..bbee91ba27 100644 --- a/extension/src/fileSystem/index.ts +++ b/extension/src/fileSystem/index.ts @@ -10,7 +10,7 @@ import { writeFileSync } from 'fs-extra' import { load } from 'js-yaml' -import { Uri, workspace, window } from 'vscode' +import { Uri, workspace, window, commands, ViewColumn } from 'vscode' import { standardizePath } from './path' import { definedAndNonEmpty } from '../util/array' import { Logger } from '../common/logger' @@ -141,6 +141,11 @@ export const openFileInEditor = async (filePath: string) => { return document } +export const openImageFileInEditor = async (imagePath: string) => + await commands.executeCommand('vscode.open', Uri.file(imagePath), { + viewColumn: ViewColumn.Beside + }) + export const findOrCreateDvcYamlFile = ( cwd: string, trainingScript: string, diff --git a/extension/src/plots/webview/messages.ts b/extension/src/plots/webview/messages.ts index d2eea75cc9..03d187f4b1 100644 --- a/extension/src/plots/webview/messages.ts +++ b/extension/src/plots/webview/messages.ts @@ -21,7 +21,7 @@ import { import { PlotsModel } from '../model' import { PathsModel } from '../paths/model' import { BaseWebview } from '../../webview' -import { getModifiedTime } from '../../fileSystem' +import { getModifiedTime, openImageFileInEditor } from '../../fileSystem' import { pickCustomPlots, pickMetricAndParam } from '../model/quickPick' import { Title } from '../../vscode/title' import { ColumnType } from '../../experiments/webview/contract' @@ -112,9 +112,13 @@ export class WebviewMessages { case MessageFromWebviewType.TOGGLE_EXPERIMENT: return this.setExperimentStatus(message.payload) case MessageFromWebviewType.ZOOM_PLOT: + if (message.payload) { + const imagePath = this.revertCorrectUrl(message.payload) + void openImageFileInEditor(imagePath) + } return sendTelemetryEvent( EventName.VIEWS_PLOTS_ZOOM_PLOT, - undefined, + { isImage: !!message.payload }, undefined ) default: @@ -420,6 +424,15 @@ export class WebviewMessages { } } + private revertCorrectUrl(url: string) { + const webview = this.getWebview() + if (webview) { + const toRemove = webview.getWebviewUri('') + return url.replace(toRemove, '').split('?')[0] + } + return url + } + private getCheckpointPlots() { return this.plots.getCheckpointPlots() || null } diff --git a/extension/src/telemetry/constants.ts b/extension/src/telemetry/constants.ts index 5e1dc505d6..63781387bc 100644 --- a/extension/src/telemetry/constants.ts +++ b/extension/src/telemetry/constants.ts @@ -258,7 +258,7 @@ export interface IEventNamePropertyMapping { [EventName.VIEWS_PLOTS_SELECT_EXPERIMENTS]: undefined [EventName.VIEWS_PLOTS_SELECT_PLOTS]: undefined [EventName.VIEWS_PLOTS_EXPERIMENT_TOGGLE]: undefined - [EventName.VIEWS_PLOTS_ZOOM_PLOT]: undefined + [EventName.VIEWS_PLOTS_ZOOM_PLOT]: { isImage: boolean } [EventName.VIEWS_REORDER_PLOTS_METRICS]: undefined [EventName.VIEWS_REORDER_PLOTS_CUSTOM]: undefined [EventName.VIEWS_REORDER_PLOTS_TEMPLATES]: undefined diff --git a/extension/src/test/e2e/wdio.conf.ts b/extension/src/test/e2e/wdio.conf.ts index e789369904..884319609a 100644 --- a/extension/src/test/e2e/wdio.conf.ts +++ b/extension/src/test/e2e/wdio.conf.ts @@ -47,7 +47,7 @@ export const config: Options.Testrunner = { capabilities: [ { browserName: 'vscode', - browserVersion: 'stable', + browserVersion: 'insiders', 'wdio:vscodeOptions': { extensionPath, userSettings: { diff --git a/extension/src/test/fixtures/plotsDiff/index.ts b/extension/src/test/fixtures/plotsDiff/index.ts index 5da5471f9f..fe44d3e839 100644 --- a/extension/src/test/fixtures/plotsDiff/index.ts +++ b/extension/src/test/fixtures/plotsDiff/index.ts @@ -450,11 +450,8 @@ const getImageData = (baseUrl: string, joinFunc = join) => ({ ] }) -export const getOutput = ( - baseUrl: string, - joinFunc?: (...args: string[]) => string -): PlotsOutput => ({ - ...getImageData(baseUrl, joinFunc), +export const getOutput = (baseUrl: string): PlotsOutput => ({ + ...getImageData(baseUrl), ...basicVega, ...require('./vega').default }) @@ -690,6 +687,7 @@ export const getComparisonWebviewMessage = ( joinFunc?: (...args: string[]) => string ): PlotsComparisonData => { const plotAcc = [] as ComparisonPlots + for (const [path, plots] of Object.entries(getImageData(baseUrl, joinFunc))) { const revisionsAcc: ComparisonRevisionData = {} for (const { url, revisions } of plots) { @@ -697,7 +695,10 @@ export const getComparisonWebviewMessage = ( if (!revision) { continue } - revisionsAcc[revision] = { url: `${url}?${MOCK_IMAGE_MTIME}`, revision } + revisionsAcc[revision] = { + url: `${url}?${MOCK_IMAGE_MTIME}`, + revision + } } plotAcc.push({ path, revisions: revisionsAcc }) diff --git a/extension/src/test/suite/plots/index.test.ts b/extension/src/test/suite/plots/index.test.ts index a0a8bc4a37..ec50f25d09 100644 --- a/extension/src/test/suite/plots/index.test.ts +++ b/extension/src/test/suite/plots/index.test.ts @@ -4,6 +4,7 @@ import cloneDeep from 'lodash.clonedeep' import { afterEach, beforeEach, describe, it, suite } from 'mocha' import { expect } from 'chai' import { restore, spy, stub } from 'sinon' +import { commands, Uri } from 'vscode' import { buildPlots } from '../plots/util' import { Disposable } from '../../../extension' import expShowFixtureWithoutErrors from '../../fixtures/expShow/base/noErrors' @@ -530,11 +531,53 @@ suite('Plots Test Suite', () => { expect(mockSendTelemetryEvent).to.be.calledOnce expect(mockSendTelemetryEvent).to.be.calledWithExactly( EventName.VIEWS_PLOTS_ZOOM_PLOT, - undefined, + { isImage: false }, + undefined + ) + }).timeout(WEBVIEW_TEST_TIMEOUT) + + it('should handle a plot zoomed message from the webview for an image', async () => { + const { plots } = await buildPlots(disposable, plotsDiffFixture) + + const webview = await plots.showWebview() + + const mockSendTelemetryEvent = stub(Telemetry, 'sendTelemetryEvent') + const mockMessageReceived = getMessageReceivedEmitter(webview) + + mockMessageReceived.fire({ + payload: webview.getWebviewUri('a/path.jpg'), + type: MessageFromWebviewType.ZOOM_PLOT + }) + + expect(mockSendTelemetryEvent).to.be.calledOnce + expect(mockSendTelemetryEvent).to.be.calledWithExactly( + EventName.VIEWS_PLOTS_ZOOM_PLOT, + { isImage: true }, undefined ) }).timeout(WEBVIEW_TEST_TIMEOUT) + it('should open an image when receiving a plot zoomed message from the webview with a payload', async () => { + const { plots } = await buildPlots(disposable, plotsDiffFixture) + + const webview = await plots.showWebview() + const imagePath = 'some/path/image.jpg' + + stub(Telemetry, 'sendTelemetryEvent') + const mockExecuteCommands = stub(commands, 'executeCommand') + const mockMessageReceived = getMessageReceivedEmitter(webview) + + mockMessageReceived.fire({ + payload: webview.getWebviewUri(imagePath), + type: MessageFromWebviewType.ZOOM_PLOT + }) + + expect(mockExecuteCommands).to.be.calledWith( + 'vscode.open', + Uri.file(imagePath) + ) + }).timeout(WEBVIEW_TEST_TIMEOUT) + it('should handle a custom plots reordered message from the webview', async () => { const { plots, plotsModel, messageSpy } = await buildPlots( disposable, diff --git a/extension/src/webview/contract.ts b/extension/src/webview/contract.ts index 732294c659..ed12376331 100644 --- a/extension/src/webview/contract.ts +++ b/extension/src/webview/contract.ts @@ -238,7 +238,7 @@ export type MessageFromWebview = | { type: MessageFromWebviewType.OPEN_STUDIO_PROFILE } | { type: MessageFromWebviewType.SAVE_STUDIO_TOKEN } | { type: MessageFromWebviewType.ADD_CONFIGURATION } - | { type: MessageFromWebviewType.ZOOM_PLOT } + | { type: MessageFromWebviewType.ZOOM_PLOT; payload?: string } | { type: MessageFromWebviewType.OPEN_EXPERIMENTS_WEBVIEW } export type MessageToWebview = { diff --git a/languageServer/package.json b/languageServer/package.json index 77d68226ff..b544607ae1 100644 --- a/languageServer/package.json +++ b/languageServer/package.json @@ -25,14 +25,14 @@ "test": "jest --collect-coverage" }, "devDependencies": { - "@swc/core": "1.3.38", + "@swc/core": "1.3.39", "@swc/jest": "0.2.24", "@types/jest": "29.4.0", "clean-webpack-plugin": "4.0.0", "copy-webpack-plugin": "11.0.0", "fork-ts-checker-webpack-plugin": "8.0.0", "ts-loader": "9.4.2", - "lint-staged": "13.1.4", + "lint-staged": "13.2.0", "jest": "29.5.0", "webpack": "5.76.0", "webpack-cli": "5.0.1", diff --git a/package.json b/package.json index 2a25eabb9a..506c7bf807 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "eslint-plugin-unicorn": "46.0.0", "husky": "8.0.3", "jest": "29.5.0", - "lint-staged": "13.1.4", + "lint-staged": "13.2.0", "npm-run-all": "4.1.5", "nyc": "15.1.0", "prettier": "2.8.4", @@ -74,7 +74,7 @@ "fastify": "3.29.5", "json5": "2.2.3", "loader-utils": "2.0.4", - "terser": "5.16.5", + "terser": "5.16.6", "trim-newlines": "3.0.1", "trim": "1.0.1" }, diff --git a/webview/package.json b/webview/package.json index 9e220f3855..43e8c9e347 100644 --- a/webview/package.json +++ b/webview/package.json @@ -47,7 +47,7 @@ "@storybook/react": "6.5.16", "@storybook/testing-library": "0.0.13", "@svgr/cli": "6.5.1", - "@swc/core": "1.3.38", + "@swc/core": "1.3.39", "@swc/jest": "0.2.24", "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "14.0.0", @@ -68,7 +68,7 @@ "jest": "29.5.0", "jest-canvas-mock": "2.4.0", "jest-environment-jsdom": "29.5.0", - "lint-staged": "13.1.4", + "lint-staged": "13.2.0", "raw-loader": "4.0.2", "sass": "1.58.3", "sass-loader": "13.2.0", diff --git a/webview/src/plots/components/App.test.tsx b/webview/src/plots/components/App.test.tsx index 83e9f5960e..b18cfb7fa7 100644 --- a/webview/src/plots/components/App.test.tsx +++ b/webview/src/plots/components/App.test.tsx @@ -1480,6 +1480,21 @@ describe('App', () => { }) }) + it('should send a message with the plot path when a comparison table plot is zoomed', () => { + renderAppWithOptionalData({ + comparison: comparisonTableFixture + }) + + const plot = screen.getAllByTestId('image-plot-button')[0] + + fireEvent.click(plot) + + expect(mockPostMessage).toHaveBeenCalledWith({ + payload: comparisonTableFixture.plots[0].revisions.workspace.url, + type: MessageFromWebviewType.ZOOM_PLOT + }) + }) + it('should open a modal with the plot zoomed in when clicking a checkpoint plot', () => { renderAppWithOptionalData({ checkpoint: checkpointPlotsFixture diff --git a/webview/src/plots/components/comparisonTable/ComparisonTableCell.tsx b/webview/src/plots/components/comparisonTable/ComparisonTableCell.tsx index f44cafdbb8..6f0c7e7cad 100644 --- a/webview/src/plots/components/comparisonTable/ComparisonTableCell.tsx +++ b/webview/src/plots/components/comparisonTable/ComparisonTableCell.tsx @@ -4,6 +4,7 @@ import { ComparisonPlot } from 'dvc/src/plots/webview/contract' import styles from './styles.module.scss' import { RefreshButton } from '../../../shared/components/button/RefreshButton' import { sendMessage } from '../../../shared/vscode' +import { zoomPlot } from '../messages' type ComparisonTableCellProps = { path: string @@ -41,10 +42,12 @@ export const ComparisonTableCell: React.FC = ({ } return ( - {`Plot + ) } diff --git a/webview/src/plots/components/messages.ts b/webview/src/plots/components/messages.ts index aa37198cd0..445c11a886 100644 --- a/webview/src/plots/components/messages.ts +++ b/webview/src/plots/components/messages.ts @@ -1,5 +1,5 @@ import { MessageFromWebviewType } from 'dvc/src/webview/contract' import { sendMessage } from '../../shared/vscode' -export const zoomPlot = () => - sendMessage({ type: MessageFromWebviewType.ZOOM_PLOT }) +export const zoomPlot = (imagePath?: string) => + sendMessage({ payload: imagePath, type: MessageFromWebviewType.ZOOM_PLOT }) diff --git a/yarn.lock b/yarn.lock index ddaa977c76..0c524ac784 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3637,71 +3637,71 @@ deepmerge "^4.2.2" svgo "^2.8.0" -"@swc/core-darwin-arm64@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.38.tgz#1ce367373f39e7d67f8c03f8224b2085bf38d083" - integrity sha512-4ZTJJ/cR0EsXW5UxFCifZoGfzQ07a8s4ayt1nLvLQ5QoB1GTAf9zsACpvWG8e7cmCR0L76R5xt8uJuyr+noIXA== - -"@swc/core-darwin-x64@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.38.tgz#6312528e5aa846b1e518aedc81d718b0f956a7c4" - integrity sha512-Kim727rNo4Dl8kk0CR8aJQe4zFFtsT1TZGlNrNMUgN1WC3CRX7dLZ6ZJi/VVcTG1cbHp5Fp3mUzwHsMxEh87Mg== - -"@swc/core-linux-arm-gnueabihf@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.38.tgz#211b6994c5e04c8bc509091403bd9137ebee5d89" - integrity sha512-yaRdnPNU2enlJDRcIMvYVSyodY+Amhf5QuXdUbAj6rkDD6wUs/s9C6yPYrFDmoTltrG+nBv72mUZj+R46wVfSw== - -"@swc/core-linux-arm64-gnu@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.38.tgz#88d12e7e0469b91b8847403c415f9f7afb8d94a6" - integrity sha512-iNY1HqKo/wBSu3QOGBUlZaLdBP/EHcwNjBAqIzpb8J64q2jEN02RizqVW0mDxyXktJ3lxr3g7VW9uqklMeXbjQ== - -"@swc/core-linux-arm64-musl@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.38.tgz#e0ead57c88ece8d339c1626730d0e5985df4e8fb" - integrity sha512-LJCFgLZoPRkPCPmux+Q5ctgXRp6AsWhvWuY61bh5bIPBDlaG9pZk94DeHyvtiwT0syhTtXb2LieBOx6NqN3zeA== - -"@swc/core-linux-x64-gnu@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.38.tgz#21fc6636eeab058d4f707f4d88e29970802737b8" - integrity sha512-hRQGRIWHmv2PvKQM/mMV45mVXckM2+xLB8TYLLgUG66mmtyGTUJPyxjnJkbI86WNGqo18k+lAuMG2mn6QmzYwQ== - -"@swc/core-linux-x64-musl@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.38.tgz#0a8b53c14993bbdea0dca8c8ae1084c05dc77346" - integrity sha512-PTYSqtsIfPHLKDDNbueI5e0sc130vyHRiFOeeC6qqzA2FAiVvIxuvXHLr0soPvKAR1WyhtYmFB9QarcctemL2w== - -"@swc/core-win32-arm64-msvc@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.38.tgz#affd14cf941f0e147aa0211456e08036685d042e" - integrity sha512-9lHfs5TPNs+QdkyZFhZledSmzBEbqml/J1rqPSb9Fy8zB6QlspixE6OLZ3nTlUOdoGWkcTTdrOn77Sd7YGf1AA== - -"@swc/core-win32-ia32-msvc@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.38.tgz#cf807fd74ef9551994d959db562a07605788fddc" - integrity sha512-SbL6pfA2lqvDKnwTHwOfKWvfHAdcbAwJS4dBkFidr7BiPTgI5Uk8wAPcRb8mBECpmIa9yFo+N0cAFRvMnf+cNw== - -"@swc/core-win32-x64-msvc@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.38.tgz#9b6a746cf90b77171d1348311a04c149d3b06ba7" - integrity sha512-UFveLrL6eGvViOD8OVqUQa6QoQwdqwRvLtL5elF304OT8eCPZa8BhuXnWk25X8UcOyns8gFcb8Fhp3oaLi/Rlw== - -"@swc/core@1.3.38": - version "1.3.38" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.38.tgz#c3b3515e23f42cbea0590609ee07fd91193f3499" - integrity sha512-AiEVehRFws//AiiLx9DPDp1WDXt+yAoGD1kMYewhoF6QLdTz8AtYu6i8j/yAxk26L8xnegy0CDwcNnub9qenyQ== +"@swc/core-darwin-arm64@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.39.tgz#7c6e87dc8b27ce406eeb5d5cd39bde9fe06f416c" + integrity sha512-qYR47BEfUvK1WRAP/LVbHakCo4mcksgDjRutJbkx3maTgHlSGYQKCQo7hz+or+n3cbR2abY0rFEgoCLjZctGOw== + +"@swc/core-darwin-x64@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.39.tgz#709f269e2af553b16d35a702c90553ef0af3e400" + integrity sha512-kqJ8OleY/y3S+HXnZxDWFVbKpRsb7gZDZr6Pksr8tzFba/6pLkZFBxds/zgfWIlUwri2Lcx0X872MJ46ghwv9w== + +"@swc/core-linux-arm-gnueabihf@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.39.tgz#04e83e963ecf42228994bee3028f74b17a871456" + integrity sha512-+c3A2BV0esPNHn/KKMqP+bphUF86sVKUIaxn5tKMDrnO8ckOpEMbJ+SwzYLtwC9JIYjWwryg/0yvWrdma26Irw== + +"@swc/core-linux-arm64-gnu@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.39.tgz#fae7fa25a1b22ea51ce53d9982ffbb17c99f7071" + integrity sha512-IRrfft7ANk3NR0qX6bXbfkqbT+WR0TMvgODQdZAtRQIt5ERFpdhcnYc4tlJzfV23R0Ek3kpdA8Gduj4tHk0K6w== + +"@swc/core-linux-arm64-musl@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.39.tgz#74544b4fe31c708e5baad73a6ca52c6f9de4b4c1" + integrity sha512-N8tnynqBdRzY8m2blPAnLUtaln0m8gb96q6ipnY+XoHQ3Z6uZoUq8jWAeFDhD+MCzM7qD2HyBDN7sEqiwMRO/g== + +"@swc/core-linux-x64-gnu@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.39.tgz#8b8345d7080dbbda3e673ce21419bae4fc7cd214" + integrity sha512-Jif56kWHOjQexCib4FVbGeUcBUc56cgNW7ELEKAUCID70z20JHMVTd5utcmfi1L9tywGMvfzqD5z+NQtrFV8GQ== + +"@swc/core-linux-x64-musl@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.39.tgz#70d00f78ec1695b8d6581b0a885ac9ba1bca3867" + integrity sha512-ZiGERr/mdsEwfSiWn2Qokd8a4TTJkLVta6Nan39Bozo6J789u4uDF9Cj5TWWMSanHYAK/oRDaUm1yo2/DSecAA== + +"@swc/core-win32-arm64-msvc@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.39.tgz#9f35782f008a722f8ae230766e16e426f2b146f9" + integrity sha512-eUAk12LZ6RQHhe0ikZZsi0CPbRA6qsvoNQQ/6uwVF60CT0UnJrLiX3w3q30aXK3WjVR6uUlVEn7ze5t7HUeGyQ== + +"@swc/core-win32-ia32-msvc@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.39.tgz#3964c477d542ac41990c8cb12558d6f616cc3d64" + integrity sha512-c3MIt+0gvZD0hmPOyoIJtdgx1ubP7E+uUnljw2+Nk8rO6qhIrWI08tWRNbT0HNLXHfHhKMJHvSAg3DGW8vG3Rg== + +"@swc/core-win32-x64-msvc@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.39.tgz#81344093a5e4b4e24894b1abcf35689f3838b5c2" + integrity sha512-c4xGToLavhHjrE0Um0GyXCilL3sKNRP71GgQTVvqTFHxMmdUCBdug28olMDE1gYsCqXHaF6rPtg3QmD6dhTzKQ== + +"@swc/core@1.3.39": + version "1.3.39" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.39.tgz#c59f92dc116cf32a08d788aa5e0ce7eb856e3d40" + integrity sha512-r5oIySPo2OkC14+gmhK5H1HnDEgOvj5kx6Ogxa+Og7KyWIHE8l1JjjW+4wzYdjxtdhRjVRhvoI6mPQNQz/btBg== optionalDependencies: - "@swc/core-darwin-arm64" "1.3.38" - "@swc/core-darwin-x64" "1.3.38" - "@swc/core-linux-arm-gnueabihf" "1.3.38" - "@swc/core-linux-arm64-gnu" "1.3.38" - "@swc/core-linux-arm64-musl" "1.3.38" - "@swc/core-linux-x64-gnu" "1.3.38" - "@swc/core-linux-x64-musl" "1.3.38" - "@swc/core-win32-arm64-msvc" "1.3.38" - "@swc/core-win32-ia32-msvc" "1.3.38" - "@swc/core-win32-x64-msvc" "1.3.38" + "@swc/core-darwin-arm64" "1.3.39" + "@swc/core-darwin-x64" "1.3.39" + "@swc/core-linux-arm-gnueabihf" "1.3.39" + "@swc/core-linux-arm64-gnu" "1.3.39" + "@swc/core-linux-arm64-musl" "1.3.39" + "@swc/core-linux-x64-gnu" "1.3.39" + "@swc/core-linux-x64-musl" "1.3.39" + "@swc/core-win32-arm64-msvc" "1.3.39" + "@swc/core-win32-ia32-msvc" "1.3.39" + "@swc/core-win32-x64-msvc" "1.3.39" "@swc/jest@0.2.24": version "0.2.24" @@ -4860,14 +4860,14 @@ "@microsoft/fast-foundation" "^2.38.0" "@microsoft/fast-react-wrapper" "^0.1.18" -"@wdio/cli@8.5.7": - version "8.5.7" - resolved "https://registry.yarnpkg.com/@wdio/cli/-/cli-8.5.7.tgz#192fabfdb32a911c4a61a173d7d7583dc02bef8f" - integrity sha512-i/NV96f8ihyoaERmsmsJE07m7GgasfqTdqYb19o9Spa6O+oAchLb2zUDDNgVIbNkgEPLtpHKLymeAZ/mlTsddg== +"@wdio/cli@8.5.8": + version "8.5.8" + resolved "https://registry.yarnpkg.com/@wdio/cli/-/cli-8.5.8.tgz#cca8aa0fc81d4bd8dd39d3acb1423ff9bd7e2ce8" + integrity sha512-I7B6f+ZcXzftXT3QLkMTKZdqmiZ3CEkmduNFgErchJdXzbQ7/1CU2GyskiNlPW9vBo/fSHUnFca8th5FRgDVFw== dependencies: "@types/node" "^18.0.0" "@wdio/config" "8.5.6" - "@wdio/globals" "8.5.7" + "@wdio/globals" "8.5.8" "@wdio/logger" "8.1.0" "@wdio/protocols" "8.5.7" "@wdio/types" "8.4.0" @@ -4886,7 +4886,7 @@ mkdirp "^2.0.0" read-pkg-up "9.1.0" recursive-readdir "^2.2.2" - webdriverio "8.5.7" + webdriverio "8.5.8" yargs "^17.5.1" yarn-install "^1.0.0" @@ -4926,23 +4926,23 @@ expect-webdriverio "^4.0.1" webdriverio "8.0.13" -"@wdio/globals@8.5.7": - version "8.5.7" - resolved "https://registry.yarnpkg.com/@wdio/globals/-/globals-8.5.7.tgz#7139852e91a2cd38381f0bfa14d21eb1ed23540a" - integrity sha512-N2H8AW5jN17SzgR+9qvxScHX7Mc1BoLXTsbnOghTzTibgn7jEcuyLVOFU5INZYQ3YHO26BYVjvPV7ZXzeaDjHQ== +"@wdio/globals@8.5.8": + version "8.5.8" + resolved "https://registry.yarnpkg.com/@wdio/globals/-/globals-8.5.8.tgz#7d1049202704099e4a02ccbaefc59e77884ecec3" + integrity sha512-a1DzJprcWOtAHCEEZ6tTFR/S7hplbKejZi97BCOjqhhKt6M8ThGUOjTsuYE9FvnaQATlakszTjD09KF26BSRFQ== optionalDependencies: expect-webdriverio "^4.0.1" - webdriverio "8.5.7" + webdriverio "8.5.8" -"@wdio/local-runner@8.5.7": - version "8.5.7" - resolved "https://registry.yarnpkg.com/@wdio/local-runner/-/local-runner-8.5.7.tgz#f962d824b0fb5c87bf32e1fadc1ad257f7ddeb87" - integrity sha512-dM4fwvUhwDGEyle+ImrGf/WT2FnBbyjC6eBIBthOgoo8taiVYlc1V3RaaJrPk5BuVYGguNY6ftrLJxoBI97rTg== +"@wdio/local-runner@8.5.8": + version "8.5.8" + resolved "https://registry.yarnpkg.com/@wdio/local-runner/-/local-runner-8.5.8.tgz#9f221f7e3c9c57bd92a17e3aafdec2f0c3a31792" + integrity sha512-SqSwwwlM1/VPg4J74hSj0aMb52RQj+JPlyDeDiexnXRnXopKabXlckFHzMF6xJ19GqfnJaR/S9223mdYzN3CYg== dependencies: "@types/node" "^18.0.0" "@wdio/logger" "8.1.0" "@wdio/repl" "8.1.0" - "@wdio/runner" "8.5.7" + "@wdio/runner" "8.5.8" "@wdio/types" "8.4.0" async-exit-hook "^2.0.1" split2 "^4.1.0" @@ -5014,14 +5014,14 @@ object-inspect "^1.12.0" supports-color "9.3.1" -"@wdio/runner@8.5.7": - version "8.5.7" - resolved "https://registry.yarnpkg.com/@wdio/runner/-/runner-8.5.7.tgz#08b57ecc40e36310698c9c43c055f0ee8c531ac2" - integrity sha512-n49cLKoI9kxhrxzb2fZEe5+apJRXA7q0ezoz9nIBSoPcx4YBLu3LKzP4DnT5+3aScD9OZO82V2nJIEu/ohpgZg== +"@wdio/runner@8.5.8": + version "8.5.8" + resolved "https://registry.yarnpkg.com/@wdio/runner/-/runner-8.5.8.tgz#837708c8cf6aa13e1197f97841549191dca95db0" + integrity sha512-THg6u5edC5jzygQ5tT4ayKnVfduhxyNzcEvSBkVf9DgiCRAyur07ow3dBkTzmWNGta2JbPfx1Fu2j2yMzalcfw== dependencies: "@types/node" "^18.0.0" "@wdio/config" "8.5.6" - "@wdio/globals" "8.5.7" + "@wdio/globals" "8.5.8" "@wdio/logger" "8.1.0" "@wdio/types" "8.4.0" "@wdio/utils" "8.5.6" @@ -5029,7 +5029,7 @@ expect-webdriverio "^4.0.1" gaze "^1.1.2" webdriver "8.5.7" - webdriverio "8.5.7" + webdriverio "8.5.8" "@wdio/spec-reporter@8.4.0": version "8.4.0" @@ -13103,10 +13103,10 @@ linkify-it@^3.0.1: dependencies: uc.micro "^1.0.1" -lint-staged@13.1.4: - version "13.1.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.4.tgz#23969fea0bd89f266cb07227b2c9185e44e5b6fd" - integrity sha512-pJRmnRA4I4Rcc1k9GZIh9LQJlolCVDHqtJpIgPY7t99XY3uXXmUeDfhRLELYLgUFJPmEsWevTqarex9acSfx2A== +lint-staged@13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.0.tgz#b7abaf79c91cd36d824f17b23a4ce5209206126a" + integrity sha512-GbyK5iWinax5Dfw5obm2g2ccUiZXNGtAS4mCbJ0Lv4rq6iEtfBSjOYdcbOtAIFtM114t0vdpViDDetjVTSd8Vw== dependencies: chalk "5.2.0" cli-truncate "^3.1.0" @@ -13120,7 +13120,6 @@ lint-staged@13.1.4: object-inspect "^1.12.3" pidtree "^0.6.0" string-argv "^0.3.1" - supports-color "9.3.1" yaml "^2.2.1" listenercount@~1.0.1: @@ -17896,10 +17895,10 @@ terser-webpack-plugin@^5.0.3, terser-webpack-plugin@^5.1.3: source-map "^0.6.1" terser "^5.7.2" -terser@5.16.5, terser@^4.1.2, terser@^4.6.3, terser@^5.10.0, terser@^5.3.4, terser@^5.7.2: - version "5.16.5" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.5.tgz#1c285ca0655f467f92af1bbab46ab72d1cb08e5a" - integrity sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg== +terser@5.16.6, terser@^4.1.2, terser@^4.6.3, terser@^5.10.0, terser@^5.3.4, terser@^5.7.2: + version "5.16.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.6.tgz#f6c7a14a378ee0630fbe3ac8d1f41b4681109533" + integrity sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -19348,10 +19347,10 @@ webdriverio@8.0.13, webdriverio@^8.0.0-alpha.505: serialize-error "^8.0.0" webdriver "8.0.13" -webdriverio@8.5.7: - version "8.5.7" - resolved "https://registry.yarnpkg.com/webdriverio/-/webdriverio-8.5.7.tgz#8c0d41dab611b146e16efc44219d3c6d83acd9b4" - integrity sha512-gFXozyOCPhxkzNiBnvHbJHJVA8fozCqR/TlsOgbwEyc7ww12ZxhoXT8fqdObVd/MYdm0BKdCIUU3AW06hqakRw== +webdriverio@8.5.8: + version "8.5.8" + resolved "https://registry.yarnpkg.com/webdriverio/-/webdriverio-8.5.8.tgz#40bad020857ec6f694f2affb3daa6e77a1c719cf" + integrity sha512-ViysVL2FhbMSLYhYV6WoikrfzLRzJpoE+bYW2Dj4FITELL4vlPFUAsN+7kiAVWhRXYjpG57IGO6K5xVemT/kbQ== dependencies: "@types/node" "^18.0.0" "@wdio/config" "8.5.6"