From 374166bba9790165a4b974986c2c7acd9b1205f9 Mon Sep 17 00:00:00 2001 From: Caleb Roseland Date: Mon, 17 Apr 2023 10:17:48 -0500 Subject: [PATCH 01/20] add ci steps --- .github/workflows/channels-ci.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/channels-ci.yml b/.github/workflows/channels-ci.yml index d6a1a6258c6..3321fd717f2 100644 --- a/.github/workflows/channels-ci.yml +++ b/.github/workflows/channels-ci.yml @@ -83,6 +83,16 @@ jobs: npm run mmjstool -- i18n clean-empty --webapp-dir ./src --mobile-dir /tmp/fake-mobile-dir --check npm run mmjstool -- i18n check-empty-src --webapp-dir ./src --mobile-dir /tmp/fake-mobile-dir rm -rf tmp + - name: ci/lint + working-directory: webapp/boards + run: | + npm run i18n-extract + git --no-pager diff --exit-code i18n/en.json || (echo "Please run \"cd webapp/boards && npm run i18n-extract\" and commit the changes in webapp/boards/i18n/en.json." && exit 1) + - name: ci/lint + working-directory: webapp/playbooks + run: | + npm run i18n-extract + git --no-pager diff --exit-code i18n/en.json || (echo "Please run \"cd webapp/playbooks && npm run i18n-extract\" and commit the changes in webapp/playbooks/i18n/en.json." && exit 1) check-types: runs-on: ubuntu-22.04 defaults: From 4779700a06b3d74099592a247159230b3e418c44 Mon Sep 17 00:00:00 2001 From: Caleb Roseland Date: Mon, 17 Apr 2023 10:29:12 -0500 Subject: [PATCH 02/20] test ci extract lint --- webapp/boards/src/components/addContentMenuItem.tsx | 2 +- webapp/playbooks/src/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/webapp/boards/src/components/addContentMenuItem.tsx b/webapp/boards/src/components/addContentMenuItem.tsx index 1e147b25638..335a6e4c9d2 100644 --- a/webapp/boards/src/components/addContentMenuItem.tsx +++ b/webapp/boards/src/components/addContentMenuItem.tsx @@ -42,7 +42,7 @@ const AddContentMenuItem = (props: Props): JSX.Element => { newBlock.boardId = card.boardId const typeName = handler.getDisplayText(intl) - const description = intl.formatMessage({id: 'ContentBlock.addElement', defaultMessage: 'add {type}'}, {type: typeName}) + const description = intl.formatMessage({id: 'ContentBlock.addElement', defaultMessage: 'add {type} __ci-test__'}, {type: typeName}) const afterRedo = async (nb: Block) => { const contentOrder = card.fields.contentOrder.slice() diff --git a/webapp/playbooks/src/index.tsx b/webapp/playbooks/src/index.tsx index d72b244f2f6..6e9f4b1bbf9 100644 --- a/webapp/playbooks/src/index.tsx +++ b/webapp/playbooks/src/index.tsx @@ -213,7 +213,7 @@ export default class Plugin { const siteStats = await fetchSiteStats(); return { playbook_count: { - name: , + name: , id: 'total_playbooks', icon: 'fa-book', // font-awesome-4.7.0 handler value: siteStats?.total_playbooks, From 01dede9b1991419f654ef39525b3b5e377d2b2ca Mon Sep 17 00:00:00 2001 From: Caleb Roseland Date: Mon, 17 Apr 2023 11:12:40 -0500 Subject: [PATCH 03/20] Revert "test ci extract lint" This reverts commit 4779700a06b3d74099592a247159230b3e418c44. --- webapp/boards/src/components/addContentMenuItem.tsx | 2 +- webapp/playbooks/src/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/webapp/boards/src/components/addContentMenuItem.tsx b/webapp/boards/src/components/addContentMenuItem.tsx index 335a6e4c9d2..1e147b25638 100644 --- a/webapp/boards/src/components/addContentMenuItem.tsx +++ b/webapp/boards/src/components/addContentMenuItem.tsx @@ -42,7 +42,7 @@ const AddContentMenuItem = (props: Props): JSX.Element => { newBlock.boardId = card.boardId const typeName = handler.getDisplayText(intl) - const description = intl.formatMessage({id: 'ContentBlock.addElement', defaultMessage: 'add {type} __ci-test__'}, {type: typeName}) + const description = intl.formatMessage({id: 'ContentBlock.addElement', defaultMessage: 'add {type}'}, {type: typeName}) const afterRedo = async (nb: Block) => { const contentOrder = card.fields.contentOrder.slice() diff --git a/webapp/playbooks/src/index.tsx b/webapp/playbooks/src/index.tsx index 6e9f4b1bbf9..d72b244f2f6 100644 --- a/webapp/playbooks/src/index.tsx +++ b/webapp/playbooks/src/index.tsx @@ -213,7 +213,7 @@ export default class Plugin { const siteStats = await fetchSiteStats(); return { playbook_count: { - name: , + name: , id: 'total_playbooks', icon: 'fa-book', // font-awesome-4.7.0 handler value: siteStats?.total_playbooks, From e841c75ac5e797ea6e952ad4c4e5991705b15aff Mon Sep 17 00:00:00 2001 From: Mattermod Date: Tue, 18 Apr 2023 17:59:27 +0300 Subject: [PATCH 04/20] Update minor version to 7.11.0 (#22959) Co-authored-by: Mmbot Co-authored-by: Akis Maziotis --- server/model/version.go | 1 + 1 file changed, 1 insertion(+) diff --git a/server/model/version.go b/server/model/version.go index 1683e810d54..51b6257e7f6 100644 --- a/server/model/version.go +++ b/server/model/version.go @@ -13,6 +13,7 @@ import ( // It should be maintained in chronological order with most current // release at the front of the list. var versions = []string{ + "7.11.0", "7.10.0", "7.9.0", "7.8.0", From 97296418231cfab3f95f6a70f6cfa888b0bd0052 Mon Sep 17 00:00:00 2001 From: Michael Kochell <6913320+mickmister@users.noreply.github.com> Date: Tue, 18 Apr 2023 11:01:52 -0400 Subject: [PATCH 05/20] Bump autolink plugin version to 1.4.0 (#22966) --- server/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/Makefile b/server/Makefile index 83b4fd55317..62e30b7a1a2 100644 --- a/server/Makefile +++ b/server/Makefile @@ -138,7 +138,7 @@ TEMPLATES_DIR=templates # Plugins Packages PLUGIN_PACKAGES ?= mattermost-plugin-antivirus-v0.1.2 -PLUGIN_PACKAGES += mattermost-plugin-autolink-v1.2.2 +PLUGIN_PACKAGES += mattermost-plugin-autolink-v1.4.0 PLUGIN_PACKAGES += mattermost-plugin-aws-SNS-v1.2.0 PLUGIN_PACKAGES += mattermost-plugin-calls-v0.15.1 PLUGIN_PACKAGES += mattermost-plugin-channel-export-v1.0.0 From 9b81c086226fc9b3f95d233f1419a8746eb9fedb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Peso?= Date: Tue, 18 Apr 2023 18:22:16 +0200 Subject: [PATCH 06/20] safer base64 generated values in settings (#22990) Generated values for settings are a random base64 string with a length of 32. Unfortunately, base64 has some accepted characters like `+` and `/` that don't behave correctly if we use them in a URL without the proper additional encoding. Use instead this safe version of base64 https://datatracker.ietf.org/doc/html/rfc4648#section-5, where: - `/` becomes `_` - `+` becomes `-` Fixes https://mattermost.atlassian.net/browse/MM-51923 --- .../src/components/admin_console/generated_setting.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/webapp/channels/src/components/admin_console/generated_setting.tsx b/webapp/channels/src/components/admin_console/generated_setting.tsx index 8f00f5c8629..4665443779f 100644 --- a/webapp/channels/src/components/admin_console/generated_setting.tsx +++ b/webapp/channels/src/components/admin_console/generated_setting.tsx @@ -38,7 +38,11 @@ export default class GeneratedSetting extends React.PureComponent { private regenerate = (e: React.MouseEvent) => { e.preventDefault(); - this.props.onChange(this.props.id, crypto.randomBytes(256).toString('base64').substring(0, 32)); + // Pure base64 implementation can contain characters that are not URL safe without additional + // encoding. Adopt a URL/Filename safer alphabet as noted in https://datatracker.ietf.org/doc/html/rfc4648#section-5 + // where: 62 - (minus) , 63 _ (underscore) + const value = crypto.randomBytes(256).toString('base64').substring(0, 32); + this.props.onChange(this.props.id, value.replaceAll('+', '-').replaceAll('/', '_')); }; public render() { From b95e546482347b776f8afef36769f48b69c4af12 Mon Sep 17 00:00:00 2001 From: Caleb Roseland Date: Tue, 18 Apr 2023 11:29:31 -0500 Subject: [PATCH 07/20] step names --- .github/workflows/channels-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/channels-ci.yml b/.github/workflows/channels-ci.yml index 3321fd717f2..7d71862ba7d 100644 --- a/.github/workflows/channels-ci.yml +++ b/.github/workflows/channels-ci.yml @@ -83,12 +83,12 @@ jobs: npm run mmjstool -- i18n clean-empty --webapp-dir ./src --mobile-dir /tmp/fake-mobile-dir --check npm run mmjstool -- i18n check-empty-src --webapp-dir ./src --mobile-dir /tmp/fake-mobile-dir rm -rf tmp - - name: ci/lint + - name: ci/lint-boards working-directory: webapp/boards run: | npm run i18n-extract git --no-pager diff --exit-code i18n/en.json || (echo "Please run \"cd webapp/boards && npm run i18n-extract\" and commit the changes in webapp/boards/i18n/en.json." && exit 1) - - name: ci/lint + - name: ci/lint-playbooks working-directory: webapp/playbooks run: | npm run i18n-extract From 84a304224966b28416aafeef8e81206b3826bf03 Mon Sep 17 00:00:00 2001 From: Ben Schumacher Date: Tue, 18 Apr 2023 21:54:20 +0200 Subject: [PATCH 08/20] Update slash command permission (#22468) * Update slash command permission * Fix permission --- server/channels/api4/command.go | 16 +++++- server/channels/api4/command_test.go | 78 ++++++++++++++++++++++++++++ server/model/permission.go | 3 ++ 3 files changed, 96 insertions(+), 1 deletion(-) diff --git a/server/channels/api4/command.go b/server/channels/api4/command.go index cd2fe01d49c..312c0d093f6 100644 --- a/server/channels/api4/command.go +++ b/server/channels/api4/command.go @@ -323,7 +323,14 @@ func executeCommand(c *Context, w http.ResponseWriter, r *http.Request) { defer c.LogAuditRec(auditRec) audit.AddEventParameterAuditable(auditRec, "command_args", &commandArgs) - // checks that user is a member of the specified channel, and that they have permission to use slash commands in it + // Checks that user is a member of the specified channel, and that they have permission to create a post in it. + if !c.App.SessionHasPermissionToChannel(c.AppContext, *c.AppContext.Session(), commandArgs.ChannelId, model.PermissionCreatePost) { + c.SetPermissionError(model.PermissionCreatePost) + return + } + + // For compatibility reasons, PermissionCreatePost is also checked. + // TODO: Remove in 8.0: https://mattermost.atlassian.net/browse/MM-51274 if !c.App.SessionHasPermissionToChannel(c.AppContext, *c.AppContext.Session(), commandArgs.ChannelId, model.PermissionUseSlashCommands) { c.SetPermissionError(model.PermissionUseSlashCommands) return @@ -343,6 +350,13 @@ func executeCommand(c *Context, w http.ResponseWriter, r *http.Request) { // if the slash command was used in a DM or GM, ensure that the user is a member of the specified team, so that // they can't just execute slash commands against arbitrary teams if c.AppContext.Session().GetTeamByTeamId(commandArgs.TeamId) == nil { + if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionCreatePost) { + c.SetPermissionError(model.PermissionCreatePost) + return + } + + // For compatibility reasons, PermissionCreatePost is also checked. + // TODO: Remove in 8.0: https://mattermost.atlassian.net/browse/MM-51274 if !c.App.SessionHasPermissionTo(*c.AppContext.Session(), model.PermissionUseSlashCommands) { c.SetPermissionError(model.PermissionUseSlashCommands) return diff --git a/server/channels/api4/command_test.go b/server/channels/api4/command_test.go index 8517a344fee..b1328da3b17 100644 --- a/server/channels/api4/command_test.go +++ b/server/channels/api4/command_test.go @@ -14,6 +14,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/mattermost/mattermost-server/server/v8/channels/app/request" "github.com/mattermost/mattermost-server/server/v8/model" "github.com/mattermost/mattermost-server/server/v8/platform/shared/mlog" ) @@ -1065,3 +1066,80 @@ func TestExecuteCommandInTeamUserIsNotOn(t *testing.T) { require.Error(t, err) CheckForbiddenStatus(t, resp) } + +func TestExecuteCommandReadOnly(t *testing.T) { + th := Setup(t).InitBasic() + ctx := request.EmptyContext(th.TestLogger) + defer th.TearDown() + client := th.Client + + enableCommands := *th.App.Config().ServiceSettings.EnableCommands + allowedInternalConnections := *th.App.Config().ServiceSettings.AllowedUntrustedInternalConnections + defer func() { + th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableCommands = &enableCommands }) + th.App.UpdateConfig(func(cfg *model.Config) { + cfg.ServiceSettings.AllowedUntrustedInternalConnections = &allowedInternalConnections + }) + }() + th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableCommands = true }) + th.App.UpdateConfig(func(cfg *model.Config) { + *cfg.ServiceSettings.AllowedUntrustedInternalConnections = "localhost,127.0.0.1" + }) + + expectedCommandResponse := &model.CommandResponse{ + Text: "test post command response", + ResponseType: model.CommandResponseTypeInChannel, + Type: "custom_test", + Props: map[string]any{"someprop": "somevalue"}, + } + + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + require.Equal(t, http.MethodPost, r.Method) + r.ParseForm() + require.Equal(t, th.BasicTeam.Name, r.FormValue("team_domain")) + + w.Header().Set("Content-Type", "application/json") + if err := json.NewEncoder(w).Encode(expectedCommandResponse); err != nil { + th.TestLogger.Warn("Error while writing response", mlog.Err(err)) + } + })) + defer ts.Close() + + // create a slash command on that team + postCmd := &model.Command{ + CreatorId: th.BasicUser.Id, + TeamId: th.BasicTeam.Id, + URL: ts.URL, + Method: model.CommandMethodPost, + Trigger: "postcommand", + } + _, appErr := th.App.CreateCommand(postCmd) + require.Nil(t, appErr, "failed to create post command") + + // Confirm that the command works when the channel is not read only + _, resp, err := client.ExecuteCommandWithTeam(th.BasicChannel.Id, th.BasicChannel.TeamId, "/postcommand") + require.NoError(t, err) + CheckOKStatus(t, resp) + + // Enable Enterprise features + th.App.Srv().SetLicense(model.NewTestLicense()) + + th.App.SetPhase2PermissionsMigrationStatus(true) + + _, appErr = th.App.PatchChannelModerationsForChannel( + ctx, + th.BasicChannel, + []*model.ChannelModerationPatch{{ + Name: &model.PermissionCreatePost.Id, + Roles: &model.ChannelModeratedRolesPatch{ + Guests: model.NewBool(false), + Members: model.NewBool(false), + }, + }}) + require.Nil(t, appErr) + + // Confirm that the command fails when the channel is read only + _, resp, err = client.ExecuteCommandWithTeam(th.BasicChannel.Id, th.BasicChannel.TeamId, "/postcommand") + require.Error(t, err) + CheckForbiddenStatus(t, resp) +} diff --git a/server/model/permission.go b/server/model/permission.go index a44a566964c..231154e2d4e 100644 --- a/server/model/permission.go +++ b/server/model/permission.go @@ -21,6 +21,9 @@ type Permission struct { var PermissionInviteUser *Permission var PermissionAddUserToTeam *Permission + +// Deprecated: PermissionCreatePost should be used to determine if a slash command can be executed. +// TODO: Remove in 8.0: https://mattermost.atlassian.net/browse/MM-51274 var PermissionUseSlashCommands *Permission var PermissionManageSlashCommands *Permission var PermissionManageOthersSlashCommands *Permission From 4ef3081f6572331185784d25711ebc95201022fc Mon Sep 17 00:00:00 2001 From: Aditya Jain Date: Wed, 19 Apr 2023 08:32:32 +0530 Subject: [PATCH 09/20] MM-T4276 : E2E for set up Board emoji (#22887) * MM-T4276 Added cypress tests for board emoji * Update e2e-tests/cypress/tests/integration/boards/create_board_spec.ts --------- Co-authored-by: Aditya Jain Co-authored-by: Mattermost Build Co-authored-by: Saturnino Abril --- .../integration/boards/create_board_spec.ts | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/e2e-tests/cypress/tests/integration/boards/create_board_spec.ts b/e2e-tests/cypress/tests/integration/boards/create_board_spec.ts index 17ed47c57bb..0d0e0b2ad8e 100644 --- a/e2e-tests/cypress/tests/integration/boards/create_board_spec.ts +++ b/e2e-tests/cypress/tests/integration/boards/create_board_spec.ts @@ -98,6 +98,72 @@ describe('Create and delete board / card', () => { cy.findByText('for testing purposes only').should('be.visible'); }); + it('MM-T4276 Set up Board emoji', () => { + cy.visit('/boards'); + + // # Create an empty board and change tile to Testing + cy.findByText('Create an empty board').should('exist').click({force: true}); + cy.get('.BoardComponent').should('exist'); + + // # Change Title + cy.findByPlaceholderText('Untitled board').should('be.visible').wait(timeouts.HALF_SEC); + + // * Assert that the title is changed to "testing" + cy.findByPlaceholderText('Untitled board'). + clear(). + type('Testing'). + type('{enter}'). + should('have.value', 'Testing'); + + // # "Add icon" and "Show description" options appear + cy.findByText('Add icon').should('exist'); + cy.findByText('show description').should('exist'); + + // # Click on "Add icon" + cy.findByText('Add icon').should('exist').click({force: true}); + + // * Assert that a random emoji is selected and added at the beginning of the board title + cy.get('.IconSelector').should('exist'); + + // # Click on the emoji next to the board title + cy.get('.IconSelector .MenuWrapper').should('exist').click({force: true}); + + // * Assert that Dropdown menu with 3 options appears + cy.findByText('Random').should('exist'); + cy.findByText('Pick icon').should('exist'); + cy.findByText('Remove icon').should('exist'); + + // # Hover your mouse over the "Pick Icon" option + cy.findByText('Pick icon').trigger('mouseover'); + + // * Assert that emoji picker menu appears + cy.get('.IconSelector .menu-contents').should('exist'); + + // # Click on the emoji from the picker + cy.get('.EmojiPicker').should('exist').and('be.visible').within(() => { + // # Click on the emoji + cy.get("[aria-label='😀, grinning']").should('exist'); + cy.get("[aria-label='😀, grinning']").eq(0).click({force: true}); + }); + + // * Assert that Selected emoji is now displayed next to the board title + cy.get('.IconSelector span').contains('😀'); + + // # Click on the emoji next to the board title + cy.get('.IconSelector .MenuWrapper').should('exist').click({force: true}); + + // * Assert that Dropdown menu with 3 options appears + cy.findByText('Random').should('exist'); + cy.findByText('Pick icon').should('exist'); + cy.findByText('Remove icon').should('exist'); + + // # Click "Remove icon" + cy.findByText('Remove icon').click({force: true}); + + // * Assert that Icon next to the board title is removed + cy.get('.IconSelector').should('not.exist'); + }); + it('MM-T5397 Can create and delete a board and a card', () => { // Visit a page and create new empty board cy.visit('/boards'); From 6ca5824ea1d673598a7d24b7f9f787fd49b53880 Mon Sep 17 00:00:00 2001 From: Saturnino Abril Date: Wed, 19 Apr 2023 12:04:25 +0800 Subject: [PATCH 10/20] E2E/Playwright: Update dependencies, screenshots, config and type (#23000) * update dependencies * update default server config and client type * close browser context once test is done * fix test when switching a product * update screenshots and readme * add cross-env and make headless mode as default --------- Co-authored-by: Mattermost Build --- e2e-tests/playwright/README.md | 19 +- e2e-tests/playwright/package-lock.json | 991 +++++++++--------- e2e-tests/playwright/package.json | 26 +- e2e-tests/playwright/sample.env | 2 +- .../playwright/support/browser_context.ts | 12 +- e2e-tests/playwright/support/server/client.ts | 4 +- .../support/server/default_config.ts | 12 +- e2e-tests/playwright/support/server/init.ts | 17 +- e2e-tests/playwright/support/test_fixture.ts | 1 + .../support/ui/components/global_header.ts | 2 +- e2e-tests/playwright/test.config.ts | 2 +- .../board-template-chrome-linux.png | Bin 132437 -> 129821 bytes .../board-template-firefox-linux.png | Bin 188426 -> 186305 bytes .../board-template-ipad-linux.png | Bin 251504 -> 243453 bytes .../view-untitled-board-chrome-linux.png | Bin 39208 -> 39080 bytes .../view-untitled-board-firefox-linux.png | Bin 66372 -> 64299 bytes .../view-untitled-board-ipad-linux.png | Bin 86868 -> 85946 bytes ...o-channel-as-regular-user-chrome-linux.png | Bin 79204 -> 72893 bytes ...-channel-as-regular-user-firefox-linux.png | Bin 115737 -> 108312 bytes ...-to-channel-as-regular-user-ipad-linux.png | Bin 187170 -> 171228 bytes ...o-channel-as-regular-user-iphone-linux.png | Bin 182293 -> 151142 bytes .../landing-login-chrome-linux.png | Bin 107583 -> 107128 bytes .../landing-login-firefox-linux.png | Bin 173304 -> 174161 bytes .../landing-login-ipad-linux.png | Bin 216895 -> 217813 bytes .../landing-login-iphone-linux.png | Bin 160350 -> 159954 bytes .../login-chrome-linux.png | Bin 153192 -> 153704 bytes .../login-error-chrome-linux.png | Bin 150727 -> 150165 bytes .../login-error-firefox-linux.png | Bin 275966 -> 277363 bytes .../login-error-ipad-linux.png | Bin 319337 -> 319229 bytes .../login-error-iphone-linux.png | Bin 246778 -> 246784 bytes .../login-firefox-linux.png | Bin 282502 -> 283869 bytes .../login-ipad-linux.png | Bin 303941 -> 304319 bytes .../login-iphone-linux.png | Bin 235971 -> 235846 bytes .../signup-email-chrome-linux.png | Bin 160275 -> 169173 bytes .../signup-email-error-chrome-linux.png | Bin 164336 -> 173620 bytes .../signup-email-error-firefox-linux.png | Bin 292167 -> 303130 bytes .../signup-email-error-ipad-linux.png | Bin 376866 -> 420896 bytes .../signup-email-error-iphone-linux.png | Bin 283059 -> 363638 bytes .../signup-email-firefox-linux.png | Bin 286303 -> 297842 bytes .../signup-email-ipad-linux.png | Bin 356465 -> 402248 bytes .../signup-email-iphone-linux.png | Bin 261719 -> 272287 bytes webapp/platform/types/src/config.ts | 1 - 42 files changed, 575 insertions(+), 514 deletions(-) diff --git a/e2e-tests/playwright/README.md b/e2e-tests/playwright/README.md index 25dd2c9d68c..0a2a0052431 100644 --- a/e2e-tests/playwright/README.md +++ b/e2e-tests/playwright/README.md @@ -2,8 +2,21 @@ #### 1. Start local server in a separate terminal. +``` +# Typically run the local server with: +cd server && make run + +# Or build and distribute webapp including channels, boards and playbooks +# so that their product URLs do not rely on Webpack dev server. +# Especially important when running test inside the Playwright's docker container. +cd webapp && make dist +cd server && make run-server +``` + #### 2. Install dependencies and run the test. +Note: If you're using Node.js version 18 and above, you may need to set `NODE_OPTIONS='--no-experimental-fetch'`. + ``` # Install npm packages npm i @@ -32,14 +45,16 @@ npm run test Change to root directory, run docker container ``` -docker run -it --rm -v "$(pwd):/mattermost/" --ipc=host mcr.microsoft.com/playwright:v1.30.0-focal /bin/bash +docker run -it --rm -v "$(pwd):/mattermost/" --ipc=host mcr.microsoft.com/playwright:v1.32.0-focal /bin/bash ``` #### 2. Inside the docker container ``` +export NODE_OPTIONS='--no-experimental-fetch' export PW_BASE_URL=http://host.docker.internal:8065 -cd mattermost/e2e/playwright +export PW_HEADLESS=true +cd mattermost/e2e-tests/playwright # Install npm packages. Use "npm ci" to match the automated environment npm ci diff --git a/e2e-tests/playwright/package-lock.json b/e2e-tests/playwright/package-lock.json index 6d5a200c81f..ef8f199c95a 100644 --- a/e2e-tests/playwright/package-lock.json +++ b/e2e-tests/playwright/package-lock.json @@ -6,30 +6,31 @@ "packages": { "": { "dependencies": { - "@percy/cli": "1.18.0", + "@percy/cli": "1.23.0", "@percy/playwright": "1.0.4", "@playwright/test": "1.32.3", "async-wait-until": "2.0.12", "chalk": "4.1.2", - "deepmerge": "4.3.0", + "deepmerge": "4.3.1", "dotenv": "16.0.3", "form-data": "4.0.0", "isomorphic-unfetch": "4.0.2", "uuid": "9.0.0" }, "devDependencies": { - "@types/uuid": "9.0.0", - "@typescript-eslint/eslint-plugin": "5.51.0", - "@typescript-eslint/parser": "5.51.0", - "eslint": "8.34.0", - "prettier": "2.8.4", - "typescript": "4.9.5" + "@types/uuid": "9.0.1", + "@typescript-eslint/eslint-plugin": "5.59.0", + "@typescript-eslint/parser": "5.59.0", + "cross-env": "7.0.3", + "eslint": "8.38.0", + "prettier": "2.8.7", + "typescript": "5.0.4" } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -58,17 +59,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -82,47 +72,39 @@ "node": ">=4" } }, - "node_modules/@babel/highlight/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==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -159,6 +141,15 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/@eslint/js": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", @@ -225,19 +216,19 @@ } }, "node_modules/@percy/cli": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.18.0.tgz", - "integrity": "sha512-yfvVh2uwTqMGxn2wF/RCvGVsyfXkeKOt05Cil4s8PRSBQ94iDY872lMJ3al0gSq0y4GLAH9CO7ZVt3uqD2tlBg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.23.0.tgz", + "integrity": "sha512-3S+QUWdeJq6ZUWoRNLuX+wdJx8civJdrSmYG9WS2CP9auJNbuA+13xQnB5AkkWUvHEcC/yXzZpi5NAjoW86jgw==", "dependencies": { - "@percy/cli-app": "1.18.0", - "@percy/cli-build": "1.18.0", - "@percy/cli-command": "1.18.0", - "@percy/cli-config": "1.18.0", - "@percy/cli-exec": "1.18.0", - "@percy/cli-snapshot": "1.18.0", - "@percy/cli-upload": "1.18.0", - "@percy/client": "1.18.0", - "@percy/logger": "1.18.0" + "@percy/cli-app": "1.23.0", + "@percy/cli-build": "1.23.0", + "@percy/cli-command": "1.23.0", + "@percy/cli-config": "1.23.0", + "@percy/cli-exec": "1.23.0", + "@percy/cli-snapshot": "1.23.0", + "@percy/cli-upload": "1.23.0", + "@percy/client": "1.23.0", + "@percy/logger": "1.23.0" }, "bin": { "percy": "bin/run.cjs" @@ -247,36 +238,36 @@ } }, "node_modules/@percy/cli-app": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.18.0.tgz", - "integrity": "sha512-EAqD61ivuCwfl6PacXW9Wx9kTRvMPCBlQnxmrhx7jJG5tIp418p4XB3zkFOAirUa/LOdwNIVaPCHJyVAcJ1V5Q==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.23.0.tgz", + "integrity": "sha512-2L5chuBFp016LlkB7BihGtm0XJFCZEDNIcOFchsK7l2REBUkxVeM6hNQ89uuP2F9eKXwWKqtDEIYCzdzW0hfIQ==", "dependencies": { - "@percy/cli-command": "1.18.0", - "@percy/cli-exec": "1.18.0" + "@percy/cli-command": "1.23.0", + "@percy/cli-exec": "1.23.0" }, "engines": { "node": ">=14" } }, "node_modules/@percy/cli-build": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.18.0.tgz", - "integrity": "sha512-FuYWjXx4Wy0v27GpwxGX5qDq4xcLzlStbABNCp4H5RrNrLa1jkcViOKXTSurdjHYWlHHFWJUbk39D4g3ZRXOAA==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.23.0.tgz", + "integrity": "sha512-qIhfU/UtPl181Dw2kR8klEYLUlA5C8GE0M9781vz7D0W3LriccaLLLo1wBp4q4bo83uvUBvNJhq9/S4T38kPEQ==", "dependencies": { - "@percy/cli-command": "1.18.0" + "@percy/cli-command": "1.23.0" }, "engines": { "node": ">=14" } }, "node_modules/@percy/cli-command": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.18.0.tgz", - "integrity": "sha512-2dHJalp83IygD/FqXCFNND22z7f4r5uZxqr5GAyiJ0STkQYitTgwkUp+4IRdfK1zmi+A2dbyYU0xV9txEW5v8g==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.23.0.tgz", + "integrity": "sha512-tXj5vv2BQMBmn3ZL2YNqYYrmJLyYnBqwyJkecY2BwXQsKAIv3qBgTzr1d5+LxTOi5ArjFCHAgk2w4ohy6h6t4w==", "dependencies": { - "@percy/config": "1.18.0", - "@percy/core": "1.18.0", - "@percy/logger": "1.18.0" + "@percy/config": "1.23.0", + "@percy/core": "1.23.0", + "@percy/logger": "1.23.0" }, "bin": { "percy-cli-readme": "bin/readme.js" @@ -286,22 +277,22 @@ } }, "node_modules/@percy/cli-config": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.18.0.tgz", - "integrity": "sha512-N5I7av5SGO5n0YC61wbqVniNxFwAQFFubKyGyGaVlQkmKyRuYCmDMHlPdSv3zyvVD1ZJCvtDzi/VqQGDubEieg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.23.0.tgz", + "integrity": "sha512-tI4c4MhU41rx9n7fYZrpn4gaOD9dA6PnefP397v7smqEWh7MJ+cxI/nyKU0/9G2wGjMhYACaLoR4BiCWOQZAkw==", "dependencies": { - "@percy/cli-command": "1.18.0" + "@percy/cli-command": "1.23.0" }, "engines": { "node": ">=14" } }, "node_modules/@percy/cli-exec": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.18.0.tgz", - "integrity": "sha512-4y+XIsYS5KypJmTtGKyKFU4GZ6902dCcEMJNDc69grSsco9N2lBG2gsvChCrCA2gDT8nUvKng9z9KF2OiMvF3w==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.23.0.tgz", + "integrity": "sha512-ecxnMWxUlVx0EswGraHgN4LvWbXeUZQZUxJ9wYmMSgDEaKfEiEZ5WTLSKzQAxyfw2SjoQ3cHRZbKh4qMlCgbAg==", "dependencies": { - "@percy/cli-command": "1.18.0", + "@percy/cli-command": "1.23.0", "cross-spawn": "^7.0.3", "which": "^2.0.2" }, @@ -310,11 +301,11 @@ } }, "node_modules/@percy/cli-snapshot": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.18.0.tgz", - "integrity": "sha512-3a7HqJU/wCT7fKraYw6S4cs8KrlUZ0MbDV9/dEbFh9nSfz0BLQjcK+kL8OzjxM+bVwZ6pf62FJl44nVLpXqrGw==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.23.0.tgz", + "integrity": "sha512-QOrUfyPCnjfIAcUBjNlO299NRPDxofcYQUCBYZE3CtemsNFtygFt0yPnZCwWmt0voSpnPl1Izc6/FA3wYUfuBQ==", "dependencies": { - "@percy/cli-command": "1.18.0", + "@percy/cli-command": "1.23.0", "yaml": "^2.0.0" }, "engines": { @@ -322,11 +313,11 @@ } }, "node_modules/@percy/cli-upload": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.18.0.tgz", - "integrity": "sha512-JSRoE0aTnBH1HGNGmDJxGNkNIGor7H8pv6lO8AUiwCwQ55EHgLqtWlhwq+2AHz7QOiGD8aOHQTwJk6GcCIIa3A==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.23.0.tgz", + "integrity": "sha512-faRHjzaUf21RK9Ra051gKUl4HmMNPZxUKSZNmdG0yP+tc5KxU9cXkmEeCKGH7LOcVs0IfyRX0vv58YEZ6GsIRw==", "dependencies": { - "@percy/cli-command": "1.18.0", + "@percy/cli-command": "1.23.0", "fast-glob": "^3.2.11", "image-size": "^1.0.0" }, @@ -335,23 +326,23 @@ } }, "node_modules/@percy/client": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.18.0.tgz", - "integrity": "sha512-onuVIpB6TPNjEhLlPsyhJYXTY2xdv3iNx4bj8Yfk751vQ33US2z4FEWDQKIEvHJGcFT7NEIHXFT3bYcFDmREdQ==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.23.0.tgz", + "integrity": "sha512-m0qNCrlfh6Pf0t2GfoeShuK7r2GeRk5rWVjIbdnDigvmtL0G+HJM1gvysLOxzKFHkZ1cLBfM1SnH1Yn6RM/6qQ==", "dependencies": { - "@percy/env": "1.18.0", - "@percy/logger": "1.18.0" + "@percy/env": "1.23.0", + "@percy/logger": "1.23.0" }, "engines": { "node": ">=14" } }, "node_modules/@percy/config": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.18.0.tgz", - "integrity": "sha512-bjAiZuhORij3vxeolVjpf7ZU1Sjqv2Y9CgsBthoIu20f5o0a10w6JGgPkDjT3NaAIZDXgbxVsrWovlslbRC57w==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.23.0.tgz", + "integrity": "sha512-giPIdNLcG1Qg0dkc/VDOkTzI4szzM4QAoJfMLEP0UYPkIU2Y0Xc8NH5GN3DEiudRJge72iGfeah6GugxmXmKXw==", "dependencies": { - "@percy/logger": "1.18.0", + "@percy/logger": "1.23.0", "ajv": "^8.6.2", "cosmiconfig": "^7.0.0", "yaml": "^2.0.0" @@ -361,15 +352,15 @@ } }, "node_modules/@percy/core": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.18.0.tgz", - "integrity": "sha512-9d8mkE6bfp0nRxhnGgC8N2KBG+MRiCxfvmZGfKENEoSY8NTTjJ5LqF+ol1JRwQ+uTABPZgy9XItWLINrS3yC1Q==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.23.0.tgz", + "integrity": "sha512-/BNHdvbD7r1p3k3HWgxYLBo2L2Ye9RDcmTuA6en2xUYaagf+0vfcAK8iyBvVm6ir2ZjAsMW0PGRa7OIfetvHHg==", "hasInstallScript": true, "dependencies": { - "@percy/client": "1.18.0", - "@percy/config": "1.18.0", - "@percy/dom": "1.18.0", - "@percy/logger": "1.18.0", + "@percy/client": "1.23.0", + "@percy/config": "1.23.0", + "@percy/dom": "1.23.0", + "@percy/logger": "1.23.0", "content-disposition": "^0.5.4", "cross-spawn": "^7.0.3", "extract-zip": "^2.0.1", @@ -385,22 +376,22 @@ } }, "node_modules/@percy/dom": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.18.0.tgz", - "integrity": "sha512-FoaUgmdCaymSVV/5UQsDwPlZYpSymViODiGJxEJnfESKB4L5aNWQTL3QefFOAI67Q9lUIezW7oueLPsH2XlCNg==" + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.23.0.tgz", + "integrity": "sha512-68q3ceCWsWpUFyF/pnELSCTdbTAibGVyNwp+iZCFd/914sUhERYrrX8AqCgkCDerOzCwAQZQDe2Nv3jaB+d0ng==" }, "node_modules/@percy/env": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.18.0.tgz", - "integrity": "sha512-b+RTDPst4yKk67EQMjGeBIjfAkqZy2jUXgW3SKaNCyCOzI+16IXJ1gJSrniv29TpxgqDa1y3OUyWTPkmuDVi2A==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.23.0.tgz", + "integrity": "sha512-oKvJBC/Zhfwp2QpFBpfHeAVuGhgaPeI7S4H2/68XT30pInfVJzaCjD/8ySAELGyMWmgHc51s+k09DZCo3C3Gyg==", "engines": { "node": ">=14" } }, "node_modules/@percy/logger": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.18.0.tgz", - "integrity": "sha512-ZC9OqaTVPjnndcSfbQaU0NcquC0J4KZFx7hEDznukXNsLIK4WSLiEK1QS+tGxAkIKZilHmVc/vv9q3lMvlQDaQ==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.23.0.tgz", + "integrity": "sha512-kNtdKQ9Kou/RcWgDoSK+ofOVqOzuzyHBNsK+I92XNh8HHO6ow08Cmw+LtZbDxmj3uq7nXG9Nhgj4ZqSgdk7J6Q==", "engines": { "node": ">=14" } @@ -468,9 +459,9 @@ "dev": true }, "node_modules/@types/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==", "dev": true }, "node_modules/@types/yauzl": { @@ -483,19 +474,19 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz", - "integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz", + "integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.51.0", - "@typescript-eslint/type-utils": "5.51.0", - "@typescript-eslint/utils": "5.51.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/type-utils": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, @@ -517,14 +508,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz", - "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", + "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.51.0", - "@typescript-eslint/types": "5.51.0", - "@typescript-eslint/typescript-estree": "5.51.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "debug": "^4.3.4" }, "engines": { @@ -544,13 +535,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz", - "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", + "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.51.0", - "@typescript-eslint/visitor-keys": "5.51.0" + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -561,13 +552,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz", - "integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", + "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.51.0", - "@typescript-eslint/utils": "5.51.0", + "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -588,9 +579,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz", - "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -601,13 +592,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz", - "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.51.0", - "@typescript-eslint/visitor-keys": "5.51.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -628,18 +619,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz", - "integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", + "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", "dev": true, "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.51.0", - "@typescript-eslint/types": "5.51.0", - "@typescript-eslint/typescript-estree": "5.51.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" }, "engines": { @@ -654,12 +645,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz", - "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/types": "5.59.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -716,17 +707,14 @@ } }, "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==", + "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==", "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/argparse": { @@ -814,7 +802,21 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/color-convert": { + "node_modules/chalk/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/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==", @@ -825,11 +827,43 @@ "node": ">=7.0.0" } }, - "node_modules/color-name": { + "node_modules/chalk/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==" }, + "node_modules/chalk/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -880,6 +914,24 @@ "node": ">= 6" } }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -921,9 +973,9 @@ "dev": true }, "node_modules/deepmerge": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", - "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "engines": { "node": ">=0.10.0" } @@ -993,12 +1045,15 @@ } }, "node_modules/eslint": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz", - "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -1009,10 +1064,9 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -1033,7 +1087,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -1070,40 +1123,16 @@ "node": ">=4.0" } }, - "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/eslint-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/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ajv": { @@ -1154,14 +1183,14 @@ "dev": true }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1171,9 +1200,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -1499,11 +1528,11 @@ "dev": true }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/ignore": { @@ -1963,9 +1992,9 @@ } }, "node_modules/prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -2021,18 +2050,6 @@ } ] }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -2199,14 +2216,14 @@ } }, "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==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/text-table": { @@ -2272,16 +2289,16 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=12.20" } }, "node_modules/unfetch": { @@ -2342,9 +2359,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "engines": { "node": ">=10.0.0" }, @@ -2393,9 +2410,9 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", "requires": { "@babel/highlight": "^7.18.6" } @@ -2415,14 +2432,6 @@ "js-tokens": "^4.0.0" }, "dependencies": { - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -2432,44 +2441,33 @@ "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==", - "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "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" - } } } }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true + }, "@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -2498,6 +2496,12 @@ } } }, + "@eslint/js": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "dev": true + }, "@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", @@ -2545,114 +2549,114 @@ } }, "@percy/cli": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.18.0.tgz", - "integrity": "sha512-yfvVh2uwTqMGxn2wF/RCvGVsyfXkeKOt05Cil4s8PRSBQ94iDY872lMJ3al0gSq0y4GLAH9CO7ZVt3uqD2tlBg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.23.0.tgz", + "integrity": "sha512-3S+QUWdeJq6ZUWoRNLuX+wdJx8civJdrSmYG9WS2CP9auJNbuA+13xQnB5AkkWUvHEcC/yXzZpi5NAjoW86jgw==", "requires": { - "@percy/cli-app": "1.18.0", - "@percy/cli-build": "1.18.0", - "@percy/cli-command": "1.18.0", - "@percy/cli-config": "1.18.0", - "@percy/cli-exec": "1.18.0", - "@percy/cli-snapshot": "1.18.0", - "@percy/cli-upload": "1.18.0", - "@percy/client": "1.18.0", - "@percy/logger": "1.18.0" + "@percy/cli-app": "1.23.0", + "@percy/cli-build": "1.23.0", + "@percy/cli-command": "1.23.0", + "@percy/cli-config": "1.23.0", + "@percy/cli-exec": "1.23.0", + "@percy/cli-snapshot": "1.23.0", + "@percy/cli-upload": "1.23.0", + "@percy/client": "1.23.0", + "@percy/logger": "1.23.0" } }, "@percy/cli-app": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.18.0.tgz", - "integrity": "sha512-EAqD61ivuCwfl6PacXW9Wx9kTRvMPCBlQnxmrhx7jJG5tIp418p4XB3zkFOAirUa/LOdwNIVaPCHJyVAcJ1V5Q==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.23.0.tgz", + "integrity": "sha512-2L5chuBFp016LlkB7BihGtm0XJFCZEDNIcOFchsK7l2REBUkxVeM6hNQ89uuP2F9eKXwWKqtDEIYCzdzW0hfIQ==", "requires": { - "@percy/cli-command": "1.18.0", - "@percy/cli-exec": "1.18.0" + "@percy/cli-command": "1.23.0", + "@percy/cli-exec": "1.23.0" } }, "@percy/cli-build": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.18.0.tgz", - "integrity": "sha512-FuYWjXx4Wy0v27GpwxGX5qDq4xcLzlStbABNCp4H5RrNrLa1jkcViOKXTSurdjHYWlHHFWJUbk39D4g3ZRXOAA==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.23.0.tgz", + "integrity": "sha512-qIhfU/UtPl181Dw2kR8klEYLUlA5C8GE0M9781vz7D0W3LriccaLLLo1wBp4q4bo83uvUBvNJhq9/S4T38kPEQ==", "requires": { - "@percy/cli-command": "1.18.0" + "@percy/cli-command": "1.23.0" } }, "@percy/cli-command": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.18.0.tgz", - "integrity": "sha512-2dHJalp83IygD/FqXCFNND22z7f4r5uZxqr5GAyiJ0STkQYitTgwkUp+4IRdfK1zmi+A2dbyYU0xV9txEW5v8g==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.23.0.tgz", + "integrity": "sha512-tXj5vv2BQMBmn3ZL2YNqYYrmJLyYnBqwyJkecY2BwXQsKAIv3qBgTzr1d5+LxTOi5ArjFCHAgk2w4ohy6h6t4w==", "requires": { - "@percy/config": "1.18.0", - "@percy/core": "1.18.0", - "@percy/logger": "1.18.0" + "@percy/config": "1.23.0", + "@percy/core": "1.23.0", + "@percy/logger": "1.23.0" } }, "@percy/cli-config": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.18.0.tgz", - "integrity": "sha512-N5I7av5SGO5n0YC61wbqVniNxFwAQFFubKyGyGaVlQkmKyRuYCmDMHlPdSv3zyvVD1ZJCvtDzi/VqQGDubEieg==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.23.0.tgz", + "integrity": "sha512-tI4c4MhU41rx9n7fYZrpn4gaOD9dA6PnefP397v7smqEWh7MJ+cxI/nyKU0/9G2wGjMhYACaLoR4BiCWOQZAkw==", "requires": { - "@percy/cli-command": "1.18.0" + "@percy/cli-command": "1.23.0" } }, "@percy/cli-exec": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.18.0.tgz", - "integrity": "sha512-4y+XIsYS5KypJmTtGKyKFU4GZ6902dCcEMJNDc69grSsco9N2lBG2gsvChCrCA2gDT8nUvKng9z9KF2OiMvF3w==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.23.0.tgz", + "integrity": "sha512-ecxnMWxUlVx0EswGraHgN4LvWbXeUZQZUxJ9wYmMSgDEaKfEiEZ5WTLSKzQAxyfw2SjoQ3cHRZbKh4qMlCgbAg==", "requires": { - "@percy/cli-command": "1.18.0", + "@percy/cli-command": "1.23.0", "cross-spawn": "^7.0.3", "which": "^2.0.2" } }, "@percy/cli-snapshot": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.18.0.tgz", - "integrity": "sha512-3a7HqJU/wCT7fKraYw6S4cs8KrlUZ0MbDV9/dEbFh9nSfz0BLQjcK+kL8OzjxM+bVwZ6pf62FJl44nVLpXqrGw==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.23.0.tgz", + "integrity": "sha512-QOrUfyPCnjfIAcUBjNlO299NRPDxofcYQUCBYZE3CtemsNFtygFt0yPnZCwWmt0voSpnPl1Izc6/FA3wYUfuBQ==", "requires": { - "@percy/cli-command": "1.18.0", + "@percy/cli-command": "1.23.0", "yaml": "^2.0.0" } }, "@percy/cli-upload": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.18.0.tgz", - "integrity": "sha512-JSRoE0aTnBH1HGNGmDJxGNkNIGor7H8pv6lO8AUiwCwQ55EHgLqtWlhwq+2AHz7QOiGD8aOHQTwJk6GcCIIa3A==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.23.0.tgz", + "integrity": "sha512-faRHjzaUf21RK9Ra051gKUl4HmMNPZxUKSZNmdG0yP+tc5KxU9cXkmEeCKGH7LOcVs0IfyRX0vv58YEZ6GsIRw==", "requires": { - "@percy/cli-command": "1.18.0", + "@percy/cli-command": "1.23.0", "fast-glob": "^3.2.11", "image-size": "^1.0.0" } }, "@percy/client": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.18.0.tgz", - "integrity": "sha512-onuVIpB6TPNjEhLlPsyhJYXTY2xdv3iNx4bj8Yfk751vQ33US2z4FEWDQKIEvHJGcFT7NEIHXFT3bYcFDmREdQ==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.23.0.tgz", + "integrity": "sha512-m0qNCrlfh6Pf0t2GfoeShuK7r2GeRk5rWVjIbdnDigvmtL0G+HJM1gvysLOxzKFHkZ1cLBfM1SnH1Yn6RM/6qQ==", "requires": { - "@percy/env": "1.18.0", - "@percy/logger": "1.18.0" + "@percy/env": "1.23.0", + "@percy/logger": "1.23.0" } }, "@percy/config": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.18.0.tgz", - "integrity": "sha512-bjAiZuhORij3vxeolVjpf7ZU1Sjqv2Y9CgsBthoIu20f5o0a10w6JGgPkDjT3NaAIZDXgbxVsrWovlslbRC57w==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.23.0.tgz", + "integrity": "sha512-giPIdNLcG1Qg0dkc/VDOkTzI4szzM4QAoJfMLEP0UYPkIU2Y0Xc8NH5GN3DEiudRJge72iGfeah6GugxmXmKXw==", "requires": { - "@percy/logger": "1.18.0", + "@percy/logger": "1.23.0", "ajv": "^8.6.2", "cosmiconfig": "^7.0.0", "yaml": "^2.0.0" } }, "@percy/core": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.18.0.tgz", - "integrity": "sha512-9d8mkE6bfp0nRxhnGgC8N2KBG+MRiCxfvmZGfKENEoSY8NTTjJ5LqF+ol1JRwQ+uTABPZgy9XItWLINrS3yC1Q==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.23.0.tgz", + "integrity": "sha512-/BNHdvbD7r1p3k3HWgxYLBo2L2Ye9RDcmTuA6en2xUYaagf+0vfcAK8iyBvVm6ir2ZjAsMW0PGRa7OIfetvHHg==", "requires": { - "@percy/client": "1.18.0", - "@percy/config": "1.18.0", - "@percy/dom": "1.18.0", - "@percy/logger": "1.18.0", + "@percy/client": "1.23.0", + "@percy/config": "1.23.0", + "@percy/dom": "1.23.0", + "@percy/logger": "1.23.0", "content-disposition": "^0.5.4", "cross-spawn": "^7.0.3", "extract-zip": "^2.0.1", @@ -2665,19 +2669,19 @@ } }, "@percy/dom": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.18.0.tgz", - "integrity": "sha512-FoaUgmdCaymSVV/5UQsDwPlZYpSymViODiGJxEJnfESKB4L5aNWQTL3QefFOAI67Q9lUIezW7oueLPsH2XlCNg==" + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.23.0.tgz", + "integrity": "sha512-68q3ceCWsWpUFyF/pnELSCTdbTAibGVyNwp+iZCFd/914sUhERYrrX8AqCgkCDerOzCwAQZQDe2Nv3jaB+d0ng==" }, "@percy/env": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.18.0.tgz", - "integrity": "sha512-b+RTDPst4yKk67EQMjGeBIjfAkqZy2jUXgW3SKaNCyCOzI+16IXJ1gJSrniv29TpxgqDa1y3OUyWTPkmuDVi2A==" + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.23.0.tgz", + "integrity": "sha512-oKvJBC/Zhfwp2QpFBpfHeAVuGhgaPeI7S4H2/68XT30pInfVJzaCjD/8ySAELGyMWmgHc51s+k09DZCo3C3Gyg==" }, "@percy/logger": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.18.0.tgz", - "integrity": "sha512-ZC9OqaTVPjnndcSfbQaU0NcquC0J4KZFx7hEDznukXNsLIK4WSLiEK1QS+tGxAkIKZilHmVc/vv9q3lMvlQDaQ==" + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.23.0.tgz", + "integrity": "sha512-kNtdKQ9Kou/RcWgDoSK+ofOVqOzuzyHBNsK+I92XNh8HHO6ow08Cmw+LtZbDxmj3uq7nXG9Nhgj4ZqSgdk7J6Q==" }, "@percy/playwright": { "version": "1.0.4", @@ -2725,9 +2729,9 @@ "dev": true }, "@types/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==", "dev": true }, "@types/yauzl": { @@ -2740,71 +2744,71 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz", - "integrity": "sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz", + "integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.51.0", - "@typescript-eslint/type-utils": "5.51.0", - "@typescript-eslint/utils": "5.51.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/type-utils": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "@typescript-eslint/parser": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.51.0.tgz", - "integrity": "sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", + "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.51.0", - "@typescript-eslint/types": "5.51.0", - "@typescript-eslint/typescript-estree": "5.51.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz", - "integrity": "sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", + "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.51.0", - "@typescript-eslint/visitor-keys": "5.51.0" + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0" } }, "@typescript-eslint/type-utils": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz", - "integrity": "sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", + "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.51.0", - "@typescript-eslint/utils": "5.51.0", + "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/utils": "5.59.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.51.0.tgz", - "integrity": "sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", + "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz", - "integrity": "sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", + "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.51.0", - "@typescript-eslint/visitor-keys": "5.51.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/visitor-keys": "5.59.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -2813,28 +2817,28 @@ } }, "@typescript-eslint/utils": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.51.0.tgz", - "integrity": "sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", + "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", "dev": true, "requires": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.51.0", - "@typescript-eslint/types": "5.51.0", - "@typescript-eslint/typescript-estree": "5.51.0", + "@typescript-eslint/scope-manager": "5.59.0", + "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.51.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz", - "integrity": "sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", + "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.51.0", + "@typescript-eslint/types": "5.59.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -2869,11 +2873,11 @@ "dev": true }, "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "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==", "requires": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" } }, "argparse": { @@ -2937,20 +2941,56 @@ "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.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==", + "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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.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==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "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==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "combined-stream": { "version": "1.0.8", @@ -2992,6 +3032,15 @@ } } }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3024,9 +3073,9 @@ "dev": true }, "deepmerge": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", - "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==" + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" }, "delayed-stream": { "version": "1.0.0", @@ -3078,12 +3127,15 @@ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "eslint": { - "version": "8.34.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz", - "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3094,10 +3146,9 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -3118,7 +3169,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -3178,44 +3228,27 @@ } } }, - "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" - }, - "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 - } - } - }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true }, "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" } }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -3449,9 +3482,9 @@ "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==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "ignore": { "version": "5.2.0", @@ -3781,9 +3814,9 @@ "dev": true }, "prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", "dev": true }, "pump": { @@ -3813,12 +3846,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -3916,11 +3943,11 @@ "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==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" } }, "text-table": { @@ -3968,9 +3995,9 @@ "dev": true }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true }, "unfetch": { @@ -4016,9 +4043,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "requires": {} }, "yaml": { diff --git a/e2e-tests/playwright/package.json b/e2e-tests/playwright/package.json index d2c21cbc695..e2e7ecf1eef 100644 --- a/e2e-tests/playwright/package.json +++ b/e2e-tests/playwright/package.json @@ -1,33 +1,35 @@ { "scripts": { - "test": "PW_SNAPSHOT_ENABLE=true playwright test", - "percy": "PERCY_TOKEN=$PERCY_TOKEN PW_PERCY_ENABLE=true percy exec -- playwright test --project=chrome --project=iphone --project=ipad", + "test": "cross-env PW_SNAPSHOT_ENABLE=true playwright test", + "percy": "cross-env PERCY_TOKEN=$PERCY_TOKEN PW_PERCY_ENABLE=true percy exec -- playwright test --project=chrome --project=iphone --project=ipad", "tsc": "tsc -b", "lint": "eslint . --ext .js,.ts", "prettier": "prettier --write .", "check": "npm run tsc && npm run lint && npm run prettier", - "codegen": "playwright codegen $PW_BASE_URL", - "test-slomo": "PW_SNAPSHOT_ENABLE=true PW_HEADLESS=false PW_SLOWMO=1000 playwright test", + "codegen": "cross-env playwright codegen $PW_BASE_URL", + "playwright-ui": "playwright test --ui", + "test-slomo": "cross-env PW_SNAPSHOT_ENABLE=true PW_SLOWMO=1000 playwright test", "show-report": "npx playwright show-report" }, "dependencies": { - "@percy/cli": "1.18.0", + "@percy/cli": "1.23.0", "@percy/playwright": "1.0.4", "@playwright/test": "1.32.3", "async-wait-until": "2.0.12", "chalk": "4.1.2", - "deepmerge": "4.3.0", + "deepmerge": "4.3.1", "dotenv": "16.0.3", "form-data": "4.0.0", "isomorphic-unfetch": "4.0.2", "uuid": "9.0.0" }, "devDependencies": { - "@types/uuid": "9.0.0", - "@typescript-eslint/eslint-plugin": "5.51.0", - "@typescript-eslint/parser": "5.51.0", - "eslint": "8.34.0", - "prettier": "2.8.4", - "typescript": "4.9.5" + "@types/uuid": "9.0.1", + "@typescript-eslint/eslint-plugin": "5.59.0", + "@typescript-eslint/parser": "5.59.0", + "cross-env": "7.0.3", + "eslint": "8.38.0", + "prettier": "2.8.7", + "typescript": "5.0.4" } } diff --git a/e2e-tests/playwright/sample.env b/e2e-tests/playwright/sample.env index d474d199e64..73ffe199810 100644 --- a/e2e-tests/playwright/sample.env +++ b/e2e-tests/playwright/sample.env @@ -35,7 +35,7 @@ # - Default to "false" if not set. # 12. PW_HEADLESS -# - Default to "true" if not set. Set to false to run test in head mode. +# - Default to "false" or headless mode if not set. Set to true to run test in headed mode. # 13. PW_SLOWMO # - Default to "0" if not set which means normal test speed run. Slows down Playwright operations by the specified amount of milliseconds. Useful so that you can see what is going on. diff --git a/e2e-tests/playwright/support/browser_context.ts b/e2e-tests/playwright/support/browser_context.ts index 59badf9a9cf..3aead7e46ee 100644 --- a/e2e-tests/playwright/support/browser_context.ts +++ b/e2e-tests/playwright/support/browser_context.ts @@ -3,16 +3,18 @@ import {writeFile} from 'node:fs/promises'; -import {request, Browser} from '@playwright/test'; +import {request, Browser, BrowserContext} from '@playwright/test'; import {UserProfile} from '@mattermost/types/users'; import testConfig from '@e2e-test.config'; export class TestBrowser { readonly browser: Browser; + context: BrowserContext | null; constructor(browser: Browser) { this.browser = browser; + this.context = null; } async login(user: UserProfile | null) { @@ -27,8 +29,16 @@ export class TestBrowser { const context = await this.browser.newContext(options); const page = await context.newPage(); + this.context = context; + return {context, page}; } + + async close() { + if (this.context) { + await this.context.close(); + } + } } export async function loginByAPI(loginId: string, password: string, token = '', ldapOnly = false) { diff --git a/e2e-tests/playwright/support/server/client.ts b/e2e-tests/playwright/support/server/client.ts index 703275e0d7c..6a41218e234 100644 --- a/e2e-tests/playwright/support/server/client.ts +++ b/e2e-tests/playwright/support/server/client.ts @@ -1,7 +1,7 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -// This is based on "packages/client/src/client4.ts". Modified for node client. +// This is based on "webapp/platform/client/src/client4.ts". Modified for node client. // Update should be made in comparison with the base Client4. import fs from 'node:fs'; @@ -134,7 +134,7 @@ export default class Client extends Client4 { // ***************************************************************************** // Boards client - // based on https://github.com/mattermost/focalboard/blob/main/webapp/src/octoClient.ts + // based on "webapp/boards/src/octoClient.ts" // ***************************************************************************** async patchUserConfig(userID: string, patch: UserConfigPatch): Promise { diff --git a/e2e-tests/playwright/support/server/default_config.ts b/e2e-tests/playwright/support/server/default_config.ts index a82775d783f..4e7c589644d 100644 --- a/e2e-tests/playwright/support/server/default_config.ts +++ b/e2e-tests/playwright/support/server/default_config.ts @@ -319,7 +319,6 @@ const defaultServerConfig: AdminConfig = { LoginButtonColor: '#0000', LoginButtonBorderColor: '#2389D7', LoginButtonTextColor: '#2389D7', - EnableInactivityEmail: true, }, RateLimitSettings: { Enable: false, @@ -622,12 +621,6 @@ const defaultServerConfig: AdminConfig = { 'com.mattermost.nps': { Enable: true, }, - focalboard: { - Enable: true, - }, - playbooks: { - Enable: true, - }, }, EnableMarketplace: true, EnableRemoteMarketplace: true, @@ -671,13 +664,12 @@ const defaultServerConfig: AdminConfig = { BoardsFeatureFlags: '', BoardsDataRetention: false, NormalizeLdapDNs: false, - EnableInactivityCheckJob: true, UseCaseOnboarding: true, GraphQL: false, InsightsEnabled: true, CommandPalette: false, SendWelcomePost: true, - WorkTemplate: false, + WorkTemplate: true, PostPriority: true, WysiwygEditor: false, PeopleProduct: false, @@ -686,7 +678,9 @@ const defaultServerConfig: AdminConfig = { ThreadsEverywhere: false, GlobalDrafts: true, OnboardingTourTips: true, + DeprecateCloudFree: false, AppsSidebarCategory: false, + CloudReverseTrial: false, }, ImportSettings: { Directory: './import', diff --git a/e2e-tests/playwright/support/server/init.ts b/e2e-tests/playwright/support/server/init.ts index c8527ea3188..4f33bafb80d 100644 --- a/e2e-tests/playwright/support/server/init.ts +++ b/e2e-tests/playwright/support/server/init.ts @@ -3,7 +3,9 @@ import path from 'node:path'; import {expect} from '@playwright/test'; +import chalk from 'chalk'; +import {ClientError} from '@mattermost/client/client4'; import {PreferenceType} from '@mattermost/types/preferences'; import testConfig from '@e2e-test.config'; @@ -77,10 +79,21 @@ export async function initSetup({ offTopicUrl: getUrl(team.name, 'off-topic'), townSquareUrl: getUrl(team.name, 'town-square'), }; - } catch (err) { + } catch (error) { // log an error for debugging // eslint-disable-next-line no-console - console.log(err); + const err = error as ClientError; + if (err.message === 'Could not parse multipart form.') { + // eslint-disable-next-line no-console + console.log(chalk.yellow(`node version: ${process.version}\nNODE_OPTIONS: ${process.env.NODE_OPTIONS}`)); + + // eslint-disable-next-line no-console + console.log( + chalk.green( + `This failed due to the experimental fetch support in Node.js starting v18.0.0.\nYou may set environment variable: "export NODE_OPTIONS='--no-experimental-fetch'", then try again.'` + ) + ); + } expect(err, 'Should not throw an error').toBeFalsy(); throw err; } diff --git a/e2e-tests/playwright/support/test_fixture.ts b/e2e-tests/playwright/support/test_fixture.ts index d35435dd7c1..1614f5a3cce 100644 --- a/e2e-tests/playwright/support/test_fixture.ts +++ b/e2e-tests/playwright/support/test_fixture.ts @@ -18,6 +18,7 @@ export const test = base.extend({ pw: async ({browser}, use) => { const pw = new PlaywrightExtended(browser); await use(pw); + await pw.testBrowser.close(); }, // eslint-disable-next-line no-empty-pattern pages: async ({}, use) => { diff --git a/e2e-tests/playwright/support/ui/components/global_header.ts b/e2e-tests/playwright/support/ui/components/global_header.ts index ccd1d48ee4b..8ab49d63070 100644 --- a/e2e-tests/playwright/support/ui/components/global_header.ts +++ b/e2e-tests/playwright/support/ui/components/global_header.ts @@ -16,7 +16,7 @@ export default class GlobalHeader { async switchProduct(name: string) { await this.productSwitchMenu.click(); - await this.container.getByRole('link', {name: ` ${name}`}).click(); + await this.container.getByRole('link', {name}).click(); } async toBeVisible(name: string) { diff --git a/e2e-tests/playwright/test.config.ts b/e2e-tests/playwright/test.config.ts index 5a370a541ec..e0f8eb90551 100644 --- a/e2e-tests/playwright/test.config.ts +++ b/e2e-tests/playwright/test.config.ts @@ -55,7 +55,7 @@ const config: TestConfig = { // CI isCI: !!process.env.CI, // Playwright - headless: parseBool(process.env.PW_HEADLESS, false), + headless: parseBool(process.env.PW_HEADLESS, true), slowMo: parseNumber(process.env.PW_SLOWMO, 0), workers: parseNumber(process.env.PW_WORKERS, 1), // Visual tests diff --git a/e2e-tests/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-chrome-linux.png b/e2e-tests/playwright/tests/visual/boards/board_template.spec.ts-snapshots/board-template-chrome-linux.png index f15014aaa40199db6fc3eedb6fb9f1a4d0fb2534..987b4d5b8da11a484005c30bb23be861b1878c17 100644 GIT binary patch literal 129821 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

1_bg|C*8zHMV2W9^3*N)bV2>fNW*YjC8aQ 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