diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4f04256beb..3cdf03dba0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,8 @@ name: release on: - push: {} + push: + branches: + - 'master' pull_request: {} jobs: main: @@ -15,9 +17,11 @@ jobs: - name: Setup node uses: actions/setup-node@v2 with: - node-version: '14.x' + node-version: '15.11.0' - name: Install deps # this runs a build script so there is no dedicated build - run: yarn install + run: | + npm i -g yarn + yarn install - name: Run tests run: yarn test:ts && yarn test diff --git a/jest.config.js b/jest.config.js index d2fd25047d..28ae3564cc 100644 --- a/jest.config.js +++ b/jest.config.js @@ -35,25 +35,32 @@ function createConfig(rootDir) { const { compilerOptions } = fs.readJsonSync( path.join(rootDir, 'tsconfig.json') ) + return { rootDir, - setupFilesAfterEnv: - rootDir.indexOf('shared') < 0 - ? [path.join(__dirname, 'packages/core/test/setup.ts')] - : [], + preset: 'ts-jest', + setupFilesAfterEnv: [path.join(__dirname, 'packages/core/test/setup.ts')], testMatch, testEnvironment: 'jsdom', - testPathIgnorePatterns: ['.+/(types|__snapshots__)/.+'], + testPathIgnorePatterns: [ + '.+/(types|__snapshots__)/.+', + '/node_modules/', + ], modulePathIgnorePatterns: ['dist'], moduleNameMapper: { '^react$': '/../../node_modules/react', }, - transform: { - '^.+\\.tsx?$': 'esbuild-jest', - }, collectCoverageFrom: ['src/**/*'], coverageDirectory: './coverage', + moduleFileExtensions: ['js', 'ts', 'tsx'], coverageReporters: ['json', 'html', 'text'], timers: 'fake', + globals: { + 'ts-jest': { + tsconfig: { + ...compilerOptions, + }, + }, + }, } } diff --git a/package.json b/package.json index 41bd2e55e1..7df2518d3b 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@rollup/plugin-babel": "^5.2.1", "@rollup/plugin-commonjs": "^11.1.0", "@rollup/plugin-node-resolve": "^7.1.3", - "@types/jest": "^24.0.13", + "@types/jest": "^26.0.21", "@types/node": "^14.14.35", "@types/react": "^16.8.19", "build-if-changed": "^1.5.0", @@ -68,12 +68,11 @@ "copyfiles": "^2.4.1", "enquirer": "^2.3.2", "esbuild": "^0.8.0", - "esbuild-jest": "^0.2.2", "execa": "^2.0.4", "flush-microtasks": "^1.0.1", "fs-extra": "7.0.1", "husky": "1.3.1", - "jest": "^25.1.0", + "jest": "^26.6.3", "jest-watch-typeahead": "^0.3.1", "lerna": "3.15.0", "meta": "^1.2.19", @@ -89,7 +88,8 @@ "sade": "^1.6.1", "sort-package-json": "1.22.1", "spec.ts": "1.1.3", - "typescript": "^4.0.0", + "ts-jest": "^26.5.4", + "typescript": "^4.2.3", "typescript-rewrite-paths": "^1.2.0" }, "publishConfig": { diff --git a/packages/animated/tsconfig.json b/packages/animated/tsconfig.json index 1ae07df09c..613a68460e 100644 --- a/packages/animated/tsconfig.json +++ b/packages/animated/tsconfig.json @@ -13,6 +13,7 @@ "preserveSymlinks": true, "sourceMap": true, "strict": true, + "esModuleInterop": true, "target": "esnext", "typeRoots": ["../../node_modules/@types"] } diff --git a/packages/core/package.json b/packages/core/package.json index 6ddd542a6c..3506a04379 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -19,7 +19,8 @@ "directory": "dist" }, "devDependencies": { - "@testing-library/react": "^9.4.0", + "@testing-library/jest-dom": "^5.11.9", + "@testing-library/react": "^11.2.5", "rafz": "link:../shared/node_modules/rafz", "react-dom": "^16.12.0" } diff --git a/packages/core/src/Controller.test.ts b/packages/core/src/Controller.test.ts index 25cf84347c..4060b32ca9 100644 --- a/packages/core/src/Controller.test.ts +++ b/packages/core/src/Controller.test.ts @@ -8,8 +8,8 @@ describe('Controller', () => { const ctrl = new Controller({ x: 0 }) ctrl.start({ x: 100 }) - await advanceUntilIdle() - const frames = getFrames(ctrl) + await global.advanceUntilIdle() + const frames = global.getFrames(ctrl) expect(frames).toMatchSnapshot() // The first frame should *not* be the from value. @@ -24,8 +24,8 @@ describe('Controller', () => { const ctrl = new Controller<{ x: [number, number] }>({ x: [1, 2], config }) ctrl.start({ x: [5, 10] }) - await advanceUntilIdle() - const frames = getFrames(ctrl) + await global.advanceUntilIdle() + const frames = global.getFrames(ctrl) expect(frames).toMatchSnapshot() // The last frame should be the goal value. @@ -50,7 +50,7 @@ describe('Controller', () => { }) const { x } = ctrl.springs - await advanceUntilValue(x, 0.5) + await global.advanceUntilValue(x, 0.5) ctrl.start({ cancel: true }) await flushMicroTasks() @@ -70,7 +70,7 @@ describe('Controller', () => { }) const { x } = ctrl.springs - await advanceUntilValue(x, 0.5) + await global.advanceUntilValue(x, 0.5) ctrl.stop() @@ -114,14 +114,14 @@ describe('Controller', () => { }, }) - await advance() + await global.advance() expect(n).toBe(1) ctrl.start({ to: () => {}, }) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(n).toBe(1) expect(await promise).toMatchObject({ @@ -144,7 +144,7 @@ describe('Controller', () => { await animate({ x: 0 }) }, }) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(onStart).toBeCalledTimes(2) }) @@ -168,7 +168,7 @@ describe('Controller', () => { }, }) - await advanceUntilIdle() + await global.advanceUntilIdle() await flushMicroTasks() expect(nestedFn).toBeCalledTimes(1) @@ -193,7 +193,7 @@ describe('Controller', () => { }, }) - await advanceUntilValue(x, 0.5) + await global.advanceUntilValue(x, 0.5) ctrl.start({ cancel: true }) await flushMicroTasks() @@ -213,11 +213,11 @@ describe('Controller', () => { onRest, }) - mockRaf.step() + global.mockRaf.step() ctrl.pause() t.finish() - mockRaf.step() + global.mockRaf.step() expect(ctrl['_state'].paused).toBeTruthy() expect(onRest).not.toBeCalled() @@ -249,11 +249,11 @@ describe('Controller', () => { }, }) - await Promise.all([advanceUntilIdle(), promise]) + await Promise.all([global.advanceUntilIdle(), promise]) expect(ctrl.idle).toBeTruthy() // Since we call `update` twice, frames are generated! - expect(getFrames(ctrl)).toMatchSnapshot() + expect(global.getFrames(ctrl)).toMatchSnapshot() }) }) @@ -268,7 +268,7 @@ describe('Controller', () => { onStart, }) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(onStart).toBeCalledTimes(1) }) @@ -281,7 +281,7 @@ describe('Controller', () => { const onStart2 = jest.fn() ctrl.start({ y: 1, onStart: onStart2 }) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(onStart1).toBeCalledTimes(1) expect(onStart2).toBeCalledTimes(1) }) @@ -298,16 +298,16 @@ describe('Controller', () => { const { t } = ctrl.springs expect(t.get()).toBe(0) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(t.get()).toBe(1) ctrl.start({ loop: { reverse: true }, }) - await advanceUntilValue(t, 0) - await advanceUntilValue(t, 1) - expect(getFrames(t)).toMatchSnapshot() + await global.advanceUntilValue(t, 0) + await global.advanceUntilValue(t, 1) + expect(global.getFrames(t)).toMatchSnapshot() }) describe('used with multiple values', () => { @@ -323,7 +323,7 @@ describe('Controller', () => { const { x, y } = ctrl.springs for (let i = 0; i < 2; i++) { - await advanceUntilValue(y, 1) + await global.advanceUntilValue(y, 1) // Both values should equal their "from" value at the same time. expect(x.get()).toBe(x.animation.from) @@ -355,18 +355,18 @@ describe('Controller', () => { }, }) - await advanceUntilValue(t, 1) + await global.advanceUntilValue(t, 1) expect(t.idle).toBeFalsy() for (let i = 0; i < 2; i++) { - await advanceUntilValue(t, 0) + await global.advanceUntilValue(t, 0) expect(t.idle).toBeFalsy() - await advanceUntilValue(t, 1) + await global.advanceUntilValue(t, 1) expect(t.idle).toBeFalsy() } - await advanceUntilValue(t, 0) + await global.advanceUntilValue(t, 0) expect(t.idle).toBeTruthy() }) }) @@ -387,16 +387,16 @@ describe('Controller', () => { }) for (let i = 0; i < 3; i++) { - await advanceUntilValue(t, 2) + await global.advanceUntilValue(t, 2) expect(t.idle).toBeFalsy() // Run the first frame of the next loop. - mockRaf.step() + global.mockRaf.step() } loop = false - await advanceUntilValue(t, 2) + await global.advanceUntilValue(t, 2) expect(t.idle).toBeTruthy() expect(await promise).toMatchObject({ @@ -414,7 +414,7 @@ describe('Controller', () => { const loop = jest.fn(() => true) ctrl.start({ t: 0, loop }) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(loop).toBeCalledTimes(0) }) }) @@ -437,7 +437,7 @@ describe('Controller', () => { await flushMicroTasks() // Apply the first frame. - mockRaf.step() + global.mockRaf.step() ctrl.pause() return ctrl @@ -490,7 +490,7 @@ describe('Controller', () => { ctrl.start({ t: 1, delay: 100 }) ctrl.stop() - await advanceUntilIdle() + await global.advanceUntilIdle() expect(ctrl['_state'].timeouts.size).toBe(0) expect(t['_state'].timeouts.size).toBe(0) }) @@ -503,7 +503,7 @@ describe('Controller', () => { }, }) ctrl.stop() - await advanceUntilIdle() + await global.advanceUntilIdle() expect(ctrl['_state'].asyncTo).toBeUndefined() }) }) diff --git a/packages/core/src/Interpolation.test.ts b/packages/core/src/Interpolation.test.ts index 379746bc19..ef2559c4ef 100644 --- a/packages/core/src/Interpolation.test.ts +++ b/packages/core/src/Interpolation.test.ts @@ -19,7 +19,7 @@ describe('Interpolation', () => { it('leaves the frameloop', () => { const a = new SpringValue({ from: 0, to: 1 }) const b = new SpringValue({ from: 1, to: 0 }) - mockRaf.step() + global.mockRaf.step() const calc = jest.fn((a: number, b: number) => Math.abs(a - b)) const c = to([a, b], calc) @@ -33,7 +33,7 @@ describe('Interpolation', () => { // Expect interpolation to continue. calc.mockClear() - mockRaf.step() + global.mockRaf.step() expect(calc).toBeCalled() // Pause the other input. @@ -43,13 +43,13 @@ describe('Interpolation', () => { // When its value stays the same, it checks the idle status of each input, // which triggers an update to its own idle status. calc.mockClear() - mockRaf.step() + global.mockRaf.step() expect(calc).toBeCalled() expect(c.idle).toBeTruthy() // Expect interpolation to be paused. calc.mockClear() - mockRaf.step() + global.mockRaf.step() expect(calc).not.toBeCalled() }) }) diff --git a/packages/core/src/SpringContext.test.tsx b/packages/core/src/SpringContext.test.tsx index bd1713d606..5b1f3f47a0 100644 --- a/packages/core/src/SpringContext.test.tsx +++ b/packages/core/src/SpringContext.test.tsx @@ -58,7 +58,7 @@ describe('SpringContext', () => { it('can pause current animations', () => { update({}) - mockRaf.step() + global.mockRaf.step() expect(t.idle).toBeFalsy() update({ pause: true }) @@ -90,24 +90,24 @@ describe('SpringContext', () => { it('can make current animations immediate', () => { update({}) - mockRaf.step() + global.mockRaf.step() expect(t.idle).toBeFalsy() update({ immediate: true }) - mockRaf.step() + global.mockRaf.step() expect(t.idle).toBeTruthy() expect(t.get()).toBe(1) }) it('can make future animations immediate', () => { update({ immediate: true }) - mockRaf.step() + global.mockRaf.step() expect(t.idle).toBeTruthy() expect(t.get()).toBe(1) t.start(2) - mockRaf.step() + global.mockRaf.step() expect(t.idle).toBeTruthy() expect(t.get()).toBe(2) diff --git a/packages/core/src/SpringValue.test.ts b/packages/core/src/SpringValue.test.ts index 0aceed9837..f2124951ef 100644 --- a/packages/core/src/SpringValue.test.ts +++ b/packages/core/src/SpringValue.test.ts @@ -17,8 +17,8 @@ describe('SpringValue', () => { spring.start(1, { config: { duration: 10 * frameLength }, }) - await advanceUntilIdle() - const frames = getFrames(spring) + await global.advanceUntilIdle() + const frames = global.getFrames(spring) expect(frames).toMatchSnapshot() }) @@ -29,8 +29,8 @@ describe('SpringValue', () => { from: '0px 0px', config: { duration: 10 * frameLength }, }) - await advanceUntilIdle() - const frames = getFrames(spring) + await global.advanceUntilIdle() + const frames = global.getFrames(spring) expect(frames).toMatchSnapshot() const { finished } = await promise expect(finished).toBeTruthy() @@ -41,14 +41,14 @@ describe('SpringValue', () => { const spring1 = new SpringValue(0) spring1.start(10) - await advanceUntilIdle() - const frames = getFrames(spring1).map(n => n + 'px') + await global.advanceUntilIdle() + const frames = global.getFrames(spring1).map(n => n + 'px') const spring2 = new SpringValue('0px') spring2.start('10px') - await advanceUntilIdle() - expect(frames).toEqual(getFrames(spring2)) + await global.advanceUntilIdle() + expect(frames).toEqual(global.getFrames(spring2)) }) it('can animate an array of numbers', async () => { @@ -60,12 +60,12 @@ describe('SpringValue', () => { config: { duration: 10 * frameLength }, onChange, }) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(onChange.mock.calls.slice(-1)[0]).toEqual([ spring.animation.to, spring, ]) - expect(getFrames(spring)).toMatchSnapshot() + expect(global.getFrames(spring)).toMatchSnapshot() }) it('can have an animated string as its target', async () => { @@ -78,11 +78,11 @@ describe('SpringValue', () => { // The target is not attached until the spring is observed. addFluidObserver(spring, () => {}) - mockRaf.step() + global.mockRaf.step() target.set('red') - await advanceUntilIdle() - expect(getFrames(spring)).toMatchSnapshot() + await global.advanceUntilIdle() + expect(global.getFrames(spring)).toMatchSnapshot() }) describeProps() @@ -124,7 +124,7 @@ describe('SpringValue', () => { await flushMicroTasks() expect(resolve).not.toBeCalled() - await advanceUntilIdle() + await global.advanceUntilIdle() expect(resolve).toBeCalled() }) }) @@ -157,22 +157,22 @@ function describeToProp() { // Prevent the animation to 1 (which hasn't started yet) spring.start(0) - await advanceUntilIdle() - expect(getFrames(spring)).toEqual([]) + await global.advanceUntilIdle() + expect(global.getFrames(spring)).toEqual([]) }) it('avoids interrupting an active animation', async () => { const spring = new SpringValue(0) spring.start(1) - await advance() + await global.advance() const goal = spring.get() spring.start(goal) expect(spring.idle).toBeFalsy() - await advanceUntilIdle() + await global.advanceUntilIdle() expect(spring.get()).toBe(goal) - expect(getFrames(spring)).toMatchSnapshot() + expect(global.getFrames(spring)).toMatchSnapshot() }) }) @@ -180,7 +180,7 @@ function describeToProp() { describe('and "from" prop is defined', () => { it('stops the active animation before "to" is called', () => { const spring = new SpringValue({ from: 0, to: 1 }) - mockRaf.step() + global.mockRaf.step() expect.assertions(1) spring.start({ @@ -208,7 +208,7 @@ function describeResetProp() { }) const spring = new SpringValue({ from: 0, to: 1, onRest }) - mockRaf.step() + global.mockRaf.step() spring.start({ reset: true }) @@ -247,7 +247,7 @@ function describeDefaultProp() { it('does not start animating', async () => { const props = { default: true, from: 0, to: 2 } const spring = new SpringValue(props) - await advanceUntilIdle() + await global.advanceUntilIdle() props.from = 1 spring.start(props) @@ -261,7 +261,7 @@ function describeDefaultProp() { it('starts at the "from" prop', async () => { const props: any = { default: true, from: 0, to: 2 } const spring = new SpringValue(props) - await advanceUntilIdle() + await global.advanceUntilIdle() props.from = 1 props.reset = true @@ -300,7 +300,7 @@ function describeDefaultProp() { // This animation will be stopped. const promise = spring.start({ from: 0, to: 1 }) - mockRaf.step() + global.mockRaf.step() const value = spring.get() spring.start({ from: 0 }) @@ -323,14 +323,14 @@ function describeReverseProp() { const spring = new SpringValue() spring.start({ from: 0, to: 1, reverse: true }) - await advanceUntilIdle() - expect(getFrames(spring)).toMatchSnapshot() + await global.advanceUntilIdle() + expect(global.getFrames(spring)).toMatchSnapshot() }) it('works when "to" and "from" were set by an earlier update', async () => { // TODO: remove the need for "" const spring = new SpringValue({ from: 0, to: 1 }) - await advanceUntilValue(spring, 0.5) + await global.advanceUntilValue(spring, 0.5) spring.start({ reverse: true }) expect(spring.animation).toMatchObject({ @@ -338,8 +338,8 @@ function describeReverseProp() { to: 0, }) - await advanceUntilIdle() - expect(getFrames(spring)).toMatchSnapshot() + await global.advanceUntilIdle() + expect(global.getFrames(spring)).toMatchSnapshot() }) it('works when "from" was set by an earlier update', async () => { @@ -347,8 +347,8 @@ function describeReverseProp() { expect(spring.animation.from).toBe(0) spring.start({ to: 1, reverse: true }) - await advanceUntilIdle() - expect(getFrames(spring)).toMatchSnapshot() + await global.advanceUntilIdle() + expect(global.getFrames(spring)).toMatchSnapshot() }) it('preserves the reversal for future updates', async () => { @@ -359,7 +359,7 @@ function describeReverseProp() { from: 1, }) - await advanceUntilIdle() + await global.advanceUntilIdle() spring.start({ to: 2 }) expect(spring.animation).toMatchObject({ @@ -379,14 +379,14 @@ function describeImmediateProp() { it('stops animating', async () => { const spring = new SpringValue(0) spring.start(2) - await advanceUntilValue(spring, 1) + await global.advanceUntilValue(spring, 1) // Use "immediate" to emulate the "stop" method. (see #884) const value = spring.get() spring.start(value, { immediate: true }) // The "immediate" prop waits until the next frame before going idle. - mockRaf.step() + global.mockRaf.step() expect(spring.idle).toBeTruthy() expect(spring.get()).toBe(value) @@ -452,8 +452,8 @@ function describeConfigProp() { spring.start(1, { config: { frequency: 1.5, damping: 1 }, }) - await advanceUntilIdle() - expect(countBounces(spring)).toBe(0) + await global.advanceUntilIdle() + expect(global.countBounces(spring)).toBe(0) }) }) describe('when "damping" is less than 1.0', () => { @@ -463,8 +463,8 @@ function describeConfigProp() { spring.start(1, { config: { frequency: 1.5, damping: 1 }, }) - await advanceUntilIdle() - expect(countBounces(spring)).toBeGreaterThan(0) + await global.advanceUntilIdle() + expect(global.countBounces(spring)).toBeGreaterThan(0) }) }) }) @@ -479,16 +479,16 @@ function describeLoopProp() { config: { duration: frameLength * 3 }, }) - await advanceUntilValue(spring, 1) - const firstRun = getFrames(spring) + await global.advanceUntilValue(spring, 1) + const firstRun = global.getFrames(spring) expect(firstRun).toMatchSnapshot() // The loop resets the value before the next frame. // FIXME: Reset on next frame instead? expect(spring.get()).toBe(0) - await advanceUntilValue(spring, 1) - expect(getFrames(spring)).toEqual(firstRun) + await global.advanceUntilValue(spring, 1) + expect(global.getFrames(spring)).toEqual(firstRun) }) it('can pass a custom delay', async () => { @@ -497,13 +497,13 @@ function describeLoopProp() { loop: { reset: true, delay: 1000 }, }) - await advanceUntilValue(spring, 1) + await global.advanceUntilValue(spring, 1) expect(spring.get()).toBe(1) - mockRaf.step({ time: 1000 }) + global.mockRaf.step({ time: 1000 }) expect(spring.get()).toBeLessThan(1) - await advanceUntilValue(spring, 1) + await global.advanceUntilValue(spring, 1) expect(spring.get()).toBe(1) }) @@ -513,21 +513,21 @@ function describeLoopProp() { let loop: any = true spring.start(1, { loop: () => loop }) - await advanceUntilValue(spring, 1) + await global.advanceUntilValue(spring, 1) expect(spring.idle).toBeFalsy() expect(spring.get()).toBeLessThan(1) loop = { reset: true, delay: 1000 } - await advanceUntilValue(spring, 1) + await global.advanceUntilValue(spring, 1) expect(spring.idle).toBeTruthy() expect(spring.get()).toBe(1) - mockRaf.step({ time: 1000 }) + global.mockRaf.step({ time: 1000 }) expect(spring.idle).toBeFalsy() expect(spring.get()).toBeLessThan(1) loop = false - await advanceUntilValue(spring, 1) + await global.advanceUntilValue(spring, 1) expect(spring.idle).toBeTruthy() expect(spring.get()).toBe(1) }) @@ -536,10 +536,10 @@ function describeLoopProp() { const spring = new SpringValue(0) spring.start(1, { loop: true }) - await advanceUntilValue(spring, 0.5) + await global.advanceUntilValue(spring, 0.5) spring.start(2) - await advanceUntilValue(spring, 2) + await global.advanceUntilValue(spring, 2) expect(spring.idle).toBeTruthy() }) @@ -547,11 +547,11 @@ function describeLoopProp() { const spring = new SpringValue(0) spring.start(1) - await advanceUntilIdle() + await global.advanceUntilIdle() spring.start({ reset: true, loop: true }) expect(spring.get()).toBe(0) - await advanceUntilValue(spring, 1) + await global.advanceUntilValue(spring, 1) expect(spring.get()).toBe(0) expect(spring.idle).toBeFalsy() }) @@ -560,14 +560,14 @@ function describeLoopProp() { const spring = new SpringValue(0) spring.start(1, { config: { duration: frameLength * 3 } }) - await advanceUntilIdle() + await global.advanceUntilIdle() spring.start({ loop: { reverse: true }, }) - await advanceUntilValue(spring, 0) - await advanceUntilValue(spring, 1) - expect(getFrames(spring)).toMatchSnapshot() + await global.advanceUntilValue(spring, 0) + await global.advanceUntilValue(spring, 1) + expect(global.getFrames(spring)).toMatchSnapshot() }) }) } @@ -591,10 +591,10 @@ function describeDelayProp() { spring.start(0, { delay: 100, config: { duration: 1000 } }) expect(anim.to).toBe(1) - await advanceByTime(100) + await global.advanceByTime(100) expect(anim.to).toBe(0) - await advanceByTime(400) + await global.advanceByTime(400) expect(anim.immediate).toBeFalsy() expect(anim.to).toBe(0) }) @@ -610,10 +610,10 @@ function describeEvents() { spring.start(1) expect(onStart).toBeCalledTimes(0) - mockRaf.step() + global.mockRaf.step() expect(onStart).toBeCalledTimes(1) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(onStart).toBeCalledTimes(1) }) it('is called by the "finish" method', () => { @@ -630,8 +630,8 @@ function describeEvents() { const onChange = jest.fn() const spring = new SpringValue({ from: 0, to: 1, onChange }) - await advanceUntilIdle() - const frames = getFrames(spring) + await global.advanceUntilIdle() + const frames = global.getFrames(spring) expect(onChange).toBeCalledTimes(frames.length) }) it('receives the "to" value on the last frame', async () => { @@ -639,7 +639,7 @@ function describeEvents() { const spring = new SpringValue('blue', { onChange }) spring.start('red') - await advanceUntilIdle() + await global.advanceUntilIdle() const [lastValue] = onChange.mock.calls.slice(-1)[0] expect(lastValue).toBe('red') @@ -648,7 +648,7 @@ function describeEvents() { const onChange = jest.fn() const spring = new SpringValue({ from: 0, to: 1, onChange }) - mockRaf.step() + global.mockRaf.step() expect(onChange).toBeCalledTimes(1) // During an animation: @@ -676,7 +676,7 @@ function describeEvents() { expect(onChange).not.toBeCalled() spring.start(1, { onChange }) - mockRaf.step() + global.mockRaf.step() onChange.mockReset() // Before last frame @@ -690,7 +690,7 @@ function describeEvents() { const onPause = jest.fn() const spring = new SpringValue({ from: 0, to: 1, onPause }) - mockRaf.step() + global.mockRaf.step() spring.pause() spring.pause() // noop @@ -707,7 +707,7 @@ function describeEvents() { const onResume = jest.fn() const spring = new SpringValue({ from: 0, to: 1, onResume }) - mockRaf.step() + global.mockRaf.step() spring.resume() // noop expect(onResume).toBeCalledTimes(0) @@ -732,18 +732,18 @@ function describeEvents() { }, }) - mockRaf.step() - mockRaf.step() + global.mockRaf.step() + global.mockRaf.step() expect(onRest).not.toBeCalled() - mockRaf.step() + global.mockRaf.step() expect(onRest).toBeCalledTimes(1) }) it('is called by the "stop" method', () => { const onRest = jest.fn() const spring = new SpringValue({ from: 0, to: 1, onRest }) - mockRaf.step() + global.mockRaf.step() spring.stop() expect(onRest).toBeCalledTimes(1) @@ -756,7 +756,7 @@ function describeEvents() { const onRest = jest.fn() const spring = new SpringValue({ from: 0, to: 1, onRest }) - mockRaf.step() + global.mockRaf.step() spring.finish() expect(onRest).toBeCalledTimes(1) @@ -769,7 +769,7 @@ function describeEvents() { const onRest = jest.fn() const spring = new SpringValue({ from: 0, to: 1, onRest }) - mockRaf.step() + global.mockRaf.step() spring.start({ cancel: true }) expect(onRest).toBeCalledTimes(1) @@ -802,7 +802,7 @@ function describeMethods() { const spring = new SpringValue(0) const promise = spring.start(1) - await advanceUntilValue(spring, 0.5) + await global.advanceUntilValue(spring, 0.5) const value = spring.get() spring.set(2) @@ -843,7 +843,7 @@ function describeTarget(name: string, create: (from: number) => OpaqueTarget) { toValues: null, }) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(spring.get()).toBe(target.node.get()) }) @@ -851,7 +851,7 @@ function describeTarget(name: string, create: (from: number) => OpaqueTarget) { it('can change its target while animating', async () => { spring.start({ to: target.node }) - await advanceUntilValue(spring, target.node.get() / 2) + await global.advanceUntilValue(spring, target.node.get() / 2) spring.start(0) expect(spring.priority).toBe(0) @@ -860,7 +860,7 @@ function describeTarget(name: string, create: (from: number) => OpaqueTarget) { toValues: [0], }) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(spring.get()).toBe(0) }) @@ -869,10 +869,10 @@ function describeTarget(name: string, create: (from: number) => OpaqueTarget) { spring.start({ to: target.node }) target.start(1.1) - await advanceUntil(() => target.node.idle) + await global.advanceUntil(() => target.node.idle) expect(spring.idle).toBeFalsy() - await advanceUntilIdle() + await global.advanceUntilIdle() expect(spring.idle).toBeTruthy() expect(spring.get()).toBe(target.node.get()) }) @@ -881,14 +881,14 @@ function describeTarget(name: string, create: (from: number) => OpaqueTarget) { describe('when target animates after we go idle', () => { it('starts animating', async () => { spring.start({ to: target.node }) - await advanceUntil(() => spring.idle) + await global.advanceUntil(() => spring.idle) // Clear the frame cache. - getFrames(spring) + global.getFrames(spring) target.start(2) - await advanceUntilIdle() + await global.advanceUntilIdle() - expect(getFrames(spring).length).toBeGreaterThan(1) + expect(global.getFrames(spring).length).toBeGreaterThan(1) expect(spring.get()).toBe(target.node.get()) }) }) @@ -896,12 +896,12 @@ function describeTarget(name: string, create: (from: number) => OpaqueTarget) { describe('when target has its value set (not animated)', () => { it('animates toward the new value', async () => { spring.start({ to: target.node }) - await advanceUntilIdle() + await global.advanceUntilIdle() target.set(2) - await advanceUntilIdle() + await global.advanceUntilIdle() - expect(getFrames(spring).length).toBeGreaterThan(1) + expect(global.getFrames(spring).length).toBeGreaterThan(1) expect(spring.get()).toBe(target.node.get()) }) }) @@ -911,14 +911,14 @@ function describeTarget(name: string, create: (from: number) => OpaqueTarget) { spring.start({ to: target.node }) target.start(2) - await advanceUntilValue(target.node, 1.5) + await global.advanceUntilValue(target.node, 1.5) expect(target.node.idle).toBeFalsy() target.reset() expect(target.node.get()).toBe(1) - await advanceUntilIdle() - const frames = getFrames(spring) + await global.advanceUntilIdle() + const frames = global.getFrames(spring) expect(frames.length).toBeGreaterThan(1) expect(spring.get()).toBe(target.node.get()) diff --git a/packages/core/src/helpers.test.ts b/packages/core/src/helpers.test.ts index 80015c879b..1c77042d33 100644 --- a/packages/core/src/helpers.test.ts +++ b/packages/core/src/helpers.test.ts @@ -36,9 +36,14 @@ describe('helpers', () => { onProps: undefined, onStart: undefined, onChange: undefined, + onPause: undefined, + onResume: undefined, onRest: undefined, onResolve: undefined, onDestroyed: undefined, + keys: undefined, + callId: undefined, + parentId: undefined, } expect( inferTo({ @@ -47,7 +52,6 @@ describe('helpers', () => { ...excludeProps, }) ).toMatchObject({ - to: forwardProps, ...restProps, ...excludeProps, }) diff --git a/packages/core/src/hooks/useSprings.test.tsx b/packages/core/src/hooks/useSprings.test.tsx index 3a3433e2cd..cde1cbac0d 100644 --- a/packages/core/src/hooks/useSprings.test.tsx +++ b/packages/core/src/hooks/useSprings.test.tsx @@ -2,23 +2,23 @@ import * as React from 'react' import { render, RenderResult } from '@testing-library/react' import { is, eachProp } from '@react-spring/shared' import { Lookup } from '@react-spring/types' -import { SpringRef } from '../SpringRef' +// import { SpringRef } from '../SpringRef' import { SpringValue } from '../SpringValue' import { useSprings } from './useSprings' describe('useSprings', () => { let springs: Lookup[] - let ref: SpringRef + // let ref: SpringRef // Call the "useSprings" hook and update local variables. const update = createUpdater(({ args }) => { const result = useSprings(...args) if (is.fun(args[1]) || args.length == 3) { springs = result[0] as any - ref = result[1] + // ref = result[1] } else { springs = result as any - ref = undefined as any + // ref = undefined as any } return null }) diff --git a/packages/core/src/hooks/useTrail.test.tsx b/packages/core/src/hooks/useTrail.test.tsx index 674191ee02..06353ea684 100644 --- a/packages/core/src/hooks/useTrail.test.tsx +++ b/packages/core/src/hooks/useTrail.test.tsx @@ -20,7 +20,7 @@ describe('useTrail', () => { expect(springs.length).toBe(2) expect(springs[1].x.animation.to).toBe(springs[0].x) - mockRaf.step() + global.mockRaf.step() expect(springs[0].x.get()).not.toBe(springs[1].x.get()) }) diff --git a/packages/core/src/hooks/useTransition.test.tsx b/packages/core/src/hooks/useTransition.test.tsx index 0901ac205c..774e267325 100644 --- a/packages/core/src/hooks/useTransition.test.tsx +++ b/packages/core/src/hooks/useTransition.test.tsx @@ -1,15 +1,10 @@ import * as React from 'react' +import '@testing-library/jest-dom' import { RenderResult, render } from '@testing-library/react' import { toArray } from '@react-spring/shared' import { TransitionFn, UseTransitionProps } from '../types' import { useTransition } from './useTransition' -import { MessageChannel as MessageChannelPolyfill } from 'worker_threads' -beforeAll(() => { - if (!window.MessageChannel) { - window.MessageChannel = (MessageChannelPolyfill as unknown) as typeof window.MessageChannel - } -}) describe('useTransition', () => { let transition: TransitionFn let rendered: any[] @@ -31,12 +26,12 @@ describe('useTransition', () => { update(true, props) expect(rendered).toEqual([true]) - mockRaf.step() + global.mockRaf.step() update(false, props) expect(rendered).toEqual([true, false]) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(rendered).toEqual([false]) }) @@ -51,12 +46,12 @@ describe('useTransition', () => { update(true, props) expect(rendered).toEqual([true]) - mockRaf.step() + global.mockRaf.step() update(false, props) expect(rendered).toEqual([true, false]) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(rendered).toEqual([false]) }) }) @@ -74,12 +69,12 @@ describe('useTransition', () => { update(true, props) expect(rendered).toEqual([true]) - mockRaf.step() + global.mockRaf.step() update(false, props) expect(rendered).toEqual([true, false]) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(rendered).toEqual([false]) }) }) @@ -95,7 +90,7 @@ describe('useTransition', () => { }), }) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(onRest).toBeCalledTimes(1) }) }) @@ -110,12 +105,12 @@ describe('useTransition', () => { update(true, props) expect(rendered).toEqual([true]) - await advanceUntilIdle() + await global.advanceUntilIdle() update(false, props) expect(rendered).toEqual([true, false]) - await advanceUntilIdle() + await global.advanceUntilIdle() expect(rendered).toEqual([false]) }) }) diff --git a/packages/core/src/interpolate.test.ts b/packages/core/src/interpolate.test.ts index ce7ca36627..9b5f264f39 100644 --- a/packages/core/src/interpolate.test.ts +++ b/packages/core/src/interpolate.test.ts @@ -72,7 +72,7 @@ describe('AnimatedValue interpolation options', () => { it('accepts an AnimatedValueArray and an interpolation function', () => { const value = to(spring([1, 2, 3]), (r, g, b) => `rgb(${r}, ${g}, ${b})`) - expect(value.get()).toBe('rgb(1, 2, 3)') + expect(value.get()).toBe('rgba(1, 2, 3, 1)') }) it('chains interpolations', () => { diff --git a/packages/core/test/global.d.ts b/packages/core/test/global.d.ts deleted file mode 100644 index 887e56a136..0000000000 --- a/packages/core/test/global.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { MockRaf } from 'mock-raf' -import { Controller, SpringValue, FrameValue } from '..' - -declare global { - let mockRaf: MockRaf - - let advance: (n?: number) => Promise - let advanceByTime: (ms: number) => Promise - let advanceUntil: (test: () => boolean) => Promise - let advanceUntilIdle: () => Promise - let advanceUntilValue: (spring: FrameValue, value: T) => Promise - - /** Take an array of values (one per animation frame) from internal test storage */ - let getFrames: ( - target: FrameValue | Controller>, - preserve?: boolean - ) => T[] - - /** Count the number of bounces in a spring animation */ - let countBounces: (spring: SpringValue) => number - - const global: { - mockRaf: typeof mockRaf - advance: typeof advance - advanceByTime: typeof advanceByTime - advanceUntil: typeof advanceUntil - advanceUntilIdle: typeof advanceUntilIdle - advanceUntilValue: typeof advanceUntilValue - countBounces: typeof countBounces - getFrames: typeof getFrames - } - - const setTimeout: (handler: Function, ms: number) => number -} diff --git a/packages/core/test/setup.ts b/packages/core/test/setup.ts index 2ea7c13e27..abcf16c76f 100644 --- a/packages/core/test/setup.ts +++ b/packages/core/test/setup.ts @@ -1,4 +1,4 @@ -import createMockRaf from 'mock-raf' +import createMockRaf, { MockRaf } from 'mock-raf' import { flushMicroTasks } from 'flush-microtasks' import { act } from '@testing-library/react' import { @@ -12,9 +12,35 @@ import { } from '@react-spring/shared' import { __raf as raf } from 'rafz' -import { Globals, Controller, FrameValue } from '..' +import { Globals, Controller, FrameValue, SpringValue } from '../src/index' import { computeGoal } from '../src/helpers' +declare global { + namespace NodeJS { + interface Global { + mockRaf: MockRaf + + advance: (n?: number) => Promise + advanceByTime: (ms: number) => Promise + advanceUntil: (test: () => boolean) => Promise + advanceUntilIdle: () => Promise + advanceUntilValue: (spring: FrameValue, value: T) => Promise + + /** Take an array of values (one per animation frame) from internal test storage */ + getFrames: ( + target: FrameValue | Controller>, + preserve?: boolean + ) => T[] + + /** Count the number of bounces in a spring animation */ + countBounces: (spring: SpringValue) => number + + // @ts-ignore + setTimeout: (handler: Function, ms: number) => number + } + } +} + // Allow indefinite tests, since we limit the number of animation frames // per "advanceUntil" call to 1000. This keeps the "isRunning" variable // from interfering with the debugger. @@ -31,8 +57,8 @@ beforeEach(() => { global.mockRaf = createMockRaf() Globals.assign({ - now: mockRaf.now, - requestAnimationFrame: mockRaf.raf, + now: global.mockRaf.now, + requestAnimationFrame: global.mockRaf.raf, colors, // This lets our useTransition hook force its component // to update from within an "onRest" handler. @@ -64,7 +90,7 @@ global.getFrames = (target, preserve) => { frames = [] if (target instanceof Controller) { target.each(spring => { - getFrames(spring, preserve).forEach((value, i) => { + global.getFrames(spring, preserve).forEach((value, i) => { const frame = frames[i] || (frames[i] = {}) frame[spring.key!] = value }) @@ -81,7 +107,7 @@ global.countBounces = spring => { const { to, from } = spring.animation let prev = from let count = 0 - getFrames(spring, true).forEach(value => { + global.getFrames(spring, true).forEach(value => { if (value !== to && value > to !== prev > to) { count += 1 } @@ -108,7 +134,7 @@ global.advanceUntil = async test => { }) jest.advanceTimersByTime(1000 / 60) - mockRaf.step() + global.mockRaf.step() // Stop observing after the frame is processed. for (const value of values) { @@ -126,17 +152,17 @@ global.advanceUntil = async test => { } global.advance = (n = 1) => { - return advanceUntil(() => --n < 0) + return global.advanceUntil(() => --n < 0) } global.advanceByTime = ms => { let fired = false setTimeout(() => (fired = true), ms) - return advanceUntil(() => fired) + return global.advanceUntil(() => fired) } global.advanceUntilIdle = () => { - return advanceUntil(() => frameLoop.idle && raf.count == 0) + return global.advanceUntil(() => frameLoop.idle && raf.count == 0) } // TODO: support "value" as an array or animatable string @@ -144,9 +170,9 @@ global.advanceUntilValue = (spring, value) => { const from = computeGoal(spring.get()) const goal = computeGoal(value) - const offset = getFrames(spring, true).length - return advanceUntil(() => { - const frames = getFrames(spring, true) + const offset = global.getFrames(spring, true).length + return global.advanceUntil(() => { + const frames = global.getFrames(spring, true) const value = frames.length - offset > 0 ? frames[frames.length - 1] : from const stop = is.num(goal) diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 0a2351aed6..d504be28ad 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -14,6 +14,7 @@ "preserveSymlinks": true, "sourceMap": true, "strict": true, + "esModuleInterop": true, "target": "esnext", "module": "ESNext", "typeRoots": ["../../node_modules/@types", "../../@types"] diff --git a/packages/parallax/tsconfig.json b/packages/parallax/tsconfig.json index 417fa21b47..6a6be54dfa 100644 --- a/packages/parallax/tsconfig.json +++ b/packages/parallax/tsconfig.json @@ -12,6 +12,7 @@ "preserveSymlinks": true, "sourceMap": true, "strict": true, + "esModuleInterop": true, "target": "esnext" } } diff --git a/packages/react-spring/tsconfig.json b/packages/react-spring/tsconfig.json index 0289e53f43..d351aba207 100644 --- a/packages/react-spring/tsconfig.json +++ b/packages/react-spring/tsconfig.json @@ -15,6 +15,7 @@ "sourceMap": true, "strict": true, "target": "esnext", + "esModuleInterop": true, "typeRoots": ["../../targets/zdog/@types", "../../targets/three/@types"] } } diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json index 62b8a8e8aa..5b587ef806 100644 --- a/packages/shared/tsconfig.json +++ b/packages/shared/tsconfig.json @@ -13,6 +13,7 @@ "preserveSymlinks": true, "sourceMap": true, "strict": true, + "esModuleInterop": true, "target": "esnext" } } diff --git a/targets/konva/tsconfig.json b/targets/konva/tsconfig.json index 417fa21b47..6a6be54dfa 100644 --- a/targets/konva/tsconfig.json +++ b/targets/konva/tsconfig.json @@ -12,6 +12,7 @@ "preserveSymlinks": true, "sourceMap": true, "strict": true, + "esModuleInterop": true, "target": "esnext" } } diff --git a/targets/native/tsconfig.json b/targets/native/tsconfig.json index 450700455b..1602d4d374 100644 --- a/targets/native/tsconfig.json +++ b/targets/native/tsconfig.json @@ -12,6 +12,7 @@ "preserveSymlinks": true, "sourceMap": true, "strict": true, + "esModuleInterop": true, "target": "esnext" } } diff --git a/targets/three-v5/tsconfig.json b/targets/three-v5/tsconfig.json index 62b8a8e8aa..dbfb14ab0c 100644 --- a/targets/three-v5/tsconfig.json +++ b/targets/three-v5/tsconfig.json @@ -12,6 +12,7 @@ "noUnusedParameters": true, "preserveSymlinks": true, "sourceMap": true, + "esModuleInterop": true, "strict": true, "target": "esnext" } diff --git a/targets/three/tsconfig.json b/targets/three/tsconfig.json index 62b8a8e8aa..5b587ef806 100644 --- a/targets/three/tsconfig.json +++ b/targets/three/tsconfig.json @@ -13,6 +13,7 @@ "preserveSymlinks": true, "sourceMap": true, "strict": true, + "esModuleInterop": true, "target": "esnext" } } diff --git a/targets/web/src/animated.test.tsx b/targets/web/src/animated.test.tsx index ae4cca4744..d84896060a 100644 --- a/targets/web/src/animated.test.tsx +++ b/targets/web/src/animated.test.tsx @@ -1,13 +1,12 @@ import * as React from 'react' import { forwardRef } from 'react' -import { render, cleanup } from '@testing-library/react' +import { render } from '@testing-library/react' import '@testing-library/jest-dom/extend-expect' import createMockRaf, { MockRaf } from 'mock-raf' import { SpringValue, Animatable } from 'react-spring' import { Globals } from '@react-spring/shared' -import { a } from '.' -afterEach(cleanup) +import { a } from './index' let mockRaf: MockRaf beforeEach(() => { @@ -28,7 +27,6 @@ describe('animated component', () => { ) expect(queryByTitle('Foo')).toBeTruthy() }) - it('wraps a component', () => { const Name = forwardRef< HTMLHeadingElement, @@ -50,7 +48,6 @@ describe('animated component', () => { expect(el).toBeTruthy() expect(el.textContent).toBe('Animated Text') }) - it('accepts Animated values in style prop', () => { const opacity = spring(0) const { queryByText } = render( @@ -63,7 +60,6 @@ describe('animated component', () => { mockRaf.step() expect(div.style.opacity).toBe('1') }) - it('accepts Animated values in custom style prop', () => { const Name = forwardRef< HTMLHeadingElement, @@ -91,7 +87,6 @@ describe('animated component', () => { mockRaf.step() expect(div.style.opacity).toBe('1') }) - it('accepts scrollTop and scrollLeft properties', () => { const scrollTop = spring(0) const { queryByTestId } = render( @@ -110,7 +105,6 @@ describe('animated component', () => { mockRaf.step() expect(wrapper.scrollTop).toBe(20) }) - it('accepts x/y/z as style keys equivalent to `translate3d`transform function', () => { const { queryByTestId, rerender } = render( @@ -126,7 +120,6 @@ describe('animated component', () => { ) expect(wrapper.style.transform).toBe('translate3d(10px,10%,0.3px)') }) - it('accepts arrays for transform functions used as style keys', () => { const { queryByTestId } = render( @@ -134,12 +127,10 @@ describe('animated component', () => { const wrapper: any = queryByTestId('wrapper')! expect(wrapper.style.transform).toBe('scale(1,2)') }) - it('accepts Animated values or Animated arrays as attributes', () => { const scale = spring(2) const translate = spring([10, 20] as const) const translate3d = [spring(30), spring(40), '50px'] as const - const { queryByTestId } = render( ) @@ -148,7 +139,6 @@ describe('animated component', () => { 'scale(2) translate(10px,20px) translate3d(30px,40px,50px)' ) }) - it('sets default units to unit-less values passed as transform functions', () => { const { queryByTestId } = render( { 'translate3d(10px,0,0) scale(1,2) rotate(30deg) skewX(10deg) translateX(10px)' ) }) - it('only applies default units to the fourth value of `rotate3d`', () => { const { queryByTestId } = render( @@ -175,7 +164,6 @@ describe('animated component', () => { const wrapper: any = queryByTestId('wrapper')! expect(wrapper.style.transform).toBe('rotate3d(1,0,0,30deg)') }) - it('applies `transform:none` when identity transform is detected', () => { const z = spring(0) const { queryByTestId } = render( @@ -195,7 +183,6 @@ describe('animated component', () => { const wrapper: any = queryByTestId('wrapper')! expect(wrapper.style.transform).toBe('none') }) - it('preserves transform-style and transform-origin properties', () => { const { queryByTestId } = render( =2.2.7 <3" -abab@^2.0.0: +abab@^2.0.3, abab@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== abbrev@1: @@ -2713,29 +2801,29 @@ accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-globals@^4.3.2: - version "4.3.4" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + acorn "^7.1.1" + acorn-walk "^7.1.1" -acorn@^6.0.1: - version "6.4.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^7.1.0: +acorn@^7.1.1: version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.5: + version "8.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe" + integrity sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA== + agent-base@4, agent-base@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" @@ -2960,11 +3048,6 @@ array-differ@^2.0.3: resolved "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - array-filter@~0.0.0: version "0.0.1" resolved "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" @@ -3101,17 +3184,17 @@ aws4@^1.8.0: resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -babel-jest@^25.5.1: - version "25.5.1" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853" - integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ== +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== dependencies: - "@jest/transform" "^25.5.1" - "@jest/types" "^25.5.0" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^25.5.0" - chalk "^3.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -3133,13 +3216,14 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677" - integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g== +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: @@ -3147,10 +3231,10 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== -babel-preset-current-node-syntax@^0.1.2: - version "0.1.4" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615" - integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w== +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" @@ -3163,6 +3247,7 @@ babel-preset-current-node-syntax@^0.1.2: "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" babel-preset-fbjs@^3.0.1, babel-preset-fbjs@^3.2.0: version "3.3.0" @@ -3197,13 +3282,13 @@ babel-preset-fbjs@^3.0.1, babel-preset-fbjs@^3.2.0: "@babel/plugin-transform-template-literals" "^7.0.0" babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" -babel-preset-jest@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49" - integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw== +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== dependencies: - babel-plugin-jest-hoist "^25.5.0" - babel-preset-current-node-syntax "^0.1.2" + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: version "1.0.0" @@ -3328,13 +3413,6 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - browserslist@^4.14.5, browserslist@^4.15.0: version "4.16.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz#410277627500be3cb28a1bfe037586fbedf9488b" @@ -3346,6 +3424,13 @@ browserslist@^4.14.5, browserslist@^4.15.0: escalade "^3.1.1" node-releases "^1.1.67" +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + bser@2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -3363,7 +3448,7 @@ buffer-crc32@^0.2.13: resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= -buffer-from@^1.0.0: +buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== @@ -3537,6 +3622,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + caniuse-lite@^1.0.30001165: version "1.0.30001168" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001168.tgz#6fcd098c139d003b9bd484cbb9ca26cb89907f9a" @@ -3597,6 +3687,11 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + chardet@^0.4.0: version "0.4.2" resolved "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" @@ -3622,6 +3717,11 @@ ci-info@^2.0.0: resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -4106,9 +4206,18 @@ css@^2.2.3: source-map-resolve "^0.5.2" urix "^0.1.0" -cssom@^0.4.1: +css@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + +cssom@^0.4.4: version "0.4.4" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== cssom@~0.3.6: @@ -4116,9 +4225,9 @@ cssom@~0.3.6: resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== -cssstyle@^2.0.0: +cssstyle@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== dependencies: cssom "~0.3.6" @@ -4159,14 +4268,14 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-urls@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" dateformat@^3.0.0: version "3.0.3" @@ -4231,6 +4340,11 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decimal.js@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -4350,10 +4464,10 @@ diff-sequences@^24.9.0: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== -diff-sequences@^25.2.6: - version "25.2.6" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" - integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== dir-glob@2.0.0: version "2.0.0" @@ -4378,12 +4492,12 @@ dom-walk@^0.1.0: resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== dependencies: - webidl-conversions "^4.0.2" + webidl-conversions "^5.0.0" dot-prop@^4.2.0: version "4.2.1" @@ -4432,6 +4546,11 @@ electron-to-chromium@^1.3.621: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.629.tgz#a08d13b64d90e3c77ec5b9bffa3efbc5b4a00969" integrity sha512-iSPPJtPvHrMAvYOt+9cdbDmTasPqwnwz4lkP8Dn200gDNUBQOLQ96xUsWXBwXslAo5XxdoXAoQQ3RAy4uao9IQ== +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -4537,18 +4656,6 @@ es6-promisify@^6.0.0: resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz#46837651b7b06bf6fff893d03f29393668d01621" integrity sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg== -esbuild-jest@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/esbuild-jest/-/esbuild-jest-0.2.2.tgz#c637d4366d908ef7448da099f8ad8e4ccd4647c6" - integrity sha512-f9N4J04Ron3Nmr4u6O9YtAYySo6HcJqTYIE9/R9eDGCsAzFDZV/r5tKCMRyqnQO7uoWQFfjnpz9Af04ozSo/WA== - dependencies: - esbuild "^0.6.16" - -esbuild@^0.6.16: - version "0.6.34" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.6.34.tgz#76565a60e006f45d5f273b6e59e61ed0816551f5" - integrity sha512-InRdL/Q96pUucPqovJzvuLhquZr6jOn81FDVwFjCKz1rYKIm9OdOC+7Fs4vr6x48vKBl5LzKgtjU39BUpO636A== - esbuild@^0.8.0: version "0.8.24" resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.24.tgz#18645e102254682909017cec648f84d4834f15b3" @@ -4574,13 +4681,13 @@ escape-string-regexp@^2.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escodegen@^1.11.1: - version "1.14.3" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== dependencies: esprima "^4.0.1" - estraverse "^4.2.0" + estraverse "^5.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: @@ -4591,10 +4698,10 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== estree-walker@^1.0.1: version "1.0.1" @@ -4692,10 +4799,10 @@ execa@^2.0.4: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^3.2.0: - version "3.4.0" - resolved "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" get-stream "^5.0.0" @@ -4704,7 +4811,6 @@ execa@^3.2.0: merge-stream "^2.0.0" npm-run-path "^4.0.0" onetime "^5.1.0" - p-finally "^2.0.0" signal-exit "^3.0.2" strip-final-newline "^2.0.0" @@ -4747,17 +4853,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba" - integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA== +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== dependencies: - "@jest/types" "^25.5.0" + "@jest/types" "^26.6.2" ansi-styles "^4.0.0" - jest-get-type "^25.2.6" - jest-matcher-utils "^25.5.0" - jest-message-util "^25.5.0" - jest-regex-util "^25.2.6" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" extend-shallow@^1.1.2: version "1.1.4" @@ -4867,7 +4973,7 @@ fast-glob@^2.0.2: merge2 "^1.2.3" micromatch "^3.1.10" -fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -5640,12 +5746,12 @@ hosted-git-info@^3.0.6: dependencies: lru-cache "^6.0.0" -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== dependencies: - whatwg-encoding "^1.0.1" + whatwg-encoding "^1.0.5" html-escaper@^2.0.0: version "2.0.2" @@ -5904,11 +6010,6 @@ invert-kv@^2.0.0: resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - ip@1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -5957,7 +6058,7 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.1.0: +is-core-module@^2.1.0, is-core-module@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== @@ -6159,6 +6260,11 @@ is-posix-bracket@^0.1.0: resolved "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" @@ -6234,9 +6340,9 @@ is-wsl@^1.1.0: resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-wsl@^2.1.1: +is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" @@ -6286,7 +6392,7 @@ istanbul-lib-coverage@^3.0.0: resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== -istanbul-lib-instrument@^4.0.0: +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== @@ -6322,61 +6428,59 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c" - integrity sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw== +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== dependencies: - "@jest/types" "^25.5.0" - execa "^3.2.0" + "@jest/types" "^26.6.2" + execa "^4.0.0" throat "^5.0.0" -jest-cli@^25.5.4: - version "25.5.4" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d" - integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw== +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== dependencies: - "@jest/core" "^25.5.4" - "@jest/test-result" "^25.5.0" - "@jest/types" "^25.5.0" - chalk "^3.0.0" + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^25.5.4" - jest-util "^25.5.0" - jest-validate "^25.5.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" prompts "^2.0.1" - realpath-native "^2.0.0" - yargs "^15.3.1" + yargs "^15.4.1" -jest-config@^25.5.4: - version "25.5.4" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c" - integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg== +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^25.5.4" - "@jest/types" "^25.5.0" - babel-jest "^25.5.1" - chalk "^3.0.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^25.5.0" - jest-environment-node "^25.5.0" - jest-get-type "^25.2.6" - jest-jasmine2 "^25.5.4" - jest-regex-util "^25.2.6" - jest-resolve "^25.5.1" - jest-util "^25.5.0" - jest-validate "^25.5.0" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" micromatch "^4.0.2" - pretty-format "^25.5.0" - realpath-native "^2.0.0" + pretty-format "^26.6.2" -jest-diff@^24.0.0, jest-diff@^24.3.0, jest-diff@^24.9.0: +jest-diff@^24.0.0, jest-diff@^24.9.0: version "24.9.0" resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== @@ -6386,67 +6490,68 @@ jest-diff@^24.0.0, jest-diff@^24.3.0, jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-diff@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" - integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== dependencies: - chalk "^3.0.0" - diff-sequences "^25.2.6" - jest-get-type "^25.2.6" - pretty-format "^25.5.0" + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" -jest-docblock@^25.3.0: - version "25.3.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" - integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== dependencies: detect-newline "^3.0.0" -jest-each@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516" - integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA== +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== dependencies: - "@jest/types" "^25.5.0" - chalk "^3.0.0" - jest-get-type "^25.2.6" - jest-util "^25.5.0" - pretty-format "^25.5.0" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" -jest-environment-jsdom@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834" - integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A== +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== dependencies: - "@jest/environment" "^25.5.0" - "@jest/fake-timers" "^25.5.0" - "@jest/types" "^25.5.0" - jest-mock "^25.5.0" - jest-util "^25.5.0" - jsdom "^15.2.1" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" -jest-environment-node@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1" - integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA== +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== dependencies: - "@jest/environment" "^25.5.0" - "@jest/fake-timers" "^25.5.0" - "@jest/types" "^25.5.0" - jest-mock "^25.5.0" - jest-util "^25.5.0" - semver "^6.3.0" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" jest-get-type@^24.9.0: version "24.9.0" resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-get-type@^25.2.6: - version "25.2.6" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" - integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== jest-haste-map@24.0.0-alpha.6: version "24.0.0-alpha.6" @@ -6461,56 +6566,58 @@ jest-haste-map@24.0.0-alpha.6: micromatch "^2.3.11" sane "^3.0.0" -jest-haste-map@^25.5.1: - version "25.5.1" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943" - integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ== +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== dependencies: - "@jest/types" "^25.5.0" + "@jest/types" "^26.6.2" "@types/graceful-fs" "^4.1.2" + "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.4" - jest-serializer "^25.5.0" - jest-util "^25.5.0" - jest-worker "^25.5.0" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" - which "^2.0.2" optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^25.5.4: - version "25.5.4" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968" - integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ== +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^25.5.0" - "@jest/source-map" "^25.5.0" - "@jest/test-result" "^25.5.0" - "@jest/types" "^25.5.0" - chalk "^3.0.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" co "^4.6.0" - expect "^25.5.0" + expect "^26.6.2" is-generator-fn "^2.0.0" - jest-each "^25.5.0" - jest-matcher-utils "^25.5.0" - jest-message-util "^25.5.0" - jest-runtime "^25.5.4" - jest-snapshot "^25.5.1" - jest-util "^25.5.0" - pretty-format "^25.5.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" throat "^5.0.0" -jest-leak-detector@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb" - integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA== +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== dependencies: - jest-get-type "^25.2.6" - pretty-format "^25.5.0" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" jest-matcher-utils@^24.0.0: version "24.9.0" @@ -6522,15 +6629,15 @@ jest-matcher-utils@^24.0.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-matcher-utils@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867" - integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw== +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== dependencies: - chalk "^3.0.0" - jest-diff "^25.5.0" - jest-get-type "^25.2.6" - pretty-format "^25.5.0" + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" jest-message-util@^24.9.0: version "24.9.0" @@ -6546,19 +6653,20 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" -jest-message-util@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea" - integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA== +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/types" "^25.5.0" - "@types/stack-utils" "^1.0.1" - chalk "^3.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" graceful-fs "^4.2.4" micromatch "^4.0.2" + pretty-format "^26.6.2" slash "^3.0.0" - stack-utils "^1.0.1" + stack-utils "^2.0.2" jest-mock@^24.9.0: version "24.9.0" @@ -6567,103 +6675,105 @@ jest-mock@^24.9.0: dependencies: "@jest/types" "^24.9.0" -jest-mock@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a" - integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA== +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== dependencies: - "@jest/types" "^25.5.0" + "@jest/types" "^26.6.2" + "@types/node" "*" -jest-pnp-resolver@^1.2.1: +jest-pnp-resolver@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^25.2.6: - version "25.2.6" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" - integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^25.5.4: - version "25.5.4" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7" - integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw== +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== dependencies: - "@jest/types" "^25.5.0" - jest-regex-util "^25.2.6" - jest-snapshot "^25.5.1" + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" -jest-resolve@^25.5.1: - version "25.5.1" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829" - integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ== +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== dependencies: - "@jest/types" "^25.5.0" - browser-resolve "^1.11.3" - chalk "^3.0.0" + "@jest/types" "^26.6.2" + chalk "^4.0.0" graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.1" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" read-pkg-up "^7.0.1" - realpath-native "^2.0.0" - resolve "^1.17.0" + resolve "^1.18.1" slash "^3.0.0" -jest-runner@^25.5.4: - version "25.5.4" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d" - integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg== +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== dependencies: - "@jest/console" "^25.5.0" - "@jest/environment" "^25.5.0" - "@jest/test-result" "^25.5.0" - "@jest/types" "^25.5.0" - chalk "^3.0.0" + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^25.5.4" - jest-docblock "^25.3.0" - jest-haste-map "^25.5.1" - jest-jasmine2 "^25.5.4" - jest-leak-detector "^25.5.0" - jest-message-util "^25.5.0" - jest-resolve "^25.5.1" - jest-runtime "^25.5.4" - jest-util "^25.5.0" - jest-worker "^25.5.0" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^25.5.4: - version "25.5.4" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab" - integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ== - dependencies: - "@jest/console" "^25.5.0" - "@jest/environment" "^25.5.0" - "@jest/globals" "^25.5.2" - "@jest/source-map" "^25.5.0" - "@jest/test-result" "^25.5.0" - "@jest/transform" "^25.5.1" - "@jest/types" "^25.5.0" +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/yargs" "^15.0.0" - chalk "^3.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^25.5.4" - jest-haste-map "^25.5.1" - jest-message-util "^25.5.0" - jest-mock "^25.5.0" - jest-regex-util "^25.2.6" - jest-resolve "^25.5.1" - jest-snapshot "^25.5.1" - jest-util "^25.5.0" - jest-validate "^25.5.0" - realpath-native "^2.0.0" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^15.3.1" + yargs "^15.4.1" jest-serializer@24.0.0-alpha.6: version "24.0.0-alpha.6" @@ -6675,33 +6785,35 @@ jest-serializer@^24.0.0-alpha.6: resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== -jest-serializer@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b" - integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA== +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== dependencies: + "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^25.5.1: - version "25.5.1" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f" - integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ== +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^25.5.0" - "@types/prettier" "^1.19.0" - chalk "^3.0.0" - expect "^25.5.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" graceful-fs "^4.2.4" - jest-diff "^25.5.0" - jest-get-type "^25.2.6" - jest-matcher-utils "^25.5.0" - jest-message-util "^25.5.0" - jest-resolve "^25.5.1" - make-dir "^3.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" natural-compare "^1.4.0" - pretty-format "^25.5.0" - semver "^6.3.0" + pretty-format "^26.6.2" + semver "^7.3.2" jest-util@^24.9.0: version "24.9.0" @@ -6721,28 +6833,29 @@ jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" -jest-util@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0" - integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA== +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== dependencies: - "@jest/types" "^25.5.0" - chalk "^3.0.0" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^2.0.0" - make-dir "^3.0.0" + micromatch "^4.0.2" -jest-validate@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a" - integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ== +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== dependencies: - "@jest/types" "^25.5.0" - camelcase "^5.3.1" - chalk "^3.0.0" - jest-get-type "^25.2.6" + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^25.5.0" + pretty-format "^26.6.2" jest-watch-typeahead@^0.3.1: version "0.3.1" @@ -6769,17 +6882,18 @@ jest-watcher@^24.3.0: jest-util "^24.9.0" string-length "^2.0.0" -jest-watcher@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456" - integrity sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q== +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== dependencies: - "@jest/test-result" "^25.5.0" - "@jest/types" "^25.5.0" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" ansi-escapes "^4.2.1" - chalk "^3.0.0" - jest-util "^25.5.0" - string-length "^3.1.0" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" jest-worker@24.0.0-alpha.6: version "24.0.0-alpha.6" @@ -6796,22 +6910,23 @@ jest-worker@^24.0.0-alpha.6: merge-stream "^2.0.0" supports-color "^6.1.0" -jest-worker@^25.5.0: - version "25.5.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" - integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: + "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^25.1.0: - version "25.5.4" - resolved "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" - integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ== +jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== dependencies: - "@jest/core" "^25.5.4" + "@jest/core" "^26.6.3" import-local "^3.0.2" - jest-cli "^25.5.4" + jest-cli "^26.6.3" joycon@^2.2.5: version "2.2.5" @@ -6836,36 +6951,36 @@ jsbn@~0.1.0: resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsdom@^15.2.1: - version "15.2.1" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" - integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== - dependencies: - abab "^2.0.0" - acorn "^7.1.0" - acorn-globals "^4.3.2" - array-equal "^1.0.0" - cssom "^0.4.1" - cssstyle "^2.0.0" - data-urls "^1.1.0" - domexception "^1.0.1" - escodegen "^1.11.1" - html-encoding-sniffer "^1.0.2" +jsdom@^16.4.0: + version "16.5.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.5.1.tgz#4ced6bbd7b77d67fb980e64d9e3e6fb900f97dd6" + integrity sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA== + dependencies: + abab "^2.0.5" + acorn "^8.0.5" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" nwsapi "^2.2.0" - parse5 "5.1.0" - pn "^1.1.0" - request "^2.88.0" - request-promise-native "^1.0.7" - saxes "^3.1.9" - symbol-tree "^3.2.2" - tough-cookie "^3.0.1" - w3c-hr-time "^1.0.1" - w3c-xmlserializer "^1.1.2" - webidl-conversions "^4.0.2" + parse5 "6.0.1" + request "^2.88.2" + request-promise-native "^1.0.9" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" - whatwg-url "^7.0.0" - ws "^7.0.0" + whatwg-url "^8.0.0" + ws "^7.4.4" xml-name-validator "^3.0.0" jsesc@^2.5.1: @@ -6910,6 +7025,13 @@ json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json5@2.x: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + json5@^2.1.2: version "2.1.3" resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" @@ -7197,18 +7319,16 @@ lodash.uniq@^4.5.0: resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= +lodash@4.x: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1: version "4.17.20" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -lolex@^5.0.0: - version "5.1.2" - resolved "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" - integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== - dependencies: - "@sinonjs/commons" "^1.7.0" - loop@^3.0.6, loop@^3.3.2: version "3.3.4" resolved "https://registry.npmjs.org/loop/-/loop-3.3.4.tgz#d9bdbefed4aa06f6d2145bc10e9ddbbaa4e107fd" @@ -7298,6 +7418,11 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" +make-error@1.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + make-fetch-happen@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz#2d156b11696fb32bffbafe1ac1bc085dd6c78a79" @@ -7895,6 +8020,11 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mkdirp@1.x, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.5" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -7902,11 +8032,6 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: dependencies: minimist "^1.2.5" -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - "mock-raf@npm:@react-spring/mock-raf": version "1.1.1" resolved "https://registry.npmjs.org/@react-spring/mock-raf/-/mock-raf-1.1.1.tgz#f3d9e17a8c973c8ce286571f1edd63a80414fe5d" @@ -8097,16 +8222,17 @@ node-notifier@^5.2.1: shellwords "^0.1.1" which "^1.3.0" -node-notifier@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" - integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== +node-notifier@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== dependencies: growly "^1.3.0" - is-wsl "^2.1.1" - semver "^6.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" shellwords "^0.1.1" - which "^1.3.1" + uuid "^8.3.0" + which "^2.0.2" node-releases@^1.1.67: version "1.1.67" @@ -8662,10 +8788,10 @@ parse-url@^5.0.0: parse-path "^4.0.0" protocols "^1.4.0" -parse5@5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" - integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== parseurl@~1.3.3: version "1.3.3" @@ -8848,11 +8974,6 @@ plugin-error@^0.1.2: arr-union "^2.0.1" extend-shallow "^1.1.2" -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - pointer-events-polyfill@^0.4.4-pre: version "0.4.4-pre" resolved "https://registry.npmjs.org/pointer-events-polyfill/-/pointer-events-polyfill-0.4.4-pre.tgz#d745eb0cef8aa3f661cdba1364b9728b46d0872f" @@ -8896,7 +9017,7 @@ pretty-format@^24.0.0, pretty-format@^24.3.0, pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -pretty-format@^25.1.0, pretty-format@^25.5.0: +pretty-format@^25.1.0: version "25.5.0" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== @@ -8906,7 +9027,7 @@ pretty-format@^25.1.0, pretty-format@^25.5.0: ansi-styles "^4.0.0" react-is "^16.12.0" -pretty-format@^26.6.2: +pretty-format@^26.0.0, pretty-format@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== @@ -9011,7 +9132,7 @@ pseudomap@^1.0.2: resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.28: +psl@^1.1.28, psl@^1.1.33: version "1.8.0" resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -9481,11 +9602,6 @@ readdir-scoped-modules@^1.0.0: graceful-fs "^4.1.2" once "^1.3.0" -realpath-native@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" - integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== - recrawl-sync@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/recrawl-sync/-/recrawl-sync-1.2.3.tgz#1f5e5aec3439f17b8a01a20e22e360ba6685673e" @@ -9625,16 +9741,16 @@ request-promise-core@1.1.4: dependencies: lodash "^4.17.19" -request-promise-native@^1.0.7: +request-promise-native@^1.0.9: version "1.0.9" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: request-promise-core "1.1.4" stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.87.0, request@^2.88.0: +request@^2.87.0, request@^2.88.2: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -9729,11 +9845,6 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.5.0: version "1.19.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" @@ -9742,6 +9853,14 @@ resolve@^1.10.0, resolve@^1.11.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.5 is-core-module "^2.1.0" path-parse "^1.0.6" +resolve@^1.18.1: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -9921,12 +10040,12 @@ sax@~1.1.1: resolved "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz#5d616be8a5e607d54e114afae55b7eaf2fcc3240" integrity sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA= -saxes@^3.1.9: - version "3.1.11" - resolved "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" - integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== dependencies: - xmlchars "^2.1.1" + xmlchars "^2.2.0" saxon@^0.1.15: version "0.1.18" @@ -9995,6 +10114,13 @@ semver@7.3.2: resolved "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== +semver@7.x: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -10280,6 +10406,14 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + source-map-support@^0.5.16, source-map-support@^0.5.6: version "0.5.19" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" @@ -10399,6 +10533,13 @@ stack-utils@^1.0.1: dependencies: escape-string-regexp "^2.0.0" +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + stacktrace-parser@^0.1.3: version "0.1.10" resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -10450,13 +10591,13 @@ string-length@^2.0.0: astral-regex "^1.0.0" strip-ansi "^4.0.0" -string-length@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" - integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== dependencies: - astral-regex "^1.0.0" - strip-ansi "^5.2.0" + char-regex "^1.0.2" + strip-ansi "^6.0.0" string-width@^1.0.1: version "1.0.2" @@ -10650,9 +10791,9 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" -symbol-tree@^3.2.2: +symbol-tree@^3.2.4: version "3.2.4" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== tabtab@3.0.2: @@ -10859,14 +11000,14 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" - integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== dependencies: - ip-regex "^2.1.0" - psl "^1.1.28" + psl "^1.1.33" punycode "^2.1.1" + universalify "^0.1.2" tr46@^1.0.1: version "1.0.1" @@ -10875,6 +11016,13 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -10895,6 +11043,22 @@ trim-off-newlines@^1.0.0: resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= +ts-jest@^26.5.4: + version "26.5.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.4.tgz#207f4c114812a9c6d5746dd4d1cdf899eafc9686" + integrity sha512-I5Qsddo+VTm94SukBJ4cPimOoFZsYTeElR2xy6H2TOVs+NsvgYglW8KuQgKoApOKuaU/Ix/vrF9ebFZlb5D2Pg== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + jest-util "^26.1.0" + json5 "2.x" + lodash "4.x" + make-error "1.x" + mkdirp "1.x" + semver "7.x" + yargs-parser "20.x" + tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -10968,10 +11132,10 @@ typescript-rewrite-paths@^1.2.0: dependencies: magic-string "^0.25.2" -typescript@^4.0.0: - version "4.1.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" - integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== +typescript@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3" + integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw== ua-parser-js@^0.7.18: version "0.7.23" @@ -11070,7 +11234,7 @@ universal-user-agent@^6.0.0: resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== -universalify@^0.1.0: +universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== @@ -11159,10 +11323,15 @@ uuid@^3.0.1, uuid@^3.3.2: resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -v8-to-istanbul@^4.1.3: - version "4.1.4" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" - integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-to-istanbul@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -11197,20 +11366,18 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -w3c-hr-time@^1.0.1: +w3c-hr-time@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: browser-process-hrtime "^1.0.0" -w3c-xmlserializer@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" - integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== dependencies: - domexception "^1.0.1" - webidl-conversions "^4.0.2" xml-name-validator "^3.0.0" wait-for-expect@^3.0.2: @@ -11245,7 +11412,17 @@ webidl-conversions@^4.0.2: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== @@ -11257,7 +11434,7 @@ whatwg-fetch@>=0.10.0: resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz#605a2cd0a7146e5db141e29d1c62ab84c0c4c868" integrity sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A== -whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: +whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== @@ -11271,6 +11448,15 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -11424,10 +11610,10 @@ ws@^3.3.1: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^7.0.0: - version "7.4.1" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb" - integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ== +ws@^7.4.4: + version "7.4.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" + integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== xcode@^1.0.0: version "1.1.0" @@ -11452,9 +11638,9 @@ xmlbuilder@^9.0.7: resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= -xmlchars@^2.1.1: +xmlchars@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== xmldoc@^0.4.0: @@ -11514,6 +11700,11 @@ yaml@^1.10.0: resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== +yargs-parser@20.x, yargs-parser@^20.2.2: + version "20.2.7" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" + integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" @@ -11538,11 +11729,6 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== - yargs-parser@^20.2.3: version "20.2.4" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" @@ -11590,7 +11776,7 @@ yargs@^14.0.0: y18n "^4.0.0" yargs-parser "^15.0.1" -yargs@^15.1.0, yargs@^15.3.1: +yargs@^15.1.0, yargs@^15.4.1: version "15.4.1" resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==