diff --git a/.eslintrc.js b/.eslintrc.js index 741445b6a..a44cd5484 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,11 +1,10 @@ module.exports = { root: true, parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'cypress'], + plugins: ['@typescript-eslint'], extends: [ 'eslint:recommended', 'plugin:prettier/recommended', - 'plugin:cypress/recommended', 'plugin:@typescript-eslint/eslint-recommended', 'prettier' ], diff --git a/.gitignore b/.gitignore index 0b3aa6074..4647eb303 100644 --- a/.gitignore +++ b/.gitignore @@ -26,8 +26,7 @@ build src/features/employees/tmp/login-details.json src/tests/locations.json -cypress/screenshots -cypress/videos + graphql.schema.json *.tar.gz .secrets diff --git a/cypress.config.ts b/cypress.config.ts deleted file mode 100644 index f603bf3df..000000000 --- a/cypress.config.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { defineConfig } from 'cypress' - -export default defineConfig({ - chromeWebSecurity: false, - video: false, - projectId: 'j9bgv5', - viewportWidth: 1024, - viewportHeight: 768, - defaultCommandTimeout: 60000, - videoCompression: 0, - retries: { - runMode: 1, - openMode: 2 - }, - e2e: { - // We've imported your old cypress plugins here. - // You may want to clean this up later by importing these. - setupNodeEvents(on, config) { - return require('./cypress/plugins/index.js')(on, config) - }, - specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}' - } -}) diff --git a/cypress/e2e/advancedsearch.spec.ts b/cypress/e2e/advancedsearch.spec.ts deleted file mode 100644 index 9041350e2..000000000 --- a/cypress/e2e/advancedsearch.spec.ts +++ /dev/null @@ -1,297 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -/// -import faker from '@faker-js/faker' -import { getDateMonthYearFromString } from '../support/commands' - -function selectLocation(selector: string, text: string) { - cy.get(selector).contains(text).parent().click() -} - -context('Advanced Search Integration Test', () => { - beforeEach(() => { - indexedDB.deleteDatabase('OpenCRVS') - }) - - it('birth declaration can be found with minimum advancedSearch inputs', () => { - const firstName = faker.name.firstName() - const familyName = faker.name.lastName() - - cy.createBirthRegistrationAs('fieldWorker', { - firstName, - familyName - }) - - cy.login('registrar') - cy.createPin() - - cy.get('#searchType').click() - cy.get('#advanced-search').click() - cy.get('#BirthChildDetails-accordion').click() - cy.get('#childFirstNames').type(firstName) - cy.get('#childLastName').type(familyName) - cy.get('#BirthRegistrationDetails-accordion').click() - - cy.get('#search').click() - cy.get(`:contains("${firstName} ${familyName}")`).should('be.visible') - cy.logout() - }) - - it('birth declaration can be found with maximum advancedSearch inputs', () => { - //PREPARE DATA - const childFirstNames = faker.name.firstName() - const childLastName = faker.name.lastName() - const fatherFirstNames = faker.name.firstName() - const fatherFamilyName = faker.name.lastName() - const motherFirstNames = faker.name.firstName() - const motherFamilyName = faker.name.lastName() - const childDoB = '1998-08-19' - const childGender = 'Male' - const motherDoB = '1971-01-19' - const fatherDoB = '1961-01-31' - const informantFirstNames = faker.name.firstName() - const informantFamilyName = faker.name.lastName() - const informantDoB = '1998-08-20' - const childDoBSplit = getDateMonthYearFromString(childDoB) - const motherDoBSplit = getDateMonthYearFromString(motherDoB) - const fatherDoBSplit = getDateMonthYearFromString(fatherDoB) - const informantDoBSplit = getDateMonthYearFromString(informantDoB) - const eventCountry = 'Farajaland' - const eventLocationLevel1 = 'Pualula' - const eventLocationLevel2 = 'Embe' - - //LOGIN - cy.login('registrar') - cy.createPin() - - //CREATE REGISTRATION - cy.goToVitalEventSelection() - cy.enterBirthMaximumInput({ - childFirstNames, - childLastName, - childDoB, - childGender, - motherFirstNames, - motherFamilyName, - motherDoB, - fatherFirstNames, - fatherFamilyName, - fatherDoB, - informantFirstNames, - informantFamilyName, - informantDoB, - eventCountry, - eventLocationLevel1, - eventLocationLevel2 - }) - //register declaration - cy.registerForm() - - //OPEN ADVANCED SEARCH - cy.get('#searchType').click() - cy.get('#advanced-search').click() - - //ENTER REGISTRATION DETAILS FOR SEARCH - cy.get('#BirthRegistrationDetails-accordion').click() - cy.get('#placeOfRegistration').type('Ibombo District Office') - selectLocation('span', 'Ibombo District Office') - cy.get('#dateOfRegistration-date_range_button').click() - cy.get('#date-range-confirm-action').click() - cy.selectOption('#registrationStatuses', 'Any status', 'Any status') - //ENTER CHILD DETAILS FOR SEARCH - cy.get('#BirthChildDetails-accordion').click() - cy.get('#childDoBexact-dd').type(childDoBSplit.dd) - cy.get('#childDoBexact-mm').type(childDoBSplit.mm) - cy.get('#childDoBexact-yyyy').type(childDoBSplit.yyyy) - cy.get('#childFirstNames').type(childFirstNames) - cy.get('#childLastName').type(childLastName) - cy.selectOption('#childGender', childGender, childGender) - - //ENTER EVENT DETAILS FOR SEARCH - cy.get('#BirthEventDetails-accordion').click() - cy.selectOption( - '#eventLocationType', - 'Residential address', - 'Residential address' - ) - cy.selectOption('#eventCountry', eventCountry, eventCountry) - cy.selectOption( - '#eventLocationLevel1', - eventLocationLevel1, - eventLocationLevel1 - ) - cy.selectOption( - '#eventLocationLevel2', - eventLocationLevel2, - eventLocationLevel2 - ) - - //ENTER MOTHER DETAILS FOR SEARCH - cy.get('#BirthMotherDetails-accordion').click() - cy.get('#motherDoBexact-dd').type(motherDoBSplit.dd) - cy.get('#motherDoBexact-mm').type(motherDoBSplit.mm) - cy.get('#motherDoBexact-yyyy').type(motherDoBSplit.yyyy) - cy.get('#motherFirstNames').type(motherFirstNames) - cy.get('#motherFamilyName').type(motherFamilyName) - - //ENTER FATHER DETAILS FOR SEARCH - cy.get('#BirthFatherDetails-accordion').click() - cy.get('#fatherDoBexact-dd').type(fatherDoBSplit.dd) - cy.get('#fatherDoBexact-mm').type(fatherDoBSplit.mm) - cy.get('#fatherDoBexact-yyyy').type(fatherDoBSplit.yyyy) - cy.get('#fatherFirstNames').type(fatherFirstNames) - cy.get('#fatherFamilyName').type(fatherFamilyName) - - // ENTER INFORMANT DETAILS FOR SEARCH - cy.get('#BirthInformantDetails-accordion-header').click() - cy.get('#informantDoBexact-dd').type(informantDoBSplit.dd) - cy.get('#informantDoBexact-mm').type(informantDoBSplit.mm) - cy.get('#informantDoBexact-yyyy').type(informantDoBSplit.yyyy) - cy.get('#informantFirstNames').type(informantFirstNames) - cy.get('#informantFamilyName').type(informantFamilyName) - - cy.get('#search').click() - cy.get(`:contains("${childFirstNames} ${childLastName}")`).should( - 'be.visible' - ) - cy.logout() - }) - - it('death declaration can be found with minimum advancedSearch inputs', () => { - const deceasedFirstNames = faker.name.firstName() - const deceasedFamilyName = faker.name.lastName() - const deceasedDoB = '1988-08-19' - const deceasedGender = 'Male' - const informantFirstNames = faker.name.firstName() - const informantFamilyName = faker.name.lastName() - const informantDoB = '1993-02-20' - const eventCountry = 'Farajaland' - const eventLocationLevel1 = 'Pualula' - const eventLocationLevel2 = 'Embe' - - cy.login('fieldWorker') - cy.createPin() - cy.goToVitalEventSelection() - cy.enterDeathMinimumInput({ - deceasedFirstNames, - deceasedFamilyName, - deceasedDoB, - deceasedGender, - informantFirstNames, - informantFamilyName, - informantDoB, - eventCountry, - eventLocationLevel1, - eventLocationLevel2 - }) - cy.submitDeclaration() - cy.logout() - - cy.login('registrar') - cy.createPin() - - cy.get('#searchType').click() - cy.get('#advanced-search').click() - cy.get('#tab_death').click() - cy.get('#DeathRegistrationDetails-accordion').click() - cy.get('#dateOfRegistration-date_range_button').click() - cy.get('#date-range-confirm-action').click() - - cy.selectOption('#registrationStatuses', 'Any status', 'Any status') - cy.get('#search').click() - cy.get(`:contains("${deceasedFirstNames} ${deceasedFamilyName}")`).should( - 'be.visible' - ) - cy.logout() - }) - - it('death declaration can be found with maximum advancedSearch inputs', () => { - const deceasedFirstNames = faker.name.firstName() - const deceasedFamilyName = faker.name.lastName() - const deceasedDoB = '1998-08-19' - const deceasedGender = 'Male' - const informantFirstNames = faker.name.firstName() - const informantFamilyName = faker.name.lastName() - const informantDoB = '1998-08-20' - const deceasedDoBSplit = getDateMonthYearFromString(deceasedDoB) - const informantDoBSplit = getDateMonthYearFromString(informantDoB) - const eventCountry = 'Farajaland' - const eventLocationLevel1 = 'Pualula' - const eventLocationLevel2 = 'Embe' - - cy.login('registrar') - cy.createPin() - cy.goToVitalEventSelection() - cy.enterDeathMaximumInput({ - deceasedFirstNames, - deceasedFamilyName, - deceasedDoB, - deceasedGender, - informantFirstNames, - informantFamilyName, - informantDoB, - eventCountry, - eventLocationLevel1, - eventLocationLevel2 - }) - cy.registerDeclaration() - cy.waitForOutboxToClear() - //OPEN ADVANCED SEARCH - cy.get('#searchType').click() - cy.get('#advanced-search').click() - cy.get('#tab_death').click() - //ENTER REGISTRATION DETAILS FOR SEARCH - cy.get('#DeathRegistrationDetails-accordion').click() - cy.get('#placeOfRegistration').type('Ibombo District Office') - selectLocation('span', 'Ibombo District Office') - cy.get('#dateOfRegistration-date_range_button').click() - cy.get('#date-range-confirm-action').click() - cy.selectOption('#registrationStatuses', 'Any status', 'Any status') - //ENTER DECEASED DETAILS FOR SEARCH - cy.get('#DeathdeceasedDetails-accordion-header').click() - cy.get('#deceasedDoBexact-dd').type(deceasedDoBSplit.dd) - cy.get('#deceasedDoBexact-mm').type(deceasedDoBSplit.mm) - cy.get('#deceasedDoBexact-yyyy').type(deceasedDoBSplit.yyyy) - cy.get('#deceasedFirstNames').type(deceasedFirstNames) - cy.get('#deceasedFamilyName').type(deceasedFamilyName) - cy.selectOption('#deceasedGender', deceasedGender, deceasedGender) - //ENTER EVENT DETAILS FOR SEARCH - cy.get('#DeathEventDetails-accordion').click() - cy.selectOption( - '#eventLocationType', - 'Residential address', - 'Residential address' - ) - cy.selectOption('#eventCountry', eventCountry, eventCountry) - cy.selectOption( - '#eventLocationLevel1', - eventLocationLevel1, - eventLocationLevel1 - ) - cy.selectOption( - '#eventLocationLevel2', - eventLocationLevel2, - eventLocationLevel2 - ) - //ENTER INFORMANT DETAILS FOR SEARCH - cy.get('#DeathInformantDetails-accordion-header').click() - cy.get('#informantDoBexact-dd').type(informantDoBSplit.dd) - cy.get('#informantDoBexact-mm').type(informantDoBSplit.mm) - cy.get('#informantDoBexact-yyyy').type(informantDoBSplit.yyyy) - cy.get('#informantFirstNames').type(informantFirstNames) - cy.get('#informantFamilyName').type(informantFamilyName) - //GOTO SEARCH RESULT - cy.get('#search').click() - cy.get(`:contains("${deceasedFirstNames} ${deceasedFamilyName}")`).should( - 'be.visible' - ) - }) -}) diff --git a/cypress/e2e/birth.spec.ts b/cypress/e2e/birth.spec.ts deleted file mode 100644 index d0bfc6549..000000000 --- a/cypress/e2e/birth.spec.ts +++ /dev/null @@ -1,130 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ - -import faker from '@faker-js/faker' - -context('Birth Integration Test', () => { - beforeEach(() => { - indexedDB.deleteDatabase('OpenCRVS') - }) - - it('login as a field agent, send a declaration using maximum input', () => { - const motherDoB = '1971-01-19' - const fatherDoB = '1961-01-31' - const informantDoB = '1981-01-31' - const informantType = 'Grandfather' - const informantFirstNames = faker.name.firstName() - const informantFamilyName = faker.name.lastName() - const motherFirstNames = faker.name.firstName() - const motherFamilyName = faker.name.lastName() - const fatherFirstNames = faker.name.firstName() - const fatherFamilyName = faker.name.lastName() - cy.login('fieldWorker') - cy.createPin() - cy.goToVitalEventSelection() - cy.enterBirthMaximumInput({ - informantType, - motherDoB, - motherFirstNames, - motherFamilyName, - fatherDoB, - fatherFirstNames, - fatherFamilyName, - informantFirstNames, - informantFamilyName, - informantDoB - }) - cy.submitDeclaration() - cy.logout() - }) - - it('login as registrar and register declaration with maximum input', () => { - cy.login('registrar') - cy.createPin() - cy.reviewForm() - cy.registerForm() - cy.logout() - }) - - it('login as a field agent, send a declaration using minimum input', () => { - cy.login('fieldWorker') - cy.createPin() - cy.goToVitalEventSelection() - cy.enterBirthMinimumInput() - cy.submitDeclaration() - }) - - it('login as registrar to register minimum input declaration', () => { - cy.login('registrar') - cy.createPin() - cy.reviewForm() - cy.registerForm() - cy.logout() - }) - - it('login as a registrar and reject a maximum input declaration', () => { - // Create declaration with an API call - cy.createBirthRegistrationAs('fieldWorker') - - cy.login('registrar') - cy.createPin() - cy.reviewForm() - cy.rejectDeclaration() - cy.logout() - }) - - it('login as a registrar and create declaration with maximum input', () => { - const motherDoB = '1971-01-19' - const fatherDoB = '1961-01-31' - const informantDoB = '1981-01-31' - const informantType = 'Grandfather' - const informantFirstNames = faker.name.firstName() - const informantFamilyName = faker.name.lastName() - const motherFirstNames = faker.name.firstName() - const motherFamilyName = faker.name.lastName() - const fatherFirstNames = faker.name.firstName() - const fatherFamilyName = faker.name.lastName() - - cy.login('registrar') - cy.createPin() - cy.goToVitalEventSelection() - cy.enterBirthMaximumInput({ - informantType, - motherDoB, - motherFirstNames, - motherFamilyName, - fatherDoB, - fatherFirstNames, - fatherFamilyName, - informantFirstNames, - informantFamilyName, - informantDoB - }) - cy.registerForm() - cy.logout() - }) - - it('login as field agent, create birth declaration as "Someone else"', () => { - cy.login('fieldWorker') - cy.createPin() - cy.goToVitalEventSelection() - cy.someoneElseJourney() - cy.submitDeclaration() - cy.logout() - }) - - it('login as registrar & register "Someone else" declaration', () => { - cy.login('registrar') - cy.createPin() - cy.reviewForm() - cy.registerForm() - }) -}) diff --git a/cypress/e2e/certificate.spec.ts b/cypress/e2e/certificate.spec.ts deleted file mode 100644 index 7206ad74c..000000000 --- a/cypress/e2e/certificate.spec.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ - -/// - -context('Certificate Integration Test', () => { - beforeEach(() => { - indexedDB.deleteDatabase('OpenCRVS') - }) - - it('Prints minimum input declaration showing the pdf form', () => { - cy.createBirthRegistrationAs('fieldWorker') - - cy.login('registrar') - cy.createPin() - cy.reviewForm() - cy.registerForm() - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(3000) - cy.get('#navigation_print').click() - cy.downloadFirstDeclaration() - cy.get('#ListItemAction-0-Print').click() - cy.get('#type_INFORMANT_Mother').click() - cy.get('#confirm_form').click() - cy.get('#verifyPositive').click() - - // Verify payment - cy.get('#Continue').click() - cy.get('#confirm-print').click() - cy.get('.react-pdf__message react-pdf__message--no-data').should( - 'not.exist' - ) - - cy.window().then((win) => { - cy.stub(win, 'open') - .as('open') - .returns({ - location: { - href: '' - } - }) - }) - - cy.get('#print-certificate').click() - cy.waitForOutboxToClear() - - cy.logout() - }) -}) diff --git a/cypress/e2e/correct-record.spec.ts b/cypress/e2e/correct-record.spec.ts deleted file mode 100644 index 9b68293fc..000000000 --- a/cypress/e2e/correct-record.spec.ts +++ /dev/null @@ -1,93 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -/// - -import faker from '@faker-js/faker' - -function refreshTrackingIdSearchUntilNameIsFound( - trackingId: string, - firstName: string, - lastName: string -) { - cy.get('#searchText').clear() - cy.get('#searchText').type('E2E REFRESHING') - cy.get('#searchText').type('{enter}') - cy.get('#searchText').clear() - cy.get('#searchText').type(trackingId) - cy.get('#searchText').type('{enter}') - - cy.get('#row_0') - .invoke('text') - .then((text) => { - if (!text.includes(`${firstName} ${lastName}`)) { - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(1000) - refreshTrackingIdSearchUntilNameIsFound(trackingId, firstName, lastName) - } - }) -} - -context('Correct Record Integration Test', () => { - beforeEach(() => { - indexedDB.deleteDatabase('OpenCRVS') - }) - - it("declaration can be found with child's name", () => { - const originalFirstName = faker.name.firstName() - const originalLastName = faker.name.lastName() - - cy.createBirthRegistrationAs('registrar', { - firstName: originalFirstName, - familyName: originalLastName - }) - - cy.login('registrar') - cy.createPin() - cy.get('#navigation_print').click() - cy.downloadFirstDeclaration() - cy.get('#name_0').click() - cy.get('[data-testid=trackingId-value]') - .invoke('text') - .then((trackingId) => { - cy.get('#btn-correct-record').click() - cy.get('#relationship-form-input') - .contains('Another registration agent or field agent') - .click() - cy.get('#confirm_form').click() - cy.get('#btn_change_child_familyNameEng').click() - const newFirstName = faker.name.firstName() - const newLastName = faker.name.lastName() - cy.get('#firstNamesEng').clear() - cy.get('#firstNamesEng').type(newFirstName) - cy.get('#familyNameEng').clear() - cy.get('#familyNameEng').type(newLastName) - cy.get('#back-to-review-button').click() - cy.get('#continue_button').click() - cy.get('#supportDocumentRequiredForCorrection_false').click() - cy.get('#confirm_form').click() - cy.get('#type_CLERICAL_ERROR').click() - cy.get('#confirm_form').click() - cy.get('#correctionFees_NOT_REQUIRED').click() - cy.get('#make_correction').click() - cy.get('#navigation_outbox').should('contain.text', '1') - cy.get('#navigation_outbox').should('not.contain.text', '1') - - cy.get('#searchType').click() - cy.get('#tracking-id').click() - - refreshTrackingIdSearchUntilNameIsFound( - trackingId, - newFirstName, - newLastName - ) - }) - }) -}) diff --git a/cypress/e2e/death.spec.ts b/cypress/e2e/death.spec.ts deleted file mode 100644 index e33ab2fbf..000000000 --- a/cypress/e2e/death.spec.ts +++ /dev/null @@ -1,145 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -/// -import faker from '@faker-js/faker' - -context('Death Integration Test', () => { - beforeEach(() => { - indexedDB.deleteDatabase('OpenCRVS') - }) - - it('Tests registration by registrar using maximum input', () => { - cy.login('registrar') - cy.createPin() - cy.goToVitalEventSelection() - - const deceasedFirstNames = faker.name.firstName() - const deceasedFamilyName = faker.name.lastName() - const deceasedDoB = '1978-03-19' - const deceasedGender = 'Male' - const informantFirstNames = faker.name.firstName() - const informantFamilyName = faker.name.lastName() - const informantDoB = '1985-05-20' - const eventCountry = 'Farajaland' - const eventLocationLevel1 = 'Pualula' - const eventLocationLevel2 = 'Embe' - cy.enterDeathMaximumInput({ - deceasedFirstNames, - deceasedFamilyName, - deceasedDoB, - deceasedGender, - informantFirstNames, - informantFamilyName, - informantDoB, - eventCountry, - eventLocationLevel1, - eventLocationLevel2 - }) - cy.registerDeclaration() - cy.logout() - }) - - it('Login as field agent and tests from declaration to registration using minimum input ', () => { - cy.login('fieldWorker') - cy.createPin() - cy.goToVitalEventSelection() - cy.enterDeathMinimumInput() - cy.submitDeclaration() - cy.logout() - }) - - it('Login as registrar to register minimum input death declaration', () => { - cy.login('registrar') - cy.createPin() - cy.reviewForm() - cy.registerForm() - cy.logout() - }) - - it('Login as field agent and tests from declaration to registration using maximum input', () => { - cy.login('fieldWorker') - cy.createPin() - cy.goToVitalEventSelection() - cy.enterDeathMaximumInput() - cy.submitDeclaration() - cy.logout() - }) - - it('Login as registrar to register maximum input death declaration', () => { - cy.login('registrar') - cy.createPin() - cy.reviewForm() - cy.registerForm() - cy.logout() - }) - - it('Tests from declaration to rejection using minimum input', () => { - const deceasedFirstNames = faker.name.firstName() - const deceasedFamilyName = faker.name.lastName() - const deceasedDoB = '1958-03-19' - const deceasedGender = 'Male' - const informantFirstNames = faker.name.firstName() - const informantFamilyName = faker.name.lastName() - const informantDoB = '1983-03-15' - const eventCountry = 'Farajaland' - const eventLocationLevel1 = 'Pualula' - const eventLocationLevel2 = 'Embe' - - cy.login('fieldWorker') - cy.createPin() - cy.goToVitalEventSelection() - cy.enterDeathMinimumInput({ - deceasedFirstNames, - deceasedFamilyName, - deceasedDoB, - deceasedGender, - informantFirstNames, - informantFamilyName, - informantDoB, - eventCountry, - eventLocationLevel1, - eventLocationLevel2 - }) - cy.submitDeclaration() - cy.logout() - }) - - it('Login As Register & Reject Minimum input Death Declaration', () => { - cy.login('registrar') - cy.createPin() - cy.reviewForm() - cy.rejectDeclaration() - cy.logout() - }) - - it('Tests from declaration to rejection using maximum input', () => { - const deceasedFirstNames = faker.name.firstName() - const deceasedFamilyName = faker.name.lastName() - - cy.login('fieldWorker') - cy.createPin() - cy.goToVitalEventSelection() - cy.enterDeathMaximumInput({ - deceasedFirstNames, - deceasedFamilyName - }) - cy.submitDeclaration() - cy.logout() - }) - - it('Login As Register & Reject Maximum input Death Declaration', () => { - cy.login('registrar') - cy.createPin() - cy.reviewForm() - cy.rejectDeclaration() - cy.logout() - }) -}) diff --git a/cypress/e2e/fixtures/example.json b/cypress/e2e/fixtures/example.json deleted file mode 100644 index da18d9352..000000000 --- a/cypress/e2e/fixtures/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io", - "body": "Fixtures are a great way to mock data for responses to routes" -} \ No newline at end of file diff --git a/cypress/e2e/search.spec.ts b/cypress/e2e/search.spec.ts deleted file mode 100644 index e47fc872e..000000000 --- a/cypress/e2e/search.spec.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -/// - -import faker from '@faker-js/faker' - -context('Search Integration Test', () => { - beforeEach(() => { - indexedDB.deleteDatabase('OpenCRVS') - }) - - it("declaration can be found with child's name", () => { - const firstName = faker.name.firstName() - const familyName = faker.name.lastName() - - cy.createBirthRegistrationAs('fieldWorker', { - firstName, - familyName - }) - - cy.login('registrar') - cy.createPin() - - cy.get('#searchType').click() - cy.get('#name').click() - cy.get('#searchText').type(familyName) - cy.get('#searchText').type('{enter}') - - cy.get(`:contains("${firstName} ${familyName}")`).should('be.visible') - }) -}) diff --git a/cypress/e2e/team.spec.ts b/cypress/e2e/team.spec.ts deleted file mode 100644 index 083caee30..000000000 --- a/cypress/e2e/team.spec.ts +++ /dev/null @@ -1,191 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -/// - -import { faker } from '@faker-js/faker' -import { getRandomNumbers } from '../support/commands' - -context('Team Integration Test', () => { - beforeEach(() => { - indexedDB.deleteDatabase('OpenCRVS') - }) - - let testUserFirstname = faker.name.firstName() - const testUserLastname = faker.name.lastName() - const fullName = `${testUserFirstname} ${testUserLastname}` - - it('Tests Local admin can create a new user', () => { - // LOG IN AS SYSTEM ADMIN - cy.login('sysAdmin') - cy.createPin() - cy.get('#navigation_team').click() - cy.get('#add-user').click({ force: true }) - cy.get('#firstNamesEng').type(testUserFirstname) - cy.get('#familyNameEng').type(testUserLastname) - cy.get('#phoneNumber').type('07' + getRandomNumbers(8)) - cy.get('#email').type(faker.internet.email()) - cy.selectOption('#role', 'Field Agent', 'Field Agent') - cy.get('#device').type('Xiamoi MI 8') - cy.get('#confirm_form').click() - // PREVIEW - cy.get('#submit_user_form').click() - cy.get('#submissionSuccessToast').should('be.visible') // Wait for application to be sync'd - cy.logout() - // LOG IN AS FIELD AGENT - cy.get('#username').type( - `${testUserFirstname[0].toLowerCase()}.${testUserLastname.toLowerCase()}` - ) - cy.get('#password').type('test') - cy.get('#login-mobile-submit').click() - cy.get('#user-setup-start-button', { timeout: 30000 }).click() - cy.get('#NewPassword').type('Test00000000') - cy.get('#ConfirmPassword').type('Test00000000') - cy.get('#Continue').click() - // SECURITY QUESTIONS - cy.get('#question-0').should('exist') - cy.selectOption('#question-0', 'BIRTH_TOWN', 'What city were you born in?') - cy.get('#answer-0').type('Dhaka') - cy.get('#question-1').should('exist') - cy.selectOption( - '#question-1', - 'FAVORITE_MOVIE', - 'What is your favorite movie?' - ) - cy.get('#answer-1').type('Joker') - cy.get('#question-2').should('exist') - cy.selectOption( - '#question-2', - 'FAVORITE_FOOD', - 'What is your favorite food?' - ) - cy.get('#answer-2').type('Burger') - cy.get('#submit-security-question').click() - // PREVIEW - cy.get('#Confirm').click() - // WELCOME MESSAGE - cy.get('#setup-login-button').click() - }) - - it('Tests Local admin can edit an user', () => { - // LOG IN AS SYSTEM ADMIN - cy.login('sysAdmin') - cy.createPin() - cy.get('#navigation_team').click() - cy.clickUserListItemByName(fullName, 'Edit details') - cy.get('#btn_change_firstNamesEng').click() - cy.get('#firstNamesEng').clear() - cy.get('#firstNamesEng').type('Sheikh') - testUserFirstname = 'Sheikh' - cy.get('#confirm_form').click() - - //submit user - cy.get('#submit-edit-user-form').click() - }) - - it('National Admin can deactivate an user', () => { - // LOG IN AS national SYSTEM ADMIN - cy.login('nsysAdmin') - cy.createPin() - cy.get('#navigation_team').click() - cy.get('#location-range-picker-action').click() - cy.get('#locationSearchInput').type('Ibombo') - cy.contains('Ibombo').click() - cy.log('Choose an user') - cy.clickUserListItemByName( - `${testUserFirstname} ${testUserLastname}`, - 'Deactivate' - ) - cy.get('[for="reason_OTHER"]').click() - - cy.get('#comment').type('not a member now') - cy.get('#deactivate-action').click() - cy.get('#userAuditSuccessToast').should('be.visible') - }) - - it('National Admin can Reactivate an user', () => { - // LOG IN AS national SYSTEM ADMIN - cy.login('nsysAdmin') - cy.createPin() - cy.get('#navigation_team').click() - cy.get('#location-range-picker-action').click() - cy.get('#locationSearchInput').type('Ibombo') - cy.contains('Ibombo ').click() - cy.log('Choose an user') - cy.clickUserListItemByName( - `${testUserFirstname} ${testUserLastname}`, - 'Reactivate' - ) - cy.get('[for="reason_OTHER"]').click() - cy.get('#comment').type('a member now') - cy.get('#reactivate-action').click() - cy.get('#userAuditSuccessToast').should('be.visible') - }) - - it('Tests Local Admin can deactivate an user', () => { - // LOG IN AS SYSTEM ADMIN - cy.login('sysAdmin') - cy.createPin() - cy.get('#navigation_team').click() - cy.get('#navigation_team').click() - cy.log('Choose an user') - cy.clickUserListItemByName( - `${testUserFirstname} ${testUserLastname}`, - 'Deactivate' - ) - cy.get('[for="reason_OTHER"]').should('be.visible') - cy.get('[for="reason_OTHER"]').click() - cy.get('#comment').type('not a member now') - cy.get('#deactivate-action').click() - cy.get('#userAuditSuccessToast').should('be.visible') - }) - - it('local admin can reactivate an user', () => { - // LOG IN AS SYSTEM ADMIN - cy.login('sysAdmin') - cy.createPin() - cy.get('#navigation_team').click() - cy.clickUserListItemByName( - `${testUserFirstname} ${testUserLastname}`, - 'Reactivate' - ) - cy.get('[for="reason_OTHER"]').should('be.visible') - cy.get('[for="reason_OTHER"]').click() - cy.get('#comment').type(' a member now') - cy.get('#reactivate-action').click() - cy.get('#userAuditSuccessToast').should('be.visible') - }) - - it('Tests Local admin can send reset password request to a user', () => { - // LOG IN AS SYSTEM ADMIN - cy.login('sysAdmin') - cy.createPin() - cy.get('#navigation_team').click() - cy.clickUserListItemByName( - `${testUserFirstname} ${testUserLastname}`, - 'Reset Password' - ) - cy.get('#reset-password-send').click() - cy.get('#reset_password_success').should('be.visible') - }) - - it('Tests Local admin can send username reminder to a user', () => { - // LOG IN AS SYSTEM ADMIN - cy.login('sysAdmin') - cy.createPin() - cy.get('#navigation_team').click() - cy.clickUserListItemByName( - `${testUserFirstname} ${testUserLastname}`, - 'Send username reminder' - ) - cy.get('#username-reminder-send').click() - cy.get('#username_reminder_success').should('be.visible') - }) -}) diff --git a/cypress/e2e/user.spec.ts b/cypress/e2e/user.spec.ts deleted file mode 100644 index 18fb0ed98..000000000 --- a/cypress/e2e/user.spec.ts +++ /dev/null @@ -1,175 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -/// - -import faker from '@faker-js/faker' -import { getRandomNumbers } from '../support/commands' - -context('User Integration Test', () => { - beforeEach(() => { - indexedDB.deleteDatabase('OpenCRVS') - }) - - const firstName = faker.name.firstName() - const lastName = faker.name.lastName() - const username = `${firstName - .toLowerCase() - .charAt(0)}.${lastName.toLowerCase()}` - const email = faker.internet.email() - - it('creates user as SYSTEM ADMIN and to activate account login for the first time as REGISTRAR', () => { - // LOG IN AS SYSTEM ADMIN - cy.login('sysAdmin') - cy.createPin() - cy.get('#navigation_team').click() - cy.get('#add-user').click() - cy.get('#firstNamesEng').type(firstName) - cy.get('#familyNameEng').type(lastName) - cy.get('#phoneNumber').type('07' + getRandomNumbers(8)) - cy.get('#email').type(email) - //cy.get('#nid').type('199475632') - cy.selectOption('#role', 'Field Agent', 'Field Agent') - cy.get('#device').type('Xiamoi MI 8') - cy.get('#confirm_form').click() - // PREVIEW - cy.get('#submit_user_form').click() - cy.get('#submissionSuccessToast').should('be.visible') // Wait for declaration to be sync'd - // LOG OUT - cy.get('#ProfileMenuToggleButton').click() - cy.get('#ProfileMenuItem1').click() - // LOG IN AS FIELD AGENT - cy.get('#username').type(username) - cy.get('#password').type('test') - cy.get('#login-mobile-submit').click() - cy.get('#user-setup-start-button').click() - cy.get('#NewPassword').type('Test00000000') - cy.get('#ConfirmPassword').type('Test00000000') - cy.get('#Continue').click() - // SECURITY QUESTIONS - cy.get('#question-0').should('exist') - cy.selectOption('#question-0', 'BIRTH_TOWN', 'What city were you born in?') - cy.get('#answer-0').type('Dhaka') - cy.get('#question-1').should('exist') - cy.selectOption( - '#question-1', - 'FAVORITE_MOVIE', - 'What is your favorite movie?' - ) - cy.get('#answer-1').type('Joker') - cy.get('#question-2').should('exist') - cy.selectOption( - '#question-2', - 'FAVORITE_FOOD', - 'What is your favorite food?' - ) - cy.get('#answer-2').type('Burger') - cy.get('#submit-security-question').click() - // PREVIEW - cy.get('#Confirm').click() - // WELCOME MESSAGE - cy.get('#setup-login-button').click() - }) - - it('should reset username successfully', () => { - cy.visit(Cypress.env('CLIENT_URL')) - cy.get('#login-forgot-password').click() - - // Forgotten item form appears - cy.get('#forgotten-item-form').should('be.visible') - cy.get('#usernameOption').click() - cy.get('#continue').click() - - // Phone number verification form appears - cy.get('#phone-or-email-verification-form').should('be.visible') - cy.get('#email-address-input').type(email) - cy.get('#continue').click() - - // Security question form appears - cy.get('#security-question-form').should('be.visible') - cy.get('#content-name').then(($q) => { - const question = $q.text() - let answer: string - if (question === 'What is your favorite food?') { - answer = 'Burger' - } else if (question === 'What is your favorite movie?') { - answer = 'Joker' - } else { - answer = 'Dhaka' - } - - cy.get('#security-answer-input').type(answer) - }) - cy.get('#continue').click() - - // Success page appears - cy.url().should('include', 'success') - cy.get('#login-button').click() - - // Login page appears - cy.get('#login-step-one-box').should('be.visible') - }) - - it('should reset password successfully', () => { - cy.intercept('GET', Cypress.env('COUNTRYCONFIG_URL') + 'content/login').as( - 'loginPage' - ) - cy.visit(Cypress.env('LOGIN_URL')) - - cy.wait('@loginPage') - - cy.get('#login-forgot-password').click() - - // Forgotten item form appears - cy.get('#forgotten-item-form').should('be.visible') - cy.get('#passwordOption').click() - cy.get('#continue').click() - - // Phone number verification form appears - cy.get('#phone-or-email-verification-form').should('be.visible') - - cy.get('#email-address-input').type(email) - cy.get('#continue').click() - - // Recovery code entry form appears - cy.get('#recovery-code-entry-form').should('be.visible') - cy.get('#recovery-code-input').type('000000') - cy.get('#continue').click() - // Security question form appears - cy.get('#security-question-form').should('be.visible') - cy.get('#content-name').then(($q) => { - const question = $q.text() - let answer: string - if (question === 'What is your favorite food?') { - answer = 'Burger' - } else if (question === 'What is your favorite movie?') { - answer = 'Joker' - } else { - answer = 'Dhaka' - } - - cy.get('#security-answer-input').type(answer) - }) - cy.get('#continue').click() - - // Password update form appears - cy.get('#password-update-form').should('be.visible') - cy.get('#NewPassword').type('Asdf12345678') - cy.get('#ConfirmPassword').type('Asdf12345678') - cy.get('#continue-button').click() - - // Success page appears - cy.url().should('include', 'success') - cy.get('#login-button').click() - - // Login page appears - cy.get('#login-step-one-box').should('be.visible') - }) -}) diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json deleted file mode 100644 index 02e425437..000000000 --- a/cypress/fixtures/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io", - "body": "Fixtures are a great way to mock data for responses to routes" -} diff --git a/cypress/global.d.ts b/cypress/global.d.ts deleted file mode 100644 index 060bbee08..000000000 --- a/cypress/global.d.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -/// - -type BirthDeclarationOptions = { - firstName?: string - familyName?: string -} - -interface DeclarationOptions { - registrationStatuses?: string - dateOfEvent?: string - dateOfEventStart?: string - dateOfEventEnd?: string - dateOfRegistration?: string - dateOfRegistrationStart?: string - dateOfRegistrationEnd?: string - declarationLocationId?: string - declarationJurisdictionId?: string - eventCountry?: string - eventLocationId?: string - eventLocationLevel1?: string - eventLocationLevel2?: string - childFirstNames?: string - childLastName?: string - childDoB?: string - childDoBStart?: string - childDoBEnd?: string - childGender?: string - deceasedFirstNames?: string - deceasedFamilyName?: string - deceasedGender?: string - deceasedDoB?: string - deceasedDoBStart?: string - deceasedDoBEnd?: string - motherFirstNames?: string - motherFamilyName?: string - motherDoB?: string - motherDoBStart?: string - motherDoBEnd?: string - fatherFirstNames?: string - fatherFamilyName?: string - fatherDoB?: string - fatherDoBStart?: string - fatherDoBEnd?: string - informantType?: string - informantFirstNames?: string - informantFamilyName?: string - informantDoB?: string - informantDoBStart?: string - informantDoBEnd?: string -} - -type UserType = 'fieldWorker' | 'registrar' | 'sysAdmin' | 'nsysAdmin' - -/* eslint-disable no-unused-vars */ -declare namespace Cypress { - interface Chainable { - login: (userType: UserType) => void - logout: () => void - selectOption: (selector: string, text: string, option: string) => void - createPin: () => void - reviewForm: () => void - clickUserListItemByName: (name: string, actionText: string) => void - registerForm: () => void - submitDeclaration: (incomplete?: boolean) => void - createBirthRegistrationAs: ( - role: UserType, - options?: BirthDeclarationOptions - ) => void - waitForOutboxToClear: () => void - rejectDeclaration: () => void - registerDeclaration: () => void - goToVitalEventSelection: () => void - downloadFirstDeclaration: () => void - enterBirthMaximumInput: (options?: DeclarationOptions) => void - enterBirthMinimumInput: (options?: DeclarationOptions) => void - enterDeathMaximumInput: (options?: DeclarationOptions) => void - enterDeathMinimumInput: (options?: DeclarationOptions) => void - someoneElseJourney: () => void - getReduxStore: () => Cypress.Chainable<{ - getState: () => any - dispatch: (action: any) => void - }> - } -} -/* eslint-enable no-unused-vars */ diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js deleted file mode 100644 index ebc407d95..000000000 --- a/cypress/plugins/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -module.exports = (on, config) => { - // `on` is used to hook into various events Cypress emits - // `config` is the resolved Cypress config -} diff --git a/cypress/support/assets/528KB-random.png b/cypress/support/assets/528KB-random.png deleted file mode 100644 index 02bd69017..000000000 Binary files a/cypress/support/assets/528KB-random.png and /dev/null differ diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts deleted file mode 100644 index 3162fa804..000000000 --- a/cypress/support/commands.ts +++ /dev/null @@ -1,834 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -// @ts-check -/// - -import { faker } from '@faker-js/faker' -import { createBirthDeclarationData } from '../../src/data-generator/declare' -import { - Facility, - generateLocationResource, - Location -} from '../../src/data-generator/location' -import { CyHttpMessages } from 'cypress/types/net-stubbing' - -const users = { - fieldWorker: { - username: 'k.bwalya', - password: 'test' - }, - registrar: { - username: 'k.mweene', - password: 'test' - }, - sysAdmin: { - username: 'e.mayuka', - password: 'test' - }, - nsysAdmin: { - username: 'j.campbell', - password: 'test' - } -} - -function getToken(role: keyof typeof users) { - const user = users[role] - return cy - .request({ - url: `${Cypress.env('AUTH_URL')}authenticate`, - method: 'POST', - body: { - username: user.username, - password: user.password - } - }) - .its('body') - .then((body) => { - cy.request({ - url: `${Cypress.env('AUTH_URL')}verifyCode`, - method: 'POST', - body: { - nonce: body.nonce, - code: '000000' - } - }) - .its('body') - .then((body) => { - return body.token - }) - }) -} - -export function getDateMonthYearFromString(dateString: string): { - dd: string - mm: string - yyyy: string -} { - if (!dateString) { - return - } - const dateSplit = dateString.split('-') - return { - dd: dateSplit[2], - mm: dateSplit[1], - yyyy: dateSplit[0] - } -} - -Cypress.Commands.add('login', (userType) => { - getToken(userType).then((token) => { - cy.visit(`${Cypress.env('CLIENT_URL')}?token=${token}`) - }) - - // Wait for app to load so token can be stored - cy.get('#pin-input') -}) - -Cypress.Commands.add('selectOption', (selector, _text, option) => { - cy.get(`${selector} input`).first().click({ force: true }) - cy.get(`${selector} .react-select__menu`).contains(option).click() -}) - -Cypress.Commands.add('logout', () => { - cy.get('#ProfileMenuToggleButton').click() - cy.get('#ProfileMenuItem1').click() - cy.url().should('include', `${Cypress.env('LOGIN_URL')}`) -}) - -function goToNextFormSection() { - cy.get('#next_section').click() -} - -Cypress.Commands.add('createPin', () => { - // CREATE PIN - cy.get('#pin-input', { timeout: 130000 }).click() - for (let i = 1; i <= 8; i++) { - cy.get('#pin-input').type(`${i % 2}`) - } -}) - -Cypress.Commands.add('waitForOutboxToClear', () => { - cy.get('#navigation_outbox').should('contain.text', '1') - cy.get('#navigation_outbox').should('not.contain.text', '1') -}) - -const hasOperationName = ( - req: CyHttpMessages.IncomingRequest, - operationName: string -) => { - const { body } = req - return 'operationName' in body && body.operationName === operationName -} - -Cypress.Commands.add('submitDeclaration', (incomplete = false) => { - cy.intercept('/graphql', (req) => { - if (hasOperationName(req, 'createBirthRegistration')) { - req.alias = 'createRegistration' - req.on('response', (res) => { - const compositionId = - res.body?.data?.createBirthRegistration?.compositionId - expect(compositionId).to.be.a('string') - }) - } - if (hasOperationName(req, 'createDeathRegistration')) { - req.alias = 'createRegistration' - req.on('response', (res) => { - const compositionId = - res.body?.data?.createDeathRegistration?.compositionId - expect(compositionId).to.be.a('string') - }) - } - }) - if (!incomplete) { - cy.contains('Declaration complete') - } - cy.get('#submit_form').click() - cy.get('#submit_confirm').click() - - cy.log('Waiting for declaration to sync...') - cy.wait('@createRegistration', { - timeout: 60000 - }) -}) - -Cypress.Commands.add('reviewForm', () => { - cy.get('#navigation_readyForReview').click() - cy.downloadFirstDeclaration() - cy.get('#ListItemAction-0-Review').click() -}) - -Cypress.Commands.add('registerForm', () => { - cy.get('#registerDeclarationBtn').click() - cy.get('#submit_confirm').click() - cy.waitForOutboxToClear() -}) - -Cypress.Commands.add('clickUserListItemByName', (name, actionText) => { - cy.xpath( - `//button[contains(text(), "${name}")]/ancestor::tr/descendant::nav/button` - ).click({ force: true }) - - cy.get('[id$=-menuSubMenu]').should('is.visible') - cy.get('[id$=-menuSubMenu]').scrollIntoView() - cy.get('[id$=-menuSubMenu] > li').contains(actionText).click() -}) - -Cypress.Commands.add('rejectDeclaration', () => { - cy.get('#rejectDeclarationBtn').click() - // REJECT MODAL - cy.get('#rejectionCommentForHealthWorker').click() - cy.get('#rejectionCommentForHealthWorker').type( - 'Lack of information, please notify informant about it.' - ) - // PREVIEW - cy.get('#submit_reject_form').click() - cy.log('Waiting for declaration to sync...') - cy.get('#Spinner').should('exist') -}) - -Cypress.Commands.add('registerDeclaration', () => { - cy.get('#registerDeclarationBtn').click() - // MODAL - cy.get('#submit_confirm').click() - cy.log('Waiting for declaration to sync...') - cy.get('#Spinner').should('exist') - cy.get('#navigation_readyForReview').contains('Ready for review') -}) - -Cypress.Commands.add('goToVitalEventSelection', () => { - cy.get('#header_new_event').click() -}) - -Cypress.Commands.add('downloadFirstDeclaration', () => { - cy.get('#ListItemAction-0-icon').first().click() - // If the declaration is already assigned to the user - // then the modal won't show up - cy.get('body').then(($body) => { - if ($body.find('#assignment').length) { - cy.get('#assign').click() - } - }) - cy.log('Waiting for declaration to sync...') - - cy.get('#action-loading-ListItemAction-0').should('not.exist') -}) - -export function getRandomNumbers(stringLength: number) { - let result = '' - for (let i = 0; i < stringLength; i++) { - result += Math.floor(Math.random() * 10) - } - return result -} - -function getLocationWithName(token: string, name: string) { - return cy - .request<{ entry: Array<{ resource: Location }> }>({ - method: 'GET', - url: `${Cypress.env( - 'GATEWAY_URL' - )}location?type=ADMIN_STRUCTURE&_count=0`, - headers: { - Authorization: `Bearer ${token}` - } - }) - .its('body') - .then((body) => { - return body.entry - .map((fhirEntry) => generateLocationResource(fhirEntry.resource)) - .find((location) => location.name === name) - }) -} - -function getRandomFacility(token: string, location: Location) { - return cy - .request<{ entry: Array<{ resource: any }> }>({ - method: 'GET', - url: `${Cypress.env( - 'GATEWAY_URL' - )}location?type=HEALTH_FACILITY&_count=0`, - headers: { - Authorization: `Bearer ${token}` - } - }) - .its('body') - .then((body) => { - return body.entry - .map((fhirEntry) => generateLocationResource(fhirEntry.resource)) - .find( - (facility: Facility) => facility.partOf === `Location/${location.id}` - ) - }) -} - -Cypress.Commands.add('createBirthRegistrationAs', (role, options = {}) => { - return getToken(role).then((token) => { - return getLocationWithName(token, 'Ibombo').then((location) => { - return getRandomFacility(token, location).then(async (facility) => { - cy.readFile('cypress/support/assets/528KB-random.png', 'base64').then( - (file) => { - const details = createBirthDeclarationData( - 'male', - new Date('2018-05-18T13:18:26.240Z'), - new Date(), - location, - facility, - file - ) - - if (options.firstName) { - details.child.name = [ - { - use: 'en', - firstNames: options.firstName || faker.name.firstName(), - familyName: options.familyName || faker.name.lastName() - } - ] - } - cy.intercept('/graphql', (req) => { - if (hasOperationName(req, 'createBirthRegistration')) { - req.on('response', (res) => { - const compositionId = - res.body?.data?.createBirthRegistration?.compositionId - expect(compositionId).to.be.a('string') - }) - } - }) - - cy.request({ - url: Cypress.env('GATEWAY_URL') + 'graphql', - method: 'POST', - headers: { - authorization: `Bearer ${token}` - }, - body: { - operationName: 'createBirthRegistration', - variables: { - details - }, - query: - 'mutation createBirthRegistration($details: BirthRegistrationInput!) {\n createBirthRegistration(details: $details) {\n trackingId\n compositionId\n __typename\n }\n}\n' - } - }).as('createRegistration') - cy.get('@createRegistration').should((response) => { - expect((response as any).status).to.eq(200) - }) - } - ) - }) - }) - }) -}) - -Cypress.Commands.add('enterBirthMaximumInput', (options) => { - const childDoBSplit = getDateMonthYearFromString(options?.childDoB) - const motherDoBSplit = getDateMonthYearFromString(options?.motherDoB) - const fatherDoBSplit = getDateMonthYearFromString(options?.fatherDoB) - const informantDoBSplit = getDateMonthYearFromString(options?.informantDoB) - - // EVENTS - cy.get('#select_birth_event').click() - cy.get('#continue').click() - - // DECLARATION FORM - - // INTRODUCTION - goToNextFormSection() - - // CHILD DETAILS - cy.get('#firstNamesEng').type( - options?.childFirstNames || faker.name.firstName() - ) - cy.get('#familyNameEng').type(options?.childLastName || faker.name.lastName()) - cy.selectOption( - '#gender', - options?.childGender || 'Male', - options?.childGender || 'Male' - ) - cy.get('#childBirthDate-dd').type(childDoBSplit?.dd || '11') - cy.get('#childBirthDate-mm').type(childDoBSplit?.mm || '11') - cy.get('#childBirthDate-yyyy').type(childDoBSplit?.yyyy || '1997') - cy.get('body').then(($body) => { - if ($body.find('#reasonForLateRegistration').length) { - cy.get('#reasonForLateRegistration').type('Late registration') - } - }) - cy.selectOption('#attendantAtBirth', 'Physician', 'Physician') - cy.selectOption('#birthType', 'Single', 'Single') - cy.get('#weightAtBirth').type('1.5') - cy.selectOption('#placeOfBirth', 'Private_Home', 'Residential address') - cy.selectOption('#countryPlaceofbirth', 'Farajaland', 'Farajaland') - cy.selectOption( - '#statePlaceofbirth', - options?.eventLocationLevel1 || 'Pualula', - options?.eventLocationLevel1 || 'Pualula' - ) - cy.selectOption( - '#districtPlaceofbirth', - options?.eventLocationLevel2 || 'Embe', - options?.eventLocationLevel2 || 'Embe' - ) - cy.get('#cityPlaceofbirth').type('My city') - cy.get('#addressLine1UrbanOptionPlaceofbirth').type('My residential area') - cy.get('#addressLine2UrbanOptionPlaceofbirth').type('My street') - cy.get('#addressLine3UrbanOptionPlaceofbirth').type('40') - goToNextFormSection() - - // INFORMANT DETAILS - selectInformant(options?.informantType || 'Grandfather') - cy.get('#registrationPhone').type('07' + getRandomNumbers(8)) - cy.get('#registrationEmail').type('axonishere@gmail.com') - - //INFORMANT DETAILS(IF informant data is available) - if (!['Father', 'Mother'].includes(options?.informantType)) { - cy.get('#firstNamesEng').type(options?.informantFirstNames || 'Alom') - cy.get('#familyNameEng').type(options?.informantFamilyName || 'Mia') - cy.get('#informantBirthDate-dd').type(informantDoBSplit.dd || '23') - cy.get('#informantBirthDate-mm').type(informantDoBSplit.mm || '10') - cy.get('#informantBirthDate-yyyy').type(informantDoBSplit.yyyy || '1975') - cy.selectOption('#nationality', 'Farajaland', 'Farajaland') - cy.selectOption('#informantIdType', 'National ID', 'National ID') - cy.get('#informantNationalId').type(getRandomNumbers(10)) - cy.selectOption('#countryPrimaryInformant', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimaryInformant', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimaryInformant', 'Embe', 'Embe') - } - goToNextFormSection() - // MOTHER DETAILS - cy.selectOption('#motherIdType', 'National ID', 'National ID') - cy.get('#motherNationalId').type(getRandomNumbers(10)) - cy.get('#motherBirthDate-dd').type(motherDoBSplit?.dd || '23') - cy.get('#motherBirthDate-mm').type(motherDoBSplit?.mm || '10') - cy.get('#motherBirthDate-yyyy').type(motherDoBSplit?.yyyy || '1969') - cy.get('#firstNamesEng').type(options?.motherFirstNames || 'Agnes') - cy.get('#familyNameEng').type( - options?.motherFamilyName || faker.name.lastName() - ) - cy.selectOption('#nationality', 'Farajaland', 'Farajaland') - cy.selectOption('#maritalStatus', 'Married', 'Married') - cy.get('#multipleBirth').type('2') - cy.get('#occupation').type('Lawyer') - cy.selectOption('#educationalAttainment', 'PRIMARY_ISCED_1', 'Primary') - cy.selectOption('#countryPrimaryMother', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimaryMother', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimaryMother', 'Embe', 'Embe') - cy.get('#cityPrimaryMother').type('My town') - cy.get('#addressLine1UrbanOptionPrimaryMother').type('My residental area') - - cy.get('#addressLine2UrbanOptionPrimaryMother').type('My street') - cy.get('#addressLine3UrbanOptionPrimaryMother').type('40') - goToNextFormSection() - - // FATHER DETAILS - cy.selectOption('#fatherIdType', 'National ID', 'National ID') - cy.get('#fatherNationalId').type(getRandomNumbers(10)) - cy.get('#fatherBirthDate-dd').type(fatherDoBSplit?.dd || '23') - cy.get('#fatherBirthDate-mm').type(fatherDoBSplit?.mm || '10') - cy.get('#fatherBirthDate-yyyy').type(fatherDoBSplit?.yyyy || '1969') - cy.get('#firstNamesEng').type(options?.fatherFirstNames || 'Jack') - cy.get('#familyNameEng').type(options?.fatherFamilyName || 'Maa') - cy.selectOption('#nationality', 'Farajaland', 'Farajaland') - cy.selectOption('#maritalStatus', 'Married', 'Married') - cy.get('#occupation').type('Lawyer') - cy.selectOption('#educationalAttainment', 'PRIMARY_ISCED_1', 'Primary') - cy.get('#primaryAddressSameAsOtherPrimary_false').click() - cy.selectOption('#countryPrimaryFather', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimaryFather', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimaryFather', 'Embe', 'Embe') - cy.get('#cityPrimaryFather').type('My town') - cy.get('#addressLine1UrbanOptionPrimaryFather').type('My residential area') - cy.get('#addressLine2UrbanOptionPrimaryFather').type('My street') - cy.get('#addressLine2UrbanOptionPrimaryFather').type('40') - goToNextFormSection() - - // DOCUMENTS - goToNextFormSection() -}) - -function selectInformant(informantType: string) { - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(500) - // SELECT INFORMANT - cy.selectOption('#informantType', informantType, informantType) - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(500) -} - -Cypress.Commands.add('enterBirthMinimumInput', () => { - // EVENTS - cy.get('#select_birth_event').click() - cy.get('#continue').click() - - // DECLARATION FORM - - // INTRODUCTION - goToNextFormSection() - - // CHILD DETAILS - cy.get('#firstNamesEng').type(faker.name.firstName()) - cy.get('#familyNameEng').type(faker.name.lastName()) - cy.selectOption('#gender', 'Male', 'Male') - cy.get('#childBirthDate-dd').type( - Math.floor(1 + Math.random() * 27) - .toString() - .padStart(2, '0') - ) - cy.get('#childBirthDate-mm').type( - Math.floor(1 + Math.random() * 12) - .toString() - .padStart(2, '0') - ) - cy.get('#childBirthDate-yyyy').type('2018') - cy.get('body').then(($body) => { - if ($body.find('#reasonForLateRegistration').length) { - cy.get('#reasonForLateRegistration').type('Late registration') - } - }) - cy.selectOption('#placeOfBirth', 'Private_Home', 'Residential address') - cy.selectOption('#countryPlaceofbirth', 'Farajaland', 'Farajaland') - cy.selectOption('#statePlaceofbirth', 'Pualula', 'Pualula') - cy.selectOption('#districtPlaceofbirth', 'Embe', 'Embe') - goToNextFormSection() - - // INFORMANT DETAILS - selectInformant('Mother') - - cy.get('#registrationEmail').type(faker.internet.email()) - goToNextFormSection() - - // MOTHER DETAILS - cy.selectOption('#motherIdType', 'National ID', 'National ID') - cy.get('#motherNationalId').type(getRandomNumbers(10)) - cy.get('#firstNamesEng').type('Rokeya') - cy.get('#familyNameEng').type(faker.name.lastName()) - cy.get('#motherBirthDate-dd').type('23') - cy.get('#motherBirthDate-mm').type('10') - cy.get('#motherBirthDate-yyyy').type('1969') - cy.selectOption('#countryPrimaryMother', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimaryMother', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimaryMother', 'Embe', 'Embe') - goToNextFormSection() - - // FATHER DETAILS - cy.selectOption('#fatherIdType', 'National ID', 'National ID') - cy.get('#fatherNationalId').type(getRandomNumbers(10)) - - cy.get('#firstNamesEng').type('Joe') - cy.get('#familyNameEng').type('Bieden') - cy.get('#fatherBirthDate-dd').type('23') - cy.get('#fatherBirthDate-mm').type('10') - cy.get('#fatherBirthDate-yyyy').type('1969') - goToNextFormSection() - - // DOCUMENTS - goToNextFormSection() -}) - -Cypress.Commands.add('enterDeathMinimumInput', (options) => { - // DECLARATION FORM - cy.get('#select_death_event').click() - cy.get('#continue').click() - // EVENT INFO - goToNextFormSection() - - // DECEASED DETAILS - - cy.selectOption('#deceasedIdType', 'National ID', 'National ID') - cy.get('#deceasedNationalId').type('1234567891') - - cy.get('#firstNamesEng').type(options?.deceasedFirstNames || 'Agnes') - cy.get('#familyNameEng').type(options?.deceasedFamilyName || 'Aktar') - cy.get('#deceasedBirthDate-dd').type('16') - cy.get('#deceasedBirthDate-mm').type('06') - cy.get('#deceasedBirthDate-yyyy').type('1988') - cy.selectOption('#gender', 'Male', 'Male') - cy.selectOption('#countryPrimaryDeceased', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimaryDeceased', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimaryDeceased', 'Embe', 'Embe') - goToNextFormSection() - - // EVENT DETAILS - - cy.get('#deathDate-dd').type('18') - cy.get('#deathDate-mm').type('01') - cy.get('#deathDate-yyyy').type('2022') - cy.get('body').then(($body) => { - if ($body.find('#reasonForLateRegistration').length) { - cy.get('#reasonForLateRegistration').type('Late registration') - } - }) - - // MANNER OF DEATH - cy.selectOption('#mannerOfDeath', '', 'Natural causes') - cy.get('#causeOfDeathEstablished').click() - cy.selectOption('#causeOfDeathMethod', '', 'Physician') - cy.selectOption('#placeOfDeath', '', "Deceased's usual place of residence") - - goToNextFormSection() - - // Informant details - - const informantType = options?.informantType ?? 'Spouse' - - selectInformant(informantType) - - if (informantType !== 'Spouse') { - cy.selectOption('#informantIdType', 'National ID', 'National ID') - cy.get('#informantNationalId').type('9123456781') - cy.get('#informantBirthDate-dd').type('16') - cy.get('#informantBirthDate-mm').type('06') - cy.get('#informantBirthDate-yyyy').type('1988') - cy.get('#firstNamesEng').type('Soumita') - cy.get('#familyNameEng').type('Aktar') - } - cy.get('#registrationEmail').type(faker.internet.email()) - - goToNextFormSection() - - // Spouse section - - cy.selectOption('#spouseIdType', 'National ID', 'National ID') - cy.get('#spouseNationalId').type('9123456781') - cy.get('#spouseBirthDate-dd').type('12') - cy.get('#spouseBirthDate-mm').type('09') - cy.get('#spouseBirthDate-yyyy').type('1995') - cy.get('#firstNamesEng').type('Jannet') - cy.get('#familyNameEng').type('Stacy') - - goToNextFormSection() - - // Supporting documents - - goToNextFormSection() -}) - -Cypress.Commands.add('enterDeathMaximumInput', (options) => { - const deceasedDoBSplit = getDateMonthYearFromString(options?.deceasedDoB) - const informantDoBSplit = getDateMonthYearFromString(options?.informantDoB) - // DECLARATION FORM - cy.get('#select_death_event').click() - cy.get('#continue').click() - // EVENT INFO - goToNextFormSection() - - // DECEASED DETAILS - cy.selectOption('#deceasedIdType', 'National ID', 'National ID') - cy.get('#deceasedNationalId').type('1234567891') - - cy.selectOption('#nationality', 'Farajaland', 'Farajaland') - cy.get('#firstNamesEng').type( - options?.deceasedFirstNames || faker.name.firstName() - ) - cy.get('#familyNameEng').type( - options?.deceasedFamilyName || faker.name.lastName() - ) - cy.get('#deceasedBirthDate-dd').type(deceasedDoBSplit?.dd || '16') - cy.get('#deceasedBirthDate-mm').type(deceasedDoBSplit?.mm || '06') - cy.get('#deceasedBirthDate-yyyy').type(deceasedDoBSplit?.yyyy || '1971') - - cy.selectOption( - '#gender', - options?.deceasedGender || 'Male', - options?.deceasedGender || 'Male' - ) - cy.selectOption('#countryPrimaryDeceased', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimaryDeceased', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimaryDeceased', 'Embe', 'Embe') - cy.get('#cityPrimaryDeceased').type('My town') - cy.get('#addressLine1UrbanOptionPrimaryDeceased').type('My residential area') - cy.get('#addressLine2UrbanOptionPrimaryDeceased').type('My street') - cy.get('#addressLine3UrbanOptionPrimaryDeceased').type('40') - cy.get('#postalCodePrimaryDeceased').type('9000') - goToNextFormSection() - - // EVENT DETAILS - cy.get('#deathDate-dd').type('18') - cy.get('#deathDate-mm').type('01') - cy.get('#deathDate-yyyy').type('2019') - cy.get('body').then(($body) => { - if ($body.find('#reasonForLateRegistration').length) { - cy.get('#reasonForLateRegistration').type('Late registration') - } - }) - - // CAUSE OF DEATH DETAILS - cy.selectOption('#mannerOfDeath', '', 'Homicide') - cy.get('#causeOfDeathEstablished').click() - cy.selectOption('#causeOfDeathMethod', '', 'Physician') - cy.selectOption('#placeOfDeath', '', 'Other') - - cy.selectOption('#countryPlaceofdeath', 'Farajaland', 'Farajaland') - cy.selectOption( - '#statePlaceofdeath', - options?.eventLocationLevel1 || 'Pualula', - options?.eventLocationLevel1 || 'Pualula' - ) - cy.selectOption( - '#districtPlaceofdeath', - options?.eventLocationLevel2 || 'Embe', - options?.eventLocationLevel2 || 'Embe' - ) - cy.get('#cityPlaceofdeath').type('My city') - cy.get('#addressLine1UrbanOptionPlaceofdeath').type('My residential area') - cy.get('#addressLine2UrbanOptionPlaceofdeath').type('My street') - cy.get('#addressLine3UrbanOptionPlaceofdeath').type('40') - cy.get('#postalCodePlaceofdeath').type('9000') - - goToNextFormSection() - - // INFORMANT DETAILS - - const informantType = options?.informantType ?? 'Spouse' - selectInformant(informantType) - - if (informantType !== 'Spouse') { - cy.get('#firstNamesEng').type(options?.informantFirstNames || 'Alom') - cy.get('#familyNameEng').type(options?.informantFamilyName || 'Mia') - cy.get('#informantBirthDate-dd').type(informantDoBSplit?.dd || '23') - cy.get('#informantBirthDate-mm').type(informantDoBSplit?.mm || '10') - cy.get('#informantBirthDate-yyyy').type(informantDoBSplit?.yyyy || '1975') - cy.selectOption('#nationality', 'Farajaland', 'Farajaland') - cy.selectOption('#informantIdType', 'National ID', 'National ID') - cy.get('#informantNationalId').type(getRandomNumbers(10)) - cy.get('#primaryAddressSameAsOtherPrimary_false').click() - cy.selectOption('#countryPrimaryInformant', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimaryInformant', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimaryInformant', 'Embe', 'Embe') - cy.get('#cityPrimaryInformant').type('My town') - cy.get('#postalCodePrimaryInformant').type('9000') - } - cy.get('#registrationPhone').type('07' + getRandomNumbers(8)) - cy.get('#registrationEmail').type('axonishere@gmail.com') - goToNextFormSection() - - // Spouse section - cy.get('#firstNamesEng').type(options?.informantFirstNames || 'Alom') - cy.get('#familyNameEng').type(options?.informantFamilyName || 'Mia') - cy.get('#spouseBirthDate-dd').type(informantDoBSplit?.dd || '23') - cy.get('#spouseBirthDate-mm').type(informantDoBSplit?.mm || '10') - cy.get('#spouseBirthDate-yyyy').type(informantDoBSplit?.yyyy || '1975') - cy.selectOption('#nationality', 'Farajaland', 'Farajaland') - cy.selectOption('#spouseIdType', 'National ID', 'National ID') - cy.get('#spouseNationalId').type(getRandomNumbers(10)) - cy.get('#primaryAddressSameAsOtherPrimary_false').click() - cy.selectOption('#countryPrimarySpouse', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimarySpouse', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimarySpouse', 'Embe', 'Embe') - cy.get('#cityPrimarySpouse').type('My town') - cy.get('#postalCodePrimarySpouse').type('9000') - - goToNextFormSection() - - // Supporting documents - - goToNextFormSection() -}) - -Cypress.Commands.add('someoneElseJourney', () => { - // EVENTS - cy.get('#select_vital_event_view').should('be.visible') - cy.get('#select_birth_event').click() - cy.get('#continue').click() - - // EVENT INFO - goToNextFormSection() - - // DECLARATION FORM - // CHILD DETAILS - cy.get('#firstNamesEng').type('Aniq') - cy.get('#familyNameEng').type('Hoque') - cy.selectOption('#gender', 'Male', 'Male') - cy.get('#childBirthDate-dd').type('23') - cy.get('#childBirthDate-mm').type('10') - cy.get('#childBirthDate-yyyy').type('1994') - cy.get('body').then(($body) => { - if ($body.find('#reasonForLateRegistration').length) { - cy.get('#reasonForLateRegistration').type('Late registration') - } - }) - cy.selectOption('#attendantAtBirth', 'Physician', 'Physician') - cy.selectOption('#birthType', 'Single', 'Single') - cy.get('#weightAtBirth').type('1.5') - cy.selectOption('#placeOfBirth', 'Private_Home', 'Residential address') - cy.selectOption('#countryPlaceofbirth', 'Farajaland', 'Farajaland') - cy.selectOption('#statePlaceofbirth', 'Pualula', 'Pualula') - cy.selectOption('#districtPlaceofbirth', 'Embe', 'Embe') - cy.get('#cityPlaceofbirth').type('My city') - cy.get('#addressLine1UrbanOptionPlaceofbirth').type('My residential area') - cy.get('#addressLine2UrbanOptionPlaceofbirth').type('My street') - cy.get('#addressLine3UrbanOptionPlaceofbirth').type('40') - goToNextFormSection() - - // INFORMANT'S DETAILS - selectInformant('Someone else') - cy.get('#otherInformantType').type('Someone else') - cy.get('#registrationPhone').type('07' + getRandomNumbers(8)) - cy.get('#registrationEmail').type('axonishere@gmail.com') - - cy.get('#firstNamesEng').type('Alom') - cy.get('#familyNameEng').type('Mia') - cy.get('#informantBirthDate-dd').type('23') - cy.get('#informantBirthDate-mm').type('10') - cy.get('#informantBirthDate-yyyy').type('1975') - cy.selectOption('#nationality', 'Farajaland', 'Farajaland') - cy.selectOption('#informantIdType', 'National ID', 'National ID') - cy.get('#informantNationalId').type('1234567111') - cy.selectOption('#countryPrimaryInformant', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimaryInformant', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimaryInformant', 'Embe', 'Embe') - goToNextFormSection() - - // MOTHER DETAILS - cy.selectOption('#nationality', 'Farajaland', 'Farajaland') - cy.selectOption('#motherIdType', 'National ID', 'National ID') - cy.get('#motherNationalId').type(getRandomNumbers(10)) - cy.get('#motherBirthDate-dd').type('23') - cy.get('#motherBirthDate-mm').type('10') - cy.get('#motherBirthDate-yyyy').type('1975') - cy.get('#firstNamesEng').type('Agnes') - cy.get('#familyNameEng').type('Aktar') - cy.selectOption('#countryPrimaryMother', 'Farajaland', 'Farajaland') - cy.selectOption('#statePrimaryMother', 'Pualula', 'Pualula') - cy.selectOption('#districtPrimaryMother', 'Embe', 'Embe') - goToNextFormSection() - - // FATHER DETAILS - cy.selectOption('#fatherIdType', 'National ID', 'National ID') - cy.get('#fatherNationalId').type(getRandomNumbers(10)) - cy.get('#firstNamesEng').type('Karim') - cy.get('#familyNameEng').type('Sheikh') - cy.get('#fatherBirthDate-dd').type('10') - cy.get('#fatherBirthDate-mm').type('10') - cy.get('#fatherBirthDate-yyyy').type('1971') - goToNextFormSection() - - // DOCUMENTS - goToNextFormSection() -}) - -Cypress.Commands.add('getReduxStore', () => { - return cy.window().then((win) => { - const container = Object.entries(win.document.getElementById('root')).find( - ([x, y]) => x.includes('reactContainer') - )[1] - - if (!container) { - throw new Error('React container not found') - } - - const store = container.memoizedState?.element?.props?.store - if (!store) { - throw new Error('Redux store not found') - } - - return store - }) -}) diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts deleted file mode 100644 index 1562c9826..000000000 --- a/cypress/support/e2e.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands' -import './fetch_to_xhr' -import 'cypress-xpath' -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/cypress/support/fetch_to_xhr.ts b/cypress/support/fetch_to_xhr.ts deleted file mode 100644 index 1451aa771..000000000 --- a/cypress/support/fetch_to_xhr.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - * - * OpenCRVS is also distributed under the terms of the Civil Registration - * & Healthcare Disclaimer located at http://opencrvs.org/license. - * - * Copyright (C) The OpenCRVS Authors located at https://github.com/opencrvs/opencrvs-core/blob/master/AUTHORS. - */ -function fetchToXhr() { - let polyfill - - before(() => { - cy.readFile('node_modules/whatwg-fetch/dist/fetch.umd.js').then( - (contents) => (polyfill = contents) - ) - Cypress.on('window:before:load', (win) => { - delete win.fetch - win.eval(polyfill) - }) - }) -} - -fetchToXhr() diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json deleted file mode 100644 index eb7e4c354..000000000 --- a/cypress/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": ["es5", "dom", "es2022"], - "types": ["cypress", "cypress-xpath"] - }, - "include": ["**/*.ts", "../src/**/*.ts"] -} diff --git a/package.json b/package.json index f2d3430a9..26f85bc11 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ "scripts": { "dev": "yarn start", "e2e": "yarn playwright test --ui", - "e2e:cypress": "CYPRESS_COUNTRYCONFIG_URL=https://countryconfig.farajaland-dev.opencrvs.org/ CYPRESS_GATEWAY_URL=https://gateway.farajaland-dev.opencrvs.org/ CYPRESS_LOGIN_URL=https://login.farajaland-dev.opencrvs.org/ CYPRESS_CLIENT_URL=https://register.farajaland-dev.opencrvs.org/ CYPRESS_AUTH_URL=https://auth.farajaland-dev.opencrvs.org/ cypress open", "e2e:generate-types": "graphql-codegen --config e2e/codegen.yml && yarn prettier --write e2e/gateway.ts", "test:watch": "jest --watch", "open:cov": "yarn test && opener coverage/index.html", @@ -58,10 +57,8 @@ "@types/hapi__h2o2": "8.3.3", "@typescript-eslint/eslint-plugin": "^5.60.1", "@typescript-eslint/parser": "^5.60.1", - "cypress-xpath": "^2.0.1", "eslint": "^8.43.0", "eslint-config-prettier": "^8.8.0", - "eslint-plugin-cypress": "^2.15.1", "eslint-plugin-prettier": "^4.2.1", "husky": "1.0.0-rc.13", "inquirer": "^9.2.12", @@ -103,7 +100,6 @@ "cross-env": "^6.0.3", "csv-stringify": "^6.4.6", "csv2json": "^1.4.2", - "cypress": "13.5.0", "date-fns": "^2.28.0", "dotenv": "^16.4.5", "esbuild": "^0.18.9", @@ -135,7 +131,7 @@ "zod": "^3.17.3" }, "lint-staged": { - "{src,e2e,cypress}/**/*.{ts,graphql}": [ + "{src,e2e}/**/*.{ts,graphql}": [ "eslint --fix", "prettier --write", "git add" @@ -176,8 +172,7 @@ "testEnvironment": "node", "testPathIgnorePatterns": [ "/node_modules/", - "e2e", - "cypress" + "e2e" ] }, "resolutions": { diff --git a/tsconfig.json b/tsconfig.json index 7714f1965..4932f7cb8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,12 +19,11 @@ "noImplicitAny": true, "skipLibCheck": true, "strictNullChecks": true, - "types": ["fhir", "geojson"] + "types": ["jest", "fhir", "geojson"] }, "include": ["src/**/*.ts", "infrastructure/environments/**/*.ts", "typings"], "exclude": [ "node_modules", - "cypress", "build", "scripts", "acceptance-tests", diff --git a/yarn.lock b/yarn.lock index 19dba3b0c..3dd1d1b2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -789,11 +789,6 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -801,38 +796,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@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/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" - "@esbuild/android-arm64@0.18.9": version "0.18.9" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.9.tgz#9cad38830ea5fa714c196bb283c0958f49b64bfb" @@ -2748,13 +2711,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== -"@types/node@^18.17.5": - version "18.18.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.9.tgz#5527ea1832db3bba8eb8023ce8497b7d3f299592" - integrity sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ== - dependencies: - undici-types "~5.26.4" - "@types/node@^20.9.0": version "20.11.5" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.5.tgz#be10c622ca7fcaa3cf226cf80166abc31389d86e" @@ -2831,16 +2787,6 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== -"@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/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -2884,13 +2830,6 @@ dependencies: "@types/yargs-parser" "*" -"@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" "*" - "@typescript-eslint/eslint-plugin@^5.60.1": version "5.60.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.1.tgz#81382d6ecb92b8dda70e91f9035611cb2fecd1c3" @@ -3096,11 +3035,6 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -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@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -3186,11 +3120,6 @@ app-module-path@^2.2.0: resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== -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== - arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -3238,7 +3167,7 @@ asap@~2.0.3: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -asn1@^0.2.6, asn1@~0.2.3: +asn1@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== @@ -3254,11 +3183,6 @@ asn1js@^3.0.1, asn1js@^3.0.5: pvutils "^1.1.3" tslib "^2.4.0" -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -3269,21 +3193,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -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@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -3299,16 +3213,6 @@ auto-bind@~4.0.0: resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - babel-jest@^26.6.3: version "26.6.3" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" @@ -3431,7 +3335,7 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: +bcrypt-pbkdf@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== @@ -3457,16 +3361,6 @@ bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.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== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3540,11 +3434,6 @@ buffer-alloc@^1.1.0: buffer-alloc-unsafe "^1.1.0" buffer-fill "^1.0.0" -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-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" @@ -3560,7 +3449,7 @@ buffer-from@1.x, buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -3603,12 +3492,7 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== - -call-bind@^1.0.0, call-bind@^1.0.2: +call-bind@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== @@ -3680,11 +3564,6 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - chalk@*: version "5.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.1.2.tgz#d957f370038b75ac572471e83be4c5ca9f8e8c45" @@ -3767,11 +3646,6 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -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.5.2: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -3797,11 +3671,6 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" - integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== - cjs-module-lexer@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" @@ -3846,15 +3715,6 @@ cli-spinners@^2.9.1: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== -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@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" @@ -3961,7 +3821,7 @@ colorette@^2.0.7: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -3973,12 +3833,7 @@ commander@^2.14.1, commander@^2.9.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -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.2, common-tags@^1.8.0: +common-tags@1.8.2: 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== @@ -4017,11 +3872,6 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -4181,67 +4031,6 @@ currency-symbol-map@~2: resolved "https://registry.yarnpkg.com/currency-symbol-map/-/currency-symbol-map-2.2.0.tgz#2b3c1872ff1ac2ce595d8273e58e1fff0272aea2" integrity sha512-fPZJ3jqM68+AAgqQ7UaGbgHL/39rp6l7GyqS2k1HJPu/kpS8D07x/+Uup6a9tCUKIlOFcRrDCf1qxSt8jnI5BA== -cypress-xpath@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/cypress-xpath/-/cypress-xpath-2.0.1.tgz#052db5d18b4f5c03434cba7dcf1fe0b69d292308" - integrity sha512-qMagjvinBppNJdMAkucWESP9aP4rDTs7c96m0vwMuZTVx3NqP2E3z/hkoRf8Ea9soL8yTvUuuyF1cg/Sb1Yhbg== - -cypress@13.5.0: - version "13.5.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.5.0.tgz#8c149074186130972f08b2cdce6ded41f014bacd" - integrity sha512-oh6U7h9w8wwHfzNDJQ6wVcAeXu31DlIYlNOBvfd6U4CcB8oe4akawQmH+QJVOMZlM42eBoCne015+svVqdwdRQ== - dependencies: - "@cypress/request" "^3.0.0" - "@cypress/xvfb" "^1.2.4" - "@types/node" "^18.17.5" - "@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" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -4276,11 +4065,6 @@ dateformat@^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.6" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb" - integrity sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ== - debounce@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" @@ -4479,14 +4263,6 @@ duplexify@^4.1.2: readable-stream "^3.1.1" stream-shift "^1.0.2" -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - ecdsa-sig-formatter@1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" @@ -4521,13 +4297,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enquirer@^2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -4605,13 +4374,6 @@ eslint-config-prettier@^8.8.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== -eslint-plugin-cypress@^2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz#336afa7e8e27451afaf65aa359c9509e0a4f3a7b" - integrity sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w== - dependencies: - globals "^13.20.0" - eslint-plugin-prettier@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" @@ -4737,11 +4499,6 @@ event-to-promise@^0.8.0: resolved "https://registry.yarnpkg.com/event-to-promise/-/event-to-promise-0.8.0.tgz#4b84f11772b6f25f7752fc74d971531ac6f5b626" integrity sha512-/J+h6lLXMhNrahk5XipFHjSOlTv4Zl+D5rXomuhT3MIUxkP7beRxazgCQ6ERYJTFPPM8WC8dbHIeQc1VaKrOxw== -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.4: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -4764,21 +4521,6 @@ exec-sh@^0.3.2: resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== -execa@4.1.0, execa@^4.0.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@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01" @@ -4805,12 +4547,20 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -executable@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" - integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: - pify "^2.2.0" + 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" exit@^0.1.2: version "0.1.2" @@ -4857,11 +4607,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - external-editor@^3.0.3, external-editor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -4890,27 +4635,6 @@ extract-files@^11.0.0: resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== -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" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - fast-copy@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/fast-copy/-/fast-copy-3.0.2.tgz#59c68f59ccbcac82050ba992e0d5c389097c9d35" @@ -5008,13 +4732,6 @@ fbjs@^3.0.0: setimmediate "^1.0.5" ua-parser-js "^0.7.30" -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@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -5123,11 +4840,6 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - form-data-encoder@^1.7.1: version "1.7.2" resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" @@ -5151,15 +4863,6 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - formdata-node@^4.3.1: version "4.4.1" resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" @@ -5175,16 +4878,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -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.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -5227,7 +4920,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== @@ -5264,7 +4957,7 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.0.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== @@ -5276,20 +4969,6 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== -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" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -5316,19 +4995,12 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== - 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" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0, globals@^13.20.0: +globals@^13.19.0: version "13.24.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== @@ -5359,11 +5031,6 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" @@ -5606,15 +5273,6 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -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 "^2.0.2" - sshpk "^1.14.1" - 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" @@ -5728,11 +5386,6 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - inquirer@^8.0.0: version "8.2.5" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" @@ -5845,13 +5498,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -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.11.0: version "2.12.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" @@ -5954,14 +5600,6 @@ is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -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" @@ -5998,7 +5636,7 @@ is-observable@^1.1.0: dependencies: symbol-observable "^1.1.0" -is-path-inside@^3.0.2, is-path-inside@^3.0.3: +is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -6052,7 +5690,7 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== @@ -6125,11 +5763,6 @@ isomorphic-ws@5.0.0, isomorphic-ws@^5.0.0: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -6644,11 +6277,6 @@ js-yaml@^4.0.0, js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - jsdom@^16.4.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -6707,11 +6335,6 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -6724,7 +6347,7 @@ json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -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 sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== @@ -6749,15 +6372,6 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - jsonify@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" @@ -6779,16 +6393,6 @@ jsonwebtoken@^9.0.0: ms "^2.1.1" semver "^7.5.4" -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" - jwa@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" @@ -6852,11 +6456,6 @@ kleur@^4.1.5: resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== -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== - leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -6957,20 +6556,6 @@ listr-verbose-renderer@^0.5.0: date-fns "^1.27.2" figures "^2.0.0" -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" - listr2@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" @@ -7057,7 +6642,7 @@ lodash.merge@^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.0.0, lodash.once@^4.1.1: +lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== @@ -7234,7 +6819,7 @@ mime-db@1.52.0, mime-db@1.x.x: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@~2.1.19: +mime-types@^2.1.12: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -7540,11 +7125,6 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -7644,11 +7224,6 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -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-each-series@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" @@ -7858,16 +7433,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -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" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -7878,11 +7443,6 @@ 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.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" @@ -8013,11 +7573,6 @@ prettier@^2.8.8: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -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== - pretty-format@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" @@ -8081,11 +7636,6 @@ prompts@^2.0.1, prompts@^2.4.2: kleur "^3.0.3" sisteransi "^1.0.5" -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== - pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -8161,13 +7711,6 @@ pvutils@^1.1.3: resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== -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" - querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -8351,13 +7894,6 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== -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: - throttleit "^1.0.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -8497,14 +8033,14 @@ rxjs@^7.2.0, rxjs@^7.8.1: dependencies: tslib "^2.1.0" -rxjs@^7.5.1, rxjs@^7.5.5: +rxjs@^7.5.5: version "7.5.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== dependencies: tslib "^2.1.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -8526,7 +8062,7 @@ safe-stable-stringify@^2.1.0: resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -8585,7 +8121,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.x, semver@^7.3.2, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: +semver@7.x, semver@^7.3.2, semver@^7.3.7, semver@^7.5.4: 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== @@ -8686,15 +8222,6 @@ short-uid@^0.1.0: resolved "https://registry.yarnpkg.com/short-uid/-/short-uid-0.1.0.tgz#069d94d044fc498afb0ea7bb22c5e634979434c8" integrity sha512-FcrUzrOPh7gZcJ9piR15qs3bTSOyZWzpPFeKYK37A4Mr20wKnwskWFdYRj+mk8AWSO1wsflM+HgyeNTbgBecPg== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" @@ -8914,21 +8441,6 @@ ssh2@^1.14.0: cpu-features "~0.0.9" nan "^2.18.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== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - stack-utils@^2.0.2: version "2.0.6" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" @@ -9111,13 +8623,6 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.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== - dependencies: - has-flag "^4.0.0" - supports-hyperlinks@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" @@ -9182,11 +8687,6 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -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@^2.0.2, through2@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -9214,13 +8714,6 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -9280,16 +8773,6 @@ tough-cookie@^4.0.0: universalify "^0.2.0" url-parse "^1.5.3" -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.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - tr46@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" @@ -9384,14 +8867,7 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: +tweetnacl@^0.14.3: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== @@ -9504,11 +8980,6 @@ universalify@^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" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - unixify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" @@ -9524,11 +8995,6 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -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-browserslist-db@^1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" @@ -9591,7 +9057,7 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.0, uuid@^8.3.2: +uuid@^8.3.0: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -9628,15 +9094,6 @@ value-or-promise@^1.0.12: resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -9931,14 +9388,6 @@ yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" -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"