diff --git a/.eslintrc b/.eslintrc index b58298566f..7c79c291fc 100755 --- a/.eslintrc +++ b/.eslintrc @@ -15,6 +15,7 @@ "$": true, "jQuery": true, "browser": true, + "cy": true, "ga": true }, "rules": { diff --git a/README.md b/README.md index 79d49be421..7128ab7981 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # eQ Census Survey Runner v3 -[![Build Status](https://travis-ci.org/ONSdigital/eq-survey-runner.svg?branch=v3)](https://travis-ci.org/ONSdigital/eq-survey-runner) -[![codecov](https://codecov.io/gh/ONSdigital/eq-survey-runner/branch/v3/graph/badge.svg)](https://codecov.io/gh/ONSdigital/eq-survey-runner/branch/v3) +[![Build Status](https://travis-ci.org/ONSdigital/eq-survey-runner.svg?branch=v3)](https://travis-ci.org/ONSdigital/eq-survey-runner) +[![codecov](https://codecov.io/gh/ONSdigital/eq-survey-runner/branch/v3/graph/badge.svg)](https://codecov.io/gh/ONSdigital/eq-survey-runner/branch/v3) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/a2bc191a96e546b99a6d1c33b9b0ed62)](https://app.codacy.com/project/MebinAbraham/eq-survey-runner/dashboard?branchId=10869033) -This version of runner looks at optimising the service to accommodate the Census. -There are a number of major changes we need make to survey runner to develop the features required for the Census. -These changes are a combination of fixing technical debt we've built up and adding new features. -While these changes would be possible to implement in ***v2***, having to develop them in such a way to be compatible with existing data and rolling deploys will add an un-acceptable overhead. +This version of runner looks at optimising the service to accommodate the Census. +There are a number of major changes we need make to survey runner to develop the features required for the Census. +These changes are a combination of fixing technical debt we've built up and adding new features. +While these changes would be possible to implement in ***v2***, having to develop them in such a way to be compatible with existing data and rolling deploys will add an un-acceptable overhead. The changes we're aware of now: @@ -21,9 +21,9 @@ The changes we're aware of now: - relationships - hub and spoke navigation - look up patterns (address, occupation etc) - -*Existing ***v2*** schemas will be easily migrate-able to the new format when ***v3*** is stable. -This will be clearly documented and there is the possibility of scripts being provided to migrate schemas. + +*Existing ***v2*** schemas will be easily migrate-able to the new format when ***v3*** is stable. +This will be clearly documented and there is the possibility of scripts being provided to migrate schemas. Once we know more about the implementation a decision will be made whether answer store migrations will be written for compatibility with existing data.* --- @@ -156,6 +156,7 @@ Command | Task `yarn test` | Runs the unit tests through Karma and the functional tests through a local Selenium instance. `yarn test_unit` | Watches the unit tests via Karma. `yarn test_functional` | Runs the functional tests through ChimpJS (requires app running on localhost:5000 and generated pages). +`yarn test_census` | Runs the census functional tests through Cypress (requires app running on localhost:5000 and generated pages). `yarn generate_pages` | Generates the functional test pages. `yarn lint` | Lints the JS, reporting errors/warnings. `yarn format` | Format the json schemas. @@ -211,6 +212,10 @@ To run the tests against a remote deployment you will need to specify the enviro `EQ_FUNCTIONAL_TEST_ENV=https://staging-new-surveys.dev.eq.ons.digital/ yarn test_functional` +To run the census functional tests within the cypress UI: + +./node_modules/cypress/bin/cypress open + ### Deployment with elastic beanstalk You will need to install the EB CLI tools using PIP. diff --git a/cypress.json b/cypress.json new file mode 100644 index 0000000000..e5c2724a55 --- /dev/null +++ b/cypress.json @@ -0,0 +1,7 @@ +{ + "fixturesFolder": false, + "pluginsFile": false, + "supportFile": false, + "integrationFolder": "tests/functional/cypress/spec/", + "baseUrl": "http://localhost:5000" +} diff --git a/data/en/census_household.json b/data/en/census_household.json index 1b3ceceb23..0fa60dbd92 100644 --- a/data/en/census_household.json +++ b/data/en/census_household.json @@ -5946,7 +5946,7 @@ "type": "TextField" }, { - "id": "employer-adress-answer-postcode", + "id": "employer-address-answer-postcode", "label": "Postcode", "mandatory": false, "type": "TextField" @@ -6002,7 +6002,7 @@ "type": "TextField" }, { - "id": "no-business-name-employer-adress-answer-postcode", + "id": "no-business-name-employer-address-answer-postcode", "label": "Postcode", "mandatory": false, "type": "TextField" diff --git a/package.json b/package.json index 7061b2a800..c1fad3eac4 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,9 @@ "test_unit": "gulp test:scripts:unit:watch", "test_unit_no_watch": "gulp test:scripts:unit", "test_functional": "chimp tests/functional/chimp.js", - "generate_pages": "rm -rf ./tests/functional/generated_pages && cd tests/functional && pipenv run ./generate_pages.py ../../data/en/ ./generated_pages -r '../../base_pages' -p 'test_' && cd ../..", + "test_census": "node tests/functional/cypress.js", + "cypress": "cypress open", + "generate_pages": "rm -rf ./tests/functional/generated_pages && cd tests/functional && pipenv run ./generate_pages.py ../../data/en/ ./generated_pages -r '../../base_pages' && cd ../..", "a11y": "gulp test:a11ym", "format": "gulp format:json" }, @@ -42,6 +44,7 @@ "chai-as-promised": "^7.1.1", "chimp": "^0.50.0", "cssnano": "^3.10.0", + "cypress": "^3.1.5", "del": "^3.0.0", "eslint": "^4.3.0", "eslint-config-standard": "^10.2.1", diff --git a/scripts/run_tests_functional.sh b/scripts/run_tests_functional.sh index 0c89acf17c..417228abef 100755 --- a/scripts/run_tests_functional.sh +++ b/scripts/run_tests_functional.sh @@ -33,3 +33,8 @@ echo "Running front end functional tests" yarn test_functional display_result $? 5 "Front end functional tests" + +echo "Running census functional tests" +yarn test_census + +display_result $? 6 "Front end census functional tests" diff --git a/tests/functional/cypress.js b/tests/functional/cypress.js new file mode 100644 index 0000000000..0a3c192822 --- /dev/null +++ b/tests/functional/cypress.js @@ -0,0 +1,12 @@ +const cypress = require('cypress'); + +cypress.run({ + headed: process.env.EQ_RUN_FUNCTIONAL_TESTS_HEADLESS ? false : true, + config: { + baseUrl: process.env.EQ_FUNCTIONAL_TEST_ENV || "http://localhost:5000", + viewportWidth: 1280, + viewportHeight: 1080, + video: false, + integrationFolder: "tests/functional/cypress/spec/" + } +}); diff --git a/tests/functional/cypress/helpers/census.js b/tests/functional/cypress/helpers/census.js new file mode 100644 index 0000000000..7de1d7eb71 --- /dev/null +++ b/tests/functional/cypress/helpers/census.js @@ -0,0 +1,22 @@ +const _ = require('lodash'); +const generateToken = require('../../jwt_helper'); + +const getUri = uri => cy.config.baseUrl + uri; + +const getRandomString = length => _.sampleSize('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', length).join(''); + +const openCensusQuestionnaire = (schema, sexualIdentity = false, region = 'GB-ENG', language = 'en') => { + return cy + .then(() => { + return generateToken(schema, {userId: getRandomString(10), collectionId: getRandomString(10), periodId: '2011', periodStr: null, regionCode: region, languageCode: language, sexualIdentity: sexualIdentity, country: 'E', displayAddress: '68 Abingdon Road, Goathill'}); + }) + .then(function(token) { + return cy.visit('/session?token=' + token); + }); +}; + +module.exports = { + getUri, + getRandomString, + openCensusQuestionnaire +}; diff --git a/tests/functional/cypress/spec/census-household.spec.js b/tests/functional/cypress/spec/census-household.spec.js new file mode 100644 index 0000000000..aa9cf41b37 --- /dev/null +++ b/tests/functional/cypress/spec/census-household.spec.js @@ -0,0 +1,431 @@ +const helpers = require('../helpers/census'); + +const ThankYou = require('../../base_pages/thank-you.page.js'); + +const WhoLivesHereBlock = require('../../generated_pages/census_household/who-lives-here-block.page'); +const PermanentOrFamilyHome = require('../../generated_pages/census_household/permanent-or-family-home.page'); +const HouseholdComposition = require('../../generated_pages/census_household/household-composition.page'); +const EveryoneAtAddressConfirmation = require('../../generated_pages/census_household/everyone-at-address-confirmation.page'); +const OvernightVisitors = require('../../generated_pages/census_household/overnight-visitors.page'); +const WhoLivesHereCompleted = require('../../generated_pages/census_household/who-lives-here-completed.page'); +const HouseholdAndAccommodationBlock = require('../../generated_pages/census_household/household-and-accommodation-block.page'); +const TypeOfAccommodation = require('../../generated_pages/census_household/type-of-accommodation.page'); +const TypeOfHouse = require('../../generated_pages/census_household/type-of-house.page'); +const SelfContainedAccommodation = require('../../generated_pages/census_household/self-contained-accommodation.page'); +const NumberOfBedrooms = require('../../generated_pages/census_household/number-of-bedrooms.page'); +const CentralHeating = require('../../generated_pages/census_household/central-heating.page'); +const OwnOrRent = require('../../generated_pages/census_household/own-or-rent.page'); +const NumberOfVehicles = require('../../generated_pages/census_household/number-of-vehicles.page'); +const HouseholdAndAccommodationCompleted = require('../../generated_pages/census_household/household-and-accommodation-completed.page'); +const HouseholdMemberBegin = require('../../generated_pages/census_household/household-member-begin-section.page'); +const HouseholdRelationships = require('../../generated_pages/census_household/household-relationships.page'); +const Sex = require('../../generated_pages/census_household/sex.page'); +const DateOfBirth = require('../../generated_pages/census_household/date-of-birth.page'); +const ConfirmDob = require('../../generated_pages/census_household/confirm-dob.page'); +const ConfirmDobProxy = require('../../generated_pages/census_household/confirm-dob-proxy.page'); +const MarriageType = require('../../generated_pages/census_household/marriage-type.page'); +const CurrentMarriageStatus = require('../../generated_pages/census_household/current-marriage-status.page'); +const AnotherAddress = require('../../generated_pages/census_household/another-address.page'); +const InEducationOver16 = require('../../generated_pages/census_household/in-education-over16.page'); +const CountryOfBirth = require('../../generated_pages/census_household/country-of-birth.page'); +const Carer = require('../../generated_pages/census_household/carer.page'); +const CarerProxy = require('../../generated_pages/census_household/carer-proxy.page'); +const NationalIdentity = require('../../generated_pages/census_household/national-identity.page'); +const EthnicGroup = require('../../generated_pages/census_household/ethnic-group.page'); +const AsianEthnicGroup = require('../../generated_pages/census_household/asian-ethnic-group.page'); +const WhiteEthnicGroup = require('../../generated_pages/census_household/white-ethnic-group.page'); +const Language = require('../../generated_pages/census_household/language.page'); +const Religion = require('../../generated_pages/census_household/religion.page'); +const PastUsualAddress = require('../../generated_pages/census_household/past-usual-address.page'); +const Passports = require('../../generated_pages/census_household/passports.page'); +const Disability = require('../../generated_pages/census_household/disability.page'); +const Qualifications = require('../../generated_pages/census_household/qualifications.page'); +const EmploymentStatus = require('../../generated_pages/census_household/employment-status.page'); +const JobTitle = require('../../generated_pages/census_household/job-title.page'); +const JobDescription = require('../../generated_pages/census_household/job-description.page'); +const EmployersBusiness = require('../../generated_pages/census_household/employers-business.page'); +const MainJobType = require('../../generated_pages/census_household/main-job-type.page'); +const BusinessName = require('../../generated_pages/census_household/business-name.page'); +const BusinessNameProxy = require('../../generated_pages/census_household/business-name-proxy.page'); +const HoursWorkedPage = require('../../generated_pages/census_household/hours-worked.page.js'); +const HouseholdMemberCompleted = require('../../generated_pages/census_household/household-member-completed.page'); +const VisitorBegin = require('../../generated_pages/census_household/visitor-begin-section.page'); +const VisitorName = require('../../generated_pages/census_household/visitor-name.page'); +const VisitorSex = require('../../generated_pages/census_household/visitor-sex.page'); +const VisitorDateOfBirth = require('../../generated_pages/census_household/visitor-date-of-birth.page'); +const VisitorUkResident = require('../../generated_pages/census_household/visitor-uk-resident.page'); +const VisitorAddress = require('../../generated_pages/census_household/visitor-address.page'); +const VisitorCompleted = require('../../generated_pages/census_household/visitor-completed.page'); +const VisitorsCompleted = require('../../generated_pages/census_household/visitors-completed.page'); +const Proxy = require('../../generated_pages/census_household/proxy.page'); +const Health = require('../../generated_pages/census_household/health.page'); +const SexualIdentity = require('../../generated_pages/census_household/sexual-identity.page'); +const SexualIdentityProxy = require('../../generated_pages/census_household/sexual-identity-proxy.page'); +const BirthGender = require('../../generated_pages/census_household/birth-gender.page'); +const ArmedForces = require('../../generated_pages/census_household/armed-forces.page'); +const Apprenticeship = require('../../generated_pages/census_household/apprenticeship.page'); +const Degree = require('../../generated_pages/census_household/degree.page'); +const MainEmploymentBlock = require('../../generated_pages/census_household/main-employment-block.page'); +const ProfessionalQuals = require('../../generated_pages/census_household/professional-quals.page'); +const Supervise = require('../../generated_pages/census_household/supervise.page'); +const WorkTravel = require('../../generated_pages/census_household/work-travel.page'); +const EmployerAddress = require('../../generated_pages/census_household/employer-address.page'); +const EmployerTypeOfAddress = require('../../generated_pages/census_household/employer-type-of-address.page'); +const Confirmation = require('../../generated_pages/census_household/confirmation.page'); +const UnderstandWelsh = require('../../generated_pages/census_household/understand-welsh.page'); + + +function completeHouseholdAndAccommodation() { + return cy + .get(HouseholdAndAccommodationBlock.submit()).click() + .get(TypeOfAccommodation.wholeHouseOrBungalow()).click() + .get(TypeOfAccommodation.submit()).click() + .get(TypeOfHouse.semiDetached()).click() + .get(TypeOfHouse.submit()).click() + .get(SelfContainedAccommodation.yes()).click() + .get(SelfContainedAccommodation.submit()).click() + .get(NumberOfBedrooms.answer()).type(3) + .get(NumberOfBedrooms.submit()).click() + .get(CentralHeating.mainsGas()).click() + .get(CentralHeating.submit()).click() + .get(OwnOrRent.ownsOutright()).click() + .get(OwnOrRent.submit()).click() + .get(NumberOfVehicles.answer2()).click() + .get(NumberOfVehicles.submit()).click() + .get(HouseholdAndAccommodationCompleted.submit()).click(); +} + +function completeVisitorSection() { + return cy + .get(VisitorBegin.submit()).click() + .get(VisitorName.visitorFirstName()).type('Jane') + .get(VisitorName.visitorLastName()).type('Doe') + .get(VisitorName.submit()).click() + .get(VisitorSex.female()).click() + .get(VisitorSex.submit()).click() + .get(VisitorDateOfBirth.day()).type(10) + .get(VisitorDateOfBirth.month()).select("7") + .get(VisitorDateOfBirth.year()).type(1990) + .get(VisitorDateOfBirth.submit()).click() + .get(VisitorUkResident.yesUsuallyLivesInTheUnitedKingdom()).click() + .get(VisitorUkResident.submit()).click() + .get(VisitorAddress.building()).type(50) + .get(VisitorAddress.street()).type('My Road') + .get(VisitorAddress.city()).type('Newport') + .get(VisitorAddress.postcode()).type('AB123CD') + .get(VisitorAddress.submit()).click() + .get(VisitorCompleted.submit()).click(); +} + +context('Census Household', () => { + + it('Given a census household survey with welsh region, When i enter valid data, Then the survey should submit successfully', function () { + + return helpers.openCensusQuestionnaire('census_household.json', false, 'GB-WLS') + .then(() => { + return cy + .get(WhoLivesHereBlock.submit()).click() + .get(PermanentOrFamilyHome.yes()).click() + .get(PermanentOrFamilyHome.submit()).click() + .get(HouseholdComposition.addPerson()).click() + .get(HouseholdComposition.firstName()).type('John') + .get(HouseholdComposition.lastName()).type('Smith') + .get(HouseholdComposition.firstName('_1')).type('Jane') + .get(HouseholdComposition.lastName('_1')).type('Smith') + .get(HouseholdComposition.submit()).click() + .get(EveryoneAtAddressConfirmation.yes()).click() + .get(EveryoneAtAddressConfirmation.submit()).click() + .get(OvernightVisitors.answer()).type(1) + .get(OvernightVisitors.submit()).click() + .get(HouseholdRelationships.answer('0')).select('Husband or wife') + .get(HouseholdRelationships.submit()).click() + .get(WhoLivesHereCompleted.submit()).click(); + }) + .then(completeHouseholdAndAccommodation) + .then(() => { + return cy + .get(HouseholdMemberBegin.submit()).click() + .get(Proxy.questionText()).should((questionText) => { + expect(questionText).to.contain('John Smith'); + }) + .get(Proxy.yesIAm()).click() + .get(Proxy.submit()).click() + .get(Sex.male()).click() + .get(Sex.submit()).click() + .get(DateOfBirth.day()).type(2) + .get(DateOfBirth.month()).select("4") + .get(DateOfBirth.year()).type(1980) + .get(DateOfBirth.submit()).click() + .get(ConfirmDob.yes()).click() + .get(ConfirmDob.submit()).click() + .get(MarriageType.married()).click() + .get(MarriageType.submit()).click() + .get(CurrentMarriageStatus.someoneOfTheOppositeSex()).click() + .get(CurrentMarriageStatus.submit()).click() + .get(AnotherAddress.no()).click() + .get(AnotherAddress.submit()).click() + .get(InEducationOver16.no()).click() + .get(InEducationOver16.submit()).click() + .get(CountryOfBirth.walesWales()).click() + .get(CountryOfBirth.submit()).click() + .get(Health.good()).click() + .get(Health.submit()).click() + .get(Disability.no()).click() + .get(Disability.submit()).click() + .get(Carer.no()).click() + .get(Carer.submit()).click() + .get(NationalIdentity.walesWelsh()).click() + .get(NationalIdentity.submit()).click() + .get(EthnicGroup.walesAsianOrAsianBritish()).click() + .get(EthnicGroup.submit()).click() + .get(AsianEthnicGroup.indian()).click() + .get(AsianEthnicGroup.submit()).click() + .get(SexualIdentity.straightOrHeterosexual()).click() + .get(SexualIdentity.submit()).click() + .get(BirthGender.yes()).click() + .get(BirthGender.submit()).click() + .get(UnderstandWelsh.understandSpokenWelsh()).click() + .get(UnderstandWelsh.submit()).click() + .get(Language.welshEnglishOrWelsh()).click() + .get(Language.submit()).click() + .get(Religion.noReligion()).click() + .get(Religion.submit()).click() + .get(PastUsualAddress.householdaddress()).click() + .get(PastUsualAddress.submit()).click() + .get(Passports.unitedKingdom()).click() + .get(Passports.submit()).click() + .get(ArmedForces.no()).click() + .get(ArmedForces.submit()).click() + .get(Qualifications.submit()).click() + .get(Apprenticeship.no()).click() + .get(Apprenticeship.submit()).click() + .get(Degree.yes()).click() + .get(Degree.submit()).click() + .get(EmploymentStatus.workingAsAnEmployee()).click() + .get(EmploymentStatus.submit()).click() + .get(MainEmploymentBlock.submit()).click() + .get(MainJobType.employee()).click() + .get(MainJobType.submit()).click() + .get(BusinessName.answer()).type('ONS') + .get(BusinessName.submit()).click() + .get(JobTitle.answer()).type('Dev') + .get(JobTitle.submit()).click() + .get(JobDescription.answer()).type('writing lots of code') + .get(JobDescription.submit()).click() + .get(EmployersBusiness.questionText()).should((questionText) => { + expect(questionText).to.contain('ONS'); + }) + .get(EmployersBusiness.answer()).type('something statistical') + .get(EmployersBusiness.submit()).click() + .get(ProfessionalQuals.no()).click() + .get(ProfessionalQuals.submit()).click() + .get(Supervise.no()).click() + .get(Supervise.submit()).click() + .get(HoursWorkedPage.answer31To48Hours()).click() + .get(HoursWorkedPage.submit()).click() + .get(WorkTravel.train()).click() + .get(WorkTravel.submit()).click() + .get(EmployerTypeOfAddress.atAWorkplace()).click() + .get(EmployerTypeOfAddress.submit()).click() + .get(EmployerAddress.building()).type('Government Buildings') + .get(EmployerAddress.street()).type('Cardiff Road') + .get(EmployerAddress.city()).type('Newport') + .get(EmployerAddress.postcode()).type('NP10 8XG') + .get(EmployerAddress.submit()).click() + .get(HouseholdMemberCompleted.interstitialHeader()).should((header) => { + expect(header).to.contain('John Smith'); + }) + .get(HouseholdMemberCompleted.submit()).click(); + }) + .then(() => { + return cy + .get(HouseholdMemberBegin.submit()).click() + .get(Proxy.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(Proxy.proxy()).click() + .get(Proxy.submit()).click() + .get(Sex.questionText()).contains('Jane Smith') + .get(Sex.female()).click() + .get(Sex.submit()).click() + .get(DateOfBirth.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(DateOfBirth.day()).type(12) + .get(DateOfBirth.month()).select("9") + .get(DateOfBirth.year()).type(1979) + .get(DateOfBirth.submit()).click() + .get(ConfirmDobProxy.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(ConfirmDobProxy.yes()).click() + .get(ConfirmDobProxy.submit()).click() + .get(MarriageType.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(MarriageType.married()).click() + .get(MarriageType.submit()).click() + .get(CurrentMarriageStatus.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(CurrentMarriageStatus.someoneOfTheOppositeSex()).click() + .get(CurrentMarriageStatus.submit()).click() + .get(AnotherAddress.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(AnotherAddress.no()).click() + .get(AnotherAddress.submit()).click() + .get(InEducationOver16.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(InEducationOver16.no()).click() + .get(InEducationOver16.submit()).click() + .get(CountryOfBirth.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(CountryOfBirth.walesWales()).click() + .get(CountryOfBirth.submit()).click() + .get(Health.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(Health.good()).click() + .get(Health.submit()).click() + .get(Disability.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(Disability.no()).click() + .get(Disability.submit()).click() + .get(CarerProxy.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(CarerProxy.no()).click() + .get(CarerProxy.submit()).click() + .get(NationalIdentity.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(NationalIdentity.walesWelsh()).click() + .get(NationalIdentity.submit()).click() + .get(EthnicGroup.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(EthnicGroup.walesWhite()).click() + .get(EthnicGroup.submit()).click() + .get(WhiteEthnicGroup.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(WhiteEthnicGroup.walesWelshEnglishScottishNorthernIrishOrBritish()).click() + .get(WhiteEthnicGroup.submit()).click() + .get(SexualIdentityProxy.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(SexualIdentityProxy.straightOrHeterosexual()).click() + .get(SexualIdentityProxy.submit()).click() + .get(BirthGender.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(BirthGender.yes()).click() + .get(BirthGender.submit()).click() + .get(UnderstandWelsh.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(UnderstandWelsh.understandSpokenWelsh()).click() + .get(UnderstandWelsh.submit()).click() + .get(Language.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(Language.welshEnglishOrWelsh()).click() + .get(Language.submit()).click() + .get(Religion.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(Religion.noReligion()).click() + .get(Religion.submit()).click() + .get(PastUsualAddress.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(PastUsualAddress.householdaddress()).click() + .get(PastUsualAddress.submit()).click() + .get(Passports.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(Passports.unitedKingdom()).click() + .get(Passports.submit()).click() + .get(ArmedForces.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(ArmedForces.no()).click() + .get(ArmedForces.submit()).click() + .get(Qualifications.submit()).click() + .get(Apprenticeship.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(Apprenticeship.no()).click() + .get(Apprenticeship.submit()).click() + .get(Degree.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(Degree.yes()).click() + .get(Degree.submit()).click() + .get(EmploymentStatus.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(EmploymentStatus.workingAsAnEmployee()).click() + .get(EmploymentStatus.submit()).click() + .get(MainEmploymentBlock.submit()).click() + .get(MainJobType.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(MainJobType.employee()).click() + .get(MainJobType.submit()).click() + .get(BusinessNameProxy.answer()).type('ONS') + .get(BusinessNameProxy.submit()).click() + .get(JobTitle.answer()).type('Dev') + .get(JobTitle.submit()).click() + .get(JobDescription.answer()).type('writing lots of code') + .get(JobDescription.submit()).click() + .get(EmployersBusiness.questionText()).contains('ONS') + .get(EmployersBusiness.answer()).type('something statistical') + .get(EmployersBusiness.submit()).click() + .get(ProfessionalQuals.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(ProfessionalQuals.no()).click() + .get(ProfessionalQuals.submit()).click() + .get(Supervise.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(Supervise.no()).click() + .get(Supervise.submit()).click() + .get(HoursWorkedPage.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(HoursWorkedPage.answer31To48Hours()).click() + .get(HoursWorkedPage.submit()).click() + .get(WorkTravel.questionText()).should((questionText) => { + expect(questionText).to.contain('Jane Smith'); + }) + .get(WorkTravel.drivingACarOrVan()).click() + .get(WorkTravel.submit()).click() + .get(EmployerTypeOfAddress.atAWorkplace()).click() + .get(EmployerTypeOfAddress.submit()).click() + .get(EmployerAddress.building()).type('Government Buildings') + .get(EmployerAddress.street()).type('Cardiff Road') + .get(EmployerAddress.city()).type('Newport') + .get(EmployerAddress.postcode()).type('NP10 8XG') + .get(EmployerAddress.submit()).click() + .get(HouseholdMemberCompleted.interstitialHeader()).should((header) => { + expect(header).to.contain('Jane Smith'); + }) + .get(HouseholdMemberCompleted.submit()).click(); + }) + .then(completeVisitorSection) + .then(() => { + return cy + .get(VisitorsCompleted.submit()).click() + .get(Confirmation.submit()).click() + .location().should((loc) => { + expect(loc.pathname).to.include(ThankYou.pageName); + }); + }); + }); +}); diff --git a/tests/functional/generate_pages.py b/tests/functional/generate_pages.py index 2d02947aaf..14c5a88c75 100755 --- a/tests/functional/generate_pages.py +++ b/tests/functional/generate_pages.py @@ -28,10 +28,6 @@ help='The relative path from a page file to the directory containing the base/parent page classes. ' 'Defaults to ".."') -parser.add_argument('-p', '--test_schema_prefix', default='test_', - help='The prefix of schemas which should be used to generate pages in the passed in directory') - - SPEC_PAGE_HEADER = "const helpers = require('../helpers');\n\n" SPEC_PAGE_IMPORT = Template(r"""const ${pageName}Page = require('../generated_pages/${pageDir}/${pageFile}'); @@ -500,7 +496,6 @@ def process_schema(in_schema, out_dir, spec_file, require_path='..'): os.makedirs(args.OUT_DIRECTORY, exist_ok=True) - if template_spec_file: os.makedirs(os.path.dirname(template_spec_file), exist_ok=True) with open(template_spec_file, 'w') as template_spec: @@ -515,7 +510,7 @@ def process_schema(in_schema, out_dir, spec_file, require_path='..'): else: if os.path.isdir(args.SCHEMA): for root, dirs, files in os.walk(args.SCHEMA): - for file in [os.path.join(root, file) for file in files if file.startswith(args.test_schema_prefix)]: + for file in [os.path.join(root, file) for file in files]: output_dir = os.path.join(args.OUT_DIRECTORY, os.path.basename(file).split('.')[0].replace('test_', '')) if not os.path.exists(output_dir): os.makedirs(output_dir) diff --git a/tests/functional/helpers.js b/tests/functional/helpers.js index e97664120e..3a24d4198f 100644 --- a/tests/functional/helpers.js +++ b/tests/functional/helpers.js @@ -10,7 +10,7 @@ const getUri = uri => browser.options.baseUrl + uri; const getRandomString = length => _.sampleSize('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', length).join(''); const openCensusQuestionnaire = (schema, sexualIdentity = false, region = 'GB-ENG', language = 'en') => { - return generateToken(schema, getRandomString(10), getRandomString(10), '2011', null, region, language, sexualIdentity) + return generateToken(schema, {userId: getRandomString(10), collectionId: getRandomString(10), periodId: '2011', periodStr: null, regionCode: region, languageCode: language, sexualIdentity: sexualIdentity, country: 'E', displayAddress: '68 Abingdon Road, Goathill'}) .then(function(token) { return browser.url('/session?token=' + token); }); @@ -23,7 +23,7 @@ const startCensusQuestionnaire = (schema, sexualIdentity = false, region = 'GB-E }; function openQuestionnaire(schema, { userId = getRandomString(10), collectionId = getRandomString(10), periodId = '201605', periodStr = 'May 2016', region = 'GB-ENG', language = 'en', sexualIdentity = false, includeLogoutUrl = false } = {}) { - return generateToken(schema, userId, collectionId, periodId, periodStr, region, language, sexualIdentity, includeLogoutUrl) + return generateToken(schema, {userId, collectionId, periodId: periodId, periodStr: periodStr, regionCode: region, languageCode: language, sexualIdentity: sexualIdentity, includeLogoutUrl: includeLogoutUrl}) .then(function(token) { return browser.url('/session?token=' + token); }); diff --git a/tests/functional/jwt_helper.js b/tests/functional/jwt_helper.js index 02ecd59045..063c85938e 100644 --- a/tests/functional/jwt_helper.js +++ b/tests/functional/jwt_helper.js @@ -1,5 +1,4 @@ const KJUR = require('jsrsasign'); -const fs = require('fs'); const uuid = require('uuid/v1'); const JSONWebKey = require('json-web-key'); const jose = require('node-jose'); @@ -8,15 +7,47 @@ const JWE = jose.JWE; const crypto = require('crypto'); -const signingKey = './tests/functional/sdc-user-authentication-signing-rrm-private-key.pem'; -const encryptionKey = './tests/functional/sdc-user-authentication-encryption-sr-public-key.pem'; +const signingKeyString = '-----BEGIN RSA PRIVATE KEY-----\n' + + 'MIIEogIBAAKCAQEAvZzMraB96Wd1zfHS3vW3z//Nkqz+9HfwViNje2Y5L6m3K/7r\n' + + 'aA0kUsWD1f6X7/LIJfkCEctCEj9q19+cX30h0pi6IOu92MlIwdH/L6CTuzYnG4PA\n' + + 'CKT8FZonLw0NYBqh8p4vWS8xtNHNjTWua/FFTlxdtYnEb9HbUZkg7dXAtnikozlE\n' + + '/ZZSponq7K00h3Uh9goxQIavcK1QI8pw5V+T8V8Ue7k98W8LpbYQWm7FPOZayu1E\n' + + 'oJWUZefdOlYAdeVbDS4tjrVF+3za+VX3q73zJEfyLEM0zKrkQQ796gfYpkzDYwJv\n' + + 'kiW7fb2Yh1teNHpFR5tozzMwUxkREl/TQ4U1kwIDAQABAoIBAHXiS1pTIpT/Dr24\n' + + 'b/rQV7RIfF2JkoUZIGHdZJcuqbUZVdlThrXNHd0cEWf0/i9fCNKa6o93iB9iMCIA\n' + + 'Uu8HFAUjkOyww/pIwiRGU9ofglltRIkVs0lskZE4os3c1oj+Zds6P4O6FLQvkBUP\n' + + '394aRZV/VX9tJKTEmw8zHcbgEw0eBpiY/EMELcSmZYk7lhB80Y+idTrZcHoV4AZo\n' + + 'DhQwyF0R63mMphuOV4PwaCdCYZKgd/tr2uUHglLpYbQag3iEzoDfxdFcxnRkBdOi\n' + + 'a/wcNo0JRlMsxXmtJ+HrZar+6ObUx5SgLGz7dQnKvP/ZgenTk0yyohwikh2b2KOS\n' + + 'M3M2oUkCgYEA9+olFPDZxtM1fwmlXcymBtokbiki/BJQGJ1/5RMqvdsSeq8icl/i\n' + + 'Qk5AoNbWEcsAxeBftb1IfnxJsRthRyp0NX5HOSsBFiIfdSF225nmBpktwPjJmvZZ\n' + + 'G2MQCVqw9Y40Cia0LZnRo8417ahSfVf8/IoggnAwkswJ3fkktt/FlW8CgYEAw8vi\n' + + '7hWxehiUaZO4RO7GuV47q4wPZ/nQvcimyjJuXBkC/gQay+TcA7CdXQTgxI2scMIk\n' + + 'UPas36mle1vbAp+GfWcNxDxhmSnQvUke4/wHF6sNZ3BwKoTRqJqFcFUHm+2uo6A4\n' + + 'HCBtXM83Z1nDYkHUrfng99U+zgGDz2XKPko9OB0CgYAtVVOSkLhB8z1FDa5/iHyT\n' + + 'pDAlNMCA95hN5/8LFIYsUXL/nCbgY0gsd8K5po9ekZCCnpTh1sr61h9jk24mZUz6\n' + + 'uyyq94IrWfIGqSfi4DF/42LKdrPm8kU5DNRR4ZOaU3aQpKMt84KyQXL7ElyDLyPD\n' + + 'yj5Hm9xF+6mSPYzJJAItYQKBgHzUZXbzf7ZfK2fwVSAlt68BJDvnzP62Z95Hqgbp\n' + + 'hjDThXPbvBXYcGkt1fYzIPZPeOxe6nZv/qGOcEGou4X9nOogpMdC09qprTqw/q/N\n' + + 'w9vUI3SaW/jPuzeqZH7Mx1Ajhh8uC/fquK7eMe2Dbi0b2XOeB08atrLyhk3ZEMsL\n' + + '2+IFAoGAUbmo0idyszcarBPPsiEFQY2y1yzHMajs8OkjUzOVLzdiMkr36LF4ojgw\n' + + 'UCM9sT0g1i+eTfTcuOEr3dAxcXld8Ffs6INSIplvRMWH1m7wgXMRpPCy74OuxlDQ\n' + + 'xwPp/1IVvrMqVgnyS9ezAeE0p9u8zUdZdwHz1UAggwbtHR6IbIA=\n' + + '-----END RSA PRIVATE KEY-----\n'; -const signingKeyString = fs.readFileSync(signingKey, 'utf8'); // get private key -const encryptionKeyString = fs.readFileSync(encryptionKey, 'utf8'); // get public key +const encryptionKeyString = '-----BEGIN PUBLIC KEY-----\n' + + 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt8LZnIhuOdL/BC029GOa\n' + + 'JkVUAqgp2PcmbFr2Qwhf/514DUUQ9sKJ1rvwvbmmW2zE8JRtdY3ey0RXGtMn5UZH\n' + + 's8NReHzMxvsmHN4VuaGEnFmPwO821Tkvg0LpKsLkotcw793FD/fut44N2lhpTSW2\n' + + 'Sc82uG0p9A+Kud8HCIaWaluosghk9rbMGYDzZQk8cA91GtKJRmIOED4PorB/dexD\n' + + 'f37qhuWNQgzyNyTti1DTDUIWyzQQJp926vLbkOip6Fc2R13hOFNETe68Rrw/h3hX\n' + + 'EFS17uPFZHsxvm9PFXX9KZMS25ohqbNh97I94LL4o4wybl6LaE6lJEHiD6docD0B\n' + + '6wIDAQAB\n' + + '-----END PUBLIC KEY-----\n'; const schemaRegEx = /^([a-z0-9]+)_(\w+)\.json/; -module.exports = function generateToken(schema, userId, collectionId, periodId = '201605', periodStr = 'May 2016', regionCode = 'GB-ENG', languageCode = 'en', sexualIdentity = false, includeLogoutUrl = true) { +module.exports = function generateToken(schema, { userId, collectionId, periodId = '201605', periodStr = 'May 2016', regionCode = 'GB-ENG', languageCode = 'en', sexualIdentity = false, includeLogoutUrl = true, country = '', locality = '', townName = '', postcode = '', displayAddress = '' }) { let schemaParts = schemaRegEx.exec(schema); // Header @@ -46,6 +77,11 @@ module.exports = function generateToken(schema, userId, collectionId, periodId = employment_date: '2016-06-10', form_type: schemaParts[2], return_by: '2017-03-01', + country: country, + locality: locality, + town_name: townName, + postcode: postcode, + display_address: displayAddress, region_code: regionCode, language_code: languageCode, sexual_identity: sexualIdentity, diff --git a/tests/functional/sdc-user-authentication-encryption-sr-public-key.pem b/tests/functional/sdc-user-authentication-encryption-sr-public-key.pem deleted file mode 100644 index 61c24784ea..0000000000 --- a/tests/functional/sdc-user-authentication-encryption-sr-public-key.pem +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt8LZnIhuOdL/BC029GOa -JkVUAqgp2PcmbFr2Qwhf/514DUUQ9sKJ1rvwvbmmW2zE8JRtdY3ey0RXGtMn5UZH -s8NReHzMxvsmHN4VuaGEnFmPwO821Tkvg0LpKsLkotcw793FD/fut44N2lhpTSW2 -Sc82uG0p9A+Kud8HCIaWaluosghk9rbMGYDzZQk8cA91GtKJRmIOED4PorB/dexD -f37qhuWNQgzyNyTti1DTDUIWyzQQJp926vLbkOip6Fc2R13hOFNETe68Rrw/h3hX -EFS17uPFZHsxvm9PFXX9KZMS25ohqbNh97I94LL4o4wybl6LaE6lJEHiD6docD0B -6wIDAQAB ------END PUBLIC KEY----- diff --git a/tests/functional/sdc-user-authentication-signing-rrm-private-key.pem b/tests/functional/sdc-user-authentication-signing-rrm-private-key.pem deleted file mode 100644 index ac84cbde8a..0000000000 --- a/tests/functional/sdc-user-authentication-signing-rrm-private-key.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEogIBAAKCAQEAvZzMraB96Wd1zfHS3vW3z//Nkqz+9HfwViNje2Y5L6m3K/7r -aA0kUsWD1f6X7/LIJfkCEctCEj9q19+cX30h0pi6IOu92MlIwdH/L6CTuzYnG4PA -CKT8FZonLw0NYBqh8p4vWS8xtNHNjTWua/FFTlxdtYnEb9HbUZkg7dXAtnikozlE -/ZZSponq7K00h3Uh9goxQIavcK1QI8pw5V+T8V8Ue7k98W8LpbYQWm7FPOZayu1E -oJWUZefdOlYAdeVbDS4tjrVF+3za+VX3q73zJEfyLEM0zKrkQQ796gfYpkzDYwJv -kiW7fb2Yh1teNHpFR5tozzMwUxkREl/TQ4U1kwIDAQABAoIBAHXiS1pTIpT/Dr24 -b/rQV7RIfF2JkoUZIGHdZJcuqbUZVdlThrXNHd0cEWf0/i9fCNKa6o93iB9iMCIA -Uu8HFAUjkOyww/pIwiRGU9ofglltRIkVs0lskZE4os3c1oj+Zds6P4O6FLQvkBUP -394aRZV/VX9tJKTEmw8zHcbgEw0eBpiY/EMELcSmZYk7lhB80Y+idTrZcHoV4AZo -DhQwyF0R63mMphuOV4PwaCdCYZKgd/tr2uUHglLpYbQag3iEzoDfxdFcxnRkBdOi -a/wcNo0JRlMsxXmtJ+HrZar+6ObUx5SgLGz7dQnKvP/ZgenTk0yyohwikh2b2KOS -M3M2oUkCgYEA9+olFPDZxtM1fwmlXcymBtokbiki/BJQGJ1/5RMqvdsSeq8icl/i -Qk5AoNbWEcsAxeBftb1IfnxJsRthRyp0NX5HOSsBFiIfdSF225nmBpktwPjJmvZZ -G2MQCVqw9Y40Cia0LZnRo8417ahSfVf8/IoggnAwkswJ3fkktt/FlW8CgYEAw8vi -7hWxehiUaZO4RO7GuV47q4wPZ/nQvcimyjJuXBkC/gQay+TcA7CdXQTgxI2scMIk -UPas36mle1vbAp+GfWcNxDxhmSnQvUke4/wHF6sNZ3BwKoTRqJqFcFUHm+2uo6A4 -HCBtXM83Z1nDYkHUrfng99U+zgGDz2XKPko9OB0CgYAtVVOSkLhB8z1FDa5/iHyT -pDAlNMCA95hN5/8LFIYsUXL/nCbgY0gsd8K5po9ekZCCnpTh1sr61h9jk24mZUz6 -uyyq94IrWfIGqSfi4DF/42LKdrPm8kU5DNRR4ZOaU3aQpKMt84KyQXL7ElyDLyPD -yj5Hm9xF+6mSPYzJJAItYQKBgHzUZXbzf7ZfK2fwVSAlt68BJDvnzP62Z95Hqgbp -hjDThXPbvBXYcGkt1fYzIPZPeOxe6nZv/qGOcEGou4X9nOogpMdC09qprTqw/q/N -w9vUI3SaW/jPuzeqZH7Mx1Ajhh8uC/fquK7eMe2Dbi0b2XOeB08atrLyhk3ZEMsL -2+IFAoGAUbmo0idyszcarBPPsiEFQY2y1yzHMajs8OkjUzOVLzdiMkr36LF4ojgw -UCM9sT0g1i+eTfTcuOEr3dAxcXld8Ffs6INSIplvRMWH1m7wgXMRpPCy74OuxlDQ -xwPp/1IVvrMqVgnyS9ezAeE0p9u8zUdZdwHz1UAggwbtHR6IbIA= ------END RSA PRIVATE KEY----- diff --git a/yarn.lock b/yarn.lock index 67ecf5f12a..e889980878 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,24 @@ # yarn lockfile v1 +"@cypress/listr-verbose-renderer@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" + integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +"@cypress/xvfb@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.3.tgz#6319afdcdcff7d1505daeeaa84484d0596189860" + integrity sha512-yYrK+/bgL3hwoRHMZG4r5fyLniCy1pXex5fimtewAY6vE/jsVs8Q37UsEO03tFlcmiLnQ3rBNMaZBYTi/+C1cw== + dependencies: + debug "^3.1.0" + lodash.once "^4.1.1" + "@gulp-sourcemaps/identity-map@1.X": version "1.0.1" resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/identity-map/-/identity-map-1.0.1.tgz#cfa23bc5840f9104ce32a65e74db7e7a974bbee1" @@ -28,6 +46,84 @@ dependencies: samsam "1.3.0" +"@types/blob-util@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/blob-util/-/blob-util-1.3.3.tgz#adba644ae34f88e1dd9a5864c66ad651caaf628a" + integrity sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w== + +"@types/bluebird@3.5.18": + version "3.5.18" + resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.18.tgz#6a60435d4663e290f3709898a4f75014f279c4d6" + integrity sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w== + +"@types/chai-jquery@1.1.35": + version "1.1.35" + resolved "https://registry.yarnpkg.com/@types/chai-jquery/-/chai-jquery-1.1.35.tgz#9a8f0a39ec0851b2768a8f8c764158c2a2568d04" + integrity sha512-7aIt9QMRdxuagLLI48dPz96YJdhu64p6FCa6n4qkGN5DQLHnrIjZpD9bXCvV2G0NwgZ1FAmfP214dxc5zNCfgQ== + dependencies: + "@types/chai" "*" + "@types/jquery" "*" + +"@types/chai@*": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a" + integrity sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA== + +"@types/chai@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.8.tgz#d27600e9ba2f371e08695d90a0fe0408d89c7be7" + integrity sha512-m812CONwdZn/dMzkIJEY0yAs4apyTkTORgfB2UsMOxgkUbC205AHnm4T8I0I5gPg9MHrFc1dJ35iS75c0CJkjg== + +"@types/jquery@*": + version "3.3.29" + resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.29.tgz#680a2219ce3c9250483722fccf5570d1e2d08abd" + integrity sha512-FhJvBninYD36v3k6c+bVk1DSZwh7B5Dpb/Pyk3HKVsiohn0nhbefZZ+3JXbWQhFyt0MxSl2jRDdGQPHeOHFXrQ== + dependencies: + "@types/sizzle" "*" + +"@types/jquery@3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.6.tgz#5932ead926307ca21e5b36808257f7c926b06565" + integrity sha512-403D4wN95Mtzt2EoQHARf5oe/jEPhzBOBNrunk+ydQGW8WmkQ/E8rViRAEB1qEt/vssfGfNVD6ujP4FVeegrLg== + +"@types/lodash@4.14.87": + version "4.14.87" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.87.tgz#55f92183b048c2c64402afe472f8333f4e319a6b" + integrity sha512-AqRC+aEF4N0LuNHtcjKtvF9OTfqZI0iaBoe3dA6m/W+/YZJBZjBmW/QIZ8fBeXC6cnytSY9tBoFBqZ9uSCeVsw== + +"@types/minimatch@3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/mocha@2.2.44": + version "2.2.44" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.44.tgz#1d4a798e53f35212fd5ad4d04050620171cd5b5e" + integrity sha512-k2tWTQU8G4+iSMvqKi0Q9IIsWAp/n8xzdZS4Q4YVIltApoMA00wFBFdlJnmoaK1/z7B0Cy0yPe6GgXteSmdUNw== + +"@types/sinon-chai@3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@types/sinon-chai/-/sinon-chai-3.2.2.tgz#5cfdbda70bae30f79a9423334af9e490e4cce793" + integrity sha512-5zSs2AslzyPZdOsbm2NRtuSNAI2aTWzNKOHa/GRecKo7a5efYD7qGcPxMZXQDayVXT2Vnd5waXxBvV31eCZqiA== + dependencies: + "@types/chai" "*" + "@types/sinon" "*" + +"@types/sinon@*": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.5.tgz#f7dea19400c193a3b36a804a7f1f4b26dacf452b" + integrity sha512-4DShbH857bZVOY4tPi1RQJNrLcf89hEtU0klZ9aYTMbtt95Ok4XdPqqcbtGOHIbAHMLSzQP8Uw/6qtBBqyloww== + +"@types/sinon@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.0.tgz#84e707e157ec17d3e4c2a137f41fc3f416c0551e" + integrity sha512-kcYoPw0uKioFVC/oOqafk2yizSceIQXCYnkYts9vJIwQklFRsMubTObTDrjQamUyBRd47332s85074cd/hCwxg== + +"@types/sizzle@*": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" + integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== + "HTML_CodeSniffer@https://github.com/liip-forks/HTML_CodeSniffer#role_presentation": version "2.0.1" resolved "https://github.com/liip-forks/HTML_CodeSniffer#5cee16fe68f76ffd96caee41c6b2754fc00d4f47" @@ -131,6 +227,16 @@ ajv@^4.7.0, ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" +ajv@^5.1.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + ajv@^5.2.0: version "5.2.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" @@ -168,7 +274,7 @@ ammo@1.x.x: boom "2.x.x" hoek "2.x.x" -ansi-escapes@^1.1.0: +ansi-escapes@^1.0.0, ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= @@ -205,6 +311,13 @@ ansi-styles@^3.1.0: dependencies: color-convert "^1.9.0" +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + anymatch@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" @@ -422,6 +535,13 @@ async@1.5.2, async@1.x, async@^1.4.0, async@^1.5.0, async@~1.5: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= +async@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.4.0.tgz#4990200f18ea5b837c2cc4f8c031a6985c385611" + integrity sha1-SZAgDxjqW4N8LMT4wDGmmFw4VhE= + dependencies: + lodash "^4.14.0" + async@^2.0.0, async@^2.0.1, async@^2.1.4, async@^2.1.5, async@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/async/-/async-2.4.1.tgz#62a56b279c98a11d0987096a01cc3eeb8eb7bbd7" @@ -488,11 +608,21 @@ aws-sign2@~0.6.0: resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8= +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" integrity sha1-g+9cqGCysy5KDe7e6MdxudtXRx4= +aws4@^1.6.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + axios@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.17.1.tgz#2d8e3e5d0bdbd7327f91bc814f5c57660f81824d" @@ -1338,16 +1468,16 @@ block-stream@*: dependencies: inherits "~2.0.0" +bluebird@3.5.0, bluebird@^3.0.5, bluebird@^3.3.0, bluebird@^3.4.7, bluebird@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + integrity sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw= + bluebird@^2.9.24: version "2.11.0" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE= -bluebird@^3.0.5, bluebird@^3.3.0, bluebird@^3.4.7, bluebird@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" - integrity sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw= - bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" @@ -1699,6 +1829,13 @@ cached-path-relative@^1.0.0: resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7" integrity sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc= +cachedir@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-1.3.0.tgz#5e01928bf2d95b5edd94b0942188246740e0dbc4" + integrity sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg== + dependencies: + os-homedir "^1.0.1" + call@2.x.x: version "2.0.2" resolved "https://registry.yarnpkg.com/call/-/call-2.0.2.tgz#9c9831abd0769486fdee83a41149b829b32d06c0" @@ -1865,6 +2002,15 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3, chalk@~1.1: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chalk@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" @@ -1890,6 +2036,11 @@ check-error@^1.0.1, check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= +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 sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= + check-types@~3.2: version "3.2.0" resolved "https://registry.yarnpkg.com/check-types/-/check-types-3.2.0.tgz#05ec358449bbc15dec39c6ad57f2ae0ecd52aeb3" @@ -2009,6 +2160,11 @@ chromedriver@^2.27.2: request "^2.81.0" rimraf "^2.5.4" +ci-info@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" @@ -2040,6 +2196,13 @@ cli-color@^1.0.0: memoizee "^0.4.3" timers-ext "0.1" +cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= + dependencies: + restore-cursor "^1.0.1" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -2047,6 +2210,11 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" +cli-spinners@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" + integrity sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw= + cli-table@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" @@ -2054,6 +2222,14 @@ cli-table@^0.3.1: dependencies: colors "1.0.3" +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + cli-width@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" @@ -2207,6 +2383,13 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" +combined-stream@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== + dependencies: + delayed-stream "~1.0.0" + combined-stream@~0.0.4, combined-stream@~0.0.5: version "0.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" @@ -2243,6 +2426,13 @@ commander@~2.8: dependencies: graceful-readlink ">= 1.0.0" +common-tags@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" + integrity sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA= + dependencies: + babel-runtime "^6.18.0" + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -2491,6 +2681,17 @@ cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -2664,6 +2865,52 @@ cycle@1.0.x: resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" integrity sha1-IegLK+hYD5i0aPN5QwZisEbDStI= +cypress@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-3.1.5.tgz#5227b2ce9306c47236d29e703bad9055d7218042" + integrity sha512-jzYGKJqU1CHoNocPndinf/vbG28SeU+hg+4qhousT/HDBMJxYgjecXOmSgBX/ga9/TakhqSrIrSP2r6gW/OLtg== + dependencies: + "@cypress/listr-verbose-renderer" "0.4.1" + "@cypress/xvfb" "1.2.3" + "@types/blob-util" "1.3.3" + "@types/bluebird" "3.5.18" + "@types/chai" "4.0.8" + "@types/chai-jquery" "1.1.35" + "@types/jquery" "3.3.6" + "@types/lodash" "4.14.87" + "@types/minimatch" "3.0.3" + "@types/mocha" "2.2.44" + "@types/sinon" "7.0.0" + "@types/sinon-chai" "3.2.2" + bluebird "3.5.0" + cachedir "1.3.0" + chalk "2.4.1" + check-more-types "2.24.0" + commander "2.11.0" + common-tags "1.4.0" + debug "3.1.0" + execa "0.10.0" + executable "4.1.1" + extract-zip "1.6.6" + fs-extra "4.0.1" + getos "3.1.0" + glob "7.1.2" + is-ci "1.0.10" + is-installed-globally "0.1.0" + lazy-ass "1.6.0" + listr "0.12.0" + lodash "4.17.11" + log-symbols "2.2.0" + minimist "1.2.0" + moment "2.22.2" + ramda "0.24.1" + request "2.87.0" + request-progress "0.3.1" + supports-color "5.1.0" + tmp "0.0.31" + url "0.11.0" + yauzl "2.8.0" + d@1: version "1.0.0" resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" @@ -2685,6 +2932,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" @@ -3141,6 +3393,11 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.18: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz#3dcc99da3e6b665f6abbc71c28ad51a2cd731a9c" integrity sha1-PcyZ2j5rZl9qu8ccKK1Ros1zGpw= +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= + elliptic@^6.0.0: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" @@ -3614,6 +3871,19 @@ evp_bytestokey@^1.0.0: dependencies: create-hash "^1.1.1" +execa@0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/execa/-/execa-0.5.1.tgz#de3fb85cb8d6e91c85bcbceb164581785cb57b36" @@ -3634,6 +3904,18 @@ execall@^1.0.0: dependencies: clone-regexp "^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== + dependencies: + pify "^2.2.0" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -3702,6 +3984,11 @@ extend@3, extend@^3.0.0, extend@~3.0.0: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" integrity sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ= +extend@~3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + external-editor@^2.0.1: version "2.0.4" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" @@ -3718,6 +4005,16 @@ extglob@^0.3.1: dependencies: is-extglob "^1.0.0" +extract-zip@1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c" + integrity sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw= + dependencies: + concat-stream "1.6.0" + debug "2.6.9" + mkdirp "0.5.0" + yauzl "2.4.1" + extract-zip@^1.6.5, extract-zip@~1.6.5: version "1.6.5" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.5.tgz#99a06735b6ea20ea9b705d779acffcc87cff0440" @@ -3761,6 +4058,11 @@ fast-deep-equal@^1.0.0: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" integrity sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8= +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" @@ -3805,7 +4107,7 @@ fibers@~2.0.0: resolved "https://registry.yarnpkg.com/fibers/-/fibers-2.0.0.tgz#f26d0aaf1f99995fbe1cb3f340efac08bda9dc4b" integrity sha512-sLxo4rZVk7xLgAjb/6zEzHJfSALx6u6coN1z61XCOF7i6CyTdJawF4+RdpjCSeS8AP66eR2InScbYAz9RAVOgA== -figures@1.7.0: +figures@1.7.0, figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= @@ -4021,6 +4323,15 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" +form-data@~2.3.1: + 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" + formatio@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.1.1.tgz#5ed3ccd636551097383465d996199100e86161e9" @@ -4064,6 +4375,15 @@ fs-extra@3.0.1: jsonfile "^3.0.0" universalify "^0.1.0" +fs-extra@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880" + integrity sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + fs-extra@^0.30.0, fs-extra@~0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" @@ -4204,6 +4524,18 @@ get-stream@^2.2.0: object-assign "^4.0.1" pinkie-promise "^2.0.0" +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +getos@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/getos/-/getos-3.1.0.tgz#db3aa4df15a3295557ce5e81aa9e3e5cdfaa6567" + integrity sha512-i9vrxtDu5DlLVFcrbqUqGWYlZN/zZ4pGMICCAcZoYsX3JA54nYp8r5EThw5K+m2q3wszkx4Th746JstspB0H4Q== + dependencies: + async "2.4.0" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -4321,6 +4653,13 @@ glob@~3.1.21: inherits "1" minimatch "~0.2.11" +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + global-modules@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" @@ -4842,6 +5181,11 @@ har-schema@^1.0.5: resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" integrity sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4= +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + har-validator@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" @@ -4860,6 +5204,14 @@ har-validator@~4.2.1: ajv "^4.9.1" har-schema "^1.0.5" +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + has-ansi@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" @@ -5126,6 +5478,15 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -5204,6 +5565,11 @@ indent-string@^2.1.0: dependencies: repeating "^2.0.0" +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -5369,6 +5735,13 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +is-ci@1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" + integrity sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4= + dependencies: + ci-info "^1.0.0" + is-defined@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-defined/-/is-defined-1.0.0.tgz#1f07ca67d571f594c4b14415a45f7bef88f92bf5" @@ -5432,6 +5805,14 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" +is-installed-globally@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -6018,6 +6399,11 @@ labeled-stream-splicer@^2.0.0: isarray "~0.0.1" stream-splicer "^2.0.0" +lazy-ass@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= + lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" @@ -6079,6 +6465,57 @@ limiter@^1.0.5: resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.3.tgz#32e2eb55b2324076943e5d04c1185ffb387968ef" integrity sha512-zrycnIMsLw/3ZxTbW7HCez56rcFGecWTx5OZNplzcXUUmJLmoYArC6qdJzmAN5BWiNXGcpjhF9RQ1HSv5zebEw== +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= + +listr-update-renderer@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9" + integrity sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk= + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" + integrity sha1-ggb0z21S3cWCfl/RSYng6WWTOjU= + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +listr@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a" + integrity sha1-a84sD1YD+klYDqF81qAMwOX6RRo= + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + figures "^1.7.0" + indent-string "^2.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.2.0" + listr-verbose-renderer "^0.4.0" + log-symbols "^1.0.2" + log-update "^1.0.2" + ora "^0.2.3" + p-map "^1.1.1" + rxjs "^5.0.0-beta.11" + stream-to-observable "^0.1.0" + strip-ansi "^3.0.1" + livereload-js@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.2.2.tgz#6c87257e648ab475bc24ea257457edcc1f8d0bc2" @@ -6422,6 +6859,11 @@ lodash.omit@^4.2.1: resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= +lodash.once@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + lodash.pairs@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9" @@ -6502,6 +6944,11 @@ lodash@3.9.3: resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.9.3.tgz#0159e86832feffc6d61d852b12a953b99496bd32" integrity sha1-AVnoaDL+/8bWHYUrEqlTuZSWvTI= +lodash@4.17.11, lodash@^4.17.5: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + lodash@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e" @@ -6517,16 +6964,18 @@ lodash@^4.0.0, lodash@^4.1.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lo resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= -lodash@^4.17.5: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== - lodash@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" integrity sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE= +log-symbols@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + log-symbols@^1.0.0, log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -6541,6 +6990,14 @@ log-symbols@^2.0.0: dependencies: chalk "^2.0.1" +log-update@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" + integrity sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE= + dependencies: + ansi-escapes "^1.0.0" + cli-cursor "^1.0.2" + log4js@^0.6.31: version "0.6.38" resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" @@ -6771,6 +7228,11 @@ mime-db@~1.33.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== +mime-db@~1.37.0: + version "1.37.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" + integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== + mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: version "2.1.15" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" @@ -6785,6 +7247,13 @@ mime-types@~2.0.1, mime-types@~2.0.3: dependencies: mime-db "~1.12.0" +mime-types@~2.1.17: + version "2.1.21" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" + integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== + dependencies: + mime-db "~1.37.0" + mime-types@~2.1.18: version "2.1.18" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" @@ -6956,6 +7425,11 @@ mold-source-map@~0.4.0: convert-source-map "^1.1.0" through "~2.2.7" +moment@2.22.2: + version "2.22.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" + integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y= + moment@2.x.x: version "2.18.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" @@ -7037,6 +7511,11 @@ next-tick@1: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + nigel@1.x.x: version "1.0.1" resolved "https://registry.yarnpkg.com/nigel/-/nigel-1.0.1.tgz#463989af881278fbaa1d3cc93823dbd17b4360a1" @@ -7275,7 +7754,7 @@ oauth-sign@~0.6.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.6.0.tgz#7dbeae44f6ca454e1f168451d630746735813ce3" integrity sha1-fb6uRPbKRU4fFoRR1jB0ZzWBPOM= -oauth-sign@~0.8.1: +oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= @@ -7356,6 +7835,11 @@ once@1.x, once@^1.3.0, once@^1.3.3, once@~1.3, once@~1.3.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -7401,6 +7885,16 @@ options@>=0.0.5: resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8= +ora@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + integrity sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q= + dependencies: + chalk "^1.1.1" + cli-cursor "^1.0.2" + cli-spinners "^0.1.2" + object-assign "^4.0.1" + orchestrator@^0.3.0: version "0.3.8" resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" @@ -7627,7 +8121,7 @@ path-is-inside@^1.0.1, path-is-inside@^1.0.2: resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= -path-key@^2.0.0: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= @@ -7715,6 +8209,11 @@ performance-now@^0.2.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" integrity sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU= +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + pez@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/pez/-/pez-1.0.0.tgz#844318a5ce7092eeddffa295e18079ac779fa018" @@ -7756,7 +8255,7 @@ phantomjs-prebuilt@^2.1.14: request-progress "~2.0.1" which "~1.2.10" -pify@^2.0.0: +pify@^2.0.0, pify@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -8291,6 +8790,11 @@ qs@~6.3.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" integrity sha1-51vV9uJoEioqDgvaYwslUMFmUCw= +qs@~6.5.1: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + query-string@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" @@ -8309,6 +8813,11 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +ramda@0.24.1: + version "0.24.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" + integrity sha1-w7d1UZfzW43DUCIoJixMkd22uFc= + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -8601,6 +9110,13 @@ replace-requires@~1.0.3: patch-text "~1.0.2" xtend "~4.0.0" +request-progress@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-0.3.1.tgz#0721c105d8a96ac6b2ce8b2c89ae2d5ecfcf6b3a" + integrity sha1-ByHBBdipasayzossia4tXs/Pazo= + dependencies: + throttleit "~0.0.2" + request-progress@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" @@ -8702,6 +9218,32 @@ request@2.79.0: tunnel-agent "~0.4.1" uuid "^3.0.0" +request@2.87.0: + version "2.87.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" + integrity sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + request@~2.74.0: version "2.74.0" resolved "https://registry.yarnpkg.com/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab" @@ -8818,6 +9360,14 @@ resp-modifier@6.0.2: debug "^2.2.0" minimatch "^3.0.2" +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -8940,6 +9490,13 @@ rx@4.1.0, rx@^4.1.0: resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= +rxjs@^5.0.0-beta.11: + version "5.5.12" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" + integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== + dependencies: + symbol-observable "1.0.1" + safe-buffer@^5.0.1, safe-buffer@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" @@ -8950,6 +9507,11 @@ safe-buffer@^5.1.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223" integrity sha512-aSLEDudu6OoRr/2rU609gRmnYboRLxgDG1z9o2Q0os7236FwvcqIOO8r8U5JUEwivZOhDaKlFO4SbPTJYyBEyQ== +safe-buffer@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -9041,6 +9603,11 @@ semver@^4.1.0, semver@~4.3.3: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= +semver@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + semver@~5.0.1: version "5.0.3" resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" @@ -9620,6 +10187,11 @@ stream-throttle@^0.1.3: commander "^2.2.0" limiter "^1.0.5" +stream-to-observable@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" + integrity sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4= + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -9897,6 +10469,13 @@ supports-color@4.4.0: dependencies: has-flag "^2.0.0" +supports-color@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5" + integrity sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ== + dependencies: + has-flag "^2.0.0" + supports-color@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" @@ -9928,6 +10507,13 @@ supports-color@^5.1.0: dependencies: has-flag "^3.0.0" +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + svg-sprite@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/svg-sprite/-/svg-sprite-1.3.7.tgz#7ade036000e8794a3f814402a808aae290ecd1f3" @@ -9971,6 +10557,11 @@ svgo@^0.7.0, svgo@^0.7.2: sax "~1.2.1" whet.extend "~0.9.9" +symbol-observable@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" + integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= + syntax-error@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.3.0.tgz#1ed9266c4d40be75dc55bf9bb1cb77062bb96ca1" @@ -10084,6 +10675,11 @@ throttleit@^1.0.0: resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= +throttleit@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" + integrity sha1-z+34jmDADdlpe2H90qg0OptoDq8= + through2@2.X, through2@^2, through2@^2.0.0, through2@^2.0.1, through2@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" @@ -10181,6 +10777,13 @@ tough-cookie@>=0.12.0, tough-cookie@>=2.3.0, tough-cookie@~2.3.0: dependencies: punycode "^1.4.1" +tough-cookie@~2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA== + dependencies: + punycode "^1.4.1" + transformify@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/transformify/-/transformify-0.1.2.tgz#9a4f42a154433dd727b80575428a3c9e5489ebf1" @@ -10396,7 +10999,7 @@ urix@^0.1.0, urix@~0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url@~0.11.0: +url@0.11.0, url@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= @@ -11054,7 +11657,7 @@ yauzl@2.4.1: dependencies: fd-slicer "~1.0.1" -yauzl@^2.5.0: +yauzl@2.8.0, yauzl@^2.5.0: version "2.8.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.8.0.tgz#79450aff22b2a9c5a41ef54e02db907ccfbf9ee2" integrity sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=