From 7e82423de53666bf54b594135777bfb8e985bacc Mon Sep 17 00:00:00 2001 From: Hemant Kumar <81292944+hemantgarg923@users.noreply.github.com> Date: Thu, 21 Sep 2023 13:11:14 +0530 Subject: [PATCH] FOGL-8062: Fledge e2e tests migrated to cypress from protractor (#323) * e2e tests migrated from protractor to cypress Signed-off-by: Praveen Garg Signed-off-by: hemant Co-authored-by: Praveen Garg --- angular.json | 34 +- cypress.config.ts | 22 + cypress/tsconfig.json | 8 + deploy | 4 +- docs/prerequisite-redhat.md | 4 +- docs/prerequisite-ubuntu.md | 2 +- e2e/po/app.admin.ts | 94 ++- e2e/po/app.filters.ts | 51 +- e2e/po/app.non-admin.ts | 59 +- e2e/po/app.skip.ts | 238 +++---- e2e/po/south.page.ts | 118 ++-- e2e/run | 7 + e2e/specs/app.e2e-common.ts | 276 +++++--- e2e/specs/app.e2e-south.ts | 54 +- package.json | 7 +- protractor.conf.js | 42 -- protractor_ci.conf.js | 45 -- reporter-config.json | 5 + requirements | 8 +- yarn.lock | 1184 +++++++++++++++++++++-------------- 20 files changed, 1216 insertions(+), 1046 deletions(-) create mode 100644 cypress.config.ts create mode 100644 cypress/tsconfig.json create mode 100755 e2e/run delete mode 100644 protractor.conf.js delete mode 100644 protractor_ci.conf.js create mode 100644 reporter-config.json diff --git a/angular.json b/angular.json index 45acee26c..1dbdf3a47 100644 --- a/angular.json +++ b/angular.json @@ -128,36 +128,24 @@ "options": { "tsConfig": [ "src/tsconfig.app.json", - "src/tsconfig.spec.json" + "src/tsconfig.spec.json", + "cypress/tsconfig.json" ], "exclude": [ "**/node_modules/**" ] } - } - } - }, - "fledge-e2e": { - "root": "", - "sourceRoot": "", - "projectType": "application", - "architect": { - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "./protractor.conf.js", - "devServerTarget": "fledge:serve" - } }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "e2e": { + "builder": "@cypress/schematic:cypress", "options": { - "tsConfig": [ - "e2e/tsconfig.e2e.json" - ], - "exclude": [ - "**/node_modules/**" - ] + "devServerTarget": "fledge:serve", + "headless": true + }, + "configurations": { + "production": { + "devServerTarget": "fledge:serve:production" + } } } } diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 000000000..5b2fe9a50 --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from 'cypress' + +export default defineConfig({ + reporter: 'cypress-multi-reporters', + reporterOptions: { + configFile: 'reporter-config.json', + }, + e2e: { + 'baseUrl': 'http://localhost:4200', + supportFile: false, + specPattern: [ + './e2e/**/*.e2e-*.ts' + ], + setupNodeEvents(on) { + require('cypress-mochawesome-reporter/plugin')(on); + }, + }, + + viewportWidth: 1600, + viewportHeight: 900, + defaultCommandTimeout: 11000, +}) \ No newline at end of file diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json new file mode 100644 index 000000000..79d78d7ec --- /dev/null +++ b/cypress/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig.json", + "include": ["**/*.ts"], + "compilerOptions": { + "sourceMap": false, + "types": ["cypress"] + } +} diff --git a/deploy b/deploy index 1fb75d4c4..0ea3d209f 100755 --- a/deploy +++ b/deploy @@ -39,7 +39,7 @@ CWARN="${CPFX}0;33m" echo -e "${CWARN}This script is partially done, please track https://github.com/fledge/fledge-gui/issues/73 ${CRESET}" -compat_msg="This script is compatible with Linux (Ubuntu and Raspbian) Only!" +compat_msg="This script is compatible with Linux (Debian, Ubuntu and Raspberry Pi OS) Only!" os=$(uname) if [[ $os != "Linux" ]]; then @@ -49,7 +49,7 @@ fi if [ -f /etc/os-release ]; then n=$(cat /etc/os-release | grep -w PRETTY_NAME | cut -d= -f2- | tr -d '"') - if [[ $n == *"Raspbian"* ]] || [[ $n == *"Ubuntu"* ]]; then + if [[ $n == *"Raspbian"* ]] || [[ $n == *"Debian"* ]] || [[ $n == *"Ubuntu"* ]] ; then echo -e "${CINFO}${n} ${CRESET}" else echo -e "${CWARN}${n} ${CRESET}" diff --git a/docs/prerequisite-redhat.md b/docs/prerequisite-redhat.md index 2c8489381..b3baf6597 100644 --- a/docs/prerequisite-redhat.md +++ b/docs/prerequisite-redhat.md @@ -1,5 +1,5 @@ -## Prerequisite to setup Fledge UI Client on CentOS/RHEL 7 +## Prerequisite to setup Fledge UI Client on CentOS Stream/RHEL ### Node @@ -7,7 +7,7 @@ Install nodejs (LTS version) ``` $ yum install -y gcc-c++ make - $ curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash - + $ curl -sL https://rpm.nodesource.com/setup_16.x | sudo -E bash - $ sudo yum install nodejs ``` diff --git a/docs/prerequisite-ubuntu.md b/docs/prerequisite-ubuntu.md index 8441e64b2..0d9fa627c 100644 --- a/docs/prerequisite-ubuntu.md +++ b/docs/prerequisite-ubuntu.md @@ -5,7 +5,7 @@ Install nodejs (LTS version) ``` - $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - + $ curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - $ sudo apt-get install nodejs ``` diff --git a/e2e/po/app.admin.ts b/e2e/po/app.admin.ts index 2bc14a710..987de6c08 100644 --- a/e2e/po/app.admin.ts +++ b/e2e/po/app.admin.ts @@ -1,119 +1,101 @@ -import { browser, by, element } from 'protractor'; - export class AdminLogin { - EC = browser.ExpectedConditions; login() { - browser.ignoreSynchronization = true; - element(by.css('app-login form div:nth-child(1) div input[name="username"]')).sendKeys('admin'); - element(by.css('app-login form input[name="password"]')).sendKeys('fledge'); - browser.sleep(1000); - element(by.css('app-login form button.is-info')).click(); + cy.get('app-login form div:nth-child(1) div input[name="username"]').type('admin') + cy.get('app-login form input[name="password"]').type('fledge') + cy.wait(1000) + cy.get('app-login form button.is-info').click() } isUserManagementPresent() { - browser.sleep(2000); - return element(by.id('user-management')).isPresent(); + cy.wait(2000) + cy.get('#user-management').should('be.visible') } navToUserManagement() { - browser.ignoreSynchronization = true; - return browser.get('/#/user-management'); + return cy.visit('/#/user-management') + } + + getUserManagementTabName() { + return cy.get('app-user-management header .tabs ul li:nth-child(1)').invoke('text') } - getAllTabs() { - browser.ignoreSynchronization = true; - return element(by.css('app-user-management header .tabs ul')).getText(); + getRoleTabName() { + return cy.get('app-user-management header .tabs ul li:nth-child(2)').invoke('text') } isAddUserPresent() { - browser.ignoreSynchronization = true; - return element(by.css('app-user-management header .tabs div')).getText(); + return cy.get('app-user-management .add-btn').invoke('text') } getUserManagementColNames() { - browser.ignoreSynchronization = true; - return element(by.id('head')).getText(); + return cy.get('#head').invoke('text') } gotoRoles() { - browser.ignoreSynchronization = true; - element(by.css('app-user-management header .tabs li:nth-child(2) a')).getText(); + cy.get('app-user-management header .tabs ul li:nth-child(2)').click() } getRolesColNames() { - browser.ignoreSynchronization = true; - return element(by.css('app-user-management table thead')).getText(); + return cy.get('app-user-management table thead').invoke('text') } navToProfile() { - browser.ignoreSynchronization = true; - element(by.css('#dropdown-box > div.dropdown-trigger > a')).click(); - element(by.css('#dropdown-menu > div > a:nth-child(1)')).click(); - browser.sleep(2000); + cy.get('#dropdown-box').invoke('mouseenter') + cy.get('#dropdown-menu').invoke('show') + cy.get('#dropdown-menu > div > a.user-content:nth-child(1)').click({ force: true }) + cy.wait(2000) } profileTitle() { - browser.ignoreSynchronization = true; - return element(by.css('.card .card-header-title')).getText(); + return cy.get('.card .card-header-title').invoke('text') } labelUsername() { - browser.ignoreSynchronization = true; - return element(by.css('#edit_profile > div:nth-child(1) > div > label')).getText(); + return cy.get('#edit_profile > div:nth-child(2) > div > label').invoke('text') } labelRole() { - browser.ignoreSynchronization = true; - return element(by.css('#edit_profile > div:nth-child(2) > div > label')).getText(); + return cy.get('#edit_profile > div:nth-child(3) > div > label').invoke('text') } isChangePassword() { - browser.ignoreSynchronization = true; - return element(by.css('#edit_profile > div:nth-child(3) > div > a')).getText(); + return cy.get('#edit_profile > div:nth-child(5) > div > a:nth-child(1)').invoke('text') } isLogoutActiveSessionButton() { - browser.ignoreSynchronization = true; - return element(by.css('#edit_profile .button.is-warning')).getText(); + return cy.get('#edit_profile > div:nth-child(5) > div > a:nth-child(2)').invoke('text') } changePassword() { - browser.ignoreSynchronization = true; - element(by.css('#edit_profile > div:nth-child(3) > div > a')).click(); + cy.get('#edit_profile > div:nth-child(5) > div > a:nth-child(1)').click() } - getInputTagCount() { - browser.ignoreSynchronization = true; - return element.all(by.css('#ngForm input')).count(); + isInputTag() { + return cy.get('#ngForm input').should('be.visible') } isSaveButton() { - browser.ignoreSynchronization = true; - return element(by.id('update')).isDisplayed(); + return cy.get('#update').should('be.visible') } closeModal() { - browser.ignoreSynchronization = true; - element(by.css('#user_profile_modal .delete')).click(); + cy.get('#user_profile_modal .delete').click() } logout() { - browser.ignoreSynchronization = true; - element(by.css('#dropdown-box > div.dropdown-trigger > a')).click(); - // wait - browser.wait(this.EC.visibilityOf(element(by.css('#dropdown-menu > div > a:nth-child(2)'))), 2000); - element(by.css('#dropdown-menu > div > a:nth-child(2)')).click(); - browser.sleep(1000); + cy.wait(2000) + cy.get('#dropdown-box').invoke('mouseenter') + cy.get('#dropdown-menu').invoke('show') + cy.get('#dropdown-menu > div > a.user-content:nth-child(2)').click({ force: true }) + cy.wait(1000) } loginPageInputTag() { - browser.ignoreSynchronization = true; - return element.all(by.css('app-login form input')).count(); + cy.get('app-login form input').should('be.visible') } getLoginButton() { - browser.ignoreSynchronization = true; - return element(by.css('app-login form button.is-info')).getText(); + return cy.get('app-login form button.is-info').invoke('text') } } diff --git a/e2e/po/app.filters.ts b/e2e/po/app.filters.ts index bce1ba444..9fbc4d2d8 100644 --- a/e2e/po/app.filters.ts +++ b/e2e/po/app.filters.ts @@ -1,17 +1,13 @@ -import { browser, by, element, ExpectedConditions, promise } from 'protractor'; - export class Filters { DETERMINISTIC_WAIT = 3000; // in milliseconds RETRY_ATTEMPTS = 5; addFilterRetryAttempts = 5; - EC = browser.ExpectedConditions; /** * open filter wizard */ openFilterWizard() { - browser.ignoreSynchronization = true; - return element(by.css('.add-application a')).click(); + return cy.get('.add-application a').click() } /** @@ -22,46 +18,39 @@ export class Filters { * @param {string} filter plugin name */ addFilter(filterName: string) { - browser.ignoreSynchronization = true; - this.waitForFilterPluginsToLoad(this.DETERMINISTIC_WAIT).then(() => { - browser.ignoreSynchronization = true; - element(by.name('type')).all(by.tagName('option')) - .then(options => { - options[0].click(); // select first plugin in select box - }); + this.waitForFilterPluginsToLoad().then(() => { + // select first plugin in select box + cy.get('select').select(0) // supply filter name - element(by.id('name')).sendKeys(filterName); + cy.get('#name').type(filterName) // click next button twice - element(by.id('next')).click(); - element(by.id('next')).click(); + cy.get('#next').click() + cy.get('#next').click() }) - .catch((error) => { - if (this.addFilterRetryAttempts > 0) { - console.log('Retrying load filter plugin.'); - this.addFilter(filterName); - } else { - console.log('Rejecting the promise after ' + this.RETRY_ATTEMPTS + ' attempts.'); - return Promise.reject(error); - } - }); + cy.on("fail", (error) => { + if (this.addFilterRetryAttempts > 0) { + console.log('Retrying load filter plugin.'); + this.addFilter(filterName); + } else { + console.log('Rejecting the promise after ' + this.RETRY_ATTEMPTS + ' attempts.'); + return Promise.reject(error); + } + }); this.addFilterRetryAttempts--; } /** * Wait for filter plugin visibility - * @param timeOut wait time */ - waitForFilterPluginsToLoad(timeOut?: number): promise.Promise<{}> { - const isDataVisible = ExpectedConditions.visibilityOf(element(by.name('type')).element(by.tagName('option'))); - return browser.wait(ExpectedConditions.and(isDataVisible), timeOut); + waitForFilterPluginsToLoad() { + return cy.wait(this.DETERMINISTIC_WAIT).get('option').should('be.visible') } /** * Get filter name */ getAddedFilterName() { - browser.ignoreSynchronization = true; - browser.wait(this.EC.visibilityOf(element(by.css('.accordion.card.cdk-drag'))), this.DETERMINISTIC_WAIT); - return element(by.css('.accordion.card.cdk-drag')).getText(); + cy.wait(this.DETERMINISTIC_WAIT) + return cy.get('#list-item-0 .card-header-title').invoke('text') } } diff --git a/e2e/po/app.non-admin.ts b/e2e/po/app.non-admin.ts index a18429d00..2e00e887f 100644 --- a/e2e/po/app.non-admin.ts +++ b/e2e/po/app.non-admin.ts @@ -1,77 +1,62 @@ -import { browser, by, element } from 'protractor'; - export class NonAdminLogin { - EC = browser.ExpectedConditions; login() { - browser.ignoreSynchronization = true; - element(by.css('app-login form div:nth-child(1) div input[name="username"]')).sendKeys('user'); - element(by.css('app-login form input[name="password"]')).sendKeys('fledge'); - browser.sleep(1000); - element(by.css('app-login form button.is-info')).click(); - browser.sleep(1000); + cy.get('app-login form div:nth-child(1) div input[name="username"]').type('user') + cy.get('app-login form input[name="password"]').type('fledge') + cy.wait(1000) + cy.get('app-login form button.is-info').click() + cy.wait(1000) } isUserManagementPresent() { - browser.ignoreSynchronization = true; - browser.wait(this.EC.visibilityOf(element(by.css('aside .menu-list'))), 2000); - return element(by.id('user-management')).isPresent(); + cy.wait(2000).get('aside .menu-list').should('be.visible') + cy.get('#user-management').should('not.exist') } getLoggedInUsername() { - browser.ignoreSynchronization = true; - return element(by.css('#dropdown-box .navbar-link b')).getText(); + return cy.get('#dropdown-box .navbar-link b').invoke('text') } navToProfile() { - browser.ignoreSynchronization = true; - element(by.css('#dropdown-box > div.dropdown-trigger > a')).click(); - element(by.css('#dropdown-menu > div > a:nth-child(1)')).click(); - browser.sleep(2000); + cy.get('#dropdown-box').invoke('mouseenter') + cy.get('#dropdown-menu').invoke('show') + cy.get('#dropdown-menu > div > a.user-content:nth-child(1)').click({ force: true }) + cy.wait(2000) } profileTitle() { - browser.ignoreSynchronization = true; - return element(by.css('.card .card-header-title')).getText(); + return cy.get('.card .card-header-title').invoke('text') } labelUsername() { - browser.ignoreSynchronization = true; - return element(by.css('#edit_profile > div:nth-child(1) > div > label')).getText(); + return cy.get('#edit_profile > div:nth-child(2) > div > label').invoke('text') } labelRole() { - browser.ignoreSynchronization = true; - return element(by.css('#edit_profile > div:nth-child(2) > div > label')).getText(); + return cy.get('#edit_profile > div:nth-child(3) > div > label').invoke('text') } isChangePassword() { - browser.ignoreSynchronization = true; - return element(by.css('#edit_profile > div:nth-child(3) > div > a')).getText(); + return cy.get('#edit_profile > div:nth-child(5) > div > a:nth-child(1)').invoke('text') } isLogoutActiveSessionButton() { - browser.ignoreSynchronization = true; - return element(by.css('#edit_profile .button.is-warning')).getText(); + return cy.get('#edit_profile > div:nth-child(5) > div > a:nth-child(2)').invoke('text') } changePassword() { - browser.ignoreSynchronization = true; - element(by.css('#edit_profile > div:nth-child(3) > div > a')).click(); + cy.get('#edit_profile > div:nth-child(5) > div > a:nth-child(1)').click() } - getInputTagCount() { - browser.ignoreSynchronization = true; - return element.all(by.css('#ngForm input')).count(); + isInputTag() { + return cy.get('#ngForm input').should('be.visible') } isSaveButton() { - browser.ignoreSynchronization = true; - return element(by.id('update')).isDisplayed(); + return cy.get('#update').should('be.visible') } closeModal() { - browser.ignoreSynchronization = true; - element(by.css('#user_profile_modal .delete')).click(); + cy.get('#user_profile_modal .delete').click() } } diff --git a/e2e/po/app.skip.ts b/e2e/po/app.skip.ts index 22999417c..28f8d39c3 100644 --- a/e2e/po/app.skip.ts +++ b/e2e/po/app.skip.ts @@ -1,11 +1,9 @@ -import { browser, by, element } from 'protractor'; import { environment } from '../environment'; export class SkipLogin { - EC = browser.ExpectedConditions; navigateToHome() { - return browser.get('/'); + return cy.visit('/') } setUpInstance() { @@ -13,331 +11,289 @@ export class SkipLogin { environment.SERVICE_PORT === '8081') { return; } - browser.waitForAngularEnabled(false); - element(by.css('#protocol-dropdown')).click(); - element(by.css('#dropdown-menu > div > a:nth-child(1)')).click(); - element(by.id('host')).clear(); - element(by.id('host')).sendKeys(environment.HOST); - element(by.id('service_port')).clear(); - element(by.id('service_port')).sendKeys(environment.SERVICE_PORT); - element(by.id('set-url-restart-btn')).click(); - browser.waitForAngularEnabled(true); + this.navToSettings() + cy.get('#protocol-dropdown').click() + cy.get('#protocol-dropdown #dropdown-menu > div > a:nth-child(1)').click() + cy.get('#host').clear() + cy.get('#host').type(environment.HOST) + cy.get('#service_port').clear() + cy.get('#service_port').type(environment.SERVICE_PORT) + cy.get('#set-url-restart-btn').click() } getNavTitle() { - browser.ignoreSynchronization = true; - return element(by.css('#app .navbar-brand .navbar-item > b > a')).getText(); + return cy.get('#app .navbar-brand .navbar-item > b > a').invoke('text') } loginPageInputTag() { - browser.ignoreSynchronization = true; - return element.all(by.css('app-login form input')).count(); + cy.get('app-login form input').should('be.visible') } getLoginButton() { - browser.ignoreSynchronization = true; - return element(by.css('app-login form button.is-info')).getText(); + return cy.get('app-login form button.is-info').invoke('text') } getAppStatus() { - browser.ignoreSynchronization = true; - return element(by.css('#app > app-root > div > app-navbar > nav > div.navbar-menu .icon.has-text-success')).isDisplayed(); + cy.get('#app > app-root > div > app-navbar > nav > div.navbar-menu .icon.has-text-success').should('be.visible') } getReceived() { - browser.ignoreSynchronization = true; - return element(by.css('app-navbar .navbar-menu .navbar-start .field.is-grouped > div:nth-child(2)')).getText(); + return cy.get('app-navbar .navbar-menu .navbar-start .field.is-grouped > div:nth-child(2)').invoke('text') } getSent() { - browser.ignoreSynchronization = true; - return element(by.css('app-navbar .navbar-menu .navbar-start .field.is-grouped > div:nth-child(3)')).getText(); + return cy.get('app-navbar .navbar-menu .navbar-start .field.is-grouped > div:nth-child(3)').invoke('text') } getUptime() { - browser.ignoreSynchronization = true; - return element(by.css('app-navbar .navbar-menu .navbar-start .field.is-grouped > div:nth-child(4)')).getText(); + return cy.get('app-navbar .navbar-menu .navbar-start .field.is-grouped > div:nth-child(4)').invoke('text') } isDashboardTimeDropdownPresent() { - browser.ignoreSynchronization = true; - return element(by.css('#time-dropdown')).isDisplayed(); + cy.get('#time-dropdown').should('be.visible') } isDashboardGraphDropdownPresent() { - browser.ignoreSynchronization = true; - return element(by.css('#graph-key-dropdown')).isDisplayed(); + cy.get('#graph-key-dropdown').should('be.visible') } navToAssetReadings() { - return browser.get('/#/asset'); + return cy.visit('/#/asset') } getAssetTableHeader() { - browser.ignoreSynchronization = true; - return element(by.css('app-assets table th:nth-child(1)')).getText(); + return cy.get('app-assets table th:nth-child(1)').invoke('text') } getReadingsTableHeader() { - browser.ignoreSynchronization = true; - return element(by.css('app-assets table th:nth-child(2)')).getText(); + return cy.get('app-assets table th:nth-child(2)').invoke('text') } clickChartIcon() { - browser.ignoreSynchronization = true; - return element(by.css('app-assets .table.is-striped > tbody:nth-child(2) > tr:nth-child(1) .fa-chart-line')).click(); + return cy.get('app-assets .table.is-striped > tbody:nth-child(2) > tr:nth-child(1) .fa-chart-line').click() } isChartDisplayed() { - browser.ignoreSynchronization = true; - return element(by.css('.chartjs-render-monitor')).isDisplayed(); + cy.get('.chart-container').should('be.visible') } closeChartModal() { - browser.ignoreSynchronization = true; - return element(by.css('#chart_modal .modal-card > header > div > button')).click(); + cy.get('#chart_modal .modal-card > header > div > button').click() } clickAssetChart() { - browser.ignoreSynchronization = true; - return element(by.css('app-assets table tbody:nth-child(2) tr:nth-child(1) td:nth-child(4) a')).click(); + return cy.get('app-assets table tbody:nth-child(2) tr:nth-child(1) td:nth-child(4) a').click() } getAssetChartInputTag() { - browser.ignoreSynchronization = true; - return element.all(by.css('#chart_modal .modal-card app-number-input-debounce input')).count(); + cy.get('#chart_modal .modal-card app-number-input-debounce input').should('be.visible') } navToAuditLogs() { - return browser.get('/#/logs/audit'); + return cy.visit('/#/logs/audit') } getAuditLogsTitle() { - browser.ignoreSynchronization = true; - return element(by.css('.card-header-title')).getText(); + return cy.get('.card-header-title').invoke('text') } isAuditLogsSourceDropdownPresent() { - browser.ignoreSynchronization = true; - return element(by.css('.card #dropdown')).isDisplayed(); + cy.get('.card #dropdown').should('be.visible') } isAuditLogsSeverityDropdownPresent() { - browser.ignoreSynchronization = true; - return element(by.css('.card #severity-dropdown')).isDisplayed(); + cy.get('.card #severity-dropdown').should('be.visible') } navToSystemLogs() { - return browser.get('/#/logs/syslog'); + return cy.visit('/#/logs/syslog') } getSystemLogTitle() { - browser.ignoreSynchronization = true; - return element(by.css('.card-header-title')).getText(); + return cy.get('.card-header-title').invoke('text') } isSystemLogDropDownPresent() { - browser.ignoreSynchronization = true; - return element(by.css('#dropdown')).isDisplayed(); + cy.get('#dropdown').should('be.visible') } isSystemLogLevelDropdownPresent() { - browser.ignoreSynchronization = true; - return element(by.css('#level-dropdown')).isDisplayed(); + cy.get('#level-dropdown').should('be.visible') } getSystemLogInputTag() { - browser.ignoreSynchronization = true; - return element.all(by.css('app-system-log input')).count(); + cy.get('app-system-log input').should('be.visible') } navigateToConfig() { - return browser.get('/#/configuration'); + return cy.visit('/#/configuration') } clickAddButton() { - browser.ignoreSynchronization = true; - return element(by.css('app-configuration-manager > div > div:nth-child(2) > header > div:nth-child(2) > a')).click(); + return cy.get('app-configuration-manager > div > div:nth-child(2) > header > div:nth-child(2) > a').click() } navToScheduledTasks() { - return browser.get('/#/schedules'); + return cy.visit('/#/schedules') } getSchedulesTitle() { - browser.ignoreSynchronization = true; - return element(by.css('app-list-schedules .card-header p.card-header-title')).getText(); + return cy.get('app-list-schedules .card-header p.card-header-title').invoke('text') } getSchedulesRefreshButton() { - browser.ignoreSynchronization = true; - return element(by.css('#scheduled-process .fa.fa-sync')).isDisplayed(); + cy.get('#scheduled-process .fa.fa-sync').should('be.visible') } getCreateScheduleButton() { - browser.ignoreSynchronization = true; - return element(by.css('app-list-schedules .card-header .button.is-light')).getText(); + return cy.get('app-list-schedules .card-header .button.is-light').invoke('text') } closeAlert() { - browser.ignoreSynchronization = true; - element(by.css('#alert > button.delete')).click(); + cy.get('#alert > button.delete').click() } getTasksTitle() { - browser.ignoreSynchronization = true; - return element(by.css('app-list-schedules app-list-tasks header > div')).getText(); + return cy.get('app-list-schedules app-list-tasks header > div').invoke('text') } getTasksRefreshButton() { - browser.ignoreSynchronization = true; - return element(by.css('app-list-schedules > div:nth-child(2) .fa.fa-sync')).isDisplayed(); + cy.get('app-list-schedules > div:nth-child(2) .fa.fa-sync').should('be.visible') } getTasksSelectTag() { - browser.ignoreSynchronization = true; - return element.all(by.id('task-state')).count(); + cy.get('#task-state').should('be.visible') } navToCertificateStore() { - return browser.get('/#/certificate'); + return cy.visit('/#/certificate') } getCertificateStoreTitle() { - browser.ignoreSynchronization = true; - return element(by.css('app-cert-store > div > div > header > p')).getText(); + return cy.get('app-cert-store > div > div > header > p').invoke('text') } getCertificateStoreRefreshButton() { - browser.ignoreSynchronization = true; - return element(by.css('app-cert-store button i')).isDisplayed(); + cy.get('app-cert-store button i').should('be.visible') } - getCertificateStoreKeyColNames() { - browser.ignoreSynchronization = true; - return element(by.css('app-cert-store div div div div:nth-child(1) table')).getText(); + getCertificateStoreKeyColKeyName() { + return cy.get('app-cert-store div div div div:nth-child(1) table > thead > tr > th:nth-child(1)').invoke('text') } - getCertificateStoreCertColNames() { - browser.ignoreSynchronization = true; - return element(by.css('app-cert-store div div div div:nth-child(2) table')).getText(); + getCertificateStoreKeyColExtensionName() { + return cy.get('app-cert-store div div div div:nth-child(1) table > thead > tr > th:nth-child(2)').invoke('text') + } + + getCertificateStoreCertColKeyName() { + return cy.get('app-cert-store div div div div:nth-child(2) table > thead > tr > th:nth-child(1)').invoke('text') + } + + getCertificateStoreCertColExtensionName() { + return cy.get('app-cert-store div div div div:nth-child(2) table > thead > tr > th:nth-child(2)').invoke('text') } getCertificateStoreImport() { - browser.ignoreSynchronization = true; - return element(by.css('app-cert-store header a')).getText(); + return cy.get('app-cert-store header a').invoke('text') } navToBackupRestore() { - return browser.get('/#/backup-restore'); + return cy.visit('/#/backup-restore'); } clickRequestBackup() { - browser.ignoreSynchronization = true; - element(by.css('#dropdown-menu3 .dropdown-content #create-backup')).click(); + cy.get('#dropdown-menu3 .dropdown-content #create-backup').click() // wait - browser.driver.sleep(15000); - browser.wait(this.EC.visibilityOf(element(by.css('app-backup-restore table thead tr'))), 1000); + cy.wait(15000) + cy.get('#dropdown-menu3').invoke('hide') + cy.wait(1000).get('app-backup-restore table thead tr').should('be.visible') } getBackupRestoreTitle() { - browser.ignoreSynchronization = true; - return element(by.css('app-backup-restore header p')).getText(); + return cy.get('.card-header-title').invoke('text') + } + + getBackupRestoreColDateName() { + return cy.get('app-backup-restore table thead tr th:nth-child(1) div').invoke('text') } - getBackupRestoreColNames() { - browser.ignoreSynchronization = true; - return element(by.css('app-backup-restore table thead tr')).getText(); + getBackupRestoreColStatusName() { + return cy.get('app-backup-restore table thead tr th:nth-child(2)').invoke('text') } getRequestBackup() { - browser.ignoreSynchronization = true; - browser.actions().mouseMove(element(by.css('app-backup-restore .dropdown.is-hoverable.is-right'))).perform(); - browser.wait(this.EC.visibilityOf(element(by.id('dropdown-menu3'))), 2000); - return element(by.css('#dropdown-menu3 .dropdown-content #create-backup span')).getText(); + cy.get('app-backup-restore .dropdown.is-hoverable.is-right').invoke('mouseenter') + cy.get('#dropdown-menu3').invoke('show') + return cy.get('#dropdown-menu3 .dropdown-content #create-backup span').invoke('text') } getCreatedBackupRow() { - browser.ignoreSynchronization = true; - return element(by.css('app-backup-restore table tbody tr')).getText(); + return cy.get('app-backup-restore table tbody tr td:nth-child(2) small').invoke('text') } deleteBackup() { - browser.ignoreSynchronization = true; - element(by.css('app-backup-restore .button.is-text')).click(); - browser.wait(this.EC.visibilityOf(element(by.css('#modal-box button.button.is-small.is-danger'))), 2000); - element(by.css('#modal-box button.button.is-small.is-danger')).click(); - browser.wait(this.EC.visibilityOf(element(by.css('app-backup-restore .no-rec'))), 3000); + cy.get('app-backup-restore table tbody tr td:nth-child(3)').click() + cy.wait(2000).get('#modal-box button.button.is-small.is-danger').should('be.visible') + cy.get('#modal-box button.button.is-small.is-danger').click() + cy.wait(3000).get('app-backup-restore .no-rec').should('be.visible') } noBackupRecord() { - browser.ignoreSynchronization = true; - return element(by.css('app-backup-restore .no-rec')).getText(); + return cy.get('app-backup-restore .no-rec').invoke('text') } navToSupportBundles() { - return browser.get('/#/support'); + return cy.visit('/#/support'); } getSupportBundlesTitle() { - browser.ignoreSynchronization = true; - return element(by.css('app-support header p')).getText(); + return cy.get('.card-header-title').invoke('text') } getSupportBundlesRefreshButton() { - browser.ignoreSynchronization = true; - return element(by.css('app-support button i')).isDisplayed(); + cy.get('app-support button i').should('be.visible') } getRequestNewBundle() { - browser.ignoreSynchronization = true; - return element(by.css('app-support header a')).getText(); + return cy.get('app-support header a').invoke('text') } requestNewBundle() { - browser.ignoreSynchronization = true; - element(by.css('app-support header a')).click(); + cy.get('app-support header a').click() // wait - browser.wait(this.EC.visibilityOf(element(by.id('alert'))), 2000); - return element(by.id('alert')).getText(); + cy.wait(2000).get('#alert').should('be.visible') + return cy.get('#alert').invoke('text') } navToSettings() { - return browser.get('/#/setting'); + return cy.visit('/#/setting'); } getSettingsTitle() { - browser.ignoreSynchronization = true; - return element(by.css('app-settings #connection .card-header .card-header-title')).getText(); + return cy.get('app-settings #connection .card-header .card-header-title').invoke('text') } getSettingsSelectTag() { - browser.ignoreSynchronization = true; - return element.all(by.css('#protocol-dropdown')).count(); + cy.get('#protocol-dropdown').should('be.visible') } getSettingsHostInputTag() { - browser.ignoreSynchronization = true; - return element.all(by.css('app-settings div input#host')).count(); + cy.get('app-settings div input#host').should('be.visible') } getSettingsPortInputTag() { - browser.ignoreSynchronization = true; - return element.all(by.css('app-settings div input#service_port')).count(); + cy.get('app-settings div input#service_port').should('be.visible') } getSettingsSetUrlAndRestartButton() { - browser.ignoreSynchronization = true; - return element.all(by.css('app-settings #set-url-restart-btn')); + return cy.get('app-settings #set-url-restart-btn').invoke('text') } isRefreshDashboardDropdownPresent() { - browser.ignoreSynchronization = true; - return element(by.css('#refresh-time-dropdown')).isDisplayed(); + cy.get('#refresh-time-dropdown').should('be.visible') } isPingIntervalDropdownPresent() { - browser.ignoreSynchronization = true; - return element(by.css('#ping-interval-dropdown')).isDisplayed(); + cy.get('#ping-interval-dropdown').should('be.visible') } } diff --git a/e2e/po/south.page.ts b/e2e/po/south.page.ts index ece42d4bc..675602ccb 100644 --- a/e2e/po/south.page.ts +++ b/e2e/po/south.page.ts @@ -1,33 +1,28 @@ -import { browser, by, element, ExpectedConditions, promise } from 'protractor'; - export class SouthPage { - DETERMINISTIC_WAIT = 3000; // in milliseconds - RETRY_ATTEMPTS = 5; - addServiceRetryAttempts = 5; - fetchAssetRetryAttempts = 5; - EC = browser.ExpectedConditions; + DETERMINISTIC_WAIT = 3000 // in milliseconds + RETRY_ATTEMPTS = 5 + addServiceRetryAttempts = 5 + fetchAssetRetryAttempts = 5 /** * Navigate to the south service page */ navToSouthPage() { - return browser.get('/#/south'); + return cy.visit('/#/south') } /** * get south page title */ getSouthPageTitle() { - browser.ignoreSynchronization = true; - return element(by.css('#south-service')).getText(); + return cy.get('#south-service').invoke('text') } /** * open south service add wizard */ clickAddServiceButton() { - browser.ignoreSynchronization = true; - return element(by.id('add_south_service')).click(); + return cy.get('#add_south_service').click() } /** @@ -38,95 +33,86 @@ export class SouthPage { * @param {string} south plugin name */ addSouthService(serviceName: string) { - browser.ignoreSynchronization = true; - this.waitForServicePluginsToLoad(this.DETERMINISTIC_WAIT).then(() => { - // select a plugin - element(by.name('type')).all(by.tagName('option')) - .then(options => { - options[0].click(); // select first plugin in select box - }); - // supply service name - element(by.id('name')).sendKeys(serviceName); - // click next button thrice - element(by.id('next')).click(); - element(by.id('next')).click(); - element(by.id('next')).click(); + this.waitForServicePluginsToLoad() + .then(() => { + // select first plugin + cy.get('select').select(0) + // supply service name + cy.get('#name').type(serviceName) + // click next button thrice + cy.get('#next').click() + cy.get('#next').click() + cy.get('#next').click() + }) + cy.on("fail", (error) => { + if (this.addServiceRetryAttempts > 0) { + console.log('Retrying load service.') + this.addSouthService(serviceName) + } else { + console.log('Rejecting the promise after ' + this.RETRY_ATTEMPTS + ' attempts.') + return Promise.reject(error) + } }) - .catch((error) => { - if (this.addServiceRetryAttempts > 0) { - console.log('Retrying load service.'); - this.addSouthService(serviceName); - } else { - console.log('Rejecting the promise after ' + this.RETRY_ATTEMPTS + ' attempts.'); - return Promise.reject(error); - } - }); - this.addServiceRetryAttempts--; + this.addServiceRetryAttempts-- } /** * Wait for visibility of south service plugin in multi drop-down - * @param timeOut wait time */ - waitForServicePluginsToLoad(timeOut?: number): promise.Promise<{}> { - const isDataVisible = ExpectedConditions.visibilityOf(element(by.name('type')).element(by.tagName('option'))); - return browser.wait(ExpectedConditions.and(isDataVisible), timeOut); + waitForServicePluginsToLoad() { + return cy.wait(this.DETERMINISTIC_WAIT).get('option').should('be.visible') } /** * Get added south service name */ getServiceName() { - browser.ignoreSynchronization = true; - browser.wait(this.EC.visibilityOf(element(by.css('#south-service-list tr:nth-child(1) .button'))), this.DETERMINISTIC_WAIT); - return element(by.css('#south-service-list tr:nth-child(1) .button')).getText(); + cy.wait(this.DETERMINISTIC_WAIT) + return cy.get('#south-service-list tr:nth-child(1) .button').invoke('text') } /** * open south service modal */ openSouthServiceModal() { - browser.ignoreSynchronization = true; - browser.wait(this.EC.visibilityOf(element(by.css('.content table tr:nth-child(1) .button'))), this.DETERMINISTIC_WAIT); - return element(by.css('.content table tr:nth-child(1) .button')).click(); + cy.wait(this.DETERMINISTIC_WAIT) + return cy.get('.content table tr:nth-child(1) .button').click() } /** * get enabled south service asset readings count */ getAssetCount() { - browser.ignoreSynchronization = true; - this.waitForAssetReadingsToLoad(this.DETERMINISTIC_WAIT).then((found) => { - return Promise.resolve(found); + this.waitForAssetReadingsToLoad() + .then((found) => { + return Promise.resolve(found) + }) + cy.on("fail", (error) => { + if (this.fetchAssetRetryAttempts > 0) { + console.log('Retrying to load asset readings.') + this.getAssetCount() + } else { + console.log( + 'Rejecting the promise after ' + this.RETRY_ATTEMPTS + ' attempts.' + ) + return Promise.reject(error) + } }) - .catch((error) => { - if (this.fetchAssetRetryAttempts > 0) { - console.log('Retrying to load asset readings.'); - this.getAssetCount(); - } else { - console.log('Rejecting the promise after ' + this.RETRY_ATTEMPTS + ' attempts.'); - return Promise.reject(error); - } - }); - this.fetchAssetRetryAttempts--; - return element(by.css('#south-service-list tr:nth-child(1) td:nth-child(3) table tr:nth-child(1) td:nth-child(2) small')) - .getText(); + this.fetchAssetRetryAttempts-- + return cy.get('.readings-count small').invoke('text') } /** * Wait for asset readings count to get visible - * @param timeOut wait time */ - waitForAssetReadingsToLoad(timeOut?: number): promise.Promise<{}> { - const isDataVisible = ExpectedConditions.visibilityOf(element - (by.css('#south-service-list tr:nth-child(1) td:nth-child(3) table tr:nth-child(1) td:nth-child(2) small'))); - return browser.wait(ExpectedConditions.and(isDataVisible), timeOut); + waitForAssetReadingsToLoad() { + return cy.wait(this.DETERMINISTIC_WAIT).get('.readings-count small').should('be.visible') } /** * close south service modal window */ closeSouthServiceModal() { - element(by.css('#south-service-modal .delete')).click(); + cy.get('#south-service-modal .delete').click() } } diff --git a/e2e/run b/e2e/run new file mode 100755 index 000000000..cd60e1f18 --- /dev/null +++ b/e2e/run @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +sudo DEBIAN_FRONTEND=noninteractive apt install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb + +yarn && yarn upgrade; + +ELECTRON_RUN_AS_NODE=1; yarn e2e; +#Xvfb :1 -screen 0 1280x800x24 & export DISPLAY=:1; yarn e2e diff --git a/e2e/specs/app.e2e-common.ts b/e2e/specs/app.e2e-common.ts index 809cd2e26..d5c39d5eb 100644 --- a/e2e/specs/app.e2e-common.ts +++ b/e2e/specs/app.e2e-common.ts @@ -13,7 +13,7 @@ describe('Fledge gui', () => { adminLogin = new AdminLogin(); nonAdminLogin = new NonAdminLogin(); - beforeAll(() => { + before(() => { if (!isSetupInstance) { skipLogin.navigateToHome(); skipLogin.setUpInstance(); @@ -24,131 +24,177 @@ describe('Fledge gui', () => { if (environment.AUTH_OPTIONAL === true) { it('Should Display Nav Title and App Status', () => { skipLogin.navigateToHome(); - expect(skipLogin.getNavTitle()).toEqual('Fledge'); - expect(skipLogin.getAppStatus()).toEqual(true); - expect(skipLogin.getReceived()).toContain('Received'); - expect(skipLogin.getSent()).toContain('Sent'); - expect(skipLogin.getUptime()).toContain('Uptime'); + skipLogin.getNavTitle().then(title =>{ + expect(title.trim()).to.equal('Fledge') + }) + skipLogin.getAppStatus() + skipLogin.getReceived().then(received =>{ + expect(received.split(':')[0].trim()).to.equal('Received') + }) + skipLogin.getSent().then(sent =>{ + expect(sent.split(':')[0].trim()).to.equal('Sent') + }) + skipLogin.getUptime().then(uptime =>{ + expect(uptime.split(':')[0].trim()).to.equal('Uptime') + }) }); it('Should Display Dashboard', () => { - expect(skipLogin.isDashboardTimeDropdownPresent()).toEqual(true); - expect(skipLogin.isDashboardGraphDropdownPresent()).toEqual(true); + skipLogin.navigateToHome(); + skipLogin.isDashboardTimeDropdownPresent() + skipLogin.isDashboardGraphDropdownPresent() }); // TODO: Test data required to pass below tests. // it('Should Display Assets & Readings', () => { - // skipLogin.navToAssetReadings(); - // expect(skipLogin.getAssetTableHeader()).toEqual('Asset'); - // expect(skipLogin.getReadingsTableHeader()).toEqual('Readings'); - - // skipLogin.clickChartIcon(); - // expect(skipLogin.isChartDisplayed()).toEqual(true); - // skipLogin.closeChartModal(); + // skipLogin.navToAssetReadings(); + // skipLogin.getAssetTableHeader().then(header => { + // expect(header.trim()).to.equal('Asset') + // }) + // skipLogin.getReadingsTableHeader().then(header => { + // expect(header.trim()).to.equal('Readings') + // }) + // skipLogin.clickChartIcon(); + // skipLogin.isChartDisplayed() + // skipLogin.closeChartModal(); // }); it('Should Display Audits Logs', () => { skipLogin.navToAuditLogs(); - expect(skipLogin.getAuditLogsTitle()).toEqual('Audit Logs'); - expect(skipLogin.isAuditLogsSourceDropdownPresent()).toEqual(true); - expect(skipLogin.isAuditLogsSeverityDropdownPresent()).toEqual(true); + skipLogin.getAuditLogsTitle().then(title =>{ + expect(title.trim()).to.equal('Audit Logs') + }) + skipLogin.isAuditLogsSourceDropdownPresent() + skipLogin.isAuditLogsSeverityDropdownPresent() }); it('Should Display System Logs', () => { skipLogin.navToSystemLogs(); - expect(skipLogin.getSystemLogTitle()).toEqual('System Logs'); - expect(skipLogin.isSystemLogDropDownPresent()).toEqual(true); - expect(skipLogin.isSystemLogLevelDropdownPresent()).toEqual(true); - expect(skipLogin.getSystemLogInputTag()).toEqual(2); + skipLogin.getSystemLogTitle().then(title =>{ + expect(title.trim()).to.equal('System Logs') + }) + skipLogin.isSystemLogDropDownPresent() + skipLogin.isSystemLogLevelDropdownPresent() + skipLogin.getSystemLogInputTag() }); it('Should Display Scheduled Tasks', () => { skipLogin.navToScheduledTasks(); - expect(skipLogin.getSchedulesTitle()).toContain('Schedules'); - expect(skipLogin.getSchedulesRefreshButton()).toEqual(true); + skipLogin.getSchedulesTitle().then(title =>{ + expect(title.trim()).to.equal('Schedules') + }) + skipLogin.getSchedulesRefreshButton() }); it('Should Display Certificate Store', () => { - const KeyColumnsName = [ - 'Key', - 'Extension' - ]; - const CertificateColumnsName = [ - 'Certificate', - 'Extension' - ]; skipLogin.navToCertificateStore(); - expect(skipLogin.getCertificateStoreTitle()).toContain('Certificate Store'); - expect(skipLogin.getCertificateStoreRefreshButton()).toEqual(true); - for (const ColumnName in KeyColumnsName) { - expect(skipLogin.getCertificateStoreKeyColNames()).toContain(KeyColumnsName[ColumnName]); - } - for (const ColumnName in CertificateColumnsName) { - expect(skipLogin.getCertificateStoreCertColNames()).toContain(CertificateColumnsName[ColumnName]); - } - expect(skipLogin.getCertificateStoreImport()).toContain('Import'); + skipLogin.getCertificateStoreTitle().then(title =>{ + expect(title.trim()).to.equal('Certificate Store') + }) + skipLogin.getCertificateStoreRefreshButton() + skipLogin.getCertificateStoreKeyColKeyName().then(columnName =>{ + expect(columnName.trim()).to.equal('Key') + }) + skipLogin.getCertificateStoreKeyColExtensionName().then(columnName =>{ + expect(columnName.trim()).to.equal('Extension') + }) + skipLogin.getCertificateStoreCertColKeyName().then(columnName =>{ + expect(columnName.trim()).to.equal('Certificate') + }) + skipLogin.getCertificateStoreCertColExtensionName().then(columnName =>{ + expect(columnName.trim()).to.equal('Extension') + }) + skipLogin.getCertificateStoreImport().then(importText =>{ + expect(importText.trim()).to.equal('Import') + }) }); it('Should Display Backup & Restore', () => { - const ColumnsName = [ - 'Date & Time', - 'Status' - ]; skipLogin.navToBackupRestore(); - - expect(skipLogin.getBackupRestoreTitle()).toContain('Backups'); - - expect(skipLogin.noBackupRecord()).toContain('No Record'); - expect(skipLogin.getRequestBackup()).toContain('Create New'); - + skipLogin.getBackupRestoreTitle().then(title =>{ + expect(title.trim()).to.equal('Backups') + }) + skipLogin.noBackupRecord().then(recordText =>{ + expect(recordText.trim()).to.equal('No Record') + }) + skipLogin.getRequestBackup().then(result =>{ + expect(result.trim()).to.equal('Create New') + }) skipLogin.clickRequestBackup(); - for (const ColumnName in ColumnsName) { - expect(skipLogin.getBackupRestoreColNames()).toContain(ColumnsName[ColumnName]); - } - expect(skipLogin.getCreatedBackupRow()).toContain('COMPLETED'); + skipLogin.getBackupRestoreColDateName().then(columnName =>{ + expect(columnName.trim()).to.equal('Date & Time') + }) + skipLogin.getBackupRestoreColStatusName().then(columnName =>{ + expect(columnName.trim()).to.equal('Status') + }) + skipLogin.getCreatedBackupRow().then(result =>{ + expect(result.trim()).to.equal('COMPLETED') + }) skipLogin.deleteBackup(); - expect(skipLogin.noBackupRecord()).toContain('No Record'); + skipLogin.noBackupRecord().then(recordText =>{ + expect(recordText.trim()).to.equal('No Record') + }) }); it('Should Display Support Bundles', () => { skipLogin.navToSupportBundles(); - expect(skipLogin.getSupportBundlesTitle()).toContain('Support Bundles'); - expect(skipLogin.getSupportBundlesRefreshButton()).toEqual(true); - expect(skipLogin.getRequestNewBundle()).toContain('Request New'); - expect(skipLogin.requestNewBundle()).toContain('Support bundle created successfully'); + skipLogin.getSupportBundlesTitle().then(title =>{ + expect(title.trim()).to.equal('Support Bundles') + }) + skipLogin.getSupportBundlesRefreshButton() + skipLogin.getRequestNewBundle().then(result =>{ + expect(result.trim()).to.equal('Request New') + }) + skipLogin.requestNewBundle().then(result =>{ + expect(result.trim()).to.equal('Support bundle created successfully') + }) }); it('Should Display Settings', () => { skipLogin.navToSettings(); - expect(skipLogin.getSettingsTitle()).toContain('Connection Setup'); - expect(skipLogin.getSettingsSelectTag()).toEqual(1); - expect(skipLogin.getSettingsHostInputTag()).toEqual(1); - expect(skipLogin.getSettingsPortInputTag()).toEqual(1); - - expect(skipLogin.getSettingsSetUrlAndRestartButton().count()).toEqual(1); - expect(skipLogin.getSettingsSetUrlAndRestartButton().get(0).getText()).toEqual('Set the URL & Restart'); - - expect(skipLogin.isRefreshDashboardDropdownPresent()).toEqual(true); - expect(skipLogin.isPingIntervalDropdownPresent()).toEqual(true); + skipLogin.getSettingsTitle().then(title =>{ + expect(title.trim()).to.equal('Connection Setup') + }) + skipLogin.getSettingsSelectTag() + skipLogin.getSettingsHostInputTag() + skipLogin.getSettingsPortInputTag() + skipLogin.getSettingsSetUrlAndRestartButton().then(result =>{ + expect(result.trim()).to.equal('Set the URL & Restart') + }) + skipLogin.isRefreshDashboardDropdownPresent() + skipLogin.isPingIntervalDropdownPresent() }); } else { + beforeEach(() => { + skipLogin.navigateToHome(); + }) + it('Should Display User Management for Admin', () => { - // expect(skipLogin.loginPageInputTag()).toEqual(2); - // expect(skipLogin.getLoginButton()).toEqual('Log In'); + skipLogin.loginPageInputTag() + skipLogin.getLoginButton().then(result => { + expect(result.trim()).to.equal('Log In') + }) adminLogin.login(); - expect(adminLogin.isUserManagementPresent()).toBe(true); - + adminLogin.isUserManagementPresent() adminLogin.navToUserManagement(); - expect(adminLogin.getAllTabs()).toContain('User Management'); - expect(adminLogin.getAllTabs()).toContain('Roles'); - expect(adminLogin.isAddUserPresent()).toContain('Add User'); + adminLogin.getUserManagementTabName().then(tabName => { + expect(tabName.trim()).to.equal('User Management') + }) + adminLogin.getRoleTabName().then(tabName => { + expect(tabName.trim()).to.equal('Roles') + }) + adminLogin.isAddUserPresent().then(buttonText => { + expect(buttonText.trim()).to.equal('Add User') + }) const ColumnsName = [ - 'ID', + 'Name', 'Username', 'Role' ]; for (const ColumnName in ColumnsName) { - expect(adminLogin.getUserManagementColNames()).toContain(ColumnsName[ColumnName]); + adminLogin.getUserManagementColNames().then(columnName => { + expect(columnName.trim()).contains(ColumnsName[ColumnName]); + }) } adminLogin.gotoRoles(); const RolesColumnsName = [ @@ -156,47 +202,75 @@ describe('Fledge gui', () => { 'Role' ]; for (const ColumnName in RolesColumnsName) { - expect(adminLogin.getRolesColNames()).toContain(ColumnsName[ColumnName]); + adminLogin.getRolesColNames().then(columnName => { + expect(columnName.trim()).contains(RolesColumnsName[ColumnName]) + }) } }); it('Should Display Profile for Admin', () => { + adminLogin.login(); adminLogin.navToProfile(); - expect(adminLogin.profileTitle()).toEqual('Profile'); - expect(adminLogin.labelUsername()).toEqual('Username'); - expect(adminLogin.labelRole()).toEqual('Role'); - expect(adminLogin.isChangePassword()).toEqual('change password'); - expect(adminLogin.isLogoutActiveSessionButton()).toEqual('Logout Active Sessions'); - + adminLogin.profileTitle().then(title => { + expect(title.trim()).to.equal('Profile') + }) + adminLogin.labelUsername().then(username => { + expect(username.trim()).to.equal('Username') + }) + adminLogin.labelRole().then(role => { + expect(role.trim()).to.equal('Role') + }) + adminLogin.isChangePassword().then(result => { + expect(result.trim()).to.equal('Change Password') + }) + adminLogin.isLogoutActiveSessionButton().then(result => { + expect(result.trim()).to.equal('Log Out Active Sessions') + }) adminLogin.changePassword(); - expect(adminLogin.getInputTagCount()).toEqual(3); - expect(adminLogin.isSaveButton()).toEqual(true); + adminLogin.isInputTag() + adminLogin.isSaveButton() adminLogin.closeModal(); }); it('Should Logout Admin and Login non-admin User', () => { + adminLogin.login(); adminLogin.logout(); - expect(adminLogin.loginPageInputTag()).toEqual(2); - expect(adminLogin.getLoginButton()).toEqual('Log In'); + adminLogin.loginPageInputTag() + adminLogin.getLoginButton().then(buttonText => { + expect(buttonText.trim()).to.equal('Log In') + }) nonAdminLogin.login(); - expect(nonAdminLogin.getLoggedInUsername()).toContain('user'); + nonAdminLogin.getLoggedInUsername().then(user => { + expect(user.trim()).to.equal('user') + }) }); it('Should Not Display User Management for Non-Admin', () => { - expect(nonAdminLogin.isUserManagementPresent()).toBe(false); + nonAdminLogin.login(); + nonAdminLogin.isUserManagementPresent() }); it('Should Display Profile for Non-Admin', () => { - adminLogin.navToProfile(); - expect(nonAdminLogin.profileTitle()).toEqual('Profile'); - expect(nonAdminLogin.labelUsername()).toEqual('Username'); - expect(nonAdminLogin.labelRole()).toEqual('Role'); - expect(nonAdminLogin.isChangePassword()).toEqual('change password'); - expect(nonAdminLogin.isLogoutActiveSessionButton()).toEqual('Logout Active Sessions'); - + nonAdminLogin.login(); + nonAdminLogin.navToProfile(); + nonAdminLogin.profileTitle().then(title => { + expect(title.trim()).to.equal('Profile') + }) + nonAdminLogin.labelUsername().then(username => { + expect(username.trim()).to.equal('Username') + }) + nonAdminLogin.labelRole().then(role => { + expect(role.trim()).to.equal('Role') + }) + nonAdminLogin.isChangePassword().then(result => { + expect(result.trim()).to.equal('Change Password') + }) + nonAdminLogin.isLogoutActiveSessionButton().then(result => { + expect(result.trim()).to.equal('Log Out Active Sessions') + }) nonAdminLogin.changePassword(); - expect(nonAdminLogin.getInputTagCount()).toEqual(3); - expect(nonAdminLogin.isSaveButton()).toEqual(true); + nonAdminLogin.isInputTag() + nonAdminLogin.isSaveButton() nonAdminLogin.closeModal(); }); } diff --git a/e2e/specs/app.e2e-south.ts b/e2e/specs/app.e2e-south.ts index 532c08399..f9b258d4f 100644 --- a/e2e/specs/app.e2e-south.ts +++ b/e2e/specs/app.e2e-south.ts @@ -1,32 +1,42 @@ -import { SouthPage } from '../po/south.page'; -import { Filters } from '../po/app.filters'; +import { SouthPage } from '../po/south.page' +import { Filters } from '../po/app.filters' describe('Fledge South Page tests', () => { - const southPage = new SouthPage(); - const filters = new Filters(); + const southPage = new SouthPage() + const filters = new Filters() it('Should display south service page', () => { - southPage.navToSouthPage(); - expect(southPage.getSouthPageTitle()).toEqual('South Services'); - }); + southPage.navToSouthPage() + southPage.getSouthPageTitle().then(title =>{ + expect(title.trim()).to.equal('South Services') + }) + }) it('Should display added south service', () => { - southPage.clickAddServiceButton(); - southPage.addSouthService('guiE2eService #1'); // pass south service name - expect(southPage.getServiceName()).toEqual('guiE2eService #1'); - }); + southPage.navToSouthPage() + southPage.clickAddServiceButton() + southPage.addSouthService('guiE2eService #1') // pass south service name + southPage.getServiceName().then(serviceName =>{ + expect(serviceName.trim()).to.equal('guiE2eService #1') + }) + }) it('Should display added filter in south service', () => { - southPage.openSouthServiceModal(); - filters.openFilterWizard(); - filters.addFilter('guiE2eFilter #1'); - expect(filters.getAddedFilterName()).toEqual(' guiE2eFilter #1'); - southPage.closeSouthServiceModal(); - }); + southPage.navToSouthPage() + southPage.openSouthServiceModal() + filters.openFilterWizard() + filters.addFilter('guiE2eFilter #1') + filters.getAddedFilterName().then(filterName =>{ + expect(filterName.trim()).to.equal('guiE2eFilter #1') + }) + southPage.closeSouthServiceModal() + }) it('Should display asset count on south service', () => { - southPage.getAssetCount().then(value => { - expect(+value).toBeGreaterThanOrEqual(1); - }); - }); -}); + southPage.navToSouthPage() + southPage.getAssetCount().then((assetCount) => { + assetCount = assetCount.split(",").join("") + assert.isAtLeast(+assetCount, 1) + }) + }) +}) diff --git a/package.json b/package.json index 76cc9248d..4448f2d58 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "@circlon/angular-tree-component": "^11.0.4", "@creativebulma/bulma-tooltip": "^1.2.0", "@ctrl/ngx-codemirror": "^5.1.1", + "@cypress/schematic": "^2.5.1", "@fortawesome/fontawesome-free": "^6.4.0", "@kurkle/color": "^0.1.9", "@ng-select/ng-select": "^8.1.1", @@ -60,6 +61,10 @@ "@types/jasmine": "~3.10.0", "@types/jasminewd2": "^2.0.10", "@types/node": "^14.14.33", + "cypress": "~13.1.0", + "cypress-junit-reporter": "^1.3.1", + "cypress-mochawesome-reporter": "^3.6.0", + "cypress-multi-reporters": "^1.6.3", "git-describe": "^4.1.0", "jasmine-core": "~4.0.0", "jasmine-spec-reporter": "^7.0.0", @@ -69,8 +74,6 @@ "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "~1.7.0", "ngx-build-plus": "^13.0.1", - "protractor": "^7.0.0", - "protractor-beautiful-reporter": "^1.3.6", "ts-node": "^10.8.0", "tslint": "^6.1.3", "typescript": "~4.5.2" diff --git a/protractor.conf.js b/protractor.conf.js deleted file mode 100644 index 79883f1ca..000000000 --- a/protractor.conf.js +++ /dev/null @@ -1,42 +0,0 @@ -// Protractor configuration file, see link for more information -// https://github.com/angular/protractor/blob/master/lib/config.ts - -const { SpecReporter } = require('jasmine-spec-reporter'); - -exports.config = { - allScriptsTimeout: 11000, - specs: [ - './e2e/**/*.e2e-*.ts' - ], - suites: { - common: './e2e/specs/**/*.e2e-common.ts', - south: './e2e/specs/**/*.e2e-south.ts', - }, - capabilities: { - 'browserName': 'chrome' - }, - directConnect: true, - baseUrl: 'http://localhost:4200/', - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 30000, - print: function () { } - }, - onPrepare() { - var HtmlReporter = require('protractor-beautiful-reporter'); - // Add a screenshot reporter and store screenshots to `/e2e-test-report`: - jasmine.getEnv().addReporter(new HtmlReporter({ - baseDirectory: 'e2e-test-report', - jsonsSubfolder: 'json', - screenshotsSubfolder: 'screenshots', - takeScreenShotsOnlyForFailedSpecs: true, - preserveDirectory: false - }).getJasmine2Reporter()); - - require('ts-node').register({ - project: 'e2e/tsconfig.e2e.json' - }); - jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); - } -}; diff --git a/protractor_ci.conf.js b/protractor_ci.conf.js deleted file mode 100644 index be002a4a1..000000000 --- a/protractor_ci.conf.js +++ /dev/null @@ -1,45 +0,0 @@ -// Protractor configuration file, see link for more information -// https://github.com/angular/protractor/blob/master/lib/config.ts - -const { SpecReporter } = require('jasmine-spec-reporter'); - -exports.config = { - allScriptsTimeout: 11000, - specs: [ - './e2e/**/*.e2e-*.ts' - ], - suites: { - common: './e2e/specs/**/*.e2e-common.ts', - south: './e2e/specs/**/*.e2e-south.ts', - }, - capabilities: { - 'browserName': 'chrome', - chromeOptions: { - args: ['--headless', '--disable-gpu', '--no-sandbox','--disable-browser-side-navigation', '--disable-extensions', '--disable-dev-shm-usage', '--window-size=1800,1000', '--test-type=ui', '--start-maximized'] - } - }, - directConnect: true, - baseUrl: 'http://localhost:4200/', - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 300000, - print: function () { } - }, - onPrepare() { - var HtmlReporter = require('protractor-beautiful-reporter'); - // Add a screenshot reporter and store screenshots to `/e2e-test-report`: - jasmine.getEnv().addReporter(new HtmlReporter({ - baseDirectory: 'e2e-test-report', - jsonsSubfolder: 'json', - screenshotsSubfolder: 'screenshots', - takeScreenShotsOnlyForFailedSpecs: true, - preserveDirectory: false - }).getJasmine2Reporter()); - - require('ts-node').register({ - project: 'e2e/tsconfig.e2e.json' - }); - jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); - } -}; diff --git a/reporter-config.json b/reporter-config.json new file mode 100644 index 000000000..95f08a86a --- /dev/null +++ b/reporter-config.json @@ -0,0 +1,5 @@ +{ + "reporterEnabled" : "cypress-junit-reporter, cypress-mochawesome-reporter", + "cypressJunitReporterReporterOptions" : {"mochaFile": "e2e/reports/xml/[hash].xml"}, + "cypressMochawesomeReporterReporterOptions" : {"reportDir": "e2e/reports/html"} +} \ No newline at end of file diff --git a/requirements b/requirements index 7a8f298ce..c57fa0445 100755 --- a/requirements +++ b/requirements @@ -17,10 +17,10 @@ echo install_nodejs () { isNodeInstalled=`which node` && currentNodeVer=`node -v` || echo '' - requiredNodeVer="v14.15.5" + requiredNodeVer="v16.14.0" # Check if Node.js is installed or if installed version is < 14.x if [[ "$isNodeInstalled" = "" ]] || [[ "$(printf '%s\n' "$requiredNodeVer" "$currentNodeVer" | sort -V | head -n1)" != "$requiredNodeVer" ]]; then - curl -L https://${PKG_TYPE}.nodesource.com/setup_14.x | sudo -E bash - + curl -L https://${PKG_TYPE}.nodesource.com/setup_16.x | sudo -E bash - sudo $1 install -y nodejs fi } @@ -52,8 +52,8 @@ esac # Don't run yarn build as root; if you had done, reclaim ownership for .npm and .config files -sudo chown -R $USER:$GROUP $(sudo find / -type d -name .npm 2>/dev/null) -sudo chown -R $USER:$GROUP $(sudo find / -type d -name .config 2>/dev/null) +#sudo chown -R $USER:$GROUP $(sudo find / -type d -name .npm 2>/dev/null) +#sudo chown -R $USER:$GROUP $(sudo find / -type d -name .config 2>/dev/null) echo "Node.js version: `node -v`" diff --git a/yarn.lock b/yarn.lock index a01b184a0..6b3d1e270 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1369,6 +1369,46 @@ "@types/codemirror" "^5.60.5" tslib "^2.3.0" +"@cypress/request@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.1.tgz#72d7d5425236a2413bd3d8bb66d02d9dc3168960" + integrity sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + http-signature "~1.3.6" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + performance-now "^2.1.0" + qs "6.10.4" + safe-buffer "^5.1.2" + tough-cookie "^4.1.3" + tunnel-agent "^0.6.0" + uuid "^8.3.2" + +"@cypress/schematic@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@cypress/schematic/-/schematic-2.5.1.tgz#00657c4727b7ae7fe526f8788d7f108cf19474cb" + integrity sha512-tO2lUnr5C0udB4xpewndlTMkEHHdgyvSNLI9+bTdYbxCby8MlxrFpewxmqPIfH21ZmOQP8XghD5uMd3l732ESA== + dependencies: + jsonc-parser "^3.0.0" + rxjs "~6.6.0" + +"@cypress/xvfb@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" + integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== + dependencies: + debug "^3.1.0" + lodash.once "^4.1.1" + "@discoveryjs/json-ext@0.5.6": version "0.5.6" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" @@ -1887,16 +1927,16 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.18.tgz#5c9503030df484ccffcbb935ea9a9e1d6fad1a20" integrity sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig== +"@types/node@^16.18.39": + version "16.18.48" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.48.tgz#3bc872236cdb31cb51024d8875d655e25db489a4" + integrity sha512-mlaecDKQ7rIZrYD7iiKNdzFb6e/qD5I9U1rAhq+Fd+DWvYVs+G2kv74UFHmSOlg5+i/vF3XxuR522V4u8BqO+Q== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/q@^0.0.32": - version "0.0.32" - resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" - integrity sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug== - "@types/qs@*": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" @@ -1912,11 +1952,6 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@types/selenium-webdriver@^3.0.0": - version "3.0.20" - resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz#448771a0608ebf1c86cb5885914da6311e323c3a" - integrity sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA== - "@types/semver@^7.3.8": version "7.3.9" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" @@ -1937,6 +1972,16 @@ "@types/mime" "^1" "@types/node" "*" +"@types/sinonjs__fake-timers@8.1.1": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" + integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== + +"@types/sizzle@^2.3.2": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" + integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== + "@types/sockjs@^0.3.33": version "0.3.33" resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" @@ -1958,6 +2003,13 @@ dependencies: "@types/node" "*" +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -2150,11 +2202,6 @@ adjust-sourcemap-loader@^4.0.0: loader-utils "^2.0.0" regex-parser "^2.2.11" -adm-zip@^0.4.9: - version "0.4.16" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" - integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== - agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -2162,13 +2209,6 @@ agent-base@6, agent-base@^6.0.2: dependencies: debug "4" -agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== - dependencies: - es6-promisify "^5.0.0" - agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" @@ -2215,7 +2255,7 @@ ajv@8.9.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2250,7 +2290,12 @@ ansi-colors@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-escapes@^4.2.1: +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1, 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== @@ -2262,10 +2307,10 @@ ansi-html-community@^0.0.8: resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^5.0.1: version "5.0.1" @@ -2277,11 +2322,6 @@ ansi-regex@^6.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== - ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -2309,6 +2349,11 @@ anymatch@~3.1.2: resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + are-we-there-yet@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" @@ -2371,13 +2416,6 @@ array-rearrange@^2.2.2: resolved "https://registry.yarnpkg.com/array-rearrange/-/array-rearrange-2.2.2.tgz#fa1a2acf8d02e88dd0c9602aa0e06a79158b2283" integrity sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w== -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== - dependencies: - array-uniq "^1.0.1" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -2388,16 +2426,6 @@ array-union@^3.0.1: resolved "https://registry.yarnpkg.com/array-union/-/array-union-3.0.1.tgz#da52630d327f8b88cfbfb57728e2af5cd9b6b975" integrity sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw== -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - asn1@~0.2.3: version "0.2.6" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" @@ -2410,6 +2438,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== +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@^2.6.2: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" @@ -2417,11 +2450,21 @@ async@^2.6.2: dependencies: lodash "^4.17.14" +async@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + atob-lite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" @@ -2585,12 +2628,15 @@ bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -blocking-proxy@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-1.0.1.tgz#81d6fd1fe13a4c0d6957df7f91b75e98dac40cb2" - integrity sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA== - dependencies: - minimist "^1.2.0" +blob-util@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== + +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== body-parser@1.20.0, body-parser@^1.19.0: version "1.20.0" @@ -2660,12 +2706,10 @@ browserslist@^4.14.5, browserslist@^4.19.1, browserslist@^4.20.2, browserslist@^ node-releases "^2.0.3" picocolors "^1.0.0" -browserstack@^1.5.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/browserstack/-/browserstack-1.6.1.tgz#e051f9733ec3b507659f395c7a4765a1b1e358b3" - integrity sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw== - dependencies: - https-proxy-agent "^2.2.1" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== buffer-from@^1.0.0: version "1.1.2" @@ -2677,7 +2721,7 @@ buffer-indexof@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== -buffer@^5.5.0: +buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -2768,6 +2812,11 @@ cacache@^16.0.2: tar "^6.1.11" unique-filename "^1.1.1" +cachedir@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" + integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -2808,17 +2857,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - 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.3.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2828,7 +2866,7 @@ chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2841,6 +2879,11 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + chart.js@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.0.tgz#ac363030ab3fec572850d2d872956f32a46326a1" @@ -2860,6 +2903,11 @@ chartjs-plugin-zoom@^2.0.1: dependencies: hammerjs "^2.0.8" +check-more-types@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== + "chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.5.1, chokidar@^3.5.2: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -2885,16 +2933,16 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== +ci-info@^3.2.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + circular-dependency-plugin@5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz#39e836079db1d3cf2f988dc48c5188a44058b600" integrity sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ== -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - clamp@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/clamp/-/clamp-1.0.1.tgz#66a0e64011816e37196828fdc8c8c147312c8634" @@ -2917,6 +2965,23 @@ cli-spinners@^2.5.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== +cli-table3@~0.6.1: + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +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 "^3.0.0" + string-width "^4.2.0" + cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" @@ -3077,6 +3142,11 @@ colorette@^2.0.10: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== +colorette@^2.0.16: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + colors@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" @@ -3094,6 +3164,21 @@ commander@2, commander@^2.12.1, commander@^2.15.1, commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +common-tags@^1.8.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -3297,7 +3382,7 @@ critters@0.0.16: postcss "^8.3.7" pretty-bytes "^5.3.0" -cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3306,6 +3391,11 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + css-blank-pseudo@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" @@ -3429,6 +3519,85 @@ custom-event@~1.0.0: resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= +cypress-junit-reporter@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/cypress-junit-reporter/-/cypress-junit-reporter-1.3.1.tgz#b7cbf2b592bf07522377c0b95d54fabbd0ed296e" + integrity sha512-7agvD+Dpsdhk1FyX9GeIGQiICCmUcQFdetA1WF+ldY3pY2TQuznrThEXVem3ov+f7nyOaJNfyj0yX9e5lsoCVg== + dependencies: + debug "^2.2.0" + md5 "^2.1.0" + mkdirp "~0.5.1" + strip-ansi "^4.0.0" + xml "^1.0.0" + +cypress-mochawesome-reporter@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/cypress-mochawesome-reporter/-/cypress-mochawesome-reporter-3.6.0.tgz#22aa03af2fc033d6ff118e67cda001d9a2255982" + integrity sha512-NeYpeZVB5YCU10I3a1yA2qHt+YREo0jZw4Gj83JTJ7YX/ZLFfd8MYKl2O19d/yYC8np/fpMufp5gt3ympd9DWQ== + dependencies: + commander "^10.0.1" + fs-extra "^10.0.1" + mochawesome "^7.1.3" + mochawesome-merge "^4.2.1" + mochawesome-report-generator "^6.2.0" + +cypress-multi-reporters@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/cypress-multi-reporters/-/cypress-multi-reporters-1.6.3.tgz#0f0da8db4caf8d7a21f94e5209148348416d7c71" + integrity sha512-klb9pf6oAF4WCLHotu9gdB8ukYBdeTzbEMuESKB3KT54HhrZj65vQxubAgrULV5H2NWqxHdUhlntPbKZChNvEw== + dependencies: + debug "^4.3.4" + lodash "^4.17.21" + +cypress@~13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.1.0.tgz#18f268e66662cd91b1766db18bd1f63a66592205" + integrity sha512-LUKxCYlB973QBFls1Up4FAE9QIYobT+2I8NvvAwMfQS2YwsWbr6yx7y9hmsk97iqbHkKwZW3MRjoK1RToBFVdQ== + dependencies: + "@cypress/request" "^3.0.0" + "@cypress/xvfb" "^1.2.4" + "@types/node" "^16.18.39" + "@types/sinonjs__fake-timers" "8.1.1" + "@types/sizzle" "^2.3.2" + arch "^2.2.0" + blob-util "^2.0.2" + bluebird "^3.7.2" + buffer "^5.6.0" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + cli-cursor "^3.1.0" + cli-table3 "~0.6.1" + commander "^6.2.1" + common-tags "^1.8.0" + dayjs "^1.10.4" + debug "^4.3.4" + enquirer "^2.3.6" + eventemitter2 "6.4.7" + execa "4.1.0" + executable "^4.1.1" + 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" + listr2 "^3.8.3" + lodash "^4.17.21" + log-symbols "^4.0.0" + minimist "^1.2.8" + ospath "^1.2.2" + pretty-bytes "^5.6.0" + process "^0.11.10" + proxy-from-env "1.0.0" + request-progress "^3.0.0" + semver "^7.5.3" + supports-color "^8.1.1" + tmp "~0.2.1" + untildify "^4.0.0" + yauzl "^2.10.0" + d3-array@1, d3-array@^1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" @@ -3547,7 +3716,17 @@ date-format@^4.0.10: resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.10.tgz#7aa4bc0ad0c79f4ba858290e5dbb47f27d602e79" integrity sha512-RuMIHocrVjF84bUSTcd1uokIsLsOsk1Awb7TexNOI3f48ukCu39mjslWquDTA08VaDMF2umr3MB9ow5EyJTWyA== -debug@2, debug@2.6.9: +dateformat@^4.5.1: + version "4.6.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + +dayjs@^1.10.4: + version "1.11.9" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a" + integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA== + +debug@2, debug@2.6.9, debug@^2.2.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3578,7 +3757,7 @@ debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decode-uri-component@^0.2.0: version "0.2.0" @@ -3634,19 +3813,6 @@ defined@^1.0.0: resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= -del@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag= - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - del@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/del/-/del-6.1.0.tgz#aa79a5b0a2a9ecc985c0a075e8ad9a5b23bf949c" @@ -3711,6 +3877,11 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -3863,7 +4034,7 @@ encoding@^0.1.12, encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.0.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -3899,6 +4070,14 @@ enhanced-resolve@^5.8.3, enhanced-resolve@^5.9.2: graceful-fs "^4.2.4" tapable "^2.2.0" +enquirer@^2.3.6: + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + dependencies: + ansi-colors "^4.1.1" + strip-ansi "^6.0.1" + ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" @@ -3956,18 +4135,6 @@ es6-iterator@^2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= - dependencies: - es6-promise "^4.0.3" - es6-symbol@^3.1.1, es6-symbol@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" @@ -4116,12 +4283,12 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-html@~1.0.3: +escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -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= @@ -4183,6 +4350,11 @@ eventemitter-asyncresource@^1.0.0: resolved "https://registry.yarnpkg.com/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz#734ff2e44bf448e627f7748f905d6bdd57bdb65b" integrity sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ== +eventemitter2@6.4.7: + version "6.4.7" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" + integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== + eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -4193,6 +4365,21 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +execa@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -4208,10 +4395,12 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= +executable@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" express@^4.17.1: version "4.18.1" @@ -4271,6 +4460,17 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +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: + 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" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -4336,7 +4536,14 @@ faye-websocket@^0.11.3: dependencies: websocket-driver ">=0.5.1" -figures@^3.0.0: +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +figures@^3.0.0, 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== @@ -4466,7 +4673,7 @@ from2@^2.3.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^10.1.0: +fs-extra@^10.0.0, fs-extra@^10.0.1, fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -4475,15 +4682,25 @@ fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" - integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" - jsonfile "^3.0.0" + jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -4506,6 +4723,11 @@ fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsu@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fsu/-/fsu-1.1.1.tgz#bd36d3579907c59d85b257a75b836aa9e0c31834" + integrity sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -4564,11 +4786,25 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +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== + dependencies: + pump "^3.0.0" + get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +getos@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" + integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== + dependencies: + async "^3.2.0" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -4663,7 +4899,7 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.0.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: +glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4686,6 +4922,13 @@ glob@^8.0.1: minimatch "^5.0.1" once "^1.3.0" +global-dirs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== + dependencies: + ini "2.0.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -4715,18 +4958,6 @@ globby@^12.0.2: merge2 "^1.4.1" slash "^4.0.0" -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0= - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - glsl-inject-defines@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz#dd1aacc2c17fcb2bd3fc32411c6633d0d7b60fd4" @@ -4854,7 +5085,7 @@ glslify@^7.0.0, glslify@^7.1.1: through2 "^2.0.1" xtend "^4.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -4874,26 +5105,6 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - 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" @@ -5069,14 +5280,14 @@ http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= +http-signature@~1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" + integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== dependencies: assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" + jsprim "^2.0.2" + sshpk "^1.14.1" https-proxy-agent@5.0.0: version "5.0.0" @@ -5086,14 +5297,6 @@ https-proxy-agent@5.0.0: agent-base "6" debug "4" -https-proxy-agent@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" - integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== - dependencies: - agent-base "^4.3.0" - debug "^3.1.0" - https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -5102,6 +5305,11 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -5164,11 +5372,6 @@ image-size@~0.5.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= - immutable@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" @@ -5220,11 +5423,6 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -ini@^1.3.4: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - inquirer@8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.0.tgz#f44f008dd344bbfc4b30031f45d984e034a3ac3a" @@ -5300,6 +5498,18 @@ is-buffer@^2.0.3: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-ci@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + is-core-module@^2.8.1: version "2.9.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" @@ -5356,6 +5566,14 @@ is-iexplorer@^1.0.0: resolved "https://registry.yarnpkg.com/is-iexplorer/-/is-iexplorer-1.0.0.tgz#1d72bc66d3fe22eaf6170dda8cf10943248cfc76" integrity sha1-HXK8ZtP+Iur2Fw3ajPEJQySM/HY= +is-installed-globally@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" @@ -5381,30 +5599,11 @@ is-obj@^1.0.1: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= - is-path-cwd@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -5564,11 +5763,6 @@ jasmine-core@^3.6.0: resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.99.1.tgz#5bfa4b2d76618868bfac4c8ff08bb26fffa4120d" integrity sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg== -jasmine-core@~2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" - integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4= - jasmine-core@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-4.0.1.tgz#ea4b0495d82155023bd56c25181d9f9b623f61b8" @@ -5581,20 +5775,6 @@ jasmine-spec-reporter@^7.0.0: dependencies: colors "1.4.0" -jasmine@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e" - integrity sha1-awicChFXax8W3xG4AUbZHU6Lij4= - dependencies: - exit "^0.1.2" - glob "^7.0.6" - jasmine-core "~2.8.0" - -jasminewd2@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.2.0.tgz#e37cf0b17f199cce23bea71b2039395246b4ec4e" - integrity sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4= - jest-worker@^27.4.5: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" @@ -5604,7 +5784,7 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -js-tokens@^4.0.0: +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== @@ -5657,7 +5837,7 @@ json-schema@0.4.0: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== -json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= @@ -5679,10 +5859,15 @@ jsonc-parser@3.0.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" - integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= +jsonc-parser@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" @@ -5709,26 +5894,16 @@ jsonparse@^1.3.1: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== +jsprim@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" + integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== dependencies: assert-plus "1.0.0" extsprintf "1.3.0" json-schema "0.4.0" verror "1.10.0" -jszip@^3.1.3: - version "3.10.0" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.0.tgz#faf3db2b4b8515425e34effcdbb086750a346061" - integrity sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q== - dependencies: - lie "~3.3.0" - pako "~1.0.2" - readable-stream "~2.3.6" - setimmediate "^1.0.5" - karma-chrome-launcher@~3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz#baca9cc071b1562a1db241827257bfe5cab597ea" @@ -5807,18 +5982,16 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klaw-sync@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-2.1.0.tgz#3d3bcd8600e7bfdef53231c739ff053aed560e44" - integrity sha1-PTvNhgDnv971MjHHOf8FOu1WDkQ= - optionalDependencies: - graceful-fs "^4.1.11" - klona@^2.0.4, klona@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== +lazy-ass@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== + less-loader@10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-10.2.0.tgz#97286d8797dc3dc05b1d16b0ecec5f968bdd4e32" @@ -5858,18 +6031,25 @@ license-webpack-plugin@4.0.2: dependencies: webpack-sources "^3.0.0" -lie@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" - integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== - dependencies: - immediate "~3.0.5" - lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +listr2@^3.8.3: + version "3.14.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" + integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.1" + through "^2.3.8" + wrap-ansi "^7.0.0" + loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" @@ -5910,11 +6090,36 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= +lodash.isempty@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + integrity sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg== + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +lodash.isobject@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + integrity sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.once@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -5925,7 +6130,7 @@ lodash@^4.17.14, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^4.1.0: +log-symbols@^4.0.0, log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -5933,6 +6138,16 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +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 "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + log4js@^6.4.1: version "6.4.7" resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.4.7.tgz#adba3797606664e83567d2fbf38fa14b9d809167" @@ -5944,6 +6159,13 @@ log4js@^6.4.1: rfdc "^1.3.0" streamroller "^3.0.9" +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -6075,6 +6297,15 @@ math-log2@^1.0.1: resolved "https://registry.yarnpkg.com/math-log2/-/math-log2-1.0.1.tgz#fb8941be5f5ebe8979e718e6273b178e58694565" integrity sha1-+4lBvl9evol55xjmJzsXjlhpRWU= +md5@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -6187,6 +6418,11 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -6260,7 +6496,7 @@ minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: minipass "^3.0.0" yallist "^4.0.0" -mkdirp@^0.5.3, mkdirp@^0.5.5: +mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -6272,16 +6508,54 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" - integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc= - mobx@~4.14.1: version "4.14.1" resolved "https://registry.yarnpkg.com/mobx/-/mobx-4.14.1.tgz#0dc5622523363f6f5b467a5a0c4c99846b789748" integrity sha512-Oyg7Sr7r78b+QPYLufJyUmxTWcqeQ96S1nmtyur3QL8SeI6e0TqcKKcxbG+sVJLWANhHQkBW/mDmgG5DDC4fdw== +mochawesome-merge@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mochawesome-merge/-/mochawesome-merge-4.3.0.tgz#7cc5d5730c7d8d1b034c8d8fecf3cd36e0010297" + integrity sha512-1roR6g+VUlfdaRmL8dCiVpKiaUhbPVm1ZQYUM6zHX46mWk+tpsKVZR6ba98k2zc8nlPvYd71yn5gyH970pKBSw== + dependencies: + fs-extra "^7.0.1" + glob "^7.1.6" + yargs "^15.3.1" + +mochawesome-report-generator@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/mochawesome-report-generator/-/mochawesome-report-generator-6.2.0.tgz#65a30a11235ba7a68e1cf0ca1df80d764b93ae78" + integrity sha512-Ghw8JhQFizF0Vjbtp9B0i//+BOkV5OWcQCPpbO0NGOoxV33o+gKDYU0Pr2pGxkIHnqZ+g5mYiXF7GMNgAcDpSg== + dependencies: + chalk "^4.1.2" + dateformat "^4.5.1" + escape-html "^1.0.3" + fs-extra "^10.0.0" + fsu "^1.1.1" + lodash.isfunction "^3.0.9" + opener "^1.5.2" + prop-types "^15.7.2" + tcomb "^3.2.17" + tcomb-validation "^3.3.0" + validator "^13.6.0" + yargs "^17.2.1" + +mochawesome@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/mochawesome/-/mochawesome-7.1.3.tgz#07b358138f37f5b07b51a1b255d84babfa36fa83" + integrity sha512-Vkb3jR5GZ1cXohMQQ73H3cZz7RoxGjjUo0G5hu0jLaW+0FdUxUwg3Cj29bqQdh0rFcnyV06pWmqmi5eBPnEuNQ== + dependencies: + chalk "^4.1.2" + diff "^5.0.0" + json-stringify-safe "^5.0.1" + lodash.isempty "^4.4.0" + lodash.isfunction "^3.0.9" + lodash.isobject "^3.0.2" + lodash.isstring "^4.0.1" + mochawesome-report-generator "^6.2.0" + strip-ansi "^6.0.1" + uuid "^8.3.2" + moment@^2.29.3: version "2.29.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" @@ -6553,7 +6827,7 @@ npm-registry-fetch@^12.0.0: minizlib "^2.1.2" npm-package-arg "^8.1.5" -npm-run-path@^4.0.1: +npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -6584,12 +6858,7 @@ number-is-integer@^1.0.1: dependencies: is-finite "^1.0.1" -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -6646,7 +6915,7 @@ on-headers@~1.0.2: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -6676,6 +6945,11 @@ open@8.4.0, open@^8.0.9: is-docker "^2.1.1" is-wsl "^2.2.0" +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -6703,11 +6977,16 @@ ora@5.4.1, ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" -os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +ospath@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" + integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== + p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -6767,7 +7046,7 @@ pacote@12.0.3: ssri "^8.0.1" tar "^6.1.0" -pako@^1.0.3, pako@~1.0.2: +pako@^1.0.3: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== @@ -6863,11 +7142,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -6896,6 +7170,11 @@ pbf@^3.2.1: ieee754 "^1.1.12" resolve-protobuf-schema "^2.1.0" +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -6916,7 +7195,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.0.0, pify@^2.3.0: +pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -6926,18 +7205,6 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - piscina@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/piscina/-/piscina-3.2.0.tgz#f5a1dde0c05567775690cccefe59d9223924d154" @@ -7317,7 +7584,7 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -pretty-bytes@^5.3.0: +pretty-bytes@^5.3.0, pretty-bytes@^5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== @@ -7336,6 +7603,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -7349,42 +7621,20 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" +prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + protocol-buffers-schema@^3.3.1: version "3.6.0" resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== -protractor-beautiful-reporter@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/protractor-beautiful-reporter/-/protractor-beautiful-reporter-1.3.6.tgz#36ea05506ddf4d3913237ed915aba914237e7a77" - integrity sha512-lALPJJV8li3AqweEfKcXSRBK/QSe82FyB13b1+6NQvrAkE6YyoZ91pYg1ZNUcaZU0HO+pPAmbF4mfW+5FLvieg== - dependencies: - circular-json "^0.3.1" - fs-extra "^3.0.1" - klaw-sync "^2.1.0" - mkdirp "~0.3.5" - -protractor@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/protractor/-/protractor-7.0.0.tgz#c3e263608bd72e2c2dc802b11a772711a4792d03" - integrity sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw== - dependencies: - "@types/q" "^0.0.32" - "@types/selenium-webdriver" "^3.0.0" - blocking-proxy "^1.0.0" - browserstack "^1.5.1" - chalk "^1.1.3" - glob "^7.0.3" - jasmine "2.8.0" - jasminewd2 "^2.1.0" - q "1.4.1" - saucelabs "^1.5.0" - selenium-webdriver "3.6.0" - source-map-support "~0.4.0" - webdriver-js-extender "2.1.0" - webdriver-manager "^12.1.7" - yargs "^15.3.1" - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -7393,15 +7643,28 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-from-env@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" @@ -7420,16 +7683,6 @@ pxls@^2.0.0: is-buffer "^2.0.3" to-uint8 "^1.4.1" -q@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - integrity sha1-VXBbzZPF82c1MMLCy8DCs63cKG4= - -q@^1.4.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - qjobs@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" @@ -7442,16 +7695,23 @@ qs@6.10.3: dependencies: side-channel "^1.0.4" -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== +qs@6.10.4: + version "6.10.4" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.4.tgz#6a3003755add91c0ec9eacdc5f878b034e73f9e7" + integrity sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g== + dependencies: + side-channel "^1.0.4" quantize@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/quantize/-/quantize-1.0.2.tgz#d25ac200a77b6d70f40127ca171a10e33c8546de" integrity sha1-0lrCAKd7bXD0ASfKFxoQ4zyFRt4= +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -7491,6 +7751,11 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" @@ -7694,31 +7959,12 @@ regl@^2.0.0: resolved "https://registry.yarnpkg.com/@plotly/regl/-/regl-2.1.2.tgz#fd31e3e820ed8824d59a67ab5e766bb101b810b6" integrity sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw== -request@^2.87.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== +request-progress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" + integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg== dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" + throttleit "^1.0.0" require-directory@^2.1.1: version "2.1.1" @@ -7815,13 +8061,6 @@ right-now@^1.0.0: resolved "https://registry.yarnpkg.com/right-now/-/right-now-1.0.0.tgz#6e89609deebd7dcdaf8daecc9aea39cf585a0918" integrity sha1-bolgne69fc2vja7Mmuo5z1haCRg= -rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -7846,7 +8085,7 @@ rw@^1.3.3: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= -rxjs@6.6.7, rxjs@~6.6.3, rxjs@~6.6.6: +rxjs@6.6.7, rxjs@~6.6.0, rxjs@~6.6.3, rxjs@~6.6.6: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -7860,6 +8099,13 @@ rxjs@^7.2.0: dependencies: tslib "^2.1.0" +rxjs@^7.5.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -7901,14 +8147,7 @@ sass@1.49.9: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -saucelabs@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d" - integrity sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ== - dependencies: - https-proxy-agent "^2.2.1" - -sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -7946,16 +8185,6 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc" - integrity sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q== - dependencies: - jszip "^3.1.3" - rimraf "^2.5.4" - tmp "0.0.30" - xml2js "^0.4.17" - selfsigned@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" @@ -7992,6 +8221,13 @@ semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5: dependencies: lru-cache "^6.0.0" +semver@^7.5.3: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -8046,11 +8282,6 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -8114,6 +8345,24 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== +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" + smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" @@ -8201,13 +8450,6 @@ source-map-support@0.5.21, source-map-support@^0.5.5, source-map-support@~0.5.20 buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@~0.4.0: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -8218,7 +8460,7 @@ source-map@0.7.3, source-map@^0.7.3, source-map@~0.7.2: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -8263,7 +8505,7 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: +sshpk@^1.14.1: version "1.17.0" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== @@ -8378,12 +8620,12 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: - ansi-regex "^2.0.0" + ansi-regex "^3.0.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" @@ -8442,11 +8684,6 @@ superscript-text@^1.0.0: resolved "https://registry.yarnpkg.com/superscript-text/-/superscript-text-1.0.0.tgz#e7cb2752567360df50beb0610ce8df3d71d8dfd8" integrity sha1-58snUlZzYN9QvrBhDOjfPXHY39g= -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" @@ -8461,7 +8698,7 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -8521,6 +8758,18 @@ tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: mkdirp "^1.0.3" yallist "^4.0.0" +tcomb-validation@^3.3.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tcomb-validation/-/tcomb-validation-3.4.1.tgz#a7696ec176ce56a081d9e019f8b732a5a8894b65" + integrity sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA== + dependencies: + tcomb "^3.0.0" + +tcomb@^3.0.0, tcomb@^3.2.17: + version "3.2.29" + resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-3.2.29.tgz#32404fe9456d90c2cf4798682d37439f1ccc386c" + integrity sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ== + terser-webpack-plugin@^5.1.3: version "5.3.1" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" @@ -8566,6 +8815,11 @@ text-table@0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g== + through2@^0.6.3: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" @@ -8582,7 +8836,7 @@ through2@^2.0.1: readable-stream "~2.3.6" xtend "~4.0.1" -through@^2.3.6: +through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -8602,13 +8856,6 @@ tinyqueue@^2.0.3: resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-2.0.3.tgz#64d8492ebf39e7801d7bd34062e29b45b2035f08" integrity sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA== -tmp@0.0.30: - version "0.0.30" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" - integrity sha1-ckGdSovn1s51FI/YsyTlk6cRwu0= - dependencies: - os-tmpdir "~1.0.1" - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -8616,7 +8863,7 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@^0.2.1: +tmp@^0.2.1, tmp@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== @@ -8686,13 +8933,15 @@ topojson-client@^3.1.0: dependencies: commander "2" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== +tough-cookie@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== dependencies: - psl "^1.1.28" + psl "^1.1.33" punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" tr46@^1.0.1: version "1.0.1" @@ -8893,6 +9142,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -8908,6 +9162,11 @@ unquote@^1.1.0: resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + update-diff@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/update-diff/-/update-diff-1.1.0.tgz#f510182d81ee819fb82c3a6b22b62bbdeda7808f" @@ -8920,6 +9179,14 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -8974,11 +9241,6 @@ uuid@8.3.2, uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -9062,6 +9324,11 @@ validate.io-string-primitive@^1.0.0: resolved "https://registry.yarnpkg.com/validate.io-string-primitive/-/validate.io-string-primitive-1.0.1.tgz#b8135b9fb1372bde02fdd53ad1d0ccd6de798fee" integrity sha1-uBNbn7E3K94C/dU60dDM1t55j+4= +validator@^13.6.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" + integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== + vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -9117,31 +9384,6 @@ weak-map@^1.0.5: resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.8.tgz#394c18a9e8262e790544ed8b55c6a4ddad1cb1a3" integrity sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw== -webdriver-js-extender@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz#57d7a93c00db4cc8d556e4d3db4b5db0a80c3bb7" - integrity sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ== - dependencies: - "@types/selenium-webdriver" "^3.0.0" - selenium-webdriver "^3.0.1" - -webdriver-manager@^12.1.7: - version "12.1.8" - resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.1.8.tgz#5e70e73eaaf53a0767d5745270addafbc5905fd4" - integrity sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg== - dependencies: - adm-zip "^0.4.9" - chalk "^1.1.1" - del "^2.2.0" - glob "^7.0.3" - ini "^1.3.4" - minimist "^1.2.0" - q "^1.4.1" - request "^2.87.0" - rimraf "^2.5.2" - semver "^5.3.0" - xml2js "^0.4.17" - webgl-context@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/webgl-context/-/webgl-context-2.2.0.tgz#8f37d7257cf6df1cd0a49e6a7b1b721b94cc86a0" @@ -9328,9 +9570,9 @@ whatwg-url@^7.0.0: webidl-conversions "^4.0.2" which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which@^1.2.1: version "1.3.1" @@ -9403,18 +9645,10 @@ ws@~8.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== -xml2js@^0.4.17: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== +xml@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" + integrity sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw== "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" @@ -9507,6 +9741,14 @@ yargs@^17.2.1: y18n "^5.0.5" yargs-parser "^21.0.0" +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"