Fixing cypress tests (#586)
* upgrade cypress * fixed delete now has dialog * also check "unAssign" * client type no longer required * providers and group changes * grp creation working * moved create realm button ouside the dropdown * sped up test and added cleanup * Revert "moved create realm button ouside the dropdown" This reverts commit e2076a5305808417de910ba8fada8e528e5c356a. * make test re-runnable * removed un needed navigation * Fix misformed Cypress config for GitHub Action * cleanup after test * fixed cleanup * temporary removed this test * also remove user "new" * try adding a wait for CI * get different modal id * add {force: true} to modal functions * mv grp search last and ignore 401 * try using cy.get and disable video for testing * add back video artifacts Co-authored-by: mfrances <mfrances@redhat.com> Co-authored-by: Jon Koops <jonkoops@gmail.com> Co-authored-by: jenny-s51 <jshandel@redhat.com>
This commit is contained in:
parent
9d25c48e63
commit
8d72f8a705
17 changed files with 214 additions and 191 deletions
5
.github/workflows/cypress.yml
vendored
5
.github/workflows/cypress.yml
vendored
|
@ -31,8 +31,9 @@ jobs:
|
|||
run: ./start.js & sleep 40
|
||||
|
||||
- name: Run Admin Console
|
||||
run: mkdir ./build/adminv2 && mv ./build/js ./build/adminv2/
|
||||
run: npx http-server ./build -P http://localhost:8180/ & sleep 30
|
||||
run: |
|
||||
mkdir ./build/adminv2 && mv ./build/js ./build/adminv2/
|
||||
npx http-server ./build -P http://localhost:8180/ & sleep 30
|
||||
|
||||
- name: Admin Console client
|
||||
run: ./import.js
|
||||
|
|
|
@ -5,6 +5,7 @@ import SidebarPage from "../support/pages/admin_console/SidebarPage";
|
|||
import CreateClientScopePage from "../support/pages/admin_console/manage/client_scopes/CreateClientScopePage";
|
||||
import { keycloakBefore } from "../support/util/keycloak_before";
|
||||
import RoleMappingTab from "../support/pages/admin_console/manage/RoleMappingTab";
|
||||
import ModalUtils from "../support/util/ModalUtils";
|
||||
|
||||
let itemId = "client_scope_crud";
|
||||
const loginPage = new LoginPage();
|
||||
|
@ -12,6 +13,7 @@ const masthead = new Masthead();
|
|||
const sidebarPage = new SidebarPage();
|
||||
const listingPage = new ListingPage();
|
||||
const createClientScopePage = new CreateClientScopePage();
|
||||
const modalUtils = new ModalUtils();
|
||||
|
||||
describe("Client Scopes test", function () {
|
||||
describe("Client Scope creation", function () {
|
||||
|
@ -50,7 +52,10 @@ describe("Client Scopes test", function () {
|
|||
sidebarPage.goToClientScopes();
|
||||
|
||||
// Delete
|
||||
listingPage.itemExist(itemId).deleteItem(itemId); // There should be a confirmation pop-up
|
||||
listingPage.itemExist(itemId).deleteItem(itemId);
|
||||
modalUtils
|
||||
.checkModalMessage("Are you sure you want to delete this client scope")
|
||||
.confirmModal();
|
||||
|
||||
masthead.checkNotificationMessage("The client scope has been deleted");
|
||||
|
||||
|
@ -69,12 +74,15 @@ describe("Client Scopes test", function () {
|
|||
sidebarPage.goToClientScopes();
|
||||
});
|
||||
|
||||
it("assignRole", () => {
|
||||
it("Assign role", () => {
|
||||
const role = "offline_access";
|
||||
listingPage.searchItem(scopeName, false).goToItemDetails(scopeName);
|
||||
scopeTab.goToScopeTab().clickAssignRole().selectRow(role).clickAssign();
|
||||
masthead.checkNotificationMessage("Role mapping updated");
|
||||
scopeTab.checkRoles([role]);
|
||||
scopeTab.hideInheritedRoles().selectRow(role).clickUnAssign();
|
||||
modalUtils.checkModalTitle("Remove mapping?").confirmModal();
|
||||
scopeTab.checkRoles([]);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -30,22 +30,12 @@ describe("Clients test", function () {
|
|||
it("should fail creating client", function () {
|
||||
listingPage.goToCreateItem();
|
||||
|
||||
createClientPage
|
||||
.continue()
|
||||
.checkClientTypeRequiredMessage()
|
||||
.checkClientIdRequiredMessage();
|
||||
|
||||
createClientPage
|
||||
.fillClientData(itemId)
|
||||
.continue()
|
||||
.checkClientTypeRequiredMessage()
|
||||
.checkClientIdRequiredMessage(false);
|
||||
createClientPage.continue().checkClientIdRequiredMessage();
|
||||
|
||||
createClientPage
|
||||
.fillClientData("")
|
||||
.selectClientType("openid-connect")
|
||||
.continue()
|
||||
.checkClientTypeRequiredMessage(false)
|
||||
.checkClientIdRequiredMessage();
|
||||
|
||||
createClientPage.fillClientData("account").continue().continue();
|
||||
|
|
|
@ -64,18 +64,10 @@ describe("Group test", () => {
|
|||
listingPage.deleteItem(newName);
|
||||
});
|
||||
|
||||
it("Group search", () => {
|
||||
viewHeaderPage.clickAction("searchGroup");
|
||||
searchGroupPage.searchGroup("group").clickSearchButton();
|
||||
searchGroupPage.checkTerm("group");
|
||||
});
|
||||
|
||||
it("Should move group", () => {
|
||||
const targetGroupName = "target";
|
||||
groupModal
|
||||
.open("empty-primary-action")
|
||||
.fillGroupForm(groupName)
|
||||
.clickCreate();
|
||||
groupModal.open("empty-primary-action");
|
||||
groupModal.fillGroupForm(groupName).clickCreate();
|
||||
|
||||
groupModal.open().fillGroupForm(targetGroupName).clickCreate();
|
||||
|
||||
|
@ -86,28 +78,35 @@ describe("Group test", () => {
|
|||
moveGroupModal.clickMove();
|
||||
|
||||
masthead.checkNotificationMessage("Group moved");
|
||||
listingPage
|
||||
.itemExist(groupName, false)
|
||||
.goToItemDetails(targetGroupName)
|
||||
.itemExist(targetGroupName);
|
||||
|
||||
listingPage.itemExist(groupName, false).goToItemDetails(targetGroupName);
|
||||
cy.wait(2000);
|
||||
listingPage.itemExist(groupName);
|
||||
cy.wait(1000);
|
||||
sidebarPage.goToGroups();
|
||||
listingPage.deleteItem(targetGroupName);
|
||||
});
|
||||
|
||||
it("Should move group to root", async () => {
|
||||
const groups = ["group1", "group2"];
|
||||
await new AdminClient().createSubGroups(groups);
|
||||
sidebarPage.goToGroups();
|
||||
listingPage.goToItemDetails(groups[0]);
|
||||
cy.wait(2000);
|
||||
listingPage.clickRowDetails(groups[1]).clickDetailMenu("Move to");
|
||||
groupModal
|
||||
.open("empty-primary-action")
|
||||
.fillGroupForm(groups[0])
|
||||
.clickCreate();
|
||||
groupModal.open().fillGroupForm(groups[1]).clickCreate();
|
||||
listingPage.clickRowDetails(groups[0]).clickDetailMenu("Move to");
|
||||
|
||||
moveGroupModal.clickRoot().clickMove();
|
||||
sidebarPage.goToGroups();
|
||||
|
||||
new GroupDetailPage().checkListSubGroup(groups);
|
||||
listingPage.deleteItem(groups[0]);
|
||||
listingPage.deleteItem(groups[1]);
|
||||
});
|
||||
|
||||
it("Group search", () => {
|
||||
viewHeaderPage.clickAction("searchGroup");
|
||||
searchGroupPage.searchGroup("group").clickSearchButton();
|
||||
searchGroupPage.checkTerm("group");
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -126,13 +125,19 @@ describe("Group test", () => {
|
|||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit("");
|
||||
keycloakBefore();
|
||||
loginPage.logIn();
|
||||
sidebarPage.goToGroups();
|
||||
});
|
||||
|
||||
after(() => {
|
||||
new AdminClient().deleteGroups();
|
||||
after(async () => {
|
||||
const adminClient = new AdminClient();
|
||||
await adminClient.deleteGroups();
|
||||
for (let i = 0; i < 5; i++) {
|
||||
const username = "user" + i;
|
||||
await adminClient.deleteUser(username);
|
||||
}
|
||||
await adminClient.deleteUser("new");
|
||||
});
|
||||
|
||||
it("Should display all the subgroups", () => {
|
||||
|
|
|
@ -61,7 +61,6 @@ describe("Identity provider test", () => {
|
|||
.clickCard("facebook")
|
||||
.fill("facebook", "123")
|
||||
.clickAdd();
|
||||
sidebarPage.goToIdentityProviders();
|
||||
listingPage.itemExist("facebook");
|
||||
|
||||
createProviderPage
|
||||
|
@ -69,13 +68,11 @@ describe("Identity provider test", () => {
|
|||
.clickItem(identityProviderName)
|
||||
.fill(identityProviderName, "123")
|
||||
.clickAdd();
|
||||
sidebarPage.goToIdentityProviders();
|
||||
createProviderPage
|
||||
.clickCreateDropdown()
|
||||
.clickItem("bitbucket")
|
||||
.fill("bitbucket", "123")
|
||||
.clickAdd();
|
||||
sidebarPage.goToIdentityProviders();
|
||||
|
||||
orderDialog.openDialog().checkOrder(providers);
|
||||
orderDialog.moveRowTo("facebook", identityProviderName);
|
||||
|
@ -87,5 +84,21 @@ describe("Identity provider test", () => {
|
|||
"Successfully changed display order of identity providers"
|
||||
);
|
||||
});
|
||||
|
||||
it("clean up providers", () => {
|
||||
const modalUtils = new ModalUtils();
|
||||
listingPage.deleteItem("bitbucket");
|
||||
modalUtils.checkModalTitle("Delete provider?").confirmModal();
|
||||
masthead.checkNotificationMessage("Provider successfully deleted");
|
||||
|
||||
listingPage.deleteItem("facebook");
|
||||
modalUtils.checkModalTitle("Delete provider?").confirmModal();
|
||||
masthead.checkNotificationMessage("Provider successfully deleted");
|
||||
|
||||
cy.wait(100);
|
||||
listingPage.deleteItem("github");
|
||||
modalUtils.checkModalTitle("Delete provider?").confirmModal();
|
||||
masthead.checkNotificationMessage("Provider successfully deleted");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,16 +2,28 @@ import SidebarPage from "../support/pages/admin_console/SidebarPage";
|
|||
import LoginPage from "../support/pages/LoginPage";
|
||||
import RealmSettingsPage from "../support/pages/admin_console/manage/realm_settings/RealmSettingsPage";
|
||||
import { keycloakBefore } from "../support/util/keycloak_before";
|
||||
import AdminClient from "../support/util/AdminClient";
|
||||
|
||||
describe("Realm settings test", () => {
|
||||
const loginPage = new LoginPage();
|
||||
const sidebarPage = new SidebarPage();
|
||||
const realmSettingsPage = new RealmSettingsPage();
|
||||
|
||||
describe("Realm settings", function () {
|
||||
beforeEach(function () {
|
||||
describe("Realm settings", () => {
|
||||
const realmName = "Realm_" + (Math.random() + 1).toString(36).substring(7);
|
||||
|
||||
beforeEach(() => {
|
||||
keycloakBefore();
|
||||
loginPage.logIn();
|
||||
sidebarPage.goToRealm(realmName);
|
||||
});
|
||||
|
||||
before(async () => {
|
||||
await new AdminClient().createRealm(realmName);
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await new AdminClient().deleteRealm(realmName);
|
||||
});
|
||||
|
||||
it("Go to general tab", function () {
|
||||
|
|
|
@ -4,13 +4,11 @@ import CreateRealmPage from "../support/pages/admin_console/CreateRealmPage";
|
|||
import Masthead from "../support/pages/admin_console/Masthead";
|
||||
import AdminClient from "../support/util/AdminClient";
|
||||
import { keycloakBefore } from "../support/util/keycloak_before";
|
||||
import RealmSelector from "../support/pages/admin_console/RealmSelector";
|
||||
|
||||
const masthead = new Masthead();
|
||||
const loginPage = new LoginPage();
|
||||
const sidebarPage = new SidebarPage();
|
||||
const createRealmPage = new CreateRealmPage();
|
||||
const realmSelector = new RealmSelector();
|
||||
|
||||
describe("Realms test", () => {
|
||||
const testRealmName = "Test realm";
|
||||
|
@ -50,29 +48,4 @@ describe("Realms test", () => {
|
|||
.should("eq", testRealmName);
|
||||
});
|
||||
});
|
||||
|
||||
describe("More then 5 realms", () => {
|
||||
const realmNames = ["One", "Two", "Three", "Four", "Five"];
|
||||
|
||||
beforeEach(() => {
|
||||
keycloakBefore();
|
||||
loginPage.logIn();
|
||||
for (const realmName of realmNames) {
|
||||
sidebarPage.goToCreateRealm();
|
||||
createRealmPage.fillRealmName(realmName).createRealm();
|
||||
sidebarPage.goToClients();
|
||||
}
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
const client = new AdminClient();
|
||||
for (const realmName of realmNames) {
|
||||
await client.deleteRealm(realmName);
|
||||
}
|
||||
});
|
||||
|
||||
it("switch to searchable realm selector", () => {
|
||||
realmSelector.openRealmContextSelector().shouldContainAll(realmNames);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -8,6 +8,7 @@ import ModalUtils from "../support/util/ModalUtils";
|
|||
import { keycloakBefore } from "../support/util/keycloak_before";
|
||||
import GroupModal from "../support/pages/admin_console/manage/groups/GroupModal";
|
||||
import UserGroupsPage from "../support/pages/admin_console/manage/users/UserGroupsPage";
|
||||
import AdminClient from "../support/util/AdminClient";
|
||||
|
||||
let groupName = "group";
|
||||
let groupsList: string[] = [];
|
||||
|
@ -18,7 +19,7 @@ describe("Group creation", () => {
|
|||
const sidebarPage = new SidebarPage();
|
||||
const groupModal = new GroupModal();
|
||||
|
||||
beforeEach(function () {
|
||||
beforeEach(() => {
|
||||
keycloakBefore();
|
||||
loginPage.logIn();
|
||||
sidebarPage.goToGroups();
|
||||
|
@ -64,9 +65,11 @@ describe("Users test", () => {
|
|||
sidebarPage.goToUsers();
|
||||
});
|
||||
|
||||
it("Go to create User page", () => {
|
||||
cy.wait(100);
|
||||
after(async () => {
|
||||
await new AdminClient().deleteGroups();
|
||||
});
|
||||
|
||||
it("Go to create User page", () => {
|
||||
createUserPage.goToCreateUser();
|
||||
cy.url().should("include", "users/add-user");
|
||||
|
||||
|
@ -75,12 +78,10 @@ describe("Users test", () => {
|
|||
cy.url().should("not.include", "/add-user");
|
||||
});
|
||||
|
||||
it("Create user test", function () {
|
||||
it("Create user test", () => {
|
||||
itemId += "_" + (Math.random() + 1).toString(36).substring(7);
|
||||
|
||||
// Create
|
||||
cy.wait(100);
|
||||
|
||||
createUserPage.goToCreateUser();
|
||||
|
||||
createUserPage.createUser(itemId);
|
||||
|
@ -104,34 +105,27 @@ describe("Users test", () => {
|
|||
sidebarPage.goToUsers();
|
||||
});
|
||||
|
||||
it("User details test", function () {
|
||||
cy.wait(1000);
|
||||
it("User details test", () => {
|
||||
listingPage.searchItem(itemId).itemExist(itemId);
|
||||
|
||||
cy.wait(1000);
|
||||
listingPage.goToItemDetails(itemId);
|
||||
|
||||
userDetailsPage.fillUserData().save();
|
||||
|
||||
masthead.checkNotificationMessage("The user has been saved");
|
||||
|
||||
cy.wait(1000);
|
||||
|
||||
sidebarPage.goToUsers();
|
||||
listingPage.searchItem(itemId).itemExist(itemId);
|
||||
});
|
||||
|
||||
it("Add user to groups test", function () {
|
||||
it("Add user to groups test", () => {
|
||||
// Go to user groups
|
||||
|
||||
listingPage.searchItem(itemId).itemExist(itemId);
|
||||
listingPage.goToItemDetails(itemId);
|
||||
|
||||
userGroupsPage.goToGroupsTab();
|
||||
userGroupsPage.toggleAddGroupModal();
|
||||
|
||||
cy.wait(1000);
|
||||
|
||||
const groupsListCopy = groupsList.slice(1, 2);
|
||||
|
||||
groupsListCopy.forEach((element) => {
|
||||
|
@ -139,35 +133,28 @@ describe("Users test", () => {
|
|||
});
|
||||
|
||||
userGroupsPage.joinGroups();
|
||||
|
||||
cy.wait(1000);
|
||||
});
|
||||
|
||||
it("Leave group test", function () {
|
||||
it("Leave group test", () => {
|
||||
listingPage.searchItem(itemId).itemExist(itemId);
|
||||
listingPage.goToItemDetails(itemId);
|
||||
// Go to user groups
|
||||
userGroupsPage.goToGroupsTab();
|
||||
cy.wait(1000);
|
||||
cy.contains("Leave").click();
|
||||
cy.getId("modalConfirm").click();
|
||||
});
|
||||
|
||||
it("Go to user consents test", function () {
|
||||
cy.wait(1000);
|
||||
it("Go to user consents test", () => {
|
||||
listingPage.searchItem(itemId).itemExist(itemId);
|
||||
|
||||
cy.wait(1000);
|
||||
listingPage.goToItemDetails(itemId);
|
||||
|
||||
cy.getId("user-consents-tab").click();
|
||||
|
||||
cy.getId("empty-state").contains("No consents");
|
||||
});
|
||||
|
||||
it("Delete user test", function () {
|
||||
it("Delete user test", () => {
|
||||
// Delete
|
||||
cy.wait(1000);
|
||||
listingPage.deleteItem(itemId);
|
||||
|
||||
modalUtils.checkModalTitle("Delete user?").confirmModal();
|
||||
|
|
|
@ -17,7 +17,7 @@ export default class ListingPage {
|
|||
this.searchBtn =
|
||||
".pf-c-page__main .pf-c-toolbar__content-section button.pf-m-control:visible";
|
||||
this.createBtn =
|
||||
".pf-c-page__main .pf-c-toolbar__content-section button.pf-m-primary";
|
||||
".pf-c-page__main .pf-c-toolbar__content-section button.pf-m-primary:visible";
|
||||
this.importBtn =
|
||||
".pf-c-page__main .pf-c-toolbar__content-section button.pf-m-link";
|
||||
}
|
||||
|
|
|
@ -28,7 +28,8 @@ export default class SidebarPage {
|
|||
}
|
||||
|
||||
goToCreateRealm() {
|
||||
cy.getId(this.realmsDrpDwn).scrollIntoView().click();
|
||||
cy.getId(this.realmsDrpDwn).scrollIntoView();
|
||||
cy.getId(this.realmsDrpDwn).click();
|
||||
cy.getId(this.createRealmBtn).click();
|
||||
|
||||
return this;
|
||||
|
|
|
@ -3,7 +3,9 @@ export default class RoleMappingTab {
|
|||
private tab = "#pf-tab-serviceAccount-serviceAccount";
|
||||
private scopeTab = "scopeTab";
|
||||
private assignRole = "assignRole";
|
||||
private unAssign = "unAssignRole";
|
||||
private assign = "assign";
|
||||
private hide = "#hideInheritedRoles";
|
||||
private assignedRolesTable = "assigned-roles";
|
||||
private namesColumn = 'td[data-label="Name"]:visible';
|
||||
|
||||
|
@ -27,6 +29,16 @@ export default class RoleMappingTab {
|
|||
return this;
|
||||
}
|
||||
|
||||
clickUnAssign() {
|
||||
cy.getId(this.unAssign).click();
|
||||
return this;
|
||||
}
|
||||
|
||||
hideInheritedRoles() {
|
||||
cy.get(this.hide).check();
|
||||
return this;
|
||||
}
|
||||
|
||||
selectRow(name: string) {
|
||||
cy.get(this.namesColumn)
|
||||
.contains(name)
|
||||
|
@ -38,14 +50,18 @@ export default class RoleMappingTab {
|
|||
}
|
||||
|
||||
checkRoles(roleNames: string[]) {
|
||||
cy.getId(this.assignedRolesTable)
|
||||
.get(this.namesColumn)
|
||||
.should((roles) => {
|
||||
for (let index = 0; index < roleNames.length; index++) {
|
||||
const roleName = roleNames[index];
|
||||
expect(roles).to.contain(roleName);
|
||||
}
|
||||
});
|
||||
if (roleNames && roleNames.length) {
|
||||
cy.getId(this.assignedRolesTable)
|
||||
.get(this.namesColumn)
|
||||
.should((roles) => {
|
||||
for (let index = 0; index < roleNames.length; index++) {
|
||||
const roleName = roleNames[index];
|
||||
expect(roles).to.contain(roleName);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
cy.getId(this.assignedRolesTable).should("not.exist");
|
||||
}
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,12 +71,6 @@ export default class CreateClientPage {
|
|||
return this;
|
||||
}
|
||||
|
||||
checkClientTypeRequiredMessage(exist = true) {
|
||||
cy.get(this.clientTypeError).should((!exist ? "not." : "") + "exist");
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
checkClientIdRequiredMessage(exist = true) {
|
||||
cy.get(this.clientIdError).should((!exist ? "not." : "") + "exist");
|
||||
|
||||
|
|
|
@ -10,8 +10,8 @@ export default class GroupModal {
|
|||
}
|
||||
|
||||
fillGroupForm(name = "") {
|
||||
cy.getId(this.nameInput).clear();
|
||||
cy.getId(this.nameInput).type(name);
|
||||
cy.get('[data-testid=groupNameInput]').clear();
|
||||
cy.get('[data-testid=groupNameInput]').type(name);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
export default class MoveGroupModal {
|
||||
private moveButton = "moveGroup";
|
||||
private moveButton = "joinGroup";
|
||||
private title = ".pf-c-modal-box__title";
|
||||
|
||||
clickRow(groupName: string) {
|
||||
|
|
|
@ -20,6 +20,11 @@ export default class AdminClient {
|
|||
});
|
||||
}
|
||||
|
||||
async createRealm(realm: string) {
|
||||
await this.login();
|
||||
await this.client.realms.create({ realm });
|
||||
}
|
||||
|
||||
async deleteRealm(realm: string) {
|
||||
await this.login();
|
||||
await this.client.realms.del({ realm });
|
||||
|
@ -29,6 +34,7 @@ export default class AdminClient {
|
|||
await this.login();
|
||||
await this.client.clients.create(client);
|
||||
}
|
||||
|
||||
async deleteClient(clientName: string) {
|
||||
await this.login();
|
||||
const client = (
|
||||
|
@ -73,4 +79,10 @@ export default class AdminClient {
|
|||
const user = await this.createUser({ username, enabled: true });
|
||||
await this.client.users.addToGroup({ id: user.id!, groupId });
|
||||
}
|
||||
|
||||
async deleteUser(username: string) {
|
||||
await this.login();
|
||||
const user = await this.client.users.find({ username });
|
||||
await this.client.users.del({ id: user[0].id! });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
"@typescript-eslint/eslint-plugin": "^3.8.0",
|
||||
"@typescript-eslint/parser": "^3.8.0",
|
||||
"babel-loader": "^8.1.0",
|
||||
"cypress": "^6.5.0",
|
||||
"cypress": "7.2.0",
|
||||
"decompress": "^4.2.1",
|
||||
"decompress-targz": "^4.1.1",
|
||||
"enzyme": "^3.11.0",
|
||||
|
|
163
yarn.lock
163
yarn.lock
|
@ -5132,12 +5132,7 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.1.tgz#5d93e0a099cd0acd5ef3d5bde3c086e1f49ff68c"
|
||||
integrity sha512-FAYBGwC+W6F9+huFIDtn43cpy7+SzG+atzRiTfdp3inUKL2hXnd4rG8hylJLIh4+hqrQy1P17kvJByE/z825hA==
|
||||
|
||||
"@types/node@12.12.50":
|
||||
version "12.12.50"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.50.tgz#e9b2e85fafc15f2a8aa8fdd41091b983da5fd6ee"
|
||||
integrity sha512-5ImO01Fb8YsEOYpV+aeyGYztcYcjGsBvN4D7G5r1ef2cuQOpymjWNQi5V0rKHE6PC2ru3HkoUr/Br2/8GUA84w==
|
||||
|
||||
"@types/node@^14.0.10":
|
||||
"@types/node@^14.0.10", "@types/node@^14.14.31":
|
||||
version "14.14.43"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.43.tgz#26bcbb0595b305400e8ceaf9a127a7f905ae49c8"
|
||||
integrity sha512-3pwDJjp1PWacPTpH0LcfhgjvurQvrZFBrC6xxjaUEZ7ifUtT32jtjPxEMMblpqd2Mvx+k8haqQJLQxolyGN/cQ==
|
||||
|
@ -5294,7 +5289,7 @@
|
|||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/sinonjs__fake-timers@^6.0.1":
|
||||
"@types/sinonjs__fake-timers@^6.0.2":
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz#3a84cf5ec3249439015e14049bd3161419bf9eae"
|
||||
integrity sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg==
|
||||
|
@ -6139,7 +6134,7 @@ aproba@^1.0.3, aproba@^1.1.1:
|
|||
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
|
||||
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
|
||||
|
||||
arch@^2.1.2:
|
||||
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==
|
||||
|
@ -7135,7 +7130,7 @@ bl@^1.0.0:
|
|||
readable-stream "^2.3.5"
|
||||
safe-buffer "^5.1.1"
|
||||
|
||||
blob-util@2.0.2:
|
||||
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==
|
||||
|
@ -7903,6 +7898,11 @@ 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.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.1.1.tgz#9a32fcefdf7bcdb6f0a7e1c0f8098ec57897b80a"
|
||||
integrity sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ==
|
||||
|
||||
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
|
||||
|
@ -8852,19 +8852,19 @@ cyclist@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
|
||||
integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
|
||||
|
||||
cypress@^6.5.0:
|
||||
version "6.5.0"
|
||||
resolved "https://registry.yarnpkg.com/cypress/-/cypress-6.5.0.tgz#d853d7a8f915f894249a8788294bfba077278c17"
|
||||
integrity sha512-ol/yTAqHrQQpYBjxLlRSvZf4DOb9AhaQNVlwdOZgJcBHZOOa52/p/6/p3PPcvzjWGOMG6Yq0z4G+jrbWyk/9Dg==
|
||||
cypress@7.2.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/cypress/-/cypress-7.2.0.tgz#6a3364e18972f898fff1fb12c1ff747939e45ddc"
|
||||
integrity sha512-lHHGay+YsffDn4M0bkkwezylBVHUpwwhtqte4LNPrFRCHy77X38+1PUe3neFb3glVTM+rbILtTN6FhO2djcOuQ==
|
||||
dependencies:
|
||||
"@cypress/listr-verbose-renderer" "^0.4.1"
|
||||
"@cypress/request" "^2.88.5"
|
||||
"@cypress/xvfb" "^1.2.4"
|
||||
"@types/node" "12.12.50"
|
||||
"@types/sinonjs__fake-timers" "^6.0.1"
|
||||
"@types/node" "^14.14.31"
|
||||
"@types/sinonjs__fake-timers" "^6.0.2"
|
||||
"@types/sizzle" "^2.3.2"
|
||||
arch "^2.1.2"
|
||||
blob-util "2.0.2"
|
||||
arch "^2.2.0"
|
||||
blob-util "^2.0.2"
|
||||
bluebird "^3.7.2"
|
||||
cachedir "^2.3.0"
|
||||
chalk "^4.1.0"
|
||||
|
@ -8872,27 +8872,26 @@ cypress@^6.5.0:
|
|||
cli-table3 "~0.6.0"
|
||||
commander "^5.1.0"
|
||||
common-tags "^1.8.0"
|
||||
dayjs "^1.9.3"
|
||||
dayjs "^1.10.4"
|
||||
debug "4.3.2"
|
||||
eventemitter2 "^6.4.2"
|
||||
execa "^4.0.2"
|
||||
eventemitter2 "^6.4.3"
|
||||
execa "4.1.0"
|
||||
executable "^4.1.1"
|
||||
extract-zip "^1.7.0"
|
||||
fs-extra "^9.0.1"
|
||||
fs-extra "^9.1.0"
|
||||
getos "^3.2.1"
|
||||
is-ci "^2.0.0"
|
||||
is-installed-globally "^0.3.2"
|
||||
is-ci "^3.0.0"
|
||||
is-installed-globally "~0.4.0"
|
||||
lazy-ass "^1.6.0"
|
||||
listr "^0.14.3"
|
||||
lodash "^4.17.19"
|
||||
lodash "^4.17.21"
|
||||
log-symbols "^4.0.0"
|
||||
minimist "^1.2.5"
|
||||
moment "^2.29.1"
|
||||
ospath "^1.2.2"
|
||||
pretty-bytes "^5.4.1"
|
||||
ramda "~0.26.1"
|
||||
pretty-bytes "^5.6.0"
|
||||
ramda "~0.27.1"
|
||||
request-progress "^3.0.0"
|
||||
supports-color "^7.2.0"
|
||||
supports-color "^8.1.1"
|
||||
tmp "~0.2.1"
|
||||
untildify "^4.0.0"
|
||||
url "^0.11.0"
|
||||
|
@ -8946,7 +8945,7 @@ dateformat@~3.0.3:
|
|||
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
|
||||
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
|
||||
|
||||
dayjs@^1.9.3:
|
||||
dayjs@^1.10.4:
|
||||
version "1.10.4"
|
||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2"
|
||||
integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==
|
||||
|
@ -10222,10 +10221,10 @@ etag@^1.8.1, etag@~1.8.1:
|
|||
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
||||
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
|
||||
|
||||
eventemitter2@^6.4.2:
|
||||
version "6.4.3"
|
||||
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.3.tgz#35c563619b13f3681e7eb05cbdaf50f56ba58820"
|
||||
integrity sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ==
|
||||
eventemitter2@^6.4.3:
|
||||
version "6.4.4"
|
||||
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.4.tgz#aa96e8275c4dbeb017a5d0e03780c65612a1202b"
|
||||
integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==
|
||||
|
||||
eventemitter2@~0.4.13:
|
||||
version "0.4.14"
|
||||
|
@ -10267,20 +10266,7 @@ exec-sh@^0.3.2:
|
|||
resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
|
||||
integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
|
||||
|
||||
execa@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
|
||||
integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
|
||||
dependencies:
|
||||
cross-spawn "^6.0.0"
|
||||
get-stream "^4.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@^4.0.0, execa@^4.0.2:
|
||||
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==
|
||||
|
@ -10295,6 +10281,19 @@ execa@^4.0.0, execa@^4.0.2:
|
|||
signal-exit "^3.0.2"
|
||||
strip-final-newline "^2.0.0"
|
||||
|
||||
execa@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
|
||||
integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
|
||||
dependencies:
|
||||
cross-spawn "^6.0.0"
|
||||
get-stream "^4.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@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2"
|
||||
|
@ -11061,7 +11060,7 @@ fs-extra@^9.0.0:
|
|||
jsonfile "^6.0.1"
|
||||
universalify "^1.0.0"
|
||||
|
||||
fs-extra@^9.0.1:
|
||||
fs-extra@^9.0.1, 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==
|
||||
|
@ -11321,12 +11320,12 @@ glob@~5.0.0:
|
|||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
global-dirs@^2.0.1:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d"
|
||||
integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==
|
||||
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 "1.3.7"
|
||||
ini "2.0.0"
|
||||
|
||||
global-modules@2.0.0:
|
||||
version "2.0.0"
|
||||
|
@ -12240,7 +12239,12 @@ inherits@2.0.3:
|
|||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
|
||||
|
||||
ini@1.3.7, ini@^1.3.4, ini@^1.3.5:
|
||||
ini@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
|
||||
integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
|
||||
|
||||
ini@^1.3.4, ini@^1.3.5:
|
||||
version "1.3.7"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
|
||||
integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
|
||||
|
@ -12455,6 +12459,13 @@ is-ci@^2.0.0:
|
|||
dependencies:
|
||||
ci-info "^2.0.0"
|
||||
|
||||
is-ci@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994"
|
||||
integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==
|
||||
dependencies:
|
||||
ci-info "^3.1.1"
|
||||
|
||||
is-color-stop@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
|
||||
|
@ -12609,13 +12620,13 @@ is-hexadecimal@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
|
||||
integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
|
||||
|
||||
is-installed-globally@^0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141"
|
||||
integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==
|
||||
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 "^2.0.1"
|
||||
is-path-inside "^3.0.1"
|
||||
global-dirs "^3.0.0"
|
||||
is-path-inside "^3.0.2"
|
||||
|
||||
is-map@^2.0.1:
|
||||
version "2.0.1"
|
||||
|
@ -12690,10 +12701,10 @@ is-path-inside@^2.1.0:
|
|||
dependencies:
|
||||
path-is-inside "^1.0.2"
|
||||
|
||||
is-path-inside@^3.0.1:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
|
||||
integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==
|
||||
is-path-inside@^3.0.2:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
|
||||
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
|
||||
|
||||
is-plain-obj@^1.0.0:
|
||||
version "1.1.0"
|
||||
|
@ -17145,10 +17156,10 @@ pretty-bytes@^5.1.0:
|
|||
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2"
|
||||
integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==
|
||||
|
||||
pretty-bytes@^5.4.1:
|
||||
version "5.5.0"
|
||||
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e"
|
||||
integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==
|
||||
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-error@^2.1.1:
|
||||
version "2.1.1"
|
||||
|
@ -17481,10 +17492,10 @@ ramda@^0.21.0:
|
|||
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35"
|
||||
integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=
|
||||
|
||||
ramda@~0.26.1:
|
||||
version "0.26.1"
|
||||
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
|
||||
integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
|
||||
ramda@~0.27.1:
|
||||
version "0.27.1"
|
||||
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9"
|
||||
integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==
|
||||
|
||||
randexp@0.4.6:
|
||||
version "0.4.6"
|
||||
|
@ -19866,10 +19877,10 @@ supports-color@^7.0.0, supports-color@^7.1.0:
|
|||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
supports-color@^7.2.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
|
||||
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
|
||||
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"
|
||||
|
||||
|
|
Loading…
Reference in a new issue