diff --git a/cosmos.config.json b/cosmos.config.json index 9c909b0f..cebfc8d5 100644 --- a/cosmos.config.json +++ b/cosmos.config.json @@ -1,5 +1,5 @@ { - "watchDirs": ["src/panel"], + "watchDirs": ["src/panel/!__image_snapshots__"], "webpack": { "configPath": "", "overridePath": "cosmos.override.js" diff --git a/docker-compose.yml b/docker-compose.yml index ad90f543..c479b264 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: working_dir: /app volumes: - .:/app - - node_modules:/app/node_modules + - node_modules:/app/node_modules/ entrypoint: /bin/sh -c command: - yarn --frozen-lockfile && yarn cosmos @@ -22,7 +22,7 @@ services: - USER=root entrypoint: ["/bin/bash", "-c"] command: - - npx wait-on http://cosmos:5000 && yarn run visual-regression-exec + - npx wait-on http://cosmos:5000 && yarn jest --clearCache && yarn run visual-regression-exec depends_on: - cosmos diff --git a/package.json b/package.json index f7bedb6a..253eb89a 100644 --- a/package.json +++ b/package.json @@ -95,9 +95,8 @@ "@types/styled-components": "^5.0.1", "@typescript-eslint/eslint-plugin": "^2.25.0", "@typescript-eslint/parser": "^2.25.0", - "@urql/core": "1.11.0-debug.0", + "@urql/core": "https://pkg.csb.dev/FormidableLabs/urql/commit/888a7149/@urql/core", "@urql/devtools": "1.0.0-dev.1", - "@urql/core": "1.11.0-debug.0", "awesome-typescript-loader": "^5.2.1", "babel-jest": "^25.2.1", "babel-loader": "^8.1.0", diff --git a/src/panel/__image_snapshots__/TimelineDuration - Alive: basic-snap.png b/src/panel/__image_snapshots__/TimelineDuration - Alive: basic-snap.png new file mode 100644 index 00000000..a30b607b Binary files /dev/null and b/src/panel/__image_snapshots__/TimelineDuration - Alive: basic-snap.png differ diff --git a/src/panel/__image_snapshots__/TimelineDuration - Network: error-snap.png b/src/panel/__image_snapshots__/TimelineDuration - Network: error-snap.png new file mode 100644 index 00000000..dc35be3a Binary files /dev/null and b/src/panel/__image_snapshots__/TimelineDuration - Network: error-snap.png differ diff --git a/src/panel/__image_snapshots__/TimelineDuration - Network: fetching-snap.png b/src/panel/__image_snapshots__/TimelineDuration - Network: fetching-snap.png new file mode 100644 index 00000000..7158ff55 Binary files /dev/null and b/src/panel/__image_snapshots__/TimelineDuration - Network: fetching-snap.png differ diff --git a/src/panel/__image_snapshots__/TimelineDuration - Network: success-snap.png b/src/panel/__image_snapshots__/TimelineDuration - Network: success-snap.png new file mode 100644 index 00000000..c7a22356 Binary files /dev/null and b/src/panel/__image_snapshots__/TimelineDuration - Network: success-snap.png differ diff --git a/src/panel/__image_snapshots__/TimelineEvent - addition-snap.png b/src/panel/__image_snapshots__/TimelineEvent - addition-snap.png deleted file mode 100644 index f4c5f86a..00000000 Binary files a/src/panel/__image_snapshots__/TimelineEvent - addition-snap.png and /dev/null differ diff --git a/src/panel/__image_snapshots__/TimelineRequest - error-snap.png b/src/panel/__image_snapshots__/TimelineRequest - error-snap.png deleted file mode 100644 index 9bb6bc32..00000000 Binary files a/src/panel/__image_snapshots__/TimelineRequest - error-snap.png and /dev/null differ diff --git a/src/panel/__image_snapshots__/TimelineRequest - fetching-snap.png b/src/panel/__image_snapshots__/TimelineRequest - fetching-snap.png deleted file mode 100644 index ecedcb9b..00000000 Binary files a/src/panel/__image_snapshots__/TimelineRequest - fetching-snap.png and /dev/null differ diff --git a/src/panel/__image_snapshots__/TimelineRequest - success-snap.png b/src/panel/__image_snapshots__/TimelineRequest - success-snap.png deleted file mode 100644 index 9821c610..00000000 Binary files a/src/panel/__image_snapshots__/TimelineRequest - success-snap.png and /dev/null differ diff --git a/src/panel/__image_snapshots__/TimelineRow - basic-snap.png b/src/panel/__image_snapshots__/TimelineRow - basic-snap.png new file mode 100644 index 00000000..d5876d99 Binary files /dev/null and b/src/panel/__image_snapshots__/TimelineRow - basic-snap.png differ diff --git a/src/panel/__image_snapshots__/TimelineRow - network error-snap.png b/src/panel/__image_snapshots__/TimelineRow - network error-snap.png new file mode 100644 index 00000000..300bbcbd Binary files /dev/null and b/src/panel/__image_snapshots__/TimelineRow - network error-snap.png differ diff --git a/src/panel/__image_snapshots__/TimelineRow - network success-snap.png b/src/panel/__image_snapshots__/TimelineRow - network success-snap.png new file mode 100644 index 00000000..2150cd7d Binary files /dev/null and b/src/panel/__image_snapshots__/TimelineRow - network success-snap.png differ diff --git a/src/panel/context/Timeline.tsx b/src/panel/context/Timeline.tsx index 8aba59e2..a78c8397 100644 --- a/src/panel/context/Timeline.tsx +++ b/src/panel/context/Timeline.tsx @@ -24,7 +24,7 @@ interface TimelineContextValue { startTime: number; } -const TimelineContext = createContext(null as any); +export const TimelineContext = createContext(null as any); export const useTimelineContext = () => useContext(TimelineContext); diff --git a/src/panel/cosmos.decorator.tsx b/src/panel/cosmos.decorator.tsx index 71e9804e..3867b43e 100644 --- a/src/panel/cosmos.decorator.tsx +++ b/src/panel/cosmos.decorator.tsx @@ -20,11 +20,11 @@ const GlobalStyle = createGlobalStyle` } `; -const ThemeDecorator: FC = (props) => ( +export const ThemeDecorator: FC = (props) => ( ); -const DevtoolsDecorator: FC = (props) => ( +export const DevtoolsDecorator: FC = (props) => ( [] = [ }, }, }, + { + type: "debug", + data: { + type: "fetchRequest", + message: "An update occured", + operation: { + key: 1, + }, + }, + }, { type: "debug", data: { @@ -24,6 +34,16 @@ const defaultEvents: DebugEvent[] = [ }, }, }, + { + type: "debug", + data: { + type: "fetchResponse", + message: "The fetch request succeeded", + operation: { + key: 1, + }, + }, + }, { type: "debug", data: { @@ -64,6 +84,26 @@ const defaultEvents: DebugEvent[] = [ }, }, }, + { + type: "debug", + data: { + type: "fetchRequest", + message: "An request was triggered", + operation: { + key: 2, + }, + }, + }, + { + type: "debug", + data: { + type: "fetchError", + message: "An request errored", + operation: { + key: 2, + }, + }, + }, { type: "debug", data: { diff --git a/src/panel/pages/timeline/components/TimelineDuration.fixture.tsx b/src/panel/pages/timeline/components/TimelineDuration.fixture.tsx new file mode 100644 index 00000000..81c32b17 --- /dev/null +++ b/src/panel/pages/timeline/components/TimelineDuration.fixture.tsx @@ -0,0 +1,40 @@ +import React from "react"; +import styled from "styled-components"; +import { + TimelineAliveDuration, + TimelineNetworkDuration, +} from "./TimelineDuration"; + +const Wrapper = styled.div` + display: flex; + padding: 100px; + background: ${(props) => props.theme.dark["0"]}; + flex-grow: 1; + + > :first-child { + width: 100px; + } +`; + +export default { + "Alive: basic": ( + + + + ), + "Network: fetching": ( + + + + ), + "Network: success": ( + + + + ), + "Network: error": ( + + + + ), +}; diff --git a/src/panel/pages/timeline/components/TimelineDuration.tsx b/src/panel/pages/timeline/components/TimelineDuration.tsx index fed65a9f..6618fa86 100644 --- a/src/panel/pages/timeline/components/TimelineDuration.tsx +++ b/src/panel/pages/timeline/components/TimelineDuration.tsx @@ -1,6 +1,43 @@ import styled from "styled-components"; +import React, { FC, ComponentProps } from "react"; +import { useTooltip, TimelineTooltip } from "./TimelineTooltip"; -export const TimelineDuration = styled.div` +export const TimelineAliveDuration = styled.div` height: 20px; background: ${(props) => props.theme.dark["+1"]}; `; + +type NetworkState = "fetching" | "success" | "error"; + +export const NetworkDuration = styled.div` + height: 10px; + + &[data-state="fetching"] { + background: ${(props) => props.theme.blue["-1"]}; + } + + &[data-state="success"] { + background: ${(props) => props.theme.green["0"]}; + } + + &[data-state="error"] { + background: ${(props) => props.theme.red["0"]}; + } +`; + +export const TimelineNetworkDuration: FC< + { state: NetworkState } & ComponentProps +> = ({ state, ...props }) => { + const { ref, tooltipProps, isVisible } = useTooltip(); + + return ( + <> + + {isVisible && ( + + {`Network state: ${state}`} + + )} + + ); +}; diff --git a/src/panel/pages/timeline/components/TimelineNetworkDuration.tsx b/src/panel/pages/timeline/components/TimelineNetworkDuration.tsx new file mode 100644 index 00000000..4a1f31cf --- /dev/null +++ b/src/panel/pages/timeline/components/TimelineNetworkDuration.tsx @@ -0,0 +1,38 @@ +import React, { FC, ComponentProps } from "react"; +import styled from "styled-components"; +import { useTooltip, TimelineTooltip } from "./TimelineTooltip"; + +type NetworkState = "fetching" | "success" | "error"; + +export const NetworkDuration = styled.div` + height: 10px; + + &[data-state="fetching"] { + background: ${(props) => props.theme.blue["-1"]}; + } + + &[data-state="success"] { + background: ${(props) => props.theme.green["0"]}; + } + + &[data-state="error"] { + background: ${(props) => props.theme.red["0"]}; + } +`; + +export const TimelineNetworkDuration: FC< + { state: NetworkState } & ComponentProps +> = ({ state, ...props }) => { + const { ref, tooltipProps, isVisible } = useTooltip(); + + return ( + <> + + {isVisible && ( + + {`Network state: ${state}`} + + )} + + ); +}; diff --git a/src/panel/pages/timeline/components/TimelineRequest.fixture.tsx b/src/panel/pages/timeline/components/TimelineRequest.fixture.tsx deleted file mode 100644 index c3a9f7e3..00000000 --- a/src/panel/pages/timeline/components/TimelineRequest.fixture.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import React from "react"; -import styled from "styled-components"; -import { - ParsedQueryEvent, - ParsedResponseEvent, - ParsedErrorEvent, -} from "../../../types"; -import { TimelineRequest } from "./TimelineRequest"; - -const Wrapper = styled.div` - display: flex; - padding: 100px; - background: ${(props) => props.theme.dark["0"]}; - flex-grow: 1; -`; - -const requestEvent: ParsedQueryEvent = { - type: "query", -} as any; - -const responseEvent: ParsedResponseEvent = { - type: "response", -} as any; - -const errorEvent: ParsedErrorEvent = { - type: "error", -} as any; - -export default { - fetching: ( - - - - ), - success: ( - - - - ), - error: ( - - - - ), -}; diff --git a/src/panel/pages/timeline/components/TimelineRequest.tsx b/src/panel/pages/timeline/components/TimelineRequest.tsx deleted file mode 100644 index a9d60d9b..00000000 --- a/src/panel/pages/timeline/components/TimelineRequest.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import React, { FC, useMemo, useContext } from "react"; -import styled, { ThemeContext } from "styled-components"; -import { - ParsedMutationEvent, - ParsedQueryEvent, - ParsedSubscriptionEvent, - ParsedResponseEvent, - ParsedErrorEvent, -} from "../../../types"; -import { useTooltip, TimelineTooltip } from "./TimelineTooltip"; - -interface TimelineRequestProps { - trigger: ParsedMutationEvent | ParsedQueryEvent | ParsedSubscriptionEvent; - response?: ParsedResponseEvent | ParsedErrorEvent; -} - -/** Convert parsed event to timeline event type. */ -const getResponseName = (response: TimelineRequestProps["response"]) => { - return !response - ? "fetching" - : response.type === "response" - ? "success" - : "error"; -}; - -const RequestBar = styled.div` - width: 10px; - height: 40px; - background: ${(props) => props.color}; -`; - -export const TimelineRequest: FC = ({ - response, - ...elementProps -}) => { - const theme = useContext(ThemeContext); - const { ref, tooltipProps, isVisible } = useTooltip(); - const responseName = useMemo(() => getResponseName(response), [response]); - - const responseColor = useMemo( - () => - ({ - fetching: theme.blue["0"], - success: theme.green["0"], - error: theme.red["0"], - }[responseName]), - [responseName, theme] - ); - - return ( - <> - - {isVisible && ( - - {`Request: ${responseName}`} - - )} - - ); -}; diff --git a/src/panel/pages/timeline/components/TimelineRow.fixture.tsx b/src/panel/pages/timeline/components/TimelineRow.fixture.tsx new file mode 100644 index 00000000..7381057f --- /dev/null +++ b/src/panel/pages/timeline/components/TimelineRow.fixture.tsx @@ -0,0 +1,161 @@ +import React from "react"; +import styled from "styled-components"; +import { scaleLinear } from "d3-scale"; +import { TimelineContext } from "../../../context"; +import { TimelineRow } from "./TimelineRow"; + +const Wrapper = styled.div` + display: flex; + flex-grow: 1; + padding: 20px; + flex-direction: column; + background: ${(props) => props.theme.dark["0"]}; +`; + +const Viewport = styled.div` + display: flex; + flex-direction: column; + position: relative; + max-width: 300px; +`; + +const context = { + container: { + clientWidth: 300, + }, + scale: scaleLinear() + .domain([Date.now(), Date.now() + 30000]) + .range([0, 300]), +} as any; + +export default { + basic: ( + + + + + + + + ), + "network success": ( + + + + + + + + ), + "network error": ( + + + + + + + + ), + "network fetching": ( + + + + + + + + ), +}; diff --git a/src/panel/pages/timeline/components/TimelineRow.test.tsx b/src/panel/pages/timeline/components/TimelineRow.test.tsx new file mode 100644 index 00000000..56e44499 --- /dev/null +++ b/src/panel/pages/timeline/components/TimelineRow.test.tsx @@ -0,0 +1,24 @@ +jest.mock("./TimelineEvent", () => ({ + TimelineEvent: () => <>TimelineEvent /* eslint-disable-line */, +})); +import React from "react"; +import { mount } from "enzyme"; +import { ThemeDecorator } from "../../../cosmos.decorator"; +// import fixtures from "./TimelineRow.fixture"; + +const dateNow = jest.spyOn(Date, "now"); + +beforeAll(() => { + dateNow.mockReturnValue(3000); +}); + +// This fixture is variable (dependent on Date.now) so we need to snapshot it in jest +describe("on fetching", () => { + it("matches snapshot", () => { + const fixtures = require("./TimelineRow.fixture").default; + const wrapper = mount( + {fixtures["network fetching"]} + ); + expect(wrapper).toMatchSnapshot(); + }); +}); diff --git a/src/panel/pages/timeline/components/TimelineRow.tsx b/src/panel/pages/timeline/components/TimelineRow.tsx index 2c7f156d..90ebf640 100644 --- a/src/panel/pages/timeline/components/TimelineRow.tsx +++ b/src/panel/pages/timeline/components/TimelineRow.tsx @@ -1,18 +1,26 @@ -import React, { FC, useMemo } from "react"; +import React, { FC, useMemo, ComponentProps } from "react"; import styled from "styled-components"; import { DebugEvent } from "@urql/core"; import { useTimelineContext } from "../../../context"; import { TimelineEvent } from "./TimelineEvent"; -import { TimelineDuration } from "./TimelineDuration"; +import { + TimelineAliveDuration, + TimelineNetworkDuration, +} from "./TimelineDuration"; -export const TimelineRow: FC<{ events: DebugEvent[] }> = ({ - events, -}) => { +export const TimelineRow: FC< + { events: DebugEvent[] } & ComponentProps +> = ({ events, ...props }) => { const { container, scale, setSelectedEvent } = useTimelineContext(); const eventElements = useMemo( () => events.reduce((p, e) => { + // Temporary filter until filtering is added + if (!["execution", "update", "teardown"].includes(e.type)) { + return p; + } + return [ ...p, [] }> = ({ ); const durationElements = useMemo(() => { - let eventStart: number | undefined; + type ReduceState = { elements: JSX.Element[]; start: number | undefined }; - const mostEvents = events.reduce((p, e) => { - // First event to start timeline duration - if (eventStart === undefined && e.type !== "teardown") { - eventStart = e.timestamp; + // Network durations + const reduceNetwork = ( + p: ReduceState, + e: DebugEvent + ) => { + // Request started + if (p.start === undefined && e.type === "fetchRequest") { + return { + ...p, + start: e.timestamp, + }; + } + + // Safety condition - shouldn't occur + if (!p.start) { return p; } + // Response + if (e.type === "fetchResponse") { + return { + start: undefined, + elements: [ + ...p.elements, + , + ], + }; + } + + if (e.type === "fetchError" || e.type === "teardown") { + return { + start: undefined, + elements: [ + ...p.elements, + , + ], + }; + } + + return p; + }; + + // Alive durations + const reduceAlive = ( + p: ReduceState, + e: DebugEvent + ) => { + // First event to start timeline duration + if (p.start === undefined && e.type !== "teardown") { + return { + ...p, + start: e.timestamp, + }; + } + // End of timeline duration - if (eventStart && e.type === "teardown") { - const newDuration = ( - , + ], + }; + } + + return p; + }; + + const reducedDurations = events.reduce<{ + alive: ReduceState; + network: ReduceState; + }>( + (p, e) => ({ + network: reduceNetwork(p.network, e), + alive: reduceAlive(p.alive, e), + }), + { + alive: { start: undefined, elements: [] }, + network: { start: undefined, elements: [] }, + } + ); + + const finalAliveDuration = reducedDurations.alive.start + ? [ + - ); - eventStart = undefined; - return [...p, newDuration]; - } + />, + ] + : []; - return p; - }, []); - - // Currently unclosed duration - if (eventStart) { - return [ - ...mostEvents, - , - ]; - } - - return mostEvents; + const finalNetworkDuration = reducedDurations.network.start + ? [ + , + ] + : []; + + return [ + ...reducedDurations.alive.elements, + ...finalAliveDuration, + ...reducedDurations.network.elements, + ...finalNetworkDuration, + ]; }, [events, scale, container.clientWidth]); return ( - + <>{durationElements} <>{eventElements} diff --git a/src/panel/pages/timeline/components/__snapshots__/TimelineRow.test.tsx.snap b/src/panel/pages/timeline/components/__snapshots__/TimelineRow.test.tsx.snap new file mode 100644 index 00000000..0053e5b9 --- /dev/null +++ b/src/panel/pages/timeline/components/__snapshots__/TimelineRow.test.tsx.snap @@ -0,0 +1,225 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`on fetching matches snapshot 1`] = ` +.c4 { + height: 20px; + background: #2e3240; +} + +.c5 { + height: 10px; +} + +.c5[data-state="fetching"] { + background: #0084D1; +} + +.c5[data-state="success"] { + background: #2DAF7E; +} + +.c5[data-state="error"] { + background: #EE6352; +} + +.c3 { + position: relative; + height: 20px; + padding-top: 8px; + margin-top: 30px; +} + +.c3 + .c2 { + margin-top: 8px; +} + +.c0 { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + padding: 20px; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + background: #1C1E26; +} + +.c1 { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + position: relative; + max-width: 300px; +} + + + + +
+ +
+ + +
+ +
+ + + +
+ + + + TimelineEvent + +
+ + +
+ +
+ + + +`; diff --git a/src/setupTests.ts b/src/setupTests.ts index 5f10d81a..0b3f99e3 100644 --- a/src/setupTests.ts +++ b/src/setupTests.ts @@ -14,6 +14,7 @@ declare const global: { browser: puppeteer.Browser; page: puppeteer.Page; matchMedia: any; + ResizeObserver: ResizeObserver; }; declare const jasmine: jest.MatcherContext; @@ -22,9 +23,14 @@ declare const jasmine: jest.MatcherContext; // Setup enzyme configure({ adapter: new Adapter() }); - // Setup matchMedia mock + global.ResizeObserver = function ResizeObserver() { + return { + observe: jest.fn(), + disconnect: jest.fn(), + unobserve: jest.fn(), + }; + } as any; global.matchMedia = jest.fn(); - global.chrome = { devtools: { inspectedWindow: { diff --git a/yarn.lock b/yarn.lock index 0232081d..f92cefe3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1002,33 +1002,33 @@ jest-util "^25.2.3" slash "^3.0.0" -"@jest/core@^25.2.3": - version "25.2.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.2.3.tgz#2fd37ce0e6ad845e058dcd8245f2745490df1bc0" - integrity sha512-Ifz3aEkGvZhwijLMmWa7sloZVEMdxpzjFv3CKHv3eRYRShTN8no6DmyvvxaZBjLalOlRalJ7HDgc733J48tSuw== +"@jest/core@^25.2.4": + version "25.2.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.2.4.tgz#382ef80369d3311f1df79db1ee19e958ae95cdad" + integrity sha512-WcWYShl0Bqfcb32oXtjwbiR78D/djhMdJW+ulp4/bmHgeODcsieqUJfUH+kEv8M7VNV77E6jds5aA+WuGh1nmg== dependencies: "@jest/console" "^25.2.3" - "@jest/reporters" "^25.2.3" - "@jest/test-result" "^25.2.3" - "@jest/transform" "^25.2.3" + "@jest/reporters" "^25.2.4" + "@jest/test-result" "^25.2.4" + "@jest/transform" "^25.2.4" "@jest/types" "^25.2.3" ansi-escapes "^4.2.1" chalk "^3.0.0" exit "^0.1.2" graceful-fs "^4.2.3" jest-changed-files "^25.2.3" - jest-config "^25.2.3" + jest-config "^25.2.4" jest-haste-map "^25.2.3" - jest-message-util "^25.2.3" + jest-message-util "^25.2.4" jest-regex-util "^25.2.1" jest-resolve "^25.2.3" - jest-resolve-dependencies "^25.2.3" - jest-runner "^25.2.3" - jest-runtime "^25.2.3" - jest-snapshot "^25.2.3" + jest-resolve-dependencies "^25.2.4" + jest-runner "^25.2.4" + jest-runtime "^25.2.4" + jest-snapshot "^25.2.4" jest-util "^25.2.3" jest-validate "^25.2.3" - jest-watcher "^25.2.3" + jest-watcher "^25.2.4" micromatch "^4.0.2" p-each-series "^2.1.0" realpath-native "^2.0.0" @@ -1046,12 +1046,12 @@ "@jest/types" "^24.9.0" jest-mock "^24.9.0" -"@jest/environment@^25.2.3": - version "25.2.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.2.3.tgz#32b3f216355b03e9449b93b62584c18934a2cc4a" - integrity sha512-zRypAMQnNo8rD0rCbI9+5xf+Lu+uvunKZNBcIWjb3lTATSomKbgYO+GYewGDYn7pf+30XCNBc6SH1rnBUN1ioA== +"@jest/environment@^25.2.4": + version "25.2.4" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.2.4.tgz#74f4d8dd87b427434d0b822cde37bc0e78f3e28b" + integrity sha512-wA4xlhD19/gukkDpJ5HQsTle0pgnzI5qMFEjw267lpTDC8d9N7Ihqr5pI+l0p8Qn1SQhai+glSqxrGdzKy4jxw== dependencies: - "@jest/fake-timers" "^25.2.3" + "@jest/fake-timers" "^25.2.4" "@jest/types" "^25.2.3" jest-mock "^25.2.3" @@ -1064,26 +1064,26 @@ jest-message-util "^24.9.0" jest-mock "^24.9.0" -"@jest/fake-timers@^25.2.3": - version "25.2.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.2.3.tgz#808a8a761be3baac719311f8bde1362bd1861e65" - integrity sha512-B6Qxm86fl613MV8egfvh1mRTMu23hMNdOUjzPhKl/4Nm5cceHz6nwLn0nP0sJXI/ue1vu71aLbtkgVBCgc2hYA== +"@jest/fake-timers@^25.2.4": + version "25.2.4" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.2.4.tgz#6821b6edde74fda2a42467ae92cc93095d4c9527" + integrity sha512-oC1TJiwfMcBttVN7Wz+VZnqEAgYTiEMu0QLOXpypR89nab0uCB31zm/QeBZddhSstn20qe3yqOXygp6OwvKT/Q== dependencies: "@jest/types" "^25.2.3" - jest-message-util "^25.2.3" + jest-message-util "^25.2.4" jest-mock "^25.2.3" jest-util "^25.2.3" lolex "^5.0.0" -"@jest/reporters@^25.2.3": - version "25.2.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.2.3.tgz#824e922ea56686d0243c910559c36adacdd2081c" - integrity sha512-S0Zca5e7tTfGgxGRvBh6hktNdOBzqc6HthPzYHPRFYVW81SyzCqHTaNZydtDIVehb9s6NlyYZpcF/I2vco+lNw== +"@jest/reporters@^25.2.4": + version "25.2.4" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.2.4.tgz#aa01c20aab217150d3a6080d5c98ce0bf34b17ed" + integrity sha512-VHbLxM03jCc+bTLOluW/IqHR2G0Cl0iATwIQbuZtIUast8IXO4fD0oy4jpVGpG5b20S6REA8U3BaQoCW/CeVNQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^25.2.3" - "@jest/test-result" "^25.2.3" - "@jest/transform" "^25.2.3" + "@jest/test-result" "^25.2.4" + "@jest/transform" "^25.2.4" "@jest/types" "^25.2.3" chalk "^3.0.0" collect-v8-coverage "^1.0.0" @@ -1133,26 +1133,26 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-result@^25.2.3": - version "25.2.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.2.3.tgz#db6028427514702c739dda66528dfbcc7fb8cdf4" - integrity sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w== +"@jest/test-result@^25.2.4": + version "25.2.4" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.2.4.tgz#8fc9eac58e82eb2a82e4058e68c3814f98f59cf5" + integrity sha512-AI7eUy+q2lVhFnaibDFg68NGkrxVWZdD6KBr9Hm6EvN0oAe7GxpEwEavgPfNHQjU2mi6g+NsFn/6QPgTUwM1qg== dependencies: "@jest/console" "^25.2.3" - "@jest/transform" "^25.2.3" + "@jest/transform" "^25.2.4" "@jest/types" "^25.2.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^25.2.3": - version "25.2.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.2.3.tgz#1400e0e994904844567e6e33c87062cbdf1f3e99" - integrity sha512-trHwV/wCrxWyZyNyNBUQExsaHyBVQxJwH3butpEcR+KBJPfaTUxtpXaxfs38IXXAhH68J4kPZgAaRRfkFTLunA== +"@jest/test-sequencer@^25.2.4": + version "25.2.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.2.4.tgz#28364aeddec140c696324114f63570f3de536c87" + integrity sha512-TEZm/Rkd6YgskdpTJdYLBtu6Gc11tfWPuSpatq0duH77ekjU8dpqX2zkPdY/ayuHxztV5LTJoV5BLtI9mZfXew== dependencies: - "@jest/test-result" "^25.2.3" + "@jest/test-result" "^25.2.4" jest-haste-map "^25.2.3" - jest-runner "^25.2.3" - jest-runtime "^25.2.3" + jest-runner "^25.2.4" + jest-runtime "^25.2.4" "@jest/transform@^24.9.0": version "24.9.0" @@ -1176,10 +1176,10 @@ source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/transform@^25.2.3": - version "25.2.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.2.3.tgz#f090bdd91f54b867631a76959f2b2fc566534ffe" - integrity sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw== +"@jest/transform@^25.2.4": + version "25.2.4" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.2.4.tgz#34336f37f13f62f7d1f5b93d5d150ba9eb3e11b9" + integrity sha512-6eRigvb+G6bs4kW5j1/y8wu4nCrmVuIe0epPBbiWaYlwawJ8yi1EIyK3d/btDqmBpN5GpN4YhR6iPPnDmkYdTA== dependencies: "@babel/core" "^7.1.0" "@jest/types" "^25.2.3" @@ -1413,6 +1413,11 @@ "@types/react" "*" hoist-non-react-statics "^3.3.0" +"@types/html-minifier-terser@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.0.0.tgz#7532440c138605ced1b555935c3115ddd20e8bef" + integrity sha512-q95SP4FdkmF0CwO0F2q0H6ZgudsApaY/yCtAQNRn1gduef5fGpyEphzy0YCq/N0UFvDSnLg5V8jFK/YGXlDiCw== + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" @@ -1475,9 +1480,9 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "12.12.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.31.tgz#d6b4f9645fee17f11319b508fb1001797425da51" - integrity sha512-T+wnJno8uh27G9c+1T+a1/WYCHzLeDqtsGJkoEdSp2X8RTh3oOCZQcUnjAx90CS8cmmADX51O0FI/tu9s0yssg== + version "13.9.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.5.tgz#59738bf30b31aea1faa2df7f4a5f55613750cf00" + integrity sha512-hkzMMD3xu6BrJpGVLeQ3htQQNAcOrJjX7WFmtK8zWQpz2UJf13LCFF2ALA7c9OVdvc2vQJeDdjfR35M0sBCxvw== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1516,9 +1521,9 @@ "@types/react" "*" "@types/react-native@*": - version "0.61.23" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.61.23.tgz#bff4e0311c229a5203eb37aacd4febf59f3e2980" - integrity sha512-upHmySsrVBDBokWWhYIKkKnpvadsHdioSjbBTu4xl7fjN0yb94KR5ngUOBXsyqAYqQzF+hP6qpvobG9M7Jr6hw== + version "0.62.0" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.62.0.tgz#d3e69ea279cd3452616933672dcaa389ca1fb15a" + integrity sha512-EOuX8I9XGeVOl9f9wvSGF97dwi8sOhj6fsXUsvyG3H+QW3FlOIeKwSsFyJF8KrdCOQf6idECtDRK6+AHgWKs+w== dependencies: "@types/react" "*" @@ -1540,9 +1545,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^16.9.25": - version "16.9.26" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.26.tgz#1e55803e468f5393413e29033538cc9aaed6cec9" - integrity sha512-dGuSM+B0Pq1MKXYUMlUQWeS6Jj9IhSAUf9v8Ikaimj+YhkBcQrihWBkmyEhK/1fzkJTwZQkhZp5YhmWa2CH+Rw== + version "16.9.27" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.27.tgz#7fc5db99e3ec3f21735b44d3560cff684856814a" + integrity sha512-j+RvQb9w7a2kZFBOgTh+s/elCwtqWUMN6RJNdmz0ntmwpeoMHKnyhUcmYBu7Yw94Rtj9938D+TJSn6WGcq2+OA== dependencies: "@types/prop-types" "*" csstype "^2.2.0" @@ -1572,7 +1577,7 @@ "@types/react-native" "*" csstype "^2.2.0" -"@types/tapable@*": +"@types/tapable@*", "@types/tapable@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.5.tgz#9adbc12950582aa65ead76bffdf39fe0c27a3c02" integrity sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ== @@ -1600,10 +1605,10 @@ "@types/source-list-map" "*" source-map "^0.6.1" -"@types/webpack@^4.4.31": - version "4.41.8" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.8.tgz#d2244f5f612ee30230a5c8c4ae678bce90d27277" - integrity sha512-mh4litLHTlDG84TGCFv1pZldndI34vkrW9Mks++Zx4KET7DRMoCXUvLbTISiuF4++fMgNnhV9cc1nCXJQyBYbQ== +"@types/webpack@^4.4.31", "@types/webpack@^4.41.8": + version "4.41.9" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.9.tgz#f0ed8d46d69efe11573441f8eb112d934fc4efe9" + integrity sha512-R68AotLGtaVL6HGfZRvEyYKsWcMv0CBFfSr4gxoYzhMn3LnjLV/ksP4dNi9de8dVG+Dn/GuDr1NwB/sDApB3pA== dependencies: "@types/anymatch" "*" "@types/node" "*" @@ -1674,17 +1679,9 @@ semver "^6.3.0" tsutils "^3.17.1" -"@urql/core@1.11.0-debug.0": - version "1.11.0-debug.0" - resolved "https://registry.yarnpkg.com/@urql/core/-/core-1.11.0-debug.0.tgz#e1ddc930ae2d47b3c81f1ad68facd4196842f89e" - integrity sha512-T2vp4YY1MBVej96bPl7LrFhXDg3XbKLI+A+oXwgMHqemKtiAvEwvUonYUgaJkvXYN1uAZJkB5P+KGfFt5m1eMQ== - dependencies: - wonka "^4.0.9" - -"@urql/core@^1.10.5": +"@urql/core@^1.10.5", "@urql/core@https://pkg.csb.dev/FormidableLabs/urql/commit/888a7149/@urql/core": version "1.10.7" - resolved "https://registry.yarnpkg.com/@urql/core/-/core-1.10.7.tgz#4632088a9abd5884e08726242261ea39d3cdda40" - integrity sha512-KOeX6TpU0ui7WDaP3ZgXJnRRPbjPz31jECYixgc+vxo7rQVVFkRkB7qzfusYzeCYAruMz7vzoOPT22UTxKcU/g== + resolved "https://pkg.csb.dev/FormidableLabs/urql/commit/888a7149/@urql/core#e0fbb339801d48b2b25eae35203a41721b7c6afc" dependencies: wonka "^4.0.9" @@ -1839,9 +1836,9 @@ "@xtuc/long" "4.2.2" "@wry/equality@^0.1.2": - version "0.1.9" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.9.tgz#b13e18b7a8053c6858aa6c85b54911fb31e3a909" - integrity sha512-mB6ceGjpMGz1ZTza8HYnrPGos2mC6So4NhS1PtZ8s4Qt0K7fBiIGhpSxUbQmhwcSWE3no+bYxmI2OL6KuXYmoQ== + version "0.1.11" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" + integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== dependencies: tslib "^1.9.3" @@ -2508,12 +2505,12 @@ babel-code-frame@^6.16.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-jest@^25.2.1, babel-jest@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.2.3.tgz#8f1c088b1954963e8a5384be2e219dae00d053f4" - integrity sha512-03JjvEwuDrEz/A45K8oggAv+Vqay0xcOdNTJxYFxiuZvB5vlHKo1iZg9Pi5vQTHhNCKpGLb7L/jvUUafyh9j7g== +babel-jest@^25.2.1, babel-jest@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.2.4.tgz#b21b68d3af8f161c3e6e501e91f0dea8e652e344" + integrity sha512-+yDzlyJVWrqih9i2Cvjpt7COaN8vUwCsKGtxJLzg6I0xhxD54K8mvDUCliPKLufyzHh/c5C4MRj4Vk7VMjOjIg== dependencies: - "@jest/transform" "^25.2.3" + "@jest/transform" "^25.2.4" "@jest/types" "^25.2.3" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^6.0.0" @@ -3803,9 +3800,9 @@ cssstyle@^2.0.0: cssom "~0.3.6" csstype@^2.2.0, csstype@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" - integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== + version "2.6.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" + integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== cyclist@^1.0.1: version "1.0.1" @@ -4281,9 +4278,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.380: - version "1.3.387" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.387.tgz#420677629c9791b5d36fc8847c8cc11c0934a6cb" - integrity sha512-jjQ6WkxrOu0rtGqY9/74Z+UEVQ7YmJU2rCX6kH4eidKP0ZK0VKB3/i1avXQ+EDwJAABKGaOAbJrcyz18P8E3aA== + version "1.3.390" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.390.tgz#a49e67dea22e52ea8027c475dd5447b1c00b1d4e" + integrity sha512-4RvbM5x+002gKI8sltkqWEk5pptn0UnzekUx8RTThAMPDSb8jjpm6SwGiSnEve7f85biyZl8DMXaipaCxDjXag== elegant-spinner@^1.0.1: version "1.0.1" @@ -4495,7 +4492,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4: +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4, es-abstract@^1.17.5: version "1.17.5" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== @@ -4651,17 +4648,17 @@ eslint-import-resolver-node@^0.3.2: resolve "^1.13.1" eslint-module-utils@^2.4.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz#7878f7504824e1b857dd2505b59a8e5eda26a708" - integrity sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q== + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== dependencies: debug "^2.6.9" pkg-dir "^2.0.0" eslint-plugin-import@^2.20.1: - version "2.20.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" - integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw== + version "2.20.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" + integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== dependencies: array-includes "^3.0.3" array.prototype.flat "^1.2.1" @@ -5031,16 +5028,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-25.2.3.tgz#ee714f82bf33c43466fcef139ace0a57b3d0aa48" - integrity sha512-kil4jFRFAK2ySyCyXPqYrphc3EiiKKFd9BthrkKAyHcqr1B84xFTuj5kO8zL+eHRRjT2jQsOPExO0+1Q/fuUXg== +expect@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.2.4.tgz#b66e0777c861034ebc21730bb34e1839d5d46806" + integrity sha512-hfuPhPds4yOsZtIw4kwAg70r0hqGmpqekgA+VX7pf/3wZ6FY+xIOXZhNsPMMMsspYG/YIsbAiwqsdnD4Ht+bCA== dependencies: "@jest/types" "^25.2.3" ansi-styles "^4.0.0" jest-get-type "^25.2.1" jest-matcher-utils "^25.2.3" - jest-message-util "^25.2.3" + jest-message-util "^25.2.4" jest-regex-util "^25.2.1" express@^4.17.1: @@ -5381,9 +5378,9 @@ flatstr@^1.0.12: integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== fluent-syntax@0.13.0: version "0.13.0" @@ -5399,9 +5396,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.10.0.tgz#01f5263aee921c6a54fb91667f08f4155ce169eb" - integrity sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ== + version "1.11.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" + integrity sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA== dependencies: debug "^3.0.0" @@ -6076,9 +6073,9 @@ html-entities@^1.2.0: integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= html-escaper@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.1.tgz#beed86b5d2b921e92533aa11bce6d8e3b583dee7" - integrity sha512-hNX23TjWwD3q56HpWjUHOKj1+4KKlnjv9PcmBUYKVpga+2cnb9nDx/B1o0yO4n+RZXZdiNxzx6B24C9aNMTkkQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== html-minifier-terser@^5.0.1: version "5.0.5" @@ -6094,10 +6091,13 @@ html-minifier-terser@^5.0.1: terser "^4.6.3" html-webpack-plugin@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.2.tgz#c96a48d0ee53d33dcc909d6b65ad28f3d627efd4" - integrity sha512-dCyjg2dEBf0Azni2byDcwfk5l5XKNEnA3OU4cejovqkKGc4ZixC6Aw6+U2sAG/ellHIjoiQhyU4oKMO6fQFaYA== + version "4.0.3" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.3.tgz#70659c8836210249cb6fa9dd6706a957547666d5" + integrity sha512-XCm5MGK6Yv/ey30fbhqjKIGm1r6G1HxmNorJ/xUdL/Zj3mOLtb9ZHEEIw0e4h3VzgyUrp8szCJh3VN9z1LNx7A== dependencies: + "@types/html-minifier-terser" "^5.0.0" + "@types/tapable" "^1.0.5" + "@types/webpack" "^4.41.8" html-minifier-terser "^5.0.1" loader-utils "^1.2.3" lodash "^4.17.15" @@ -6931,41 +6931,41 @@ jest-changed-files@^25.2.3: execa "^3.2.0" throat "^5.0.0" -jest-cli@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.2.3.tgz#47e17240ce6d8ce824ca1a01468ea8824ec6b139" - integrity sha512-T7G0TOkFj0wr33ki5xoq3bxkKC+liwJfjV9SmYIKBozwh91W4YjL1o1dgVCUTB1+sKJa/DiAY0p+eXYE6v2RGw== +jest-cli@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.2.4.tgz#021c2383904696597abc060dcb133c82ebd8bfcc" + integrity sha512-zeY2pRDWKj2LZudIncvvguwLMEdcnJqc2jJbwza1beqi80qqLvkPF/BjbFkK2sIV3r+mfTJS+7ITrvK6pCdRjg== dependencies: - "@jest/core" "^25.2.3" - "@jest/test-result" "^25.2.3" + "@jest/core" "^25.2.4" + "@jest/test-result" "^25.2.4" "@jest/types" "^25.2.3" chalk "^3.0.0" exit "^0.1.2" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^25.2.3" + jest-config "^25.2.4" jest-util "^25.2.3" jest-validate "^25.2.3" prompts "^2.0.1" realpath-native "^2.0.0" yargs "^15.3.1" -jest-config@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.2.3.tgz#c304e91e2ba3763c04b38eafc26d30e5c41b48e8" - integrity sha512-UpTNxN8DgmLLCXFizGuvwIw+ZAPB0T3jbKaFEkzJdGqhSsQrVrk1lxhZNamaVIpWirM2ptYmqwUzvoobGCEkiQ== +jest-config@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.2.4.tgz#f4f33238979f225683179c89d1e402893008975d" + integrity sha512-fxy3nIpwJqOUQJRVF/q+pNQb6dv5b9YufOeCbpPZJ/md1zXpiupbhfehpfODhnKOfqbzSiigtSLzlWWmbRxnqQ== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^25.2.3" + "@jest/test-sequencer" "^25.2.4" "@jest/types" "^25.2.3" - babel-jest "^25.2.3" + babel-jest "^25.2.4" chalk "^3.0.0" deepmerge "^4.2.2" glob "^7.1.1" - jest-environment-jsdom "^25.2.3" - jest-environment-node "^25.2.3" + jest-environment-jsdom "^25.2.4" + jest-environment-node "^25.2.4" jest-get-type "^25.2.1" - jest-jasmine2 "^25.2.3" + jest-jasmine2 "^25.2.4" jest-regex-util "^25.2.1" jest-resolve "^25.2.3" jest-util "^25.2.3" @@ -7002,25 +7002,25 @@ jest-each@^25.2.3: jest-util "^25.2.3" pretty-format "^25.2.3" -jest-environment-jsdom@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.2.3.tgz#f790f87c24878b219d1745f68343380c2d79ab01" - integrity sha512-TLg7nizxIYJafz6tOBAVSmO5Ekswf6Cf3Soseov+mgonXfdYi1I0OZlHlZMJb2fGyXem2ndYFCLrMkwcWPKAnQ== +jest-environment-jsdom@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.2.4.tgz#f2783541d0538b1bc43641703372cea6a2e83611" + integrity sha512-5dm+tNwrLmhELdjAwiQnVGf/U9iFMWdTL4/wyrMg2HU6RQnCiuxpWbIigLHUhuP1P2Ak0F4k3xhjrikboKyShA== dependencies: - "@jest/environment" "^25.2.3" - "@jest/fake-timers" "^25.2.3" + "@jest/environment" "^25.2.4" + "@jest/fake-timers" "^25.2.4" "@jest/types" "^25.2.3" jest-mock "^25.2.3" jest-util "^25.2.3" jsdom "^15.2.1" -jest-environment-node@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.2.3.tgz#e50a7e84bf7c7555216aa41aea1e48f53773318f" - integrity sha512-Tu/wlGXfoLtBR4Ym+isz58z3TJkMYX4VnFTkrsxaTGYAxNLN7ArCwL51Ki0WrMd89v+pbCLDj/hDjrb4a2sOrw== +jest-environment-node@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.2.4.tgz#dc211dfb0d8b66dfc1965a8f846e72e54ff0c430" + integrity sha512-Jkc5Y8goyXPrLRHnrUlqC7P4o5zn2m4zw6qWoRJ59kxV1f2a5wK+TTGhrhCwnhW/Ckpdl/pm+LufdvhJkvJbiw== dependencies: - "@jest/environment" "^25.2.3" - "@jest/fake-timers" "^25.2.3" + "@jest/environment" "^25.2.4" + "@jest/fake-timers" "^25.2.4" "@jest/types" "^25.2.3" jest-mock "^25.2.3" jest-util "^25.2.3" @@ -7083,25 +7083,25 @@ jest-image-snapshot@^3.0.1: pngjs "^3.4.0" rimraf "^2.6.2" -jest-jasmine2@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.2.3.tgz#a824c5dbe383c63d243aab5e64cc85ab65f87598" - integrity sha512-x9PEGPFdnkSwJj1UG4QxG9JxFdyP8fuJ/UfKXd/eSpK8w9x7MP3VaQDuPQF0UQhCT0YeOITEPkQyqS+ptt0suA== +jest-jasmine2@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.2.4.tgz#5f77de83e1027f0c7588137055a80da773872374" + integrity sha512-juoKrmNmLwaheNbAg71SuUF9ovwUZCFNTpKVhvCXWk+SSeORcIUMptKdPCoLXV3D16htzhTSKmNxnxSk4SrTjA== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^25.2.3" + "@jest/environment" "^25.2.4" "@jest/source-map" "^25.2.1" - "@jest/test-result" "^25.2.3" + "@jest/test-result" "^25.2.4" "@jest/types" "^25.2.3" chalk "^3.0.0" co "^4.6.0" - expect "^25.2.3" + expect "^25.2.4" is-generator-fn "^2.0.0" jest-each "^25.2.3" jest-matcher-utils "^25.2.3" - jest-message-util "^25.2.3" - jest-runtime "^25.2.3" - jest-snapshot "^25.2.3" + jest-message-util "^25.2.4" + jest-runtime "^25.2.4" + jest-snapshot "^25.2.4" jest-util "^25.2.3" pretty-format "^25.2.3" throat "^5.0.0" @@ -7138,13 +7138,13 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" -jest-message-util@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.2.3.tgz#a911c4e3af06df851cc6065d9a3119fd2a3aa240" - integrity sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw== +jest-message-util@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.2.4.tgz#b1441b9c82f5c11fc661303cbf200a2f136a7762" + integrity sha512-9wWMH3Bf+GVTv0GcQLmH/FRr0x0toptKw9TA8U5YFLVXx7Tq9pvcNzTyJrcTJ+wLqNbMPPJlJNft4MnlcrtF5Q== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^25.2.3" + "@jest/test-result" "^25.2.4" "@jest/types" "^25.2.3" "@types/stack-utils" "^1.0.1" chalk "^3.0.0" @@ -7181,14 +7181,14 @@ jest-regex-util@^25.2.1: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.1.tgz#db64b0d15cd3642c93b7b9627801d7c518600584" integrity sha512-wroFVJw62LdqTdkL508ZLV82FrJJWVJMIuYG7q4Uunl1WAPTf4ftPKrqqfec4SvOIlvRZUdEX2TFpWR356YG/w== -jest-resolve-dependencies@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.3.tgz#cd4d9d068d5238dfbdfa45690f6e902b6413c2da" - integrity sha512-mcWlvjXLlNzgdE9EQxHuaeWICNxozanim87EfyvPwTY0ryWusFZbgF6F8u3E0syJ4FFSooEm0lQ6fgYcnPGAFw== +jest-resolve-dependencies@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.4.tgz#2d904400387d74a366dff54badb40a2b3210e733" + integrity sha512-qhUnK4PfNHzNdca7Ub1mbAqE0j5WNyMTwxBZZJjQlUrdqsiYho/QGK65FuBkZuSoYtKIIqriR9TpGrPEc3P5Gg== dependencies: "@jest/types" "^25.2.3" jest-regex-util "^25.2.1" - jest-snapshot "^25.2.3" + jest-snapshot "^25.2.4" jest-resolve@^25.2.3: version "25.2.3" @@ -7202,41 +7202,41 @@ jest-resolve@^25.2.3: realpath-native "^2.0.0" resolve "^1.15.1" -jest-runner@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.2.3.tgz#88fb448a46cf4ee9194a3e3cf0adbc122e195adb" - integrity sha512-E+u2Zm2TmtTOFEbKs5jllLiV2fwiX77cYc08RdyYZNe/s06wQT3P47aV6a8Rv61L7E2Is7OmozLd0KI/DITRpg== +jest-runner@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.2.4.tgz#d0daf7c56b4a83b6b675863d5cdcd502c960f9a1" + integrity sha512-5xaIfqqxck9Wg2CV4b9KmJtf/sWO7zWQx7O+34GCLGPzoPcVmB3mZtdrQI1/jS3Reqjru9ycLjgLHSf6XoxRqA== dependencies: "@jest/console" "^25.2.3" - "@jest/environment" "^25.2.3" - "@jest/test-result" "^25.2.3" + "@jest/environment" "^25.2.4" + "@jest/test-result" "^25.2.4" "@jest/types" "^25.2.3" chalk "^3.0.0" exit "^0.1.2" graceful-fs "^4.2.3" - jest-config "^25.2.3" + jest-config "^25.2.4" jest-docblock "^25.2.3" jest-haste-map "^25.2.3" - jest-jasmine2 "^25.2.3" + jest-jasmine2 "^25.2.4" jest-leak-detector "^25.2.3" - jest-message-util "^25.2.3" + jest-message-util "^25.2.4" jest-resolve "^25.2.3" - jest-runtime "^25.2.3" + jest-runtime "^25.2.4" jest-util "^25.2.3" jest-worker "^25.2.1" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.2.3.tgz#1f0e9ba878a66538c3e9d58be97a6a12c877ed13" - integrity sha512-PZRFeUVF08N24v2G73SDF0b0VpLG7cRNOJ3ggj5TnArBVHkkrWzM3z7txB9OupWu7OO8bH/jFogk6sSjnHLFXQ== +jest-runtime@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.2.4.tgz#c66a421e115944426b377a7fd331f6c0902cfa56" + integrity sha512-6ehOUizgIghN+aV5YSrDzTZ+zJ9omgEjJbTHj3Jqes5D52XHfhzT7cSfdREwkNjRytrR7mNwZ7pRauoyNLyJ8Q== dependencies: "@jest/console" "^25.2.3" - "@jest/environment" "^25.2.3" + "@jest/environment" "^25.2.4" "@jest/source-map" "^25.2.1" - "@jest/test-result" "^25.2.3" - "@jest/transform" "^25.2.3" + "@jest/test-result" "^25.2.4" + "@jest/transform" "^25.2.4" "@jest/types" "^25.2.3" "@types/yargs" "^15.0.0" chalk "^3.0.0" @@ -7244,13 +7244,13 @@ jest-runtime@^25.2.3: exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.3" - jest-config "^25.2.3" + jest-config "^25.2.4" jest-haste-map "^25.2.3" - jest-message-util "^25.2.3" + jest-message-util "^25.2.4" jest-mock "^25.2.3" jest-regex-util "^25.2.1" jest-resolve "^25.2.3" - jest-snapshot "^25.2.3" + jest-snapshot "^25.2.4" jest-util "^25.2.3" jest-validate "^25.2.3" realpath-native "^2.0.0" @@ -7268,20 +7268,20 @@ jest-serializer@^25.2.1: resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.2.1.tgz#51727a5fc04256f461abe0fa024a022ba165877a" integrity sha512-fibDi7M5ffx6c/P66IkvR4FKkjG5ldePAK1WlbNoaU4GZmIAkS9Le/frAwRUFEX0KdnisSPWf+b1RC5jU7EYJQ== -jest-snapshot@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.2.3.tgz#2d432fcf9e7f1f7eb3e5012ffcce8035794b76ae" - integrity sha512-HlFVbE6vOZ541mtkwjuAe0rfx9EWhB+QXXneLNOP/s3LlHxGQtX7WFXY5OiH4CkAnCc6BpzLNYS9nfINNRb4Zg== +jest-snapshot@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.2.4.tgz#08d4517579c864df4280bcc948ceea34327a4ded" + integrity sha512-nIwpW7FZCq5p0AE3Oyqyb6jL0ENJixXzJ5/CD/XRuOqp3gS5OM3O/k+NnTrniCXxPFV4ry6s9HNfiPQBi0wcoA== dependencies: "@babel/types" "^7.0.0" "@jest/types" "^25.2.3" "@types/prettier" "^1.19.0" chalk "^3.0.0" - expect "^25.2.3" + expect "^25.2.4" jest-diff "^25.2.3" jest-get-type "^25.2.1" jest-matcher-utils "^25.2.3" - jest-message-util "^25.2.3" + jest-message-util "^25.2.4" jest-resolve "^25.2.3" make-dir "^3.0.0" natural-compare "^1.4.0" @@ -7335,12 +7335,12 @@ jest-validate@^25.2.3: leven "^3.1.0" pretty-format "^25.2.3" -jest-watcher@^25.2.3: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.2.3.tgz#a494fe3ddb62da62b0e697abfea457de8f388f1f" - integrity sha512-F6ERbdvJk8nbaRon9lLQVl4kp+vToCCHmy+uWW5QQ8/8/g2jkrZKJQnlQINrYQp0ewg31Bztkhs4nxsZMx6wDg== +jest-watcher@^25.2.4: + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.2.4.tgz#dda85b914d470fa4145164a8f70bda4f208bafb6" + integrity sha512-p7g7s3zqcy69slVzQYcphyzkB2FBmJwMbv6k6KjI5mqd6KnUnQPfQVKuVj2l+34EeuxnbXqnrjtUFmxhcL87rg== dependencies: - "@jest/test-result" "^25.2.3" + "@jest/test-result" "^25.2.4" "@jest/types" "^25.2.3" ansi-escapes "^4.2.1" chalk "^3.0.0" @@ -7364,13 +7364,13 @@ jest-worker@^25.1.0, jest-worker@^25.2.1: supports-color "^7.0.0" jest@^25.2.1: - version "25.2.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-25.2.3.tgz#0cc9b35192f236fe1d5e76ed8eb3a54e7e0ee2e0" - integrity sha512-UbUmyGeZt0/sCIj/zsWOY0qFfQsx2qEFIZp0iEj8yVH6qASfR22fJOf12gFuSPsdSufam+llZBB0MdXWCg6EEQ== + version "25.2.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.2.4.tgz#d10941948a2b57eb7accc2e7ae78af4a0e11b40a" + integrity sha512-Lu4LXxf4+durzN/IFilcAoQSisOwgHIXgl9vffopePpSSwFqfj1Pj4y+k3nL8oTbnvjxgDIsEcepy6he4bWqnQ== dependencies: - "@jest/core" "^25.2.3" + "@jest/core" "^25.2.4" import-local "^3.0.2" - jest-cli "^25.2.3" + jest-cli "^25.2.4" jetpack-id@1.0.0: version "1.0.0" @@ -7681,9 +7681,9 @@ lines-and-columns@^1.1.6: integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= lint-staged@^10.0.9: - version "10.0.9" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.0.9.tgz#185aabb2432e9467c84add306c990f1c20da3cdb" - integrity sha512-NKJHYgRa8oI9c4Ic42ZtF2XA6Ps7lFbXwg3q0ZEP0r55Tw3YWykCW1RzW6vu+QIGqbsy7DxndvKu93Wtr5vPQw== + version "10.0.10" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.0.10.tgz#d14d33ee02a31a31ad36cf9aa7973fc156c461b5" + integrity sha512-91vNy3eYStExElLWw1Idva5lghKpFaXh9AJqjcyrJXf7AYZrThi4EhQ+GpmiHdPmJJauKhZMMSzQR1bMB90MtA== dependencies: chalk "^3.0.0" commander "^4.0.1" @@ -8287,7 +8287,12 @@ mkdirp@0.5.1: dependencies: minimist "0.0.8" -mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.1: +mkdirp@1.x: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" + integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.1: version "0.5.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== @@ -8547,11 +8552,9 @@ node-pre-gyp@*: tar "^4.4.2" node-releases@^1.1.52: - version "1.1.52" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" - integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== - dependencies: - semver "^6.3.0" + version "1.1.53" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" + integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== nopt@^4.0.1: version "4.0.3" @@ -10430,11 +10433,16 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@6.x, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" @@ -10445,11 +10453,6 @@ semver@7.1.1: resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.1.tgz#29104598a197d6cbe4733eeecbe968f7b43a9667" integrity sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A== -semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -11018,21 +11021,39 @@ string.prototype.trim@^1.2.1: es-abstract "^1.17.0-next.1" function-bind "^1.1.1" +string.prototype.trimend@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz#ee497fd29768646d84be2c9b819e292439614373" + integrity sha512-EEJnGqa/xNfIg05SxiPSqRS7S9qwDhYts1TSLR1BQfYUfPe1stofgGKvwERK9+9yf+PpfBMlpBaCHucXGPQfUA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz#afe596a7ce9de905496919406c9734845f01a2f2" + integrity sha512-iCP8g01NFYiiBOnwG1Xc3WZLyoo+RuBymwIlWncShXDDJYWN6DbnM3odslBJdgCdRlq94B5s63NWAZlcn2CS4w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -11530,9 +11551,9 @@ ts-invariant@^0.4.0: tslib "^1.9.3" ts-jest@^25.2.1: - version "25.2.1" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.2.1.tgz#49bf05da26a8b7fbfbc36b4ae2fcdc2fef35c85d" - integrity sha512-TnntkEEjuXq/Gxpw7xToarmHbAafgCaAzOpnajnFC6jI7oo1trMzAHA04eWpc3MhV6+yvhE8uUBAmN+teRJh0A== + version "25.3.0" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.3.0.tgz#c12d34573cbe34d49f10567940e44fd19d1c9178" + integrity sha512-qH/uhaC+AFDU9JfAueSr0epIFJkGMvUPog4FxSEVAtPOur1Oni5WBJMiQIkfHvc7PviVRsnlVLLY2I6221CQew== dependencies: bs-logger "0.x" buffer-from "1.x" @@ -11540,10 +11561,10 @@ ts-jest@^25.2.1: json5 "2.x" lodash.memoize "4.x" make-error "1.x" - mkdirp "0.x" + mkdirp "1.x" resolve "1.x" - semver "^5.5" - yargs-parser "^16.1.0" + semver "6.x" + yargs-parser "^18.1.1" tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.11.1" @@ -11858,9 +11879,9 @@ v8-compile-cache@^2.0.3: integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== v8-to-istanbul@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.2.tgz#387d173be5383dbec209d21af033dcb892e3ac82" - integrity sha512-G9R+Hpw0ITAmPSr47lSlc5A1uekSYzXxTMlFxso2xoffwo4jQnzbv1p9yXIinO8UMZKfAFewaCHwWvnH4Jb4Ug== + version "4.1.3" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20" + integrity sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0"