ensures tests work with new babel config

This commit is contained in:
James
2020-09-21 21:58:16 -04:00
parent fe99952561
commit 628d68ed2d
20 changed files with 227 additions and 134 deletions

21
babel.config.js Normal file
View File

@@ -0,0 +1,21 @@
module.exports = {
presets: [
[
require.resolve('@babel/preset-env'),
{
modules: 'cjs',
targets: [
'defaults',
'not IE 11',
'not IE_Mob 11',
],
},
],
require.resolve('@babel/preset-react'),
],
plugins: [
require.resolve('@babel/plugin-proposal-class-properties'),
require.resolve('@babel/plugin-proposal-optional-chaining'),
require.resolve('babel-plugin-add-module-exports'),
],
};

View File

@@ -36,11 +36,9 @@ module.exports = {
},
disable: false,
components: {
layout: {
// Sidebar: () => (
// <div>Hello</div>
// ),
},
// nav: () => (
// <div>Hello</div>
// ),
},
},
email: {

View File

@@ -38,12 +38,13 @@ expressApp.use('/external-route', externalRouter);
exports.start = (cb) => {
const server = expressApp.listen(3000, async () => {
logger.info(`listening on ${3000}...`);
if (cb) cb();
const creds = await payload.getMockEmailCredentials();
logger.info(`Mock email account username: ${creds.user}`);
logger.info(`Mock email account password: ${creds.pass}`);
logger.info(`Log in to mock email provider at ${creds.web}`);
if (cb) cb();
});
return server;

View File

@@ -4,4 +4,8 @@ module.exports = {
globalSetup: '<rootDir>/src/tests/globalSetup.js',
globalTeardown: '<rootDir>/src/tests/globalTeardown.js',
testTimeout: 15000,
moduleNameMapper: {
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/src/mocks/fileMock.js',
'\\.(css|scss)$': '<rootDir>/src/mocks/emptyModule.js',
},
};

View File

@@ -33,9 +33,9 @@
"@udecode/slate-plugins": "^0.64.3",
"async-some": "^1.0.2",
"autoprefixer": "^9.7.4",
"babel-loader": "^8.0.6",
"babel-jest": "^26.3.0",
"babel-loader": "^8.1.0",
"babel-plugin-add-module-exports": "^1.0.4",
"babel-plugin-module-resolver": "^4.0.0",
"body-parser": "^1.19.0",
"compression": "^1.7.4",
"connect-history-api-fallback": "^1.6.0",
@@ -99,7 +99,6 @@
"react-document-meta": "^3.0.0-beta.2",
"react-dom": "^16.13.1",
"react-helmet": "^6.1.0",
"react-hook-form": "^5.7.2",
"react-router-dom": "^5.1.2",
"react-router-navigation-prompt": "^1.8.11",
"react-select": "^3.0.8",

View File

@@ -6,9 +6,9 @@ const { email, password } = require('../tests/credentials');
* @jest-environment node
*/
const config = require('../../demo/payload.config');
const getConfig = require('../utilities/getConfig');
const url = config.serverURL;
const { serverURL: url } = getConfig();
let token = null;

View File

@@ -4,13 +4,14 @@
const webpack = require('webpack');
const getWebpackProdConfig = require('../webpack/getWebpackProdConfig');
const findConfig = require('../utilities/findConfig');
const getConfig = require('../utilities/getConfig');
const sanitizeConfig = require('../utilities/sanitizeConfig');
module.exports = () => {
const configPath = findConfig();
const configPath = findConfig();
module.exports = () => {
try {
const unsanitizedConfig = require(configPath);
const unsanitizedConfig = getConfig();
const config = sanitizeConfig(unsanitizedConfig);
const webpackProdConfig = getWebpackProdConfig({

View File

@@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react';
import { NavLink, Link, useHistory } from 'react-router-dom';
import { useConfig } from '../../providers/Config';
import { useAuthentication } from '../../providers/Authentication';
import RenderCustomComponent from '../../utilities/RenderCustomComponent';
import Chevron from '../../icons/Chevron';
import LogOut from '../../icons/LogOut';
import Menu from '../../icons/Menu';
@@ -14,7 +15,7 @@ import './index.scss';
const baseClass = 'nav';
const Nav = () => {
const DefaultNav = () => {
const { permissions } = useAuthentication();
const [menuActive, setMenuActive] = useState(false);
const history = useHistory();
@@ -126,4 +127,21 @@ const Nav = () => {
);
};
const Nav = () => {
const {
admin: {
components: {
nav: CustomNav,
} = {}
} = {},
} = useConfig();
return (
<RenderCustomComponent
CustomComponent={CustomNav}
DefaultComponent={DefaultNav}
/>
);
}
export default Nav;

View File

@@ -422,7 +422,7 @@ const RelationshipFieldType = (props) => {
relationTo, validate, path, name, required,
} = props;
const config = useConfig;
const config = useConfig();
const hasMultipleRelations = Array.isArray(relationTo);

View File

@@ -4,10 +4,11 @@
// eslint-disable-next-line no-unused-vars
const fetch = require('isomorphic-fetch');
const { request, GraphQLClient } = require('graphql-request');
const faker = require('faker');
const config = require('../../../../demo/payload.config');
const getConfig = require('../../../utilities/getConfig');
const { email, password } = require('../../../tests/credentials');
const config = getConfig();
const url = `${config.serverURL}${config.routes.api}${config.routes.graphQL}`;
let client = null;

View File

@@ -7,11 +7,11 @@ const path = require('path');
require('isomorphic-fetch');
const faker = require('faker');
const FormData = require('form-data');
const config = require('../../../demo/payload.config');
const getConfig = require('../../utilities/getConfig');
const { email, password } = require('../../tests/credentials');
const fileExists = require('../../tests/utils/fileExists');
const url = config.serverURL;
const { serverURL: url } = getConfig();
let token = null;

View File

@@ -3,10 +3,10 @@
*/
require('isomorphic-fetch');
const config = require('../../../demo/payload.config');
const getConfig = require('../../utilities/getConfig');
const { email, password } = require('../../tests/credentials');
const url = config.serverURL;
const { serverURL: url } = getConfig();
let token = null;

View File

@@ -29,9 +29,24 @@ const localGlobalOperations = require('./globals/operations/local');
class Payload {
init(options) {
logger.info('Starting Payload...');
const config = getConfig(options);
this.config = sanitizeConfig(config);
if (!options.secret) {
throw new Error('Error: missing secret key. A secret key is needed to secure Payload.');
}
if (!options.mongoURL) {
throw new Error('Error: missing MongoDB connection URL.');
}
const config = getConfig(options);
const email = { ...(config.email || {}), ...(options.email || {}) };
this.config = sanitizeConfig({
...config,
email,
secret: options.secret,
mongoURL: options.mongoURL,
});
if (typeof this.config.paths === 'undefined') this.config.paths = {};

1
src/mocks/fileMock.js Normal file
View File

@@ -0,0 +1 @@
module.exports = 'file-stub';

View File

@@ -1,17 +1,15 @@
require('isomorphic-fetch');
const server = require('../../demo/server');
const config = require('../../demo/payload.config');
// const payload = require('..');
const getConfig = require('../utilities/getConfig');
const { email, password } = require('./credentials');
const url = config.serverURL;
const { serverURL } = getConfig();
const globalSetup = async () => {
global.PAYLOAD_SERVER = server.start();
// ensureIndexes payload.collections....... etc loop through and await promise.all ensure indexes
const response = await fetch(`${url}/api/admins/first-register`, {
const response = await fetch(`${serverURL}/api/admins/first-register`, {
body: JSON.stringify({
email,
password,

View File

@@ -3,58 +3,19 @@
const findConfig = require('./findConfig');
const configPath = findConfig();
const babelConfig = require('../../babel.config');
require('ignore-styles');
require('@babel/register')({
presets: [
[
'@babel/preset-env',
{
targets: [
'defaults',
'not IE 11',
'not IE_Mob 11',
'maintained node versions',
],
},
],
'@babel/preset-react',
],
plugins: [
['module-resolver', {
alias: {
'payload/unsanitizedConfig': configPath,
'@payloadcms/payload$': '../',
},
}],
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-optional-chaining',
'add-module-exports',
],
ignore: [
'*.scss',
'*.css',
'node_modules',
],
});
const getConfig = (options = {}) => {
if (!options.secret) {
throw new Error('Error: missing secret key. A secret key is needed to secure Payload.');
}
if (!options.mongoURL) {
throw new Error('Error: missing MongoDB connection URL.');
}
if (process.env.NODE_ENV !== 'test') {
require('@babel/register')(babelConfig);
}
const getConfig = () => {
const publicConfig = require(configPath);
const email = { ...(publicConfig.email || {}), ...(options.email || {}) };
return {
...publicConfig,
secret: options.secret,
mongoURL: options.mongoURL,
email,
paths: {
configDir: configPath.substring(0, configPath.lastIndexOf('/')),
...(publicConfig.paths || {}),

View File

@@ -3,8 +3,9 @@ const path = require('path');
const webpack = require('webpack');
const Dotenv = require('dotenv-webpack');
const getStyleLoaders = require('./getStyleLoaders');
const babelConfig = require('../../babel.config');
const mockModulePath = path.resolve(__dirname, './mockModule.js');
const mockModulePath = path.resolve(__dirname, '../mocks/emptyModule.js');
module.exports = (config) => {
let webpackConfig = {
@@ -29,26 +30,7 @@ module.exports = (config) => {
exclude: /node_modules\/(?!(@payloadcms\/payload)\/).*/,
use: [{
loader: 'babel-loader',
options: {
presets: [
[
require.resolve('@babel/preset-env'),
{
targets: [
'defaults',
'not IE 11',
'not IE_Mob 11',
],
},
],
require.resolve('@babel/preset-react'),
],
plugins: [
'add-module-exports',
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-optional-chaining',
],
},
options: babelConfig,
},
// {
// loader: 'eslint-loader',

View File

@@ -3,8 +3,9 @@ const Dotenv = require('dotenv-webpack');
// const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
const path = require('path');
const getStyleLoaders = require('./getStyleLoaders');
const babelConfig = require('../../babel.config');
const mockModulePath = path.resolve(__dirname, './mockModule.js');
const mockModulePath = path.resolve(__dirname, '../mocks/emptyModule.js');
module.exports = (config) => {
let webpackConfig = {
@@ -21,40 +22,12 @@ module.exports = (config) => {
resolveLoader: { modules: ['node_modules', path.join(__dirname, '../../node_modules')] },
module: {
rules: [
{
test: require.resolve('../client/components/customComponents'),
use: [
{
loader: 'val-loader',
options: config,
},
],
},
{
test: /\.js$/,
exclude: /node_modules\/(?!(@payloadcms\/payload)\/).*/,
use: {
loader: 'babel-loader',
options: {
presets: [
[
require.resolve('@babel/preset-env'),
{
targets: [
'defaults',
'not IE 11',
'not IE_Mob 11',
],
},
],
require.resolve('@babel/preset-react'),
],
plugins: [
'add-module-exports',
require.resolve('@babel/plugin-proposal-optional-chaining'),
require.resolve('@babel/plugin-proposal-class-properties'),
],
},
options: babelConfig,
},
},
{
@@ -104,7 +77,6 @@ module.exports = (config) => {
modules: ['node_modules', path.resolve(__dirname, '../../node_modules')],
alias: {
'payload/unsanitizedConfig': config.paths.config,
'payload/config': path.resolve(__dirname, '../client/config.js'),
'@payloadcms/payload$': mockModulePath,
},
},

137
yarn.lock
View File

@@ -1294,6 +1294,27 @@
source-map "^0.6.1"
write-file-atomic "^3.0.0"
"@jest/transform@^26.3.0":
version "26.3.0"
resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.3.0.tgz#c393e0e01459da8a8bfc6d2a7c2ece1a13e8ba55"
integrity sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A==
dependencies:
"@babel/core" "^7.1.0"
"@jest/types" "^26.3.0"
babel-plugin-istanbul "^6.0.0"
chalk "^4.0.0"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
graceful-fs "^4.2.4"
jest-haste-map "^26.3.0"
jest-regex-util "^26.0.0"
jest-util "^26.3.0"
micromatch "^4.0.2"
pirates "^4.0.1"
slash "^3.0.0"
source-map "^0.6.1"
write-file-atomic "^3.0.0"
"@jest/types@^25.5.0":
version "25.5.0"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d"
@@ -1304,6 +1325,17 @@
"@types/yargs" "^15.0.0"
chalk "^3.0.0"
"@jest/types@^26.3.0":
version "26.3.0"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.3.0.tgz#97627bf4bdb72c55346eef98e3b3f7ddc4941f71"
integrity sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^3.0.0"
"@types/node" "*"
"@types/yargs" "^15.0.0"
chalk "^4.0.0"
"@microsoft/load-themed-styles@^1.10.26":
version "1.10.97"
resolved "https://registry.yarnpkg.com/@microsoft/load-themed-styles/-/load-themed-styles-1.10.97.tgz#39106393e134e68870072784c595a432d9ae9051"
@@ -1337,7 +1369,7 @@
object.assign "^4.1.0"
object.entries "^1.1.1"
"@types/babel__core@^7.1.7":
"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7":
version "7.1.9"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d"
integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==
@@ -1417,6 +1449,13 @@
"@types/istanbul-lib-coverage" "*"
"@types/istanbul-lib-report" "*"
"@types/istanbul-reports@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821"
integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==
dependencies:
"@types/istanbul-lib-report" "*"
"@types/js-cookie@2.2.6":
version "2.2.6"
resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f"
@@ -2171,7 +2210,21 @@ babel-jest@^25.5.1:
graceful-fs "^4.2.4"
slash "^3.0.0"
babel-loader@^8.0.6:
babel-jest@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.3.0.tgz#10d0ca4b529ca3e7d1417855ef7d7bd6fc0c3463"
integrity sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g==
dependencies:
"@jest/transform" "^26.3.0"
"@jest/types" "^26.3.0"
"@types/babel__core" "^7.1.7"
babel-plugin-istanbul "^6.0.0"
babel-preset-jest "^26.3.0"
chalk "^4.0.0"
graceful-fs "^4.2.4"
slash "^3.0.0"
babel-loader@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3"
integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==
@@ -2230,6 +2283,16 @@ babel-plugin-jest-hoist@^25.5.0:
"@babel/types" "^7.3.3"
"@types/babel__traverse" "^7.0.6"
babel-plugin-jest-hoist@^26.2.0:
version "26.2.0"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz#bdd0011df0d3d513e5e95f76bd53b51147aca2dd"
integrity sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA==
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-macros@^2.0.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
@@ -2255,7 +2318,7 @@ babel-plugin-syntax-jsx@^6.18.0:
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
babel-preset-current-node-syntax@^0.1.2:
babel-preset-current-node-syntax@^0.1.2, babel-preset-current-node-syntax@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da"
integrity sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==
@@ -2280,6 +2343,14 @@ babel-preset-jest@^25.5.0:
babel-plugin-jest-hoist "^25.5.0"
babel-preset-current-node-syntax "^0.1.2"
babel-preset-jest@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz#ed6344506225c065fd8a0b53e191986f74890776"
integrity sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw==
dependencies:
babel-plugin-jest-hoist "^26.2.0"
babel-preset-current-node-syntax "^0.1.3"
bail@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776"
@@ -6327,6 +6398,27 @@ jest-haste-map@^25.5.1:
optionalDependencies:
fsevents "^2.1.2"
jest-haste-map@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.3.0.tgz#c51a3b40100d53ab777bfdad382d2e7a00e5c726"
integrity sha512-DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA==
dependencies:
"@jest/types" "^26.3.0"
"@types/graceful-fs" "^4.1.2"
"@types/node" "*"
anymatch "^3.0.3"
fb-watchman "^2.0.0"
graceful-fs "^4.2.4"
jest-regex-util "^26.0.0"
jest-serializer "^26.3.0"
jest-util "^26.3.0"
jest-worker "^26.3.0"
micromatch "^4.0.2"
sane "^4.0.3"
walker "^1.0.7"
optionalDependencies:
fsevents "^2.1.2"
jest-jasmine2@^25.5.4:
version "25.5.4"
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968"
@@ -6399,6 +6491,11 @@ jest-regex-util@^25.2.6:
resolved "https://registry.yarnpkg.com/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.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7"
@@ -6487,6 +6584,14 @@ jest-serializer@^25.5.0:
dependencies:
graceful-fs "^4.2.4"
jest-serializer@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.3.0.tgz#1c9d5e1b74d6e5f7e7f9627080fa205d976c33ef"
integrity sha512-IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow==
dependencies:
"@types/node" "*"
graceful-fs "^4.2.4"
jest-snapshot@^25.5.1:
version "25.5.1"
resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f"
@@ -6519,6 +6624,18 @@ jest-util@^25.5.0:
is-ci "^2.0.0"
make-dir "^3.0.0"
jest-util@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.3.0.tgz#a8974b191df30e2bf523ebbfdbaeb8efca535b3e"
integrity sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==
dependencies:
"@jest/types" "^26.3.0"
"@types/node" "*"
chalk "^4.0.0"
graceful-fs "^4.2.4"
is-ci "^2.0.0"
micromatch "^4.0.2"
jest-validate@^25.5.0:
version "25.5.0"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a"
@@ -6551,6 +6668,15 @@ jest-worker@^25.5.0:
merge-stream "^2.0.0"
supports-color "^7.0.0"
jest-worker@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f"
integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==
dependencies:
"@types/node" "*"
merge-stream "^2.0.0"
supports-color "^7.0.0"
jest@^25.3.0:
version "25.5.4"
resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db"
@@ -9408,11 +9534,6 @@ react-helmet@^6.1.0:
react-fast-compare "^3.1.1"
react-side-effect "^2.1.0"
react-hook-form@^5.7.2:
version "5.7.2"
resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-5.7.2.tgz#a84e259e5d37dd30949af4f79c4dac31101b79ac"
integrity sha512-bJvY348vayIvEUmSK7Fvea/NgqbT2racA2IbnJz/aPlQ3GBtaTeDITH6rtCa6y++obZzG6E3Q8VuoXPir7QYUg==
react-input-autosize@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.2.tgz#fcaa7020568ec206bc04be36f4eb68e647c4d8c2"