diff --git a/e2e-product-testing/cypress.json b/e2e-product-testing/cypress.json index 83488e8803..fa34d0db1d 100644 --- a/e2e-product-testing/cypress.json +++ b/e2e-product-testing/cypress.json @@ -1,5 +1,6 @@ { - "testFiles": "**/*.{feature,features}", + "testFiles": "**/*.feature", "screenshotOnRunFailure": true, - "videoUploadOnPasses": false + "videoUploadOnPasses": false, + "TAGS": "@implemented-tag" } diff --git a/e2e-product-testing/cypress/fixtures/example.json b/e2e-product-testing/cypress/fixtures/example.json new file mode 100644 index 0000000000..02e4254378 --- /dev/null +++ b/e2e-product-testing/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/e2e-product-testing/cypress/integration/AdjustPlanningUnits.feature b/e2e-product-testing/cypress/integration/AdjustPlanningUnits.feature deleted file mode 100644 index 7b0d336a6f..0000000000 --- a/e2e-product-testing/cypress/integration/AdjustPlanningUnits.feature +++ /dev/null @@ -1,69 +0,0 @@ -Feature: 'Exclude' planning units - Scenario: upload correct lock-out shp - Given the user is in the Analysis tab - And the user has selected 'Exclude areas' - And the user has selected 'Upload shapefile' - When the user uploads a correct shapefile - Then the area is displayed on the map and as a removable modal - Scenario: upload incorrect lock-out shp - Given the user is in the Analysis tab - And the user has selected 'Exclude areas' - And the user has selected 'Upload shapefile' - When the user uploads an incorrect shapefile - Then the user gets an error on screen - @happypath - Scenario: draw lock-out area over map - Given the user is in the Analysis tab - And the user has selected 'Exclude areas' - And the user has selected 'Draw a shape on map' - When the user draws on the map - Then the area is displayed on the map and as a removable modal - @happypath - Scenario: select individual lock-out planning units on map - Given the user is in the Analysis tab - And the user has selected 'Exclude areas' - And the user has selected 'Select planning units' - When the user selects planning units on the map - Then the area is displayed on the map and as a removable modal - @happypath - Scenario: remove lock-out selection - Given the user is in the Analysis tab - And the user has selected 'Exclude areas' - And the user has added some areas to include - When the user clicks 'Clear' on a selected area to exclude - Then the selected excluded area is removed form the map and the modal - -Feature: 'Include' planning units - Scenario: upload correct lock-in shp - Given the user is in the Analysis tab - And the user has selected 'Include areas' - And the user has selected 'Upload shapefile' - When the user uploads a correct shapefile - Then the area is displayed on the map and as a removable modal - Scenario: upload incorrect lock-in shp - Given the user is in the Analysis tab - And the user has selected 'Include areas' - And the user has selected 'Upload shapefile' - When the user uploads an incorrect shapefile - Then the user gets an error on screen - @happypath - Scenario: draw lock-in area over map - Given the user is in the Analysis tab - And the user has selected 'Include areas' - And the user has selected 'Draw a shape on map' - When the user draws on the map - Then the area is displayed on the map and as a removable modal - @happypath - Scenario: select individual lock-in planning units on map - Given the user is in the Analysis tab - And the user has selected 'Include areas' - And the user has selected 'Select planning units' - When the user selects planning units on the map - Then the area is displayed on the map and as a removable modal - @happypath - Scenario: remove lock-in selection - Given the user is in the Analysis tab - And the user has selected 'Include areas' - And the user has added some areas to include - When the user clicks 'Clear' on a selected areas to include - Then the selected included area is removed form the map and the modal \ No newline at end of file diff --git a/e2e-product-testing/cypress/integration/AdjustPlanningUnitsExclusion.feature b/e2e-product-testing/cypress/integration/AdjustPlanningUnitsExclusion.feature new file mode 100644 index 0000000000..91157a308c --- /dev/null +++ b/e2e-product-testing/cypress/integration/AdjustPlanningUnitsExclusion.feature @@ -0,0 +1,39 @@ +Feature: Exclude planning units + + Scenario: upload correct lock-out shp + Given the user is in the Analysis tab + And the user has selected 'Exclude areas' + And the user has selected 'Upload shapefile' + When the user uploads a correct shapefile + Then the area is displayed on the map and as a removable modal + + Scenario: upload incorrect lock-out shp + Given the user is in the Analysis tab + And the user has selected 'Exclude areas' + And the user has selected 'Upload shapefile' + When the user uploads an incorrect shapefile + Then the user gets an error on screen + + @happypath + Scenario: draw lock-out area over map + Given the user is in the Analysis tab + And the user has selected 'Exclude areas' + And the user has selected 'Draw a shape on map' + When the user draws on the map + Then the area is displayed on the map and as a removable modal + + @happypath + Scenario: select individual lock-out planning units on map + Given the user is in the Analysis tab + And the user has selected 'Exclude areas' + And the user has selected 'Select planning units' + When the user selects planning units on the map + Then the area is displayed on the map and as a removable modal + + @happypath + Scenario: remove lock-out selection + Given the user is in the Analysis tab + And the user has selected 'Exclude areas' + And the user has added some areas to include + When the user clicks 'Clear' on a selected area to exclude + Then the selected excluded area is removed form the map and the modal diff --git a/e2e-product-testing/cypress/integration/AdjustPlanningUnitsInclusion.feature b/e2e-product-testing/cypress/integration/AdjustPlanningUnitsInclusion.feature new file mode 100644 index 0000000000..85707ccbd5 --- /dev/null +++ b/e2e-product-testing/cypress/integration/AdjustPlanningUnitsInclusion.feature @@ -0,0 +1,39 @@ +Feature: Include planning units + + Scenario: upload correct lock-in shp + Given the user is in the Analysis tab + And the user has selected 'Include areas' + And the user has selected 'Upload shapefile' + When the user uploads a correct shapefile + Then the area is displayed on the map and as a removable modal + + Scenario: upload incorrect lock-in shp + Given the user is in the Analysis tab + And the user has selected 'Include areas' + And the user has selected 'Upload shapefile' + When the user uploads an incorrect shapefile + Then the user gets an error on screen + + @happypath + Scenario: draw lock-in area over map + Given the user is in the Analysis tab + And the user has selected 'Include areas' + And the user has selected 'Draw a shape on map' + When the user draws on the map + Then the area is displayed on the map and as a removable modal + + @happypath + Scenario: select individual lock-in planning units on map + Given the user is in the Analysis tab + And the user has selected 'Include areas' + And the user has selected 'Select planning units' + When the user selects planning units on the map + Then the area is displayed on the map and as a removable modal + + @happypath + Scenario: remove lock-in selection + Given the user is in the Analysis tab + And the user has selected 'Include areas' + And the user has added some areas to include + When the user clicks 'Clear' on a selected areas to include + Then the selected included area is removed form the map and the modal diff --git a/e2e-product-testing/cypress/integration/CostSurface.feature b/e2e-product-testing/cypress/integration/CostSurface.feature index 4667d3bf86..b88d246bec 100644 --- a/e2e-product-testing/cypress/integration/CostSurface.feature +++ b/e2e-product-testing/cypress/integration/CostSurface.feature @@ -1,9 +1,11 @@ -Feature: cost surface - Scenario: Upload correct cost surface shp - Given the user is in Analysis tab - When the user uploads a correct shapefile for the cost surface - Then the file appears on the screen - Scenario: Upload incorrect cost surface shp - Given the user is in Analysis tab - When the user uploads an incorrect shapefile for the cost surface - Then the user receives an error message on screen \ No newline at end of file +Feature: cost surface + + Scenario: Upload correct cost surface shp + Given the user is in Analysis tab + When the user uploads a correct shapefile for the cost surface + Then the file appears on the screen + + Scenario: Upload incorrect cost surface shp + Given the user is in Analysis tab + When the user uploads an incorrect shapefile for the cost surface + Then the user receives an error message on screen diff --git a/e2e-product-testing/cypress/integration/Features.feature b/e2e-product-testing/cypress/integration/Features.feature deleted file mode 100644 index b169fcb8ee..0000000000 --- a/e2e-product-testing/cypress/integration/Features.feature +++ /dev/null @@ -1,91 +0,0 @@ -Feature: Add features modal - @happypath - Scenario: Open features modal - Given the user is on the Features tab 1/2 - When the user selects 'Add features +' - Then the modal to add features opens - @happypath - Scenario: Add features from inside platform - Given the user is on Add features modal (Marxan 06b) - When the user selects 'Add' on the features he/she wants to add and Saves - Then the features are added to the Features tab 1/2 - Scenario: Upload features with incorrect shp - Given the user is on Add features modal (Marxan 06b) - And the user has an incorrect shapefile - When the user uploads his/her shp via 'Upload your own features' - Then the user gets an error message - Scenario: Upload features with correct shp - Given the user is on Add features modal (Marxan 06b) - And the user has a correct shapefile - When the user uploads his/her shp via 'Upload your own features' - Then the features are added to the Features tab 1/2 - @happypath - Scenario: Search features from inside platform with correct keywords - Given the user is on Add features modal (Marxan 06b) - When the user uses the search bar and types a keyword that matches a feature - Then only the features that match the keyword are shown - Scenario: Search features from inside platform with incorrect keywords - Given the user is on Add features modal (Marxan 06b) - When the user uses the search bar and types a keyword that does not matches any feature - Then no features are shown - -Feature: Split - @happypath - Scenario: Split output - Given the user is in Features tab 1/2 - And the user has added at least one Split layer (bioregional type) - And the user selects the bioregional layer and a category to split by - And the user selects the unique sub-categories he/she wants to keep - When the features are processed (Continue) - Then each sub-category appears as a new separate feature in Features tab 1/2 - -Feature: Intersection - @happypath - Scenario: Open intersection modal - Given the user is in Features tab 1/2 - And the user has added at least one Intersection layer (species type) - When The user clicks on 'Select features +' - Then the Intersection modal opens - - @happypath - Scenario: Intersection species with bioregional layer - Given the user is in the Intersection modal - And the user has selected a bioregional layer - And the user has selected a category - And the user has selected sub-categories - And the user has saved - When the features are processed (Continue) - Then each intersection of species with sub-category appears as a new separate feature in Features tab 1/2 - -Feature: Set targets - @happypath - Scenario: Set individual target - Given the user is in Features tab 2/2 - When the user changes the value of the target of one feature - Then the new target is displayed for that feature - - @happypath - Scenario: Set block target - Given the user is in Features tab 2/2 - When the user changes the value in the section 'ALL TARGETS' - Then the target of all the features display the new value - -Feature: Set FPF - @happypath - Scenario: Set individual FPF - Given the user is in Features tab 2/2 - When the user changes the value of the FPF of one feature - Then the new FPF is displayed for that feature - - @happypath - Scenario: Set block FPF - Given the user is in Features tab 2/2 - When the user changes the value in the section 'ALL FPF' - Then the FPF of all the features display the new value - -Feature: Feature processing - @happypath - Scenario: Feature processing - Given the user is in Feature tab 2/2 - When the user clicks 'Continue' - Then the user is sent to the Project dashboard to view the status of the Scenario \ No newline at end of file diff --git a/e2e-product-testing/cypress/integration/FeaturesIntersection.feature b/e2e-product-testing/cypress/integration/FeaturesIntersection.feature new file mode 100644 index 0000000000..a267cecdc7 --- /dev/null +++ b/e2e-product-testing/cypress/integration/FeaturesIntersection.feature @@ -0,0 +1,18 @@ +Feature: Intersection + + @happypath + Scenario: Open intersection modal + Given the user is in Features tab 1/2 + And the user has added at least one Intersection layer (species type) + When The user clicks on 'Select features +' + Then the Intersection modal opens + + @happypath + Scenario: Intersection species with bioregional layer + Given the user is in the Intersection modal + And the user has selected a bioregional layer + And the user has selected a category + And the user has selected sub-categories + And the user has saved + When the features are processed (Continue) + Then each intersection of species with sub-category appears as a new separate feature in Features tab 1/2 diff --git a/e2e-product-testing/cypress/integration/FeaturesModal.feature b/e2e-product-testing/cypress/integration/FeaturesModal.feature new file mode 100644 index 0000000000..43e442240d --- /dev/null +++ b/e2e-product-testing/cypress/integration/FeaturesModal.feature @@ -0,0 +1,37 @@ +Feature: Add features modal + + @happypath + Scenario: Open features modal + Given the user is on the Features tab 1/2 + When the user selects 'Add features +' + Then the modal to add features opens + + @happypath + Scenario: Add features from inside platform + Given the user is on Add features modal (Marxan 06b) + When the user selects 'Add' on the features he/she wants to add and Saves + Then the features are added to the Features tab 1/2 + + Scenario: Upload features with incorrect shp + Given the user is on Add features modal (Marxan 06b) + And the user has an incorrect shapefile + When the user uploads his/her shp via 'Upload your own features' + Then the user gets an error message + + Scenario: Upload features with correct shp + Given the user is on Add features modal (Marxan 06b) + And the user has a correct shapefile + When the user uploads his/her shp via 'Upload your own features' + Then the features are added to the Features tab 1/2 + + @happypath + Scenario: Search features from inside platform with correct keywords + Given the user is on Add features modal (Marxan 06b) + When the user uses the search bar and types a keyword that matches a feature + Then only the features that match the keyword are shown + + Scenario: Search features from inside platform with incorrect keywords + Given the user is on Add features modal (Marxan 06b) + When the user uses the search bar and types a keyword that does not matches any feature + Then no features are shown + diff --git a/e2e-product-testing/cypress/integration/FeaturesProcessing.feature b/e2e-product-testing/cypress/integration/FeaturesProcessing.feature new file mode 100644 index 0000000000..001f60fb7e --- /dev/null +++ b/e2e-product-testing/cypress/integration/FeaturesProcessing.feature @@ -0,0 +1,7 @@ +Feature: Feature processing + + @happypath + Scenario: Feature processing + Given the user is in Feature tab 2/2 + When the user clicks 'Continue' + Then the user is sent to the Project dashboard to view the status of the Scenario diff --git a/e2e-product-testing/cypress/integration/FeaturesSetFpf.feature b/e2e-product-testing/cypress/integration/FeaturesSetFpf.feature new file mode 100644 index 0000000000..2ae74398b9 --- /dev/null +++ b/e2e-product-testing/cypress/integration/FeaturesSetFpf.feature @@ -0,0 +1,13 @@ +Feature: Set FPF + + @happypath + Scenario: Set individual FPF + Given the user is in Features tab 2/2 + When the user changes the value of the FPF of one feature + Then the new FPF is displayed for that feature + + @happypath + Scenario: Set block FPF + Given the user is in Features tab 2/2 + When the user changes the value in the section 'ALL FPF' + Then the FPF of all the features display the new value diff --git a/e2e-product-testing/cypress/integration/FeaturesSetTargets.feature b/e2e-product-testing/cypress/integration/FeaturesSetTargets.feature new file mode 100644 index 0000000000..30c674fa86 --- /dev/null +++ b/e2e-product-testing/cypress/integration/FeaturesSetTargets.feature @@ -0,0 +1,13 @@ +Feature: Set targets + + @happypath + Scenario: Set individual target + Given the user is in Features tab 2/2 + When the user changes the value of the target of one feature + Then the new target is displayed for that feature + + @happypath + Scenario: Set block target + Given the user is in Features tab 2/2 + When the user changes the value in the section 'ALL TARGETS' + Then the target of all the features display the new value diff --git a/e2e-product-testing/cypress/integration/FeaturesSplit.feature b/e2e-product-testing/cypress/integration/FeaturesSplit.feature new file mode 100644 index 0000000000..78d3dff065 --- /dev/null +++ b/e2e-product-testing/cypress/integration/FeaturesSplit.feature @@ -0,0 +1,10 @@ +Feature: Split + + @happypath + Scenario: Split output + Given the user is in Features tab 1/2 + And the user has added at least one Split layer (bioregional type) + And the user selects the bioregional layer and a category to split by + And the user selects the unique sub-categories he/she wants to keep + When the features are processed (Continue) + Then each sub-category appears as a new separate feature in Features tab 1/2 diff --git a/e2e-product-testing/cypress/integration/GapAnalysis.feature b/e2e-product-testing/cypress/integration/GapAnalysis.feature index 0f2beb0d3e..f85dc6474d 100644 --- a/e2e-product-testing/cypress/integration/GapAnalysis.feature +++ b/e2e-product-testing/cypress/integration/GapAnalysis.feature @@ -1,24 +1,24 @@ Feature: View pre-run gap Analysis - @happypath - Scenario: Open gap analysis (default view all features) - Given the user is in Analysis tab - When the user opens the 'View gap Analysis' modal - Then the gap analysis displays all the features as a bar graph and on map - @happypath - Scenario: Gap analysis view selected features - Given the user has opened the gap analysis - When the user selects on the open eye icon on the features bar graph - Then the eye is crossed out and the layer is hidden in the map - - @happypath - Scenario: Close gap analysis - Given the user has opened the gap analysis - When the user clicks on 'Close gap analysis' - Then the gap analysis is no longer visible + @happypath + Scenario: Open gap analysis (default view all features) + Given the user is in Analysis tab + When the user opens the 'View gap Analysis' modal + Then the gap analysis displays all the features as a bar graph and on map -Feature: Download gap analysis - Scenario: download gap analysis - Given the user is in the Analysis tab - When the user clicks on 'Download' - Then the user downloads a pdf with the gap analysis to his/her local machine \ No newline at end of file + @happypath + Scenario: Gap analysis view selected features + Given the user has opened the gap analysis + When the user selects on the open eye icon on the features bar graph + Then the eye is crossed out and the layer is hidden in the map + + @happypath + Scenario: Close gap analysis + Given the user has opened the gap analysis + When the user clicks on 'Close gap analysis' + Then the gap analysis is no longer visible + + Scenario: download gap analysis + Given the user is in the Analysis tab + When the user clicks on 'Download' + Then the user downloads a pdf with the gap analysis to his/her local machine diff --git a/e2e-product-testing/cypress/integration/LogIn.feature b/e2e-product-testing/cypress/integration/LogIn.feature index 177d87e0f0..ee1814a4ae 100644 --- a/e2e-product-testing/cypress/integration/LogIn.feature +++ b/e2e-product-testing/cypress/integration/LogIn.feature @@ -1,49 +1,11 @@ -Feature: Sign up - Creating an account won't be fully testable via Cypress only, - as we'd need to get the user activated and this will involve an email step +@implemented +Feature: LogIn - Scenario: Not accepted terms and conditions - Given the user is in 'Sign up' page - And the user has introduced his/her information - But the user hasn't accepted the Terms of service - When the user clicks 'Sign up' - Then the user gets a notification on screen - Scenario: Accepted terms and conditions - Given the user is in 'Sign up' page - And the user has introduced his/her information - And the user has accepted the Terms of service - When the user clicks 'Sign up' - Then an email is sent to the email provided - Scenario: Already registered - Given the user is in 'Sign up' page - And the user has introduced his/her information - And the user has accepted the Terms of service - And the user is already registered - When the user clicks 'Sign up' - Then the user gets a notification on screen to 'Sign In' + I want to log in -Feature: validate account - Scenario: correct email introduced - Given the user has received a 'Sign up' validation email - When the user clicks on the provided link - Then the user's account is validated - -Feature: Sign in - @happypath - Scenario: correct email and password - Given the user is in 'Sign in' page - When the user introduces a correct email and password - Then the user is sent to Project Dashboard - Scenario: wrong email or password - Given the user is in 'Sign in' page - When the user introduces an incorrect email or password - Then the user gets a notification on screen - Scenario: recover password email - Given the user is in 'Sign in' page - And The user has forgotten his/her password - When the user introduces his email - Then an email with instructions is sent to the email provided - Scenario: not registered email - Given the user is in 'Sign in' page - When the user introduces an email that is not registered - Then the user gets a notification on screenF + Scenario: Logging in + Given I am on a main page + When I tap on the Sign In on Navigation Bar + When I type username and password + When I tap on Sign In under form + Then I see my dashboard diff --git a/e2e-product-testing/cypress/integration/Project.feature b/e2e-product-testing/cypress/integration/Project.feature index d545276fec..705185285c 100644 --- a/e2e-product-testing/cypress/integration/Project.feature +++ b/e2e-product-testing/cypress/integration/Project.feature @@ -1,113 +1,125 @@ Feature: Project dashboard actions - @happypath - Scenario: See user's projects - Given the user has logged-in successfully - When the user is redirected to his/her project dashboard - Then the user sees all his/her projects - @happypath - Scenario: Search a project with correct keywords - Given the user is in his/her project dashboard - When the user uses the search bar and types a keyword that matches a project - Then Only the projects that match the keyword are shown - Scenario: Search a project with incorrect keywords - Given the user is in his/her project dashboard - When the user uses the search bar and types a keyword that does not match any project - Then No projects are shown - @happypath - Scenario: Eliminate a project - Given the user is in his/her project dashboard - When the user deletes a project - Then The project is no longer in the users's dashboard - @happypath - Scenario: Create new project - Given the user is in his/her project dashboard - When the user creates a new project - Then the user is taken to the New Project Landing page - Scenario: Duplicate a project - Given the user is in his/her project dashboard - When the user duplicates a project - Then a new project appears in the dashboard - Scenario: Download a project - Given the user is in his/her project dashboard - When the user downloads a project - Then the user receives a bundle zip with all the input + output + planning unit files in his/her local machine - Scenario: Upload a project with correct files - Given the user is in his/her project dashboard - When the user uploads a project with correct files - Then a new project appears in the dashboard - Scenario: Upload a project with incorrect files - Given the user is in his/her project dashboard - When the user uploads a project with incorrect files - Then the user receives a message on screen where to find instructions - -Feature: Share projects - @happypath - Scenario: Share a project with contributors with Marxan profile - Given the user is inside a Project (Marxan 03a_hover) - And the user is in Add/Remove Members - When the user adds a contributor with a Marxan profile - Then the contributor appears on the project contributor list - Scenario: Share a project with contributor without Marxan profile - Given the user is inside a Project (Marxan 03a_hover) - And the user is in Add/Remove Members - When the user adds an email for a contributor without a Marxan profile - Then the contributor receives an email notification - @happypath - Scenario: Search contributors - Given the user is inside a Project (Marxan 03a_hover) - And the user is in Add/Remove Members - When the user searches for a contributor by keywords - Then only the contributors that match the keywords appear - -Feature: Add new planning region - @happypath - Scenario: User without planning region shp - Given the user is in the New Project Landing page - And the user is DOES NOT have a planning region shapefile - When the user selects a country and sub-region - Then the user see the contour area on the map - Scenario: User with correct planning region shp - Given the user is in the New Project Landing page - And the user has a correct planning region shapefile - When the user uploads his/her shp - Then the user sees the contour area on the map - Scenario: User with incorrect planning region shp - Given the user is in the New Project Landing page - And the user has an incorrect planning region shapefile - When the user uploads his/her shp - Then the user gets an error message - -Feature: Add new planning grid - @happypath - Scenario: User without grid and correct shape/size combination - Given the user is in the New Project Landing page - And the user has added a planning region - And the user DOES NOT have a planning unit grid - When the user chooses a correct combination of shape and size - Then The grid appears on the map - Scenario: User without grid and incorrect shape/size combination - Given the user is in the New Project Landing page - And the user has added a planning region - And the user DOES NOT have a planning unit grid - When the user chooses an incorrect combination of shape and size - Then the user gets an error message - Scenario: User with correct grid shp - Given the user is in the New Project Landing page - And the user has added a planning region - And the user has a correct planning unit grid shp - When the user uploads his/her shp - Then The grid appears on the map - Scenario: User with incorrect grid shp - Given the user is in the New Project Landing page - And the user has added a planning region - And the user has an incorrect planning unit grid shp - When the user uploads his/her shp - Then the user gets an error message - -Feature: Save project - @happypath - Scenario: Completed all steps - Given the user is in the New Project Landing page - And the user has added both a planning region and a grid - When the user Saves the project - Then the project shows in his/her Project dashboard + + @happypath + Scenario: See user's projects + Given the user has logged-in successfully + When the user is redirected to his/her project dashboard + Then the user sees all his/her projects + + @happypath + Scenario: Search a project with correct keywords + Given the user is in his/her project dashboard + When the user uses the search bar and types a keyword that matches a project + Then Only the projects that match the keyword are shown + + Scenario: Search a project with incorrect keywords + Given the user is in his/her project dashboard + When the user uses the search bar and types a keyword that does not match any project + Then No projects are shown + + @happypath + Scenario: Eliminate a project + Given the user is in his/her project dashboard + When the user deletes a project + Then The project is no longer in the users's dashboard + + @happypath + Scenario: Create new project + Given the user is in his/her project dashboard + When the user creates a new project + Then the user is taken to the New Project Landing page + + Scenario: Duplicate a project + Given the user is in his/her project dashboard + When the user duplicates a project + Then a new project appears in the dashboard + + Scenario: Download a project + Given the user is in his/her project dashboard + When the user downloads a project + Then the user receives a bundle zip with all the input + output + planning unit files in his/her local machine + + Scenario: Upload a project with correct files + Given the user is in his/her project dashboard + When the user uploads a project with correct files + Then a new project appears in the dashboard + + Scenario: Upload a project with incorrect files + Given the user is in his/her project dashboard + When the user uploads a project with incorrect files + Then the user receives a message on screen where to find instructions + + @happypath + Scenario: Share a project with contributors with Marxan profile + Given the user is inside a Project (Marxan 03a_hover) + And the user is in Add/Remove Members + When the user adds a contributor with a Marxan profile + Then the contributor appears on the project contributor list + + Scenario: Share a project with contributor without Marxan profile + Given the user is inside a Project (Marxan 03a_hover) + And the user is in Add/Remove Members + When the user adds an email for a contributor without a Marxan profile + Then the contributor receives an email notification + + @happypath + Scenario: Search contributors + Given the user is inside a Project (Marxan 03a_hover) + And the user is in Add/Remove Members + When the user searches for a contributor by keywords + Then only the contributors that match the keywords appear + + @happypath + Scenario: User without planning region shp + Given the user is in the New Project Landing page + And the user is DOES NOT have a planning region shapefile + When the user selects a country and sub-region + Then the user see the contour area on the map + + Scenario: User with correct planning region shp + Given the user is in the New Project Landing page + And the user has a correct planning region shapefile + When the user uploads his/her shp + Then the user sees the contour area on the map + + Scenario: User with incorrect planning region shp + Given the user is in the New Project Landing page + And the user has an incorrect planning region shapefile + When the user uploads his/her shp + Then the user gets an error message + + @happypath + Scenario: User without grid and correct shape/size combination + Given the user is in the New Project Landing page + And the user has added a planning region + And the user DOES NOT have a planning unit grid + When the user chooses a correct combination of shape and size + Then The grid appears on the map + + Scenario: User without grid and incorrect shape/size combination + Given the user is in the New Project Landing page + And the user has added a planning region + And the user DOES NOT have a planning unit grid + When the user chooses an incorrect combination of shape and size + Then the user gets an error message + + Scenario: User with correct grid shp + Given the user is in the New Project Landing page + And the user has added a planning region + And the user has a correct planning unit grid shp + When the user uploads his/her shp + Then The grid appears on the map + + Scenario: User with incorrect grid shp + Given the user is in the New Project Landing page + And the user has added a planning region + And the user has an incorrect planning unit grid shp + When the user uploads his/her shp + Then the user gets an error message + + @happypath + Scenario: Completed all steps + Given the user is in the New Project Landing page + And the user has added both a planning region and a grid + When the user Saves the project + Then the project shows in his/her Project dashboard diff --git a/e2e-product-testing/cypress/integration/ProjectCreation.feature b/e2e-product-testing/cypress/integration/ProjectCreation.feature new file mode 100644 index 0000000000..503843222b --- /dev/null +++ b/e2e-product-testing/cypress/integration/ProjectCreation.feature @@ -0,0 +1,15 @@ +@implemented +Feature: Create Project + + I want to create Project + + Background: + Given I am on Projects page + And I am logged in + + Scenario: Creating Project + When I tap on Create new project + And I type unique name into Project Name + And I type "Lorem Ipsum" into Project Description + And I press Save Project + Then the Project is created diff --git a/e2e-product-testing/cypress/integration/Project/on-project-page.ts b/e2e-product-testing/cypress/integration/ProjectCreation/on-project-page.ts similarity index 100% rename from e2e-product-testing/cypress/integration/Project/on-project-page.ts rename to e2e-product-testing/cypress/integration/ProjectCreation/on-project-page.ts diff --git a/e2e-product-testing/cypress/integration/Project/project-actions.ts b/e2e-product-testing/cypress/integration/ProjectCreation/project-actions.ts similarity index 100% rename from e2e-product-testing/cypress/integration/Project/project-actions.ts rename to e2e-product-testing/cypress/integration/ProjectCreation/project-actions.ts diff --git a/e2e-product-testing/cypress/integration/ProtectedAreas.feature b/e2e-product-testing/cypress/integration/ProtectedAreas.feature index 10f487660e..c43578eff7 100644 --- a/e2e-product-testing/cypress/integration/ProtectedAreas.feature +++ b/e2e-product-testing/cypress/integration/ProtectedAreas.feature @@ -1,17 +1,17 @@ -Feature: Select Protected Areas - @happypath - Scenario: Add WDPA from platform - Given the user is on the Protected Areas tab 1/2 - When the user selects and saves the protected areas he/she wants to add - Then the selected pas show on the map with no threshold applied - Scenario: Add PAs from upload - Given the user is on the Protected Areas tab 1/2 - When the user Uploads a correct shp - Then the selected pas show on the map with no threshold applied +Feature: Protected Areas -Feature: Set Protected Areas threshold - @happypath - Scenario: Set threshold + @happypath + Scenario: Add WDPA from platform + Given the user is on the Protected Areas tab 1/2 + When the user selects and saves the protected areas he/she wants to add + Then the selected pas show on the map with no threshold applied + + Scenario: Add PAs from upload + Given the user is on the Protected Areas tab 1/2 + When the user Uploads a correct shp + Then the selected pas show on the map with no threshold applied + + Scenario: Set threshold Given the user is on the Protected Areas tab 2/2 When the users sets a threshold value and saves - Then the map shows the result of crossing PAs and PUs areas at the threshold value \ No newline at end of file + Then the map shows the result of crossing PAs and PUs areas at the threshold value diff --git a/e2e-product-testing/cypress/integration/RunScenario.feature b/e2e-product-testing/cypress/integration/RunScenario.feature index 80bce94b4e..502d8e87e6 100644 --- a/e2e-product-testing/cypress/integration/RunScenario.feature +++ b/e2e-product-testing/cypress/integration/RunScenario.feature @@ -1,42 +1,50 @@ -Feature: Boundary length modifier - @happypath - Scenario: Modify boundary length modifier with correct value - Given the user is in the Run Scenario modal - When the user writes a value between the max and min allowed - Then the new value appears in the blm box - Scenario: Modify boundary length modifier with incorrect value - Given the user is in the Run Scenario modal - When the user writes a value outside of the max and min allowed - Then the user gets a notification on screen - -Feature: Number of repetitions - @happypath - Scenario: Modify number of repetitions with correct value - Given the user is in the Run Scenario modal - When the user writes a value between the max and min allowed - Then the new value appears in the 'number of repetitions' box - Scenario: Modify number of repetitions with incorrect value - Given the user is in the Run Scenario modal - When the user writes a value outside of the max and min allowed - Then the user gets a notification on screen - -Feature: Advanced settings - Scenario: Open advanced settings - Given the user is in the Run Scenario modal - When the user opnes the Advanced Setting modal - Then a modal appears with all the possible values the user can mofify and their allowed ranges - Scenario: Modify with correct value - Given the user is in the 'Advanced Settings' modal - When the user writes a value between the max and min allowed - Then the new value appears in the corresponding box - Scenario: Modify with incorrect value - Given the user is in the 'Advanced Settings' modal - When the user writes a value outside of the max and min allowed - Then the user gets a notification on screen +#Feature: Boundary length modifier +# +# @happypath +# Scenario: Modify boundary length modifier with correct value +# Given the user is in the Run Scenario modal +# When the user writes a value between the max and min allowed +# Then the new value appears in the blm box +# +# Scenario: Modify boundary length modifier with incorrect value +# Given the user is in the Run Scenario modal +# When the user writes a value outside of the max and min allowed +# Then the user gets a notification on screen +# +#Feature: Number of repetitions +# +# @happypath +# Scenario: Modify number of repetitions with correct value +# Given the user is in the Run Scenario modal +# When the user writes a value between the max and min allowed +# Then the new value appears in the 'number of repetitions' box +# +# Scenario: Modify number of repetitions with incorrect value +# Given the user is in the Run Scenario modal +# When the user writes a value outside of the max and min allowed +# Then the user gets a notification on screen +# +#Feature: Advanced settings +# +# Scenario: Open advanced settings +# Given the user is in the Run Scenario modal +# When the user opnes the Advanced Setting modal +# Then a modal appears with all the possible values the user can mofify and their allowed ranges +# +# Scenario: Modify with correct value +# Given the user is in the 'Advanced Settings' modal +# When the user writes a value between the max and min allowed +# Then the new value appears in the corresponding box +# +# Scenario: Modify with incorrect value +# Given the user is in the 'Advanced Settings' modal +# When the user writes a value outside of the max and min allowed +# Then the user gets a notification on screen Feature: Run Marxan - @happypath - Scenario: run marxan - Given the user is in the Run Scenario modal - When the user selects 'Run Scenario' - Then the user is sent to the Project dashboard to view the status of the Scenario \ No newline at end of file + + @happypath + Scenario: run marxan + Given the user is in the Run Scenario modal + When the user selects 'Run Scenario' + Then the user is sent to the Project dashboard to view the status of the Scenario diff --git a/e2e-product-testing/cypress/integration/Scenario.feature b/e2e-product-testing/cypress/integration/Scenario.feature index ad3891feff..fad9cd5458 100644 --- a/e2e-product-testing/cypress/integration/Scenario.feature +++ b/e2e-product-testing/cypress/integration/Scenario.feature @@ -1,13 +1,15 @@ Feature: Create New Scenario - @happypath - Scenario: create scenario inside platform - Given the user is on the Project landing page (Marxan 03a) - And the user selects 'Create Scenario +' - And the user selects 'Marxan' (default) - When the user Saves - Then the a new scenario appears in the Project landing page - Scenario: create scenario from upload - Given the user is on the Project landing page (Marxan 03a) - And the user selects 'Upload New Scenario' - When the user uploads correct files - Then a new Scenario appears in the Project landing page \ No newline at end of file + + @happypath + Scenario: create scenario inside platform + Given the user is on the Project landing page (Marxan 03a) + And the user selects 'Create Scenario +' + And the user selects 'Marxan' (default) + When the user Saves + Then the a new scenario appears in the Project landing page + + Scenario: create scenario from upload + Given the user is on the Project landing page (Marxan 03a) + And the user selects 'Upload New Scenario' + When the user uploads correct files + Then a new Scenario appears in the Project landing page diff --git a/e2e-product-testing/cypress/integration/SignIn.feature b/e2e-product-testing/cypress/integration/SignIn.feature new file mode 100644 index 0000000000..bff22dd372 --- /dev/null +++ b/e2e-product-testing/cypress/integration/SignIn.feature @@ -0,0 +1,23 @@ +Feature: Sign in + + @happypath + Scenario: correct email and password + Given the user is in 'Sign in' page + When the user introduces a correct email and password + Then the user is sent to Project Dashboard + + Scenario: wrong email or password + Given the user is in 'Sign in' page + When the user introduces an incorrect email or password + Then the user gets a notification on screen + + Scenario: recover password email + Given the user is in 'Sign in' page + And The user has forgotten his/her password + When the user introduces his email + Then an email with instructions is sent to the email provided + + Scenario: not registered email + Given the user is in 'Sign in' page + When the user introduces an email that is not registered + Then the user gets a notification on screenF diff --git a/e2e-product-testing/cypress/integration/SignUp.feature b/e2e-product-testing/cypress/integration/SignUp.feature new file mode 100644 index 0000000000..761ed86796 --- /dev/null +++ b/e2e-product-testing/cypress/integration/SignUp.feature @@ -0,0 +1,30 @@ +Feature: Sign up + Creating an account won't be fully testable via Cypress only, + as we'd need to get the user activated and this will involve an email step + + Scenario: Not accepted terms and conditions + Given the user is in 'Sign up' page + And the user has introduced his/her information + But the user hasn't accepted the Terms of service + When the user clicks 'Sign up' + Then the user gets a notification on screen + + Scenario: Accepted terms and conditions + Given the user is in 'Sign up' page + And the user has introduced his/her information + And the user has accepted the Terms of service + When the user clicks 'Sign up' + Then an email is sent to the email provided + + Scenario: Already registered + Given the user is in 'Sign up' page + And the user has introduced his/her information + And the user has accepted the Terms of service + And the user is already registered + When the user clicks 'Sign up' + Then the user gets a notification on screen to 'Sign In' + + Scenario: correct email introduced + Given the user has received a 'Sign up' validation email + When the user clicks on the provided link + Then the user's account is validated diff --git a/e2e-product-testing/cypress/integration/Solutions.feature b/e2e-product-testing/cypress/integration/Solutions.feature deleted file mode 100644 index a821bdb649..0000000000 --- a/e2e-product-testing/cypress/integration/Solutions.feature +++ /dev/null @@ -1,186 +0,0 @@ -@unmet_targets -Feature: View unmet targets - Scenario: Move from Solutions to Features - Given the user is in the Solutions tab - And there are features that don't meet their target - When the user clicks 'Go to features' - Then the user is taken to the Feature tab - @happypath - Scenario: View features with unmet targets - Given the user has run marxan - And there are unmet targets - And the user is in the Feature tab - When the user click on 'Features that don't meet your targets' - Then only the features that don't meet the target are shown on display - -Feature: Modify unmet targets - @happypath - Scenario: Mark as met - Given the user has run marxan - And there are unmet targets - And the user is in the Feature tab - When the user selects 'Mark as met' on a feature - Then that feature does not appear as unmet in the list - Scenario: Increase FPF in all features at once - Given the user has run marxan - And there are unmet targets - And the user is in the Feature tab - When the user increases the FPF in the 'Change FPF in all not met features' box - Then the new FPF set by the user appears in all the unmet features - @happypath - Scenario: Increase FPF in one feature - Given the user has run marxan - And there are unmet targets - And the user is in the Feature tab - When the user increases the FPF in the one feature - Then the new FPF set by the user appears only for that feature - -@solutions_table -Feature: View solutions table - @happypath - Scenario: Open solutions modal - Given the user is in the Solutions tab - When the user clicks on 'View solutions table' - Then the solution table modal opens on screen - @happypath - Scenario: View all solutions - Given the user is in the solutions table modal - When the user does not select the 'View 5 most different solutions' - Then the user sees all the solutions ordered by run number - Scenario: View 5 most different solutions - Given the user is in the solutions table modal - When the user selects the 'View 5 most different solutions' - Then the user sees the 5 most different solutions ordered by run number - @happypath - Scenario: View solutions on map - Given the user is in the solutions table modal - When the user marks a solution in the 'View on map' column - Then the solution is shown on the map - -@happypath -Feature: Order solutions table - Scenario: Order solutions by run - Given the user is in the solutions table modal - When the user selects 'Order by: Run numbers' - Then the solutions are ordered by run number (lowest to highest) - Scenario: Order solutions by score - Given the user is in the solutions table modal - When the user selects 'Order by: Score' - Then the solutions are ordered by score (lowest to highest) - Scenario: Order solutions by cost - Given the user is in the solutions table modal - When the user selects 'Order by: Cost' - Then the solutions are ordered by cost (lowest to highest) - Scenario: Order solutions by planning units - Given the user is in the solutions table modal - When the user selects 'Order by: Planning Units' - Then the solutions are ordered by planning units (lowest to highest) - Scenario: Order solutions by missing values - Given the user is in the solutions table modal - When the user selects 'Order by: Missing values' - Then the solutions are ordered by missing values (lowest to highest) - -@happypath -Feature: Download solutions table - Scenario: Download complete solutions table - Given the user is in the solutions table modal - When the user selects 'Download solutions' - Then the user receives a bundle zip with all the result files in his/her local machine - -@run_gap_analysis @happypath -Feature: View post-run gap Analysis - Scenario: Open gap analysis (default view all features, graph) - Given the user is in Solutions tab - When the user opens the 'View run gap analysis' modal - Then the gap analysis displays all the features as a bar graph - Scenario: Open gap analysis (default view all features, map) - Given the user is in Solutions tab - When the user opens the 'View run gap analysis' modal - Then the gap analysis displays all the features on a map - Scenario: Gap analysis view selected features - Given the user has opened the gap analysis - When the user selects on the open eye icon on the features bar graph - Then the eye is crossed out and the layer is hidden in the map - Scenario: Close gap analysis - Given the user has opened the gap analysis - When the user clicks on 'Close gap analysis' - Then the gap analysis is no longer visible - -Feature: Download gap analysis - Scenario: download gap analysis - Given the user is in the Solutions tab - When the user clicks on 'Download' - Then the user downloads a pdf with the gap analysis to his/her local machine - -@download_files @happypath -Feature: Download files - Scenario: Download input files - Given the user is in the Solutions tab - When the user clicks on 'Download Input files' - Then the user receives a bundle zip with all the input files in his/her local machine - -@map_layers -Feature: View map layers - Scenario: View layers on map - Given the user is in the Solutions tab - When the user has the open eye icon on any layer - Then that layer is visible on the map - Scenario: Hide layers on map - Given the user is in the Solutions tab - When the user has the crossed eye icon on any layer - Then that layer is not visible on the map - -@re-run -Feature: Re-run scenario - Given the user is in the Solutions tab - When the user clicks Re-Run scenario - Then the user is taken to the 'Run Scenario' modal - -@step_by_step_planning -(**we need to revise all the names here**) -Feature: Stepwise planning modal - Scenario: Open stewise planning modal - Given the user is in the Solutions tab - When the user clicks 'Schedule Scenario' - Then the user is taken to the Schedule scenario modal - Scenario: Create new Stepwise plan - Given the user is in the 'Stepwise planning' modal - When the user selects 'New Schedule +' - Then a new scheduling window opens with the sceanrio map preloaded - -Feature: Step actions - Scenario: Select planning units of a step - Given the user is in the Stepwise planning modal - And the user is in a step (currently names tier) - When the user selects planning units to include - Then the planning units appear on the map in a different color - Scenario: Save selection of planning units - Given the user is in the Stepwise planning modal - And the user is in a step (currently names tier) - And the user has selected some planning units - When the user saves the selection - Then the Step appears in the Stepwise modal - Scenario: Remove selection of planning units - Given the user is in the Stepwise planning modal - And the user is in a step (currently names tier) - And the user has selected some planning units - When the user cancles the selection - Then the selection disapears from the map - Scenario: Add description to the step - Given the user is in the Stepwise planning modal - And the user is in a step (currently names tier) - When the user writes a description - Then the description appears in the box - Scenario: Remove step - Given the user is in the Stepwise planning modal - When the user removes a step - Then the step disapears from the modal - -Feature: Run step_by_step plan - Scenario: run stewise plan - Given the user is in the Stepwise planning modal - And the user has added at least one step - When the user clicks on 'Run schedule' - Then the new scenario is run and the results presented inside the Schedule modal - - diff --git a/e2e-product-testing/cypress/integration/SolutionsDownload.feature b/e2e-product-testing/cypress/integration/SolutionsDownload.feature new file mode 100644 index 0000000000..f88ef6580c --- /dev/null +++ b/e2e-product-testing/cypress/integration/SolutionsDownload.feature @@ -0,0 +1,7 @@ +@happypath +Feature: Download solutions table + + Scenario: Download complete solutions table + Given the user is in the solutions table modal + When the user selects 'Download solutions' + Then the user receives a bundle zip with all the result files in his/her local machine diff --git a/e2e-product-testing/cypress/integration/SolutionsModifyUnmet.feature b/e2e-product-testing/cypress/integration/SolutionsModifyUnmet.feature new file mode 100644 index 0000000000..38a1de6c61 --- /dev/null +++ b/e2e-product-testing/cypress/integration/SolutionsModifyUnmet.feature @@ -0,0 +1,26 @@ +Feature: Modify unmet targets + + @happypath + Scenario: Mark as met + Given the user has run marxan + And there are unmet targets + And the user is in the Feature tab + When the user selects 'Mark as met' on a feature + Then that feature does not appear as unmet in the list + + Scenario: Increase FPF in all features at once + Given the user has run marxan + And there are unmet targets + And the user is in the Feature tab + When the user increases the FPF in the 'Change FPF in all not met features' box + Then the new FPF set by the user appears in all the unmet features + + @happypath + Scenario: Increase FPF in one feature + Given the user has run marxan + And there are unmet targets + And the user is in the Feature tab + When the user increases the FPF in the one feature + Then the new FPF set by the user appears only for that feature + + diff --git a/e2e-product-testing/cypress/integration/SolutionsOrderTable.feature b/e2e-product-testing/cypress/integration/SolutionsOrderTable.feature new file mode 100644 index 0000000000..50d14bcf43 --- /dev/null +++ b/e2e-product-testing/cypress/integration/SolutionsOrderTable.feature @@ -0,0 +1,27 @@ +@happypath +Feature: Order solutions table + + Scenario: Order solutions by run + Given the user is in the solutions table modal + When the user selects 'Order by: Run numbers' + Then the solutions are ordered by run number (lowest to highest) + + Scenario: Order solutions by score + Given the user is in the solutions table modal + When the user selects 'Order by: Score' + Then the solutions are ordered by score (lowest to highest) + + Scenario: Order solutions by cost + Given the user is in the solutions table modal + When the user selects 'Order by: Cost' + Then the solutions are ordered by cost (lowest to highest) + + Scenario: Order solutions by planning units + Given the user is in the solutions table modal + When the user selects 'Order by: Planning Units' + Then the solutions are ordered by planning units (lowest to highest) + + Scenario: Order solutions by missing values + Given the user is in the solutions table modal + When the user selects 'Order by: Missing values' + Then the solutions are ordered by missing values (lowest to highest) diff --git a/e2e-product-testing/cypress/integration/SolutionsPostRunGap.feature b/e2e-product-testing/cypress/integration/SolutionsPostRunGap.feature new file mode 100644 index 0000000000..3bd8950069 --- /dev/null +++ b/e2e-product-testing/cypress/integration/SolutionsPostRunGap.feature @@ -0,0 +1,22 @@ +@run_gap_analysis @happypath +Feature: View post-run gap Analysis + + Scenario: Open gap analysis (default view all features, graph) + Given the user is in Solutions tab + When the user opens the 'View run gap analysis' modal + Then the gap analysis displays all the features as a bar graph + + Scenario: Open gap analysis (default view all features, map) + Given the user is in Solutions tab + When the user opens the 'View run gap analysis' modal + Then the gap analysis displays all the features on a map + + Scenario: Gap analysis view selected features + Given the user has opened the gap analysis + When the user selects on the open eye icon on the features bar graph + Then the eye is crossed out and the layer is hidden in the map + + Scenario: Close gap analysis + Given the user has opened the gap analysis + When the user clicks on 'Close gap analysis' + Then the gap analysis is no longer visible diff --git a/e2e-product-testing/cypress/integration/SolutionsView.feature b/e2e-product-testing/cypress/integration/SolutionsView.feature new file mode 100644 index 0000000000..b553b7c918 --- /dev/null +++ b/e2e-product-testing/cypress/integration/SolutionsView.feature @@ -0,0 +1,25 @@ +@solutions_table +Feature: View solutions table + + @happypath + Scenario: Open solutions modal + Given the user is in the Solutions tab + When the user clicks on 'View solutions table' + Then the solution table modal opens on screen + + @happypath + Scenario: View all solutions + Given the user is in the solutions table modal + When the user does not select the 'View 5 most different solutions' + Then the user sees all the solutions ordered by run number + + Scenario: View 5 most different solutions + Given the user is in the solutions table modal + When the user selects the 'View 5 most different solutions' + Then the user sees the 5 most different solutions ordered by run number + + @happypath + Scenario: View solutions on map + Given the user is in the solutions table modal + When the user marks a solution in the 'View on map' column + Then the solution is shown on the map diff --git a/e2e-product-testing/cypress/integration/SolutionsViewUnmet.feature b/e2e-product-testing/cypress/integration/SolutionsViewUnmet.feature new file mode 100644 index 0000000000..86b8aaaba8 --- /dev/null +++ b/e2e-product-testing/cypress/integration/SolutionsViewUnmet.feature @@ -0,0 +1,16 @@ +@unmet_targets +Feature: View unmet targets + + Scenario: Move from Solutions to Features + Given the user is in the Solutions tab + And there are features that don't meet their target + When the user clicks 'Go to features' + Then the user is taken to the Feature tab + + @happypath + Scenario: View features with unmet targets + Given the user has run marxan + And there are unmet targets + And the user is in the Feature tab + When the user click on 'Features that don't meet your targets' + Then only the features that don't meet the target are shown on display diff --git a/e2e-product-testing/package.json b/e2e-product-testing/package.json index 875913a948..5a6f0eb8d3 100644 --- a/e2e-product-testing/package.json +++ b/e2e-product-testing/package.json @@ -5,12 +5,12 @@ "license": "MIT", "scripts": { "cypress:open": "cypress open", - "cypress:ci": "cypress run --headless --browser chrome" + "cypress:ci": "cypress-tags run -e TAGS=\"@implemented\"" }, "devDependencies": { - "@types/cypress-cucumber-preprocessor": "4.0.0", - "cypress": "^7.3.0", - "cypress-cucumber-preprocessor": "4.1.0", + "@types/cypress-cucumber-preprocessor": "4.0.1", + "cypress": "8.0.0", + "cypress-cucumber-preprocessor": "4.1.4", "typescript": "^4.2.4" }, "cypress-cucumber-preprocessor": { diff --git a/e2e-product-testing/yarn.lock b/e2e-product-testing/yarn.lock index d98ac7dddc..274ed21b4e 100644 --- a/e2e-product-testing/yarn.lock +++ b/e2e-product-testing/yarn.lock @@ -754,16 +754,6 @@ through2 "^2.0.0" watchify "3.11.1" -"@cypress/listr-verbose-renderer@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" - integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= - dependencies: - chalk "^1.1.3" - cli-cursor "^1.0.2" - date-fns "^1.27.2" - figures "^1.7.0" - "@cypress/request@^2.88.5": version "2.88.5" resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" @@ -798,17 +788,15 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@samverschueren/stream-to-observable@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" - integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== - dependencies: - any-observable "^0.3.0" +"@types/cypress-cucumber-preprocessor@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-4.0.1.tgz#1e4cb1c3cf6c9c2c37bc523b5d5047a515cd4e93" + integrity sha512-sK2/uU5CtmJ51zo0JF2Lc4iSw9Fy3xn9ewfewuooV5Qmeb5O+brAHuoXKMV7UWwRbBmd+txhAXAJoi4S5QLDRQ== -"@types/cypress-cucumber-preprocessor@4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-4.0.0.tgz#b113e7ffb5b011d651103aae421dee5163768b42" - integrity sha512-M4H03hwyYXviYExzhLKBCfdX5TnvMOcVpHZoruB9mkLcKnC3aNanOk68nEM7nT9tZa+7HRBEPWxS/qzUMiiofA== +"@types/node@*": + version "16.3.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.3.tgz#0c30adff37bbbc7a50eb9b58fae2a504d0d88038" + integrity sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ== "@types/node@^14.14.31": version "14.17.0" @@ -825,6 +813,13 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== +"@types/yauzl@^2.9.1": + version "2.9.2" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" + integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== + dependencies: + "@types/node" "*" + JSONStream@^1.0.3: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -852,6 +847,14 @@ acorn@^7.0.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + ajv@^6.12.3: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -862,31 +865,23 @@ ajv@^6.12.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -894,18 +889,13 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" - integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== - any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -919,6 +909,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + arch@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" @@ -1000,6 +998,11 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" @@ -1102,6 +1105,11 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -1158,6 +1166,13 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -1460,18 +1475,7 @@ chai@^4.2.0: pathval "^1.1.1" type-detect "^4.0.5" -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.4.1: +chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1498,7 +1502,22 @@ check-more-types@^2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= -chokidar@2.1.8, chokidar@^2.0.4, chokidar@^2.1.1: +chokidar@3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^2.0.4, chokidar@^2.1.1: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -1540,19 +1559,17 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cli-cursor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= - dependencies: - restore-cursor "^1.0.1" +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-cursor@^2.0.0, cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: - restore-cursor "^2.0.0" + restore-cursor "^3.1.0" cli-table3@~0.6.0: version "0.6.0" @@ -1571,18 +1588,13 @@ cli-table@^0.3.1: dependencies: colors "1.0.3" -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + slice-ansi "^3.0.0" + string-width "^4.2.0" coffeeify@3.0.1: version "3.0.1" @@ -1686,7 +1698,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@~1.6.0: +concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1861,18 +1873,19 @@ cucumber@^4.2.1: util-arity "^1.0.2" verror "^1.9.0" -cypress-cucumber-preprocessor@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-4.1.0.tgz#cced1796ffd0221591dcf7a35cfa7ca6a4280fc2" - integrity sha512-lTbqMXEoDBiQo5jh7z8lFNELyXB35I3d9FSEOP/A6L/TaxfmIVySzNbeWPZbk3AsVjYYThoHelSO5clo9yfRfQ== +cypress-cucumber-preprocessor@4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/cypress-cucumber-preprocessor/-/cypress-cucumber-preprocessor-4.1.4.tgz#acb375bb0ecc7337147722b8ae5a11360d9ded55" + integrity sha512-lcjpon+d3AJ7Ys6TVFyxQWxcbbOnIsPD5wL1NRGQTmAwHtVEKob4ap9k3e86xWRCuuSVpoufZMFT4EO8gej5ug== dependencies: "@cypress/browserify-preprocessor" "^3.0.1" chai "^4.2.0" - chokidar "2.1.8" + chokidar "3.5.2" cosmiconfig "^4.0.0" cucumber "^4.2.1" cucumber-expressions "^6.0.1" cucumber-tag-expressions "^1.1.1" + dargs "^7.0.0" debug "^3.0.1" gherkin "^5.1.0" glob "^7.1.2" @@ -1880,12 +1893,11 @@ cypress-cucumber-preprocessor@4.1.0: minimist "^1.2.5" through "^2.3.8" -cypress@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-7.3.0.tgz#17345b8d18681c120f033e7d8fd0f0271e9d0d51" - integrity sha512-aseRCH1tRVCrM6oEfja6fR/bo5l6e4SkHRRSATh27UeN4f/ANC8U7tGIulmrISJVy9xuOkOdbYKbUb2MNM+nrw== +cypress@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-8.0.0.tgz#bd68f4cff9ffb0c1176e9dd87d020cbdd0001ab8" + integrity sha512-Hhbc7FtbeCSg5Ui2zxXQLynk7IYGIygG8NqTauS4EtCWyp2k6s4g8P4KUZXwRbhuryN/+/dCd1kPtFbhBx8MuQ== dependencies: - "@cypress/listr-verbose-renderer" "^0.4.1" "@cypress/request" "^2.88.5" "@cypress/xvfb" "^1.2.4" "@types/node" "^14.14.31" @@ -1897,21 +1909,24 @@ cypress@^7.3.0: cachedir "^2.3.0" chalk "^4.1.0" check-more-types "^2.24.0" + cli-cursor "^3.1.0" cli-table3 "~0.6.0" commander "^5.1.0" common-tags "^1.8.0" dayjs "^1.10.4" - debug "4.3.2" + debug "^4.3.2" + enquirer "^2.3.6" eventemitter2 "^6.4.3" execa "4.1.0" executable "^4.1.1" - extract-zip "^1.7.0" + extract-zip "2.0.1" + figures "^3.2.0" fs-extra "^9.1.0" getos "^3.2.1" is-ci "^3.0.0" is-installed-globally "~0.4.0" lazy-ass "^1.6.0" - listr "^0.14.3" + listr2 "^3.8.3" lodash "^4.17.21" log-symbols "^4.0.0" minimist "^1.2.5" @@ -1933,6 +1948,11 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + dash-ast@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" @@ -1945,11 +1965,6 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-fns@^1.27.2: - version "1.30.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" - integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - dayjs@^1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" @@ -1962,14 +1977,7 @@ debug@4.1.1: dependencies: ms "^2.1.1" -debug@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: +debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -1990,6 +1998,13 @@ debug@^4.1.0: dependencies: ms "2.1.2" +debug@^4.1.1, debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -2115,11 +2130,6 @@ electron-to-chromium@^1.3.723: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.732.tgz#2a07a8d61f74f2084b6f6bf2a908605a7a0b2d8d" integrity sha512-qKD5Pbq+QMk4nea4lMuncUMhpEiQwaJyCW7MrvissnRcBDENhVfDmAqQYRQ3X525oTzhar9Zh1cK0L2d1UKYcw== -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" - integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= - elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -2145,6 +2155,13 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" +enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2190,7 +2207,7 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -2240,11 +2257,6 @@ executable@^4.1.1: dependencies: pify "^2.2.0" -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -2299,15 +2311,16 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== +extract-zip@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" + debug "^4.1.1" + get-stream "^5.1.0" yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" extsprintf@1.3.0: version "1.3.0" @@ -2341,20 +2354,19 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -figures@2.0.0, figures@^2.0.0: +figures@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" -figures@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" - object-assign "^4.1.0" file-uri-to-path@1.0.0: version "1.0.0" @@ -2371,6 +2383,13 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2430,6 +2449,11 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -2454,7 +2478,7 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.1" -get-stream@^5.0.0: +get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -2493,6 +2517,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob@^7.0.0, glob@^7.1.0, glob@^7.1.2, glob@^7.1.3: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -2535,13 +2566,6 @@ har-validator@~5.1.3: ajv "^6.12.3" har-schema "^2.0.0" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2650,11 +2674,16 @@ ieee754@^1.1.13, ieee754@^1.1.4: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -indent-string@^3.0.0, indent-string@^3.1.0: +indent-string@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2739,6 +2768,13 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -2812,18 +2848,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -2841,7 +2865,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -2863,12 +2887,10 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== - dependencies: - symbol-observable "^1.1.0" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.2: version "3.0.3" @@ -2882,11 +2904,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -3084,49 +3101,18 @@ lazy-ass@^1.6.0: resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= - -listr-update-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" - integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" - integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== - dependencies: - chalk "^2.4.1" - cli-cursor "^2.1.0" - date-fns "^1.27.2" - figures "^2.0.0" - -listr@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" - integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.5.0" - listr-verbose-renderer "^0.5.0" - p-map "^2.0.0" - rxjs "^6.3.3" +listr2@^3.8.3: + version "3.10.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.10.0.tgz#58105a53ed7fa1430d1b738c6055ef7bb006160f" + integrity sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw== + dependencies: + cli-truncate "^2.1.0" + colorette "^1.2.2" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.6.7" + through "^2.3.8" + wrap-ansi "^7.0.0" lodash.clonedeep@4.5.0: version "4.5.0" @@ -3148,13 +3134,6 @@ lodash@^4.17.11, lodash@^4.17.21, lodash@^4.17.4: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= - dependencies: - chalk "^1.0.0" - log-symbols@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" @@ -3163,14 +3142,15 @@ log-symbols@^4.0.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -log-update@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" - integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== dependencies: - ansi-escapes "^3.0.0" - cli-cursor "^2.0.0" - wrap-ansi "^3.0.1" + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" loose-envify@^1.0.0: version "1.4.0" @@ -3249,11 +3229,6 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "1.47.0" -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -3294,7 +3269,7 @@ mkdirp-classic@^0.5.2: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.0, mkdirp@^0.5.4: +mkdirp@^0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -3392,7 +3367,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -3404,11 +3379,6 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -3464,18 +3434,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -3500,10 +3458,12 @@ outpipe@^1.1.0: dependencies: shell-quote "^1.4.2" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" pad-right@^0.2.2: version "0.2.2" @@ -3604,6 +3564,11 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3747,6 +3712,13 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + regenerate-unicode-properties@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" @@ -3858,20 +3830,12 @@ resolve@^1.1.4, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, is-core-module "^2.2.0" path-parse "^1.0.6" -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: - onetime "^2.0.0" + onetime "^5.1.0" signal-exit "^3.0.2" ret@~0.1.10: @@ -3894,7 +3858,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rxjs@^6.3.3: +rxjs@^6.6.7: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -4008,10 +3972,23 @@ simple-concat@^1.0.0: resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" snapdragon-node@^2.0.1: version "2.1.1" @@ -4188,24 +4165,7 @@ string-argv@0.0.2: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY= -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== @@ -4228,20 +4188,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -4261,11 +4207,6 @@ subarg@^1.0.0: dependencies: minimist "^1.1.0" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4287,11 +4228,6 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - syntax-error@^1.1.1: version "1.4.0" resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" @@ -4378,6 +4314,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -4423,6 +4366,11 @@ type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + type@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" @@ -4613,13 +4561,23 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" wrappy@1: version "1.0.2"