converts demo to ts

This commit is contained in:
James
2020-11-28 16:07:54 -05:00
parent 9019cc9101
commit aa795d19d5
70 changed files with 784 additions and 1526 deletions

View File

@@ -1,3 +1,3 @@
const config = require('./src/babel.config'); const config = require('./src/babel.config');
module.exports = (api) => config(api); module.exports = config;

View File

@@ -6,11 +6,7 @@
*/ */
const checkRole = (allRoles, user) => { const checkRole = (allRoles, user) => {
if (user) { if (user) {
if (allRoles.some((role) => { if (allRoles.some((role) => user.roles && user.roles.some((individualRole) => individualRole === role))) {
return user.roles && user.roles.some((individualRole) => {
return individualRole === role;
});
})) {
return true; return true;
} }
} }
@@ -18,4 +14,4 @@ const checkRole = (allRoles, user) => {
return false; return false;
}; };
module.exports = checkRole; export default checkRole;

View File

@@ -1,4 +1,4 @@
module.exports = [ export default [
'admin', 'admin',
'editor', 'editor',
'moderator', 'moderator',

View File

@@ -1,4 +1,4 @@
module.exports = { export default {
slug: 'cta', slug: 'cta',
labels: { labels: {
singular: 'Call to Action', singular: 'Call to Action',

View File

@@ -1,4 +1,4 @@
module.exports = { export default {
slug: 'email', slug: 'email',
labels: { labels: {
singular: 'Email', singular: 'Email',

View File

@@ -1,4 +1,4 @@
module.exports = { export default {
slug: 'number', slug: 'number',
labels: { labels: {
singular: 'Number', singular: 'Number',

View File

@@ -1,4 +1,4 @@
module.exports = { export default {
blockImage: '/static/assets/images/generic-block-image.svg', blockImage: '/static/assets/images/generic-block-image.svg',
slug: 'quote', slug: 'quote',
labels: { labels: {

View File

@@ -1,5 +0,0 @@
import React from 'react';
const Sidebar = () => <div className="sidebar">fake sidebar</div>
export default Sidebar;

View File

@@ -35,7 +35,7 @@ const insertButton = (editor, { href, label, style, newTab = false }) => {
Transforms.insertNodes(editor, nodes); Transforms.insertNodes(editor, nodes);
}; };
const ToolbarButton = ({ path }) => { const ToolbarButton: React.FC = ({ path }) => {
const { open, closeAll } = useModal(); const { open, closeAll } = useModal();
const editor = useSlate(); const editor = useSlate();

View File

@@ -5,7 +5,7 @@ import './index.scss';
const baseClass = 'rich-text-button'; const baseClass = 'rich-text-button';
const ButtonElement = ({ attributes, children, element }) => { const ButtonElement: React.FC = ({ attributes, children, element }) => {
const { style = 'primary', label } = element; const { style = 'primary', label } = element;
return ( return (

View File

@@ -1,12 +1,12 @@
const roles = require('../access/roles'); import roles from '../access/roles';
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
const access = ({ req: { user } }) => { const access = ({ req: { user } }) => {
const result = checkRole(['admin'], user); const result = checkRole(['admin'], user);
return result; return result;
}; };
module.exports = { export default {
slug: 'admins', slug: 'admins',
labels: { labels: {
singular: 'Admin', singular: 'Admin',
@@ -62,6 +62,10 @@ module.exports = {
}, },
}, },
}, },
{
name: 'upload',
type: 'uploads',
},
], ],
timestamps: true, timestamps: true,
admin: { admin: {

View File

@@ -1,8 +1,8 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
const Email = require('../blocks/Email'); import Email from '../blocks/Email';
const Quote = require('../blocks/Quote'); import Quote from '../blocks/Quote';
const NumberBlock = require('../blocks/Number'); import NumberBlock from '../blocks/Number';
const CallToAction = require('../blocks/CallToAction'); import CallToAction from '../blocks/CallToAction';
const AllFields = { const AllFields = {
slug: 'all-fields', slug: 'all-fields',
@@ -270,4 +270,4 @@ const AllFields = {
timestamps: true, timestamps: true,
}; };
module.exports = AllFields; export default AllFields;

View File

@@ -9,4 +9,4 @@ const AutoLabel = {
}], }],
}; };
module.exports = AutoLabel; export default AutoLabel;

View File

@@ -1,9 +1,9 @@
const Email = require('../blocks/Email'); import Email from '../blocks/Email';
const Quote = require('../blocks/Quote'); import Quote from '../blocks/Quote';
const NumberBlock = require('../blocks/Number'); import NumberBlock from '../blocks/Number';
const CallToAction = require('../blocks/CallToAction'); import CallToAction from '../blocks/CallToAction';
module.exports = { export default {
slug: 'blocks', slug: 'blocks',
labels: { labels: {
singular: 'Blocks', singular: 'Blocks',

View File

@@ -17,4 +17,4 @@ const Code = {
], ],
}; };
module.exports = Code; export default Code;

View File

@@ -50,4 +50,4 @@ const Conditions = {
], ],
}; };
module.exports = Conditions; export default Conditions;

View File

@@ -1,5 +0,0 @@
import React from 'react';
const Description = () => <div className="description">fake description field</div>;
export default Description;

View File

@@ -0,0 +1,5 @@
import React from 'react';
const Description: React.FC = () => <div className="description">fake description field</div>;
export default Description;

View File

@@ -2,7 +2,7 @@ import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { Group } from '../../../../../../../components/forms'; import { Group } from '../../../../../../../components/forms';
const CustomGroup = (props) => ( const CustomGroup: React.FC = (props) => (
<div className="custom-group"> <div className="custom-group">
<Group {...props} /> <Group {...props} />
</div> </div>

View File

@@ -1,13 +1,14 @@
const DescriptionField = require('./components/fields/Description/Field').default;
const DescriptionCell = require('./components/fields/Description/Cell').default;
const DescriptionFilter = require('./components/fields/Description/Filter').default;
const NestedArrayField = require('./components/fields/NestedArrayCustomField/Field').default;
const GroupField = require('./components/fields/Group/Field').default;
const NestedGroupField = require('./components/fields/NestedGroupCustomField/Field').default;
const NestedText1Field = require('./components/fields/NestedText1/Field').default;
const ListView = require('./components/views/List').default;
module.exports = { import DescriptionField from './components/fields/Description/Field';
import DescriptionCell from './components/fields/Description/Cell';
import DescriptionFilter from './components/fields/Description/Filter';
import NestedArrayField from './components/fields/NestedArrayCustomField/Field';
import GroupField from './components/fields/Group/Field';
import NestedGroupField from './components/fields/NestedGroupCustomField/Field';
import NestedText1Field from './components/fields/NestedText1/Field';
import ListView from './components/views/List';
export default {
slug: 'custom-components', slug: 'custom-components',
labels: { labels: {
singular: 'Custom Component', singular: 'Custom Component',

View File

@@ -1,8 +1,8 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
const Email = require('../blocks/Email'); import Email from '../blocks/Email';
const Quote = require('../blocks/Quote'); import Quote from '../blocks/Quote';
const NumberBlock = require('../blocks/Number'); import NumberBlock from '../blocks/Number';
const CallToAction = require('../blocks/CallToAction'); import CallToAction from '../blocks/CallToAction';
const DefaultValueTest = { const DefaultValueTest = {
slug: 'default-value-test', slug: 'default-value-test',
@@ -272,4 +272,4 @@ const DefaultValueTest = {
timestamps: true, timestamps: true,
}; };
module.exports = DefaultValueTest; export default DefaultValueTest;

View File

@@ -1,8 +1,8 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
const Email = require('../blocks/Email'); import Email from '../blocks/Email';
const Quote = require('../blocks/Quote'); import Quote from '../blocks/Quote';
const NumberBlock = require('../blocks/Number'); import NumberBlock from '../blocks/Number';
const CallToAction = require('../blocks/CallToAction'); import CallToAction from '../blocks/CallToAction';
const DefaultValues = { const DefaultValues = {
slug: 'default-values', slug: 'default-values',
@@ -280,4 +280,4 @@ const DefaultValues = {
], ],
timestamps: true, timestamps: true,
}; };
module.exports = DefaultValues; export default DefaultValues;

View File

@@ -1,4 +1,4 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
const access = ({ req: { user } }) => { const access = ({ req: { user } }) => {
const isAdmin = checkRole(['admin'], user); const isAdmin = checkRole(['admin'], user);
@@ -18,7 +18,7 @@ const access = ({ req: { user } }) => {
return false; return false;
}; };
module.exports = { export default {
slug: 'files', slug: 'files',
labels: { labels: {
singular: 'File', singular: 'File',

View File

@@ -28,4 +28,4 @@ const HiddenFields = {
], ],
}; };
module.exports = HiddenFields; export default HiddenFields;

View File

@@ -1,5 +1,5 @@
/* eslint-disable no-param-reassign */ /* eslint-disable no-param-reassign */
module.exports = { export default {
slug: 'hooks', slug: 'hooks',
labels: { labels: {
singular: 'Hook', singular: 'Hook',

View File

@@ -33,4 +33,4 @@ const LocalOperations = {
], ],
}; };
module.exports = LocalOperations; export default LocalOperations;

View File

@@ -1,4 +1,4 @@
module.exports = { export default {
slug: 'localized-posts', slug: 'localized-posts',
labels: { labels: {
singular: 'Localized Post', singular: 'Localized Post',

View File

@@ -47,4 +47,4 @@ const LocalizedArrays = {
timestamps: true, timestamps: true,
}; };
module.exports = LocalizedArrays; export default LocalizedArrays;

View File

@@ -1,6 +1,6 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
module.exports = { export default {
slug: 'media', slug: 'media',
labels: { labels: {
singular: 'Media', singular: 'Media',

View File

@@ -67,4 +67,4 @@ const NestedArray = {
timestamps: true, timestamps: true,
}; };
module.exports = NestedArray; export default NestedArray;

View File

@@ -1,4 +1,4 @@
module.exports = { export default {
slug: 'previewable-post', slug: 'previewable-post',
labels: { labels: {
singular: 'Previewable Post', singular: 'Previewable Post',

View File

@@ -1,8 +1,8 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
const access = ({ req: { user } }) => checkRole(['admin'], user); const access = ({ req: { user } }) => checkRole(['admin'], user);
module.exports = { export default {
slug: 'public-users', slug: 'public-users',
labels: { labels: {
singular: 'Public User', singular: 'Public User',

View File

@@ -1,4 +1,4 @@
module.exports = { export default {
slug: 'relationship-a', slug: 'relationship-a',
access: { access: {
read: () => true, read: () => true,

View File

@@ -1,4 +1,4 @@
module.exports = { export default {
slug: 'relationship-b', slug: 'relationship-b',
access: { access: {
read: () => true, read: () => true,

View File

@@ -1,5 +1,5 @@
const Button = require('../client/components/richText/elements/Button').default; import Button from '../client/components/richText/elements/Button';
const PurpleBackground = require('../client/components/richText/leaves/PurpleBackground').default; import PurpleBackground from '../client/components/richText/leaves/PurpleBackground';
const RichText = { const RichText = {
slug: 'rich-text', slug: 'rich-text',
@@ -34,4 +34,4 @@ const RichText = {
], ],
}; };
module.exports = RichText; export default RichText;

View File

@@ -40,4 +40,4 @@ const Select = {
], ],
}; };
module.exports = Select; export default Select;

View File

@@ -1,6 +1,6 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
module.exports = { export default {
slug: 'strict-access', slug: 'strict-access',
labels: { labels: {
singular: 'Strict Access', singular: 'Strict Access',

View File

@@ -1,4 +1,4 @@
module.exports = { export default {
slug: 'validations', slug: 'validations',
labels: { labels: {
singular: 'Validation', singular: 'Validation',

View File

@@ -1,8 +1,8 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
const Quote = require('../blocks/Quote'); import Quote from '../blocks/Quote';
const CallToAction = require('../blocks/CallToAction'); import CallToAction from '../blocks/CallToAction';
module.exports = { export default {
slug: 'blocks-global', slug: 'blocks-global',
label: 'Blocks Global', label: 'Blocks Global',
access: { access: {

View File

@@ -1,6 +1,6 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
module.exports = { export default {
slug: 'global-with-access', slug: 'global-with-access',
label: 'Global with Strict Access', label: 'Global with Strict Access',
access: { access: {

View File

@@ -1,6 +1,6 @@
const checkRole = require('../access/checkRole'); import checkRole from '../access/checkRole';
module.exports = { export default {
slug: 'navigation-array', slug: 'navigation-array',
label: 'Navigation Array', label: 'Navigation Array',
access: { access: {

8
demo/index.js Normal file
View File

@@ -0,0 +1,8 @@
const babelConfig = require('../babel.config');
require('@babel/register')({
...babelConfig,
extensions: ['.ts', '.tsx', '.js', '.jsx'],
});
require('./server.ts');

View File

@@ -1,35 +1,38 @@
const { buildConfig } = require('../config'); import path from 'path';
import { buildConfig } from '../src/config/build';
const Admin = require('./collections/Admin'); import Admin from './collections/Admin';
const AllFields = require('./collections/AllFields'); import AllFields from './collections/AllFields';
const AutoLabel = require('./collections/AutoLabel'); import AutoLabel from './collections/AutoLabel';
const Code = require('./collections/Code'); import Code from './collections/Code';
const Conditions = require('./collections/Conditions'); import Conditions from './collections/Conditions';
const CustomComponents = require('./collections/CustomComponents'); import CustomComponents from './collections/CustomComponents';
const File = require('./collections/File'); import File from './collections/File';
const Blocks = require('./collections/Blocks'); import Blocks from './collections/Blocks';
const DefaultValues = require('./collections/DefaultValues'); import DefaultValues from './collections/DefaultValues';
const HiddenFields = require('./collections/HiddenFields'); import HiddenFields from './collections/HiddenFields';
const Hooks = require('./collections/Hooks'); import Hooks from './collections/Hooks';
const Localized = require('./collections/Localized'); import Localized from './collections/Localized';
const LocalizedArray = require('./collections/LocalizedArray'); import LocalizedArray from './collections/LocalizedArray';
const LocalOperations = require('./collections/LocalOperations'); import LocalOperations from './collections/LocalOperations';
const Media = require('./collections/Media'); import Media from './collections/Media';
const NestedArrays = require('./collections/NestedArrays'); import NestedArrays from './collections/NestedArrays';
const Preview = require('./collections/Preview'); import Preview from './collections/Preview';
const PublicUsers = require('./collections/PublicUsers'); import PublicUsers from './collections/PublicUsers';
const RelationshipA = require('./collections/RelationshipA'); import RelationshipA from './collections/RelationshipA';
const RelationshipB = require('./collections/RelationshipB'); import RelationshipB from './collections/RelationshipB';
const RichText = require('./collections/RichText'); import RichText from './collections/RichText';
const Select = require('./collections/Select'); import Select from './collections/Select';
const StrictPolicies = require('./collections/StrictPolicies'); import StrictPolicies from './collections/StrictPolicies';
const Validations = require('./collections/Validations'); import Validations from './collections/Validations';
const BlocksGlobal = require('./globals/BlocksGlobal'); import BlocksGlobal from './globals/BlocksGlobal';
const NavigationArray = require('./globals/NavigationArray'); import NavigationArray from './globals/NavigationArray';
const GlobalWithStrictAccess = require('./globals/GlobalWithStrictAccess'); import GlobalWithStrictAccess from './globals/GlobalWithStrictAccess';
module.exports = buildConfig({ export default buildConfig({
cookiePrefix: 'payload',
serverURL: 'http://localhost:3000',
admin: { admin: {
user: 'admins', user: 'admins',
// indexHTML: 'custom-index.html', // indexHTML: 'custom-index.html',
@@ -81,8 +84,6 @@ module.exports = buildConfig({
GlobalWithStrictAccess, GlobalWithStrictAccess,
BlocksGlobal, BlocksGlobal,
], ],
cookiePrefix: 'payload',
serverURL: 'http://localhost:3000',
cors: [ cors: [
'http://localhost', 'http://localhost',
'http://localhost:3000', 'http://localhost:3000',
@@ -102,7 +103,7 @@ module.exports = buildConfig({
defaultDepth: 2, defaultDepth: 2,
compression: {}, compression: {},
paths: { paths: {
scss: 'client/scss/overrides.scss', scss: path.resolve(__dirname, './client/scss/overrides.scss'),
}, },
graphQL: { graphQL: {
maxComplexity: 1000, maxComplexity: 1000,

View File

@@ -1,7 +1,7 @@
/* eslint-disable no-console */ /* eslint-disable no-console */
const express = require('express'); import express from 'express';
const path = require('path'); import path from 'path';
const payload = require('../src/dev'); import payload from '../src';
const expressApp = express(); const expressApp = express();
@@ -30,7 +30,7 @@ externalRouter.get('/', (req, res) => {
expressApp.use('/external-route', externalRouter); expressApp.use('/external-route', externalRouter);
exports.start = (cb) => { export const start = (cb) => {
const server = expressApp.listen(3000, async () => { const server = expressApp.listen(3000, async () => {
payload.logger.info(`listening on ${3000}...`); payload.logger.info(`listening on ${3000}...`);
@@ -42,5 +42,5 @@ exports.start = (cb) => {
// when server.js is launched directly // when server.js is launched directly
if (module.id === require.main.id) { if (module.id === require.main.id) {
exports.start(); start();
} }

View File

@@ -10,5 +10,6 @@
"src/**/*.ts", "src/**/*.ts",
"demo/" "demo/"
], ],
"ext": "ts,js,json" "ext": "ts,js,json",
"exec": "node ./demo/index.js"
} }

View File

@@ -17,9 +17,9 @@
"build:tsc": "tsc", "build:tsc": "tsc",
"build:analyze": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.js PAYLOAD_ANALYZE_BUNDLE=true node src/bin/build", "build:analyze": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.js PAYLOAD_ANALYZE_BUNDLE=true node src/bin/build",
"cov": "npm run core:build && node ./node_modules/jest/bin/jest.js src/tests --coverage", "cov": "npm run core:build && node ./node_modules/jest/bin/jest.js src/tests --coverage",
"debug": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.js nodemon --inspect demo/server.js", "debug": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.ts nodemon --inspect demo/server.js",
"debug:test:int": "node --inspect-brk node_modules/.bin/jest --runInBand", "debug:test:int": "node --inspect-brk node_modules/.bin/jest --runInBand",
"dev": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.js nodemon demo/server.js", "dev": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.ts nodemon",
"lint": "eslint .", "lint": "eslint .",
"test": "yarn test:int && yarn test:client", "test": "yarn test:int && yarn test:client",
"pretest": "tsc-silent --project tsconfig.json --suppress @", "pretest": "tsc-silent --project tsconfig.json --suppress @",
@@ -27,7 +27,9 @@
"test:client": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.js NODE_ENV=test jest --config=jest.react.config.js" "test:client": "cross-env PAYLOAD_CONFIG_PATH=demo/payload.config.js NODE_ENV=test jest --config=jest.react.config.js"
}, },
"dependencies": { "dependencies": {
"@babel/cli": "^7.12.8",
"@babel/core": "^7.11.6", "@babel/core": "^7.11.6",
"@babel/node": "^7.12.6",
"@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/plugin-proposal-optional-chaining": "^7.8.3", "@babel/plugin-proposal-optional-chaining": "^7.8.3",
"@babel/plugin-transform-runtime": "^7.11.5", "@babel/plugin-transform-runtime": "^7.11.5",
@@ -40,10 +42,10 @@
"@faceless-ui/modal": "^1.0.4", "@faceless-ui/modal": "^1.0.4",
"@faceless-ui/scroll-info": "^1.1.1", "@faceless-ui/scroll-info": "^1.1.1",
"@faceless-ui/window-info": "^1.2.2", "@faceless-ui/window-info": "^1.2.2",
"@hapi/joi": "17",
"@payloadcms/config-provider": "0.0.9", "@payloadcms/config-provider": "0.0.9",
"@typescript-eslint/parser": "4.0.1", "@typescript-eslint/parser": "4.0.1",
"@udecode/slate-plugins": "^0.64.3", "@udecode/slate-plugins": "^0.64.3",
"ajv": "^6.12.6",
"asap": "^2.0.6", "asap": "^2.0.6",
"autoprefixer": "^9.7.4", "autoprefixer": "^9.7.4",
"babel-jest": "^26.3.0", "babel-jest": "^26.3.0",
@@ -75,7 +77,7 @@
"is-hotkey": "^0.1.6", "is-hotkey": "^0.1.6",
"isomorphic-fetch": "^2.2.1", "isomorphic-fetch": "^2.2.1",
"jest": "26.6.3", "jest": "26.6.3",
"joi": "^17.3.0", "joi": "^14.3.1",
"jsonwebtoken": "^8.5.1", "jsonwebtoken": "^8.5.1",
"jwt-decode": "^3.0.0", "jwt-decode": "^3.0.0",
"method-override": "^3.0.0", "method-override": "^3.0.0",
@@ -218,7 +220,7 @@
"eslint-plugin-react-hooks": "^2.3.0", "eslint-plugin-react-hooks": "^2.3.0",
"form-data": "^3.0.0", "form-data": "^3.0.0",
"graphql-request": "^2.0.0", "graphql-request": "^2.0.0",
"joi-extract-type": "^15.0.8", "joi-extract-type": "15.0.2",
"mongodb": "^3.6.2", "mongodb": "^3.6.2",
"nodemon": "^1.19.4", "nodemon": "^1.19.4",
"passport-strategy": "^1.0.0", "passport-strategy": "^1.0.0",

View File

@@ -1,34 +1,27 @@
module.exports = (api) => { module.exports = {
const config = { presets: [
presets: [ require.resolve('@babel/preset-typescript'),
require.resolve('@babel/preset-typescript'), [
[ require.resolve('@babel/preset-env'),
require.resolve('@babel/preset-env'), {
{ targets: [
targets: [ 'defaults',
'defaults', 'not IE 11',
'not IE 11', 'not IE_Mob 11',
'not IE_Mob 11', ],
], },
},
],
require.resolve('@babel/preset-react'),
], ],
plugins: [ require.resolve('@babel/preset-react'),
require.resolve('@babel/plugin-transform-runtime'), ],
require.resolve('@babel/plugin-proposal-class-properties'), plugins: [
require.resolve('@babel/plugin-proposal-optional-chaining'), [
],
};
if (api.env('test')) {
config.plugins.push([
'babel-plugin-ignore-html-and-css-imports', 'babel-plugin-ignore-html-and-css-imports',
{ {
removeExtensions: ['.svg', '.css', '.scss', '.png', '.jpg'], removeExtensions: ['.svg', '.css', '.scss', '.png', '.jpg'],
}, },
]); ],
} require.resolve('@babel/plugin-transform-runtime'),
require.resolve('@babel/plugin-proposal-class-properties'),
return config; require.resolve('@babel/plugin-proposal-optional-chaining'),
],
}; };

View File

@@ -18,28 +18,30 @@ export type Collection = {
type PayloadCollectionConfigFromSchema = joi.extractType<typeof schema> type PayloadCollectionConfigFromSchema = joi.extractType<typeof schema>
interface PayloadCollectionConfig extends PayloadCollectionConfigFromSchema { type PayloadCollectionConfigOmitted = Omit<PayloadCollectionConfigFromSchema, 'hooks' | 'access'>
hooks: {
beforeOperation: BeforeOperationHook[]; type PayloadCollectionConfig = PayloadCollectionConfigOmitted & {
beforeValidate: BeforeValidateHook[]; hooks?: {
beforeChange: BeforeChangeHook[]; beforeOperation: BeforeOperationHook[];
afterChange: AfterChangeHook[]; beforeValidate: BeforeValidateHook[];
beforeRead: BeforeReadHook[]; beforeChange: BeforeChangeHook[];
afterRead: AfterReadHook[]; afterChange: AfterChangeHook[];
beforeDelete: BeforeDeleteHook[]; beforeRead: BeforeReadHook[];
afterDelete: AfterDeleteHook[]; afterRead: AfterReadHook[];
beforeLogin: BeforeLoginHook[]; beforeDelete: BeforeDeleteHook[];
afterLogin: AfterLoginHook[]; afterDelete: AfterDeleteHook[];
afterForgotPassword: AfterForgotPasswordHook[]; beforeLogin: BeforeLoginHook[];
} afterLogin: AfterLoginHook[];
access?: { afterForgotPassword: AfterForgotPasswordHook[];
create?: Access; }
read?: Access; access?: {
update?: Access; create?: Access;
delete?: Access; read?: Access;
admin?: Access; update?: Access;
unlock: Access; delete?: Access;
}; admin?: Access;
unlock: Access;
};
} }
export type CollectionConfig = DeepRequired<PayloadCollectionConfig> export type CollectionConfig = DeepRequired<PayloadCollectionConfig>

View File

@@ -3,137 +3,133 @@ import path from 'path';
import collectionSchema from '../collections/config/schema'; import collectionSchema from '../collections/config/schema';
import globalSchema from '../globals/config/schema'; import globalSchema from '../globals/config/schema';
const schema = joi.object().keys({ export default joi.object({
serverURL: joi.string() serverURL: joi.string()
.required(), .required(),
cookiePrefix: joi.string() cookiePrefix: joi.string(),
.default('payload'), // routes: joi.object({
routes: joi.object() // admin: joi.string()
.keys({ // .default('/admin'),
admin: joi.string() // api: joi.string()
.default('/admin'), // .default('/api'),
api: joi.string() // graphQL: joi.string()
.default('/api'), // .default('/graphql'),
graphQL: joi.string() // graphQLPlayground: joi.string()
.default('/graphql'), // .default('/graphql-playground'),
graphQLPlayground: joi.string() // }).default(),
.default('/graphql-playground'), // collections: joi.array()
}).default(), // .items(collectionSchema)
collections: joi.array() // .default([]),
.items(collectionSchema) // globals: joi.array()
.default([]), // .items(globalSchema)
globals: joi.array() // .default([]),
.items(globalSchema) // admin: joi.object()
.default([]), // .keys({
admin: joi.object() // user: joi.string()
.keys({ // .default('users'),
user: joi.string() // meta: joi.object()
.default('users'), // .keys({
meta: joi.object() // titleSuffix: joi.string()
.keys({ // .default('- Payload'),
titleSuffix: joi.string() // ogImage: joi.string()
.default('- Payload'), // .default('/static/img/find-image-here.jpg'),
ogImage: joi.string() // favicon: joi.string()
.default('/static/img/find-image-here.jpg'), // .default('/static/img/whatever.png'),
favicon: joi.string() // })
.default('/static/img/whatever.png'), // .default(),
}) // disable: joi.bool()
.default(), // .default(false),
disable: joi.bool() // indexHTML: joi.string()
.default(false), // .default(path.resolve(__dirname, '../admin/index.html')),
indexHTML: joi.string() // components: joi.object()
.default(path.resolve(__dirname, '../admin/index.html')), // .keys({
components: joi.object() // Nav: joi.func(),
.keys({ // Dashboard: joi.func(),
Nav: joi.func(), // Icon: joi.func(),
Dashboard: joi.func(), // Logo: joi.func(),
Icon: joi.func(), // }),
Logo: joi.func(), // }).default({}),
}), // defaultDepth: joi.number()
}).default(), // .min(0)
defaultDepth: joi.number() // .max(30)
.min(0) // .default(3),
.max(30) // maxDepth: joi.number()
.default(3), // .min(0)
maxDepth: joi.number() // .max(100)
.min(0) // .default(11),
.max(100) // csrf: joi.array()
.default(11), // .items(joi.string())
csrf: joi.array() // .default([]),
.items(joi.string()) // cors: joi.array()
.default([]), // .items(joi.string())
cors: joi.array() // .default([]),
.items(joi.string()) // publicENV: joi.object()
.default([]), // .default({}),
publicENV: joi.object() // express: joi.object()
.unknown(), // .keys({
express: joi.object() // json: joi.object()
.keys({ // .default({}),
json: joi.object() // }).default(),
.unknown() // local: joi.boolean()
.default({}), // .default(false),
}).default(), // upload: joi.object()
local: joi.boolean() // .keys({
.default(false), // limits: joi.object()
upload: joi.object() // .keys({
.keys({ // fileSize: joi.number(),
limits: joi.object() // }),
.keys({ // }).default({}),
fileSize: joi.number(), // webpack: joi.func(),
}), // serverModules: joi.array()
}).default({}), // .items(joi.string())
webpack: joi.func(), // .default([]),
serverModules: joi.object() // rateLimit: joi.object()
.unknown(), // .keys({
rateLimit: joi.object() // window: joi.number().default(15 * 60 * 100),
.keys({ // max: joi.number().default(500),
window: joi.number().default(15 * 60 * 100), // trustProxy: joi.boolean().default(false),
max: joi.number().default(500), // skip: joi.func(),
trustProxy: joi.boolean().default(false), // }).default(),
skip: joi.func(), // graphQL: joi.object()
}).default(), // .keys({
graphQL: joi.object() // mutations: joi.object().default({}),
.keys({ // queries: joi.object().default({}),
mutations: joi.object().unknown().default({}), // maxComplexity: joi.number().default(1000),
queries: joi.object().unknown().default({}), // disablePlaygroundInProduction: joi.boolean().default(true),
maxComplexity: joi.number().default(1000), // }).default(),
disablePlaygroundInProduction: joi.boolean().default(true), // compression: joi.object().default({}),
}).default(), // localization: joi.alternatives()
compression: joi.object().unknown(), // .try(
localization: joi.alternatives() // joi.object().keys({
.try( // locales: joi.array().items(joi.string()),
joi.object().keys({ // defaultLocale: joi.string(),
locales: joi.array().items(joi.string()), // fallback: joi.boolean(),
defaultLocale: joi.string(), // }),
fallback: joi.boolean(), // joi.boolean(),
}), // ).default(false),
joi.boolean(), // email: joi.alternatives()
).default(false), // .try(
email: joi.alternatives() // joi.object()
.try( // .keys({
joi.object() // transport: 'mock',
.keys({ // fromName: joi.string().default('Payload CMS'),
transport: 'mock', // fromAddress: joi.string().default('cms@payloadcms.com'),
fromName: joi.string().default('Payload CMS'), // }),
fromAddress: joi.string().default('cms@payloadcms.com'), // joi.object()
}), // .keys({
joi.object() // transport: joi.object(),
.keys({ // transportOptions: joi.object(),
transport: joi.object().unknown(), // fromName: joi.string().default('Payload CMS'),
transportOptions: joi.object().unknown(), // fromAddress: joi.string().default('cms@payloadcms.com'),
fromName: joi.string().default('Payload CMS'), // }),
fromAddress: joi.string().default('cms@payloadcms.com'), // ).default({}),
}), // hooks: joi.object().keys({
).default({}), // afterError: joi.func(),
hooks: joi.object().keys({ // }).default({}),
afterError: joi.func(), // paths: joi.object()
}).default({}), // .keys({
paths: joi.object() // configDir: joi.string(),
.keys({ // config: joi.string(),
configDir: joi.string(), // scss: joi.string().default(path.resolve(__dirname, '../admin/scss/overrides.scss')),
config: joi.string(), // }).default(),
scss: joi.string().default(path.resolve(__dirname, '../admin/scss/overrides.scss')),
}).default(),
}); });
export default schema;

View File

@@ -54,18 +54,20 @@ export type Access = (args?: any) => boolean;
type PayloadConfigFromSchema = joi.extractType<typeof schema> type PayloadConfigFromSchema = joi.extractType<typeof schema>
export interface PayloadConfig extends PayloadConfigFromSchema { type PayloadConfigOmitted = Omit<PayloadConfigFromSchema, 'hooks' | 'email' | 'graphQL'>
graphQL: {
mutations: { export type PayloadConfig = PayloadConfigOmitted & {
[key: string]: unknown // graphQL: {
} | ((graphQL: GraphQLType, payload: InitializeGraphQL) => any), // mutations: {
queries: { // [key: string]: unknown
[key: string]: unknown // } | ((graphQL: GraphQLType, payload: InitializeGraphQL) => any),
} | ((graphQL: GraphQLType, payload: InitializeGraphQL) => any), // queries: {
maxComplexity: number; // [key: string]: unknown
disablePlaygroundInProduction: boolean; // } | ((graphQL: GraphQLType, payload: InitializeGraphQL) => any),
}, // maxComplexity: number;
email: EmailOptions, // disablePlaygroundInProduction: boolean;
// },
// email: EmailOptions,
hooks: { hooks: {
afterError: (err: Error, res: Response) => void, afterError: (err: Error, res: Response) => void,
} }

View File

@@ -13,7 +13,6 @@ const validateSchema = (config: PayloadConfig): Config => {
logger.error(`There were ${result.error.details.length} errors validating your Payload config`); logger.error(`There were ${result.error.details.length} errors validating your Payload config`);
result.error.details.forEach(({ message }, i) => { result.error.details.forEach(({ message }, i) => {
console.log(JSON.stringify(result.error.details[i]));
logger.error(`${i + 1}: ${message}`); logger.error(`${i + 1}: ${message}`);
}); });

View File

@@ -1,24 +0,0 @@
const babelConfig = require('./babel.config')({
env: () => false,
});
if (process.env.NODE_ENV !== 'test') {
// eslint-disable-next-line global-require
require('@babel/register')({
...babelConfig,
extensions: ['.js', '.jsx', '.ts', '.tsx'],
plugins: [
[
'babel-plugin-ignore-html-and-css-imports',
{
removeExtensions: ['.svg', '.css', '.scss', '.png', '.jpg'],
},
],
...babelConfig.plugins,
],
});
}
const payload = require('./index.ts');
module.exports = payload;

View File

@@ -1,6 +1,20 @@
import joi from 'joi'; import joi from 'joi';
const baseField = joi.object().keys({ export const adminFields = joi.object().keys({
position: joi.string().valid('sidebar'),
width: joi.string(),
style: joi.object().unknown(),
readOnly: joi.boolean().default(false),
disabled: joi.boolean().default(false),
condition: joi.func(),
components: joi.object().keys({
Cell: joi.func(),
Field: joi.func(),
Filter: joi.func(),
}).default({}),
}).default();
export const baseField = joi.object().keys({
label: joi.string(), label: joi.string(),
required: joi.boolean().default(false), required: joi.boolean().default(false),
saveToJWT: joi.boolean().default(false), saveToJWT: joi.boolean().default(false),
@@ -12,8 +26,6 @@ const baseField = joi.object().keys({
create: joi.func(), create: joi.func(),
read: joi.func(), read: joi.func(),
update: joi.func(), update: joi.func(),
delete: joi.func(),
unlock: joi.func(),
}), }),
hooks: joi.object() hooks: joi.object()
.keys({ .keys({
@@ -22,116 +34,84 @@ const baseField = joi.object().keys({
afterChange: joi.array().items(joi.func()).default([]), afterChange: joi.array().items(joi.func()).default([]),
afterRead: joi.array().items(joi.func()).default([]), afterRead: joi.array().items(joi.func()).default([]),
}).default(), }).default(),
admin: joi.object().keys({ admin: adminFields,
position: joi.string().valid('sidebar'), }).default();
width: joi.string(),
style: joi.object().unknown(),
readOnly: joi.boolean().default(false),
disabled: joi.boolean().default(false),
condition: joi.func(),
components: joi.object().keys({
Cell: joi.func(),
Field: joi.func(),
Filter: joi.func(),
}).default({}),
}).default({}),
});
// Joi.object({ const textProps = {
// type: Joi.string().required().only(['pizza', 'salad']) type: joi.string().valid('text').required(),
// }) name: joi.string().required(),
// .when(Joi.object({ type: 'pizza' }).unknown(), { defaultValue: joi.string(),
// then: Joi.object({ pepperoni: Joi.boolean() })
// })
// .when(Joi.object({ type: 'salad' }).unknown(), {
// then: Joi.object({ croutons: Joi.boolean() })
// })
const types = {
text: baseField.keys({
name: joi.string().required(),
defaultValue: joi.string(),
}),
number: baseField.keys({
name: joi.string().required(),
defaultValue: joi.string(),
}),
email: baseField.keys({
name: joi.string().required(),
defaultValue: joi.string(),
}),
row: baseField.keys({
defaultValue: joi.object().unknown(),
fields: joi.array().items(joi.link('#field')),
}),
}; };
const allTypes = Object.keys(types); export const text = joi.object().keys(textProps);
const fieldSchema = allTypes.reduce((prev, type) => prev.when(joi.object({ type }).unknown(), { const numberProps = {
then: types[type], type: joi.string().valid('number').required(),
}), name: joi.string().required(),
joi.object({ defaultValue: joi.number(),
type: joi.string().valid(...allTypes).required(), };
})).id('field');
// const fieldSchema = joi.object({ export const number = joi.object().keys(numberProps);
// type: joi.string()
// .required()
// .valid(
// 'text',
// 'number',
// 'email',
// 'textarea',
// 'code',
// 'select',
// 'row',
// ).when(joi.object({ type: 'text' }).unknown(), {
// then: ,
// })
// .when(joi.object({ type: 'number' }).unknown(), {
// then: ,
// })
// .when(joi.object({ type: 'email' }).unknown(), {
// then:
// .when(joi.object({ type: 'row' }).unknown(), {
// then: baseField.keys({
// defaultValue: joi.object().unknown(),
// fields: joi.array().items(joi.link('#field')),
// }),
// }),
// }).id('field');
// const fieldSchema = joi.alternatives() const textareaProps = {
// .try( type: joi.string().valid('textarea').required(),
// , name: joi.string().required(),
// baseField.keys({ defaultValue: joi.string(),
// type: joi.string().valid('number').required(), };
// name: joi.string().required(),
// defaultValue: joi.number(), export const textarea = joi.object().keys(textareaProps);
// }),
// baseField.keys({ const emailProps = {
// type: joi.string().valid('email').required(), type: joi.string().valid('email').required(),
// name: joi.string().required(), name: joi.string().required(),
// }), defaultValue: joi.string(),
// baseField.keys({ };
// type: joi.string().valid('textarea').required(),
// name: joi.string().required(), export const email = joi.object().keys(emailProps);
// }),
// baseField.keys({ const codeProps = {
// type: joi.string().valid('code').required(), type: joi.string().valid('code').required(),
// name: joi.string().required(), name: joi.string().required(),
// }), defaultValue: joi.string(),
// baseField.keys({ };
// type: joi.string().valid('select').required(),
// name: joi.string().required(), export const code = joi.object().keys(codeProps);
// options: joi.array().items(joi.string()).required(),
// hasMany: joi.boolean().default(false), const selectProps = {
// }).default(), type: joi.string().valid('select').required(),
// baseField.keys({ name: joi.string().required(),
// type: joi.string().valid('row').required(), options: joi.array().items(joi.string()).required(),
// fields: joi.array().items(joi.link('#field')), hasMany: joi.boolean().default(false),
// }), defaultValue: joi.string(),
// ).id('field'); };
export const select = joi.object().keys(selectProps);
const rowProps = {
type: joi.string().valid('row').required(),
fields: joi.array().items(joi.link('#field')),
};
export const row = joi.object().keys(rowProps);
const radioProps = {
type: joi.string().valid('radio').required(),
fields: joi.array().items(joi.link('#field')),
};
export const radio = joi.object().keys(radioProps);
const fieldSchema = joi.alternatives()
.try(
baseField.keys(textProps),
baseField.keys(numberProps),
baseField.keys(textareaProps),
baseField.keys(emailProps),
baseField.keys(codeProps),
baseField.keys(selectProps),
baseField.keys(rowProps),
baseField.keys(radioProps),
)
.id('field');
export default fieldSchema; export default fieldSchema;

View File

@@ -1,157 +1,81 @@
/* eslint-disable no-use-before-define */ /* eslint-disable no-use-before-define */
import joi from 'joi';
import { CSSProperties } from 'react'; import { CSSProperties } from 'react';
import 'joi-extract-type';
import { DeepRequired } from 'ts-essentials';
import { PayloadRequest } from '../../express/types/payloadRequest'; import { PayloadRequest } from '../../express/types/payloadRequest';
import { Access } from '../../config/types'; import { Access } from '../../config/types';
import {
baseField,
adminFields,
text,
number,
textarea,
email,
code,
select,
row,
} from './schema';
// TODO: add generic type and use mongoose types for originalDoc & data // TODO: add generic type and use mongoose types for originalDoc & data
export type FieldHook = (args: { export type FieldHook = (args: {
value?: any, value?: unknown,
originalDoc?: any, originalDoc?: unknown,
data?: any, data?: unknown,
operation?: 'create' | 'update', operation?: 'create' | 'update',
req?: PayloadRequest req?: PayloadRequest
}) => Promise<any> | any; }) => Promise<unknown> | unknown;
type FieldBase = { type BaseFieldFromSchema = joi.extractType<typeof baseField>;
name: string; type BaseAdminFieldsFromSchema = joi.extractType<typeof adminFields>;
label: string;
slug?: string; interface BaseAdminFields extends BaseAdminFieldsFromSchema {
required?: boolean; style: CSSProperties
unique?: boolean; }
index?: boolean;
defaultValue?: any; interface BaseField extends BaseFieldFromSchema {
hidden?: boolean; access: {
localized?: boolean; create: Access
maxLength?: number; read: Access
height?: number; update: Access
validate?: (value: any, field: Field) => any;
// eslint-disable-next-line no-use-before-define
hooks?: {
beforeValidate?: FieldHook[];
beforeChange?: FieldHook[];
afterChange?: FieldHook[];
afterRead?: FieldHook[];
} }
admin?: { hooks: {
position?: 'sidebar'; beforeValidate: FieldHook[]
width?: string; beforeChange: FieldHook[]
style?: CSSProperties; afterChange: FieldHook[]
readOnly?: boolean; afterRead: FieldHook[]
disabled?: boolean;
condition?: (...args: any[]) => any | void;
components?: { [key: string]: React.ComponentType };
};
access?: {
create?: Access;
read?: Access;
update?: Access;
delete?: Access;
admin?: Access;
unlock?: Access;
};
}
export type StandardField = FieldBase & {
fields?: Field[];
}
export type NumberField = StandardField & { type: 'number'; };
export type TextField = StandardField & { type: 'text'; };
export type EmailField = StandardField & { type: 'email'; };
export type TextareaField = StandardField & { type: 'textarea'; };
export type CodeField = StandardField & { type: 'code'; };
export type CheckboxField = StandardField & { type: 'checkbox'; };
export type DateField = StandardField & { type: 'date'; };
export type GroupField = StandardField & { type: 'group'; };
export type RowField = StandardField & { type: 'row'; };
export type UploadField = FieldBase & {
type: 'upload';
relationTo: string;
}
export type SelectField = FieldBase & {
type: 'select';
options: {
value: string;
label: string;
}[];
hasMany?: boolean;
}
export type SelectManyField = SelectField & {
hasMany: true;
}
export type RelationshipSingleField = FieldBase & {
type: 'relationship';
relationTo: string;
hasMany?: false;
}
export type RelationshipManyField = FieldBase & {
type: 'relationship';
relationTo: string[];
hasMany: true;
}
export type RelationshipField = RelationshipSingleField | RelationshipManyField;
type RichTextElements = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'blockquote' | 'ul' | 'ol' | 'link';
type RichTextLeaves = 'bold' | 'italic' | 'underline' | 'strikethrough';
export type RichTextField = FieldBase & {
type: 'richText';
admin?: {
elements?: RichTextElements[];
leaves?: RichTextLeaves[];
} }
admin: BaseAdminFields
} }
export type ArrayField = FieldBase & { type TextFromSchema = joi.extractType<typeof text>;
type: 'array'; export interface TextField extends BaseField, TextFromSchema {}
minRows?: number;
maxRows?: number;
fields?: Field[];
}
export type RadioField = FieldBase & { type NumberFromSchema = joi.extractType<typeof number>;
type: 'radio'; export interface NumberField extends BaseField, NumberFromSchema {}
options: {
value: string;
label: string;
}[];
}
export type Block = { type TextareaFromSchema = joi.extractType<typeof textarea>;
slug: string, export interface TextareaField extends BaseField, TextareaFromSchema {}
labels: {
singular: string;
plural: string;
};
fields: Field[],
}
export type BlockField = FieldBase & { type EmailFromSchema = joi.extractType<typeof email>;
type: 'blocks'; export interface EmailField extends BaseField, EmailFromSchema {}
minRows?: number;
maxRows?: number;
blocks?: Block[];
};
export type Field = NumberField type CodeFromSchema = joi.extractType<typeof code>;
| TextField export interface CodeField extends BaseField, CodeFromSchema {}
| EmailField
type SelectFromSchema = joi.extractType<typeof select>;
export interface SelectField extends BaseField, SelectFromSchema {}
type RowFromSchema = joi.extractType<typeof row>;
export interface RowField extends BaseField, RowFromSchema {}
type PayloadFieldConfig =
TextField
| NumberField
| TextareaField | TextareaField
| EmailField
| CodeField | CodeField
| CheckboxField
| DateField
| BlockField
| RadioField
| RelationshipField
| ArrayField
| RichTextField
| GroupField
| RowField
| SelectField | SelectField
| SelectManyField | RowField
| UploadField;
export type FieldConfig = DeepRequired<PayloadFieldConfig>

View File

@@ -1,263 +0,0 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
import { BeforeOperationHook, BeforeValidateHook, HookOperationType } from './collections/config/types';
import { buildConfig } from './config/build';
import { Field, Block, BlockField, RadioField, ArrayField, RichTextField, GroupField, SelectField, SelectManyField, UploadField, RelationshipField } from './fields/config/types';
const cfg = buildConfig({
serverURL: 'localhost:3000',
admin: {
disable: true,
},
});
const beforeOpHook: BeforeOperationHook = ({ args, operation }) => {
if (operation === 'create' && args.req.query && typeof args.req.query.checkout !== 'undefined') {
return {
...args,
disableVerificationEmail: true,
};
}
return args;
};
const beforeOpHookResult = beforeOpHook({ args: {}, operation: 'create' });
const beforeValidate: BeforeValidateHook = ({ data, req, operation, originalDoc }) => {
if (operation === 'create') {
const formattedData = { ...data };
const { user } = req;
}
};
const TextField: Field = {
name: 'text',
type: 'text',
label: 'Text',
required: true,
defaultValue: 'Default Value',
unique: true,
access: {
read: ({ req: { user } }) => Boolean(user),
},
};
const NumbersBlock: Block = {
slug: 'number',
labels: {
singular: 'Number',
plural: 'Numbers',
},
fields: [
{
name: 'testNumber',
label: 'Test Number Field',
type: 'number',
maxLength: 100,
required: true,
},
],
};
const CTA: Block = {
slug: 'cta',
labels: {
singular: 'Call to Action',
plural: 'Calls to Action',
},
fields: [
{
name: 'label',
label: 'Label',
type: 'text',
maxLength: 100,
required: true,
},
{
name: 'url',
label: 'URL',
type: 'text',
height: 100,
required: true,
},
],
};
const blockField: BlockField = {
name: 'blocks',
type: 'blocks',
label: 'Blocks Content',
minRows: 2,
blocks: [NumbersBlock, CTA],
localized: true,
required: true,
};
const radioGroup: RadioField = {
name: 'radioGroupExample',
label: 'Radio Group Example',
type: 'radio',
options: [{
value: 'option-1',
label: 'Options 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}],
defaultValue: 'option-2',
required: true,
admin: {
readOnly: true,
},
};
const arrayField: ArrayField = {
type: 'array',
label: 'Array',
name: 'array',
minRows: 2,
maxRows: 4,
fields: [
// {
// type: 'row',
// fields: [
// {
// name: 'arrayText1',
// label: 'Array Text 1',
// type: 'text',
// },
// {
// name: 'arrayText2',
// label: 'Array Text 2',
// type: 'text',
// required: true,
// },
// ],
// },
{
type: 'text',
name: 'arrayText3',
label: 'Array Text 3',
admin: {
readOnly: true,
},
},
{
name: 'checkbox',
label: 'Checkbox',
type: 'checkbox',
},
],
};
const richTextField: RichTextField = {
name: 'richText',
type: 'richText',
label: 'Rich Text',
required: true,
admin: {
elements: [
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'blockquote',
'ul',
'ol',
'link',
],
leaves: [
'bold',
'italic',
'underline',
'strikethrough',
],
},
};
const groupField: GroupField = {
name: 'group',
label: 'Group',
type: 'group',
fields: [
{
type: 'text',
name: 'nestedGroupCustomField',
label: 'Nested Group Custom Field',
},
],
};
console.log(groupField);
const selectField: SelectField = {
name: 'select',
label: 'Select',
type: 'select',
options: [{
value: 'option-1',
label: 'Option 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}, {
value: 'option-4',
label: 'Option 4 Label',
}],
defaultValue: 'option-1',
required: true,
};
const selectMany: SelectManyField = {
name: 'selectMany',
label: 'Select w/ hasMany',
type: 'select',
options: [{
value: 'option-1',
label: 'Option 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}, {
value: 'option-4',
label: 'Option 4 Label',
}],
defaultValue: 'option-1',
required: true,
hasMany: true,
};
const upload: UploadField = {
name: 'image',
type: 'upload',
label: 'Image',
relationTo: 'media',
};
const rel1: RelationshipField = {
type: 'relationship',
label: 'Relationship to One Collection',
name: 'relationship',
relationTo: 'conditions',
hasMany: false,
};
const rel2: RelationshipField = {
type: 'relationship',
label: 'Relationship hasMany',
name: 'relationshipHasMany',
relationTo: ['localized-posts', 'sdf'],
hasMany: true,
};

524
src/types/joi.d.ts vendored
View File

@@ -1,524 +0,0 @@
// From https://github.com/TCMiranda/joi-extract-type/issues/22
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable no-use-before-define */
/* eslint-disable @typescript-eslint/no-explicit-any */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import * as joi from 'joi';
type ArrayType<T> = T extends (infer U)[] ? U : never
declare module 'joi' {
interface Root {
extend(...extensions: Array<joi.Extension | joi.ExtensionFactory>): this
any<T extends any>(): BoxAnySchema<Box<T, false>>
string<T extends string>(): BoxStringSchema<Box<T, false>>
number<T extends number>(): BoxNumberSchema<Box<T, false>>
boolean<T extends boolean>(): BoxBooleanSchema<Box<T, false>>
date<T extends Date>(): BoxDateSchema<Box<T, false>>
// eslint-disable-next-line @typescript-eslint/ban-types
func<T extends Function>(): BoxFunctionSchema<Box<T, false>>
array(): BoxArraySchema<Box<never, false>>
object<T extends mappedSchemaMap>(schema?: T): BoxObjectSchema<Box<extractMap<T>, false>>
alternatives<T extends mappedSchema[]>(
...alts: T
): BoxAlternativesSchema<Box<extractType<typeof alts[number]>, false>>
alternatives<T extends mappedSchema[]>(
alts: T
): BoxAlternativesSchema<Box<extractType<typeof alts[number]>, false>>
alt<T extends mappedSchema[]>(
...alts: T
): BoxAlternativesSchema<Box<extractType<typeof alts[number]>, false>>
alt<T extends mappedSchema[]>(
alts: T
): BoxAlternativesSchema<Box<extractType<typeof alts[number]>, false>>
}
/**
* Field requirements interface
*/
interface Box<T, R extends boolean> {
/** Type the schema holds */
T: T
/** If this attribute is required when inside an object */
R: R
}
// Operators
type BoxType<B, nT> = B extends Box<infer oT, infer oR> ? Box<nT, oR> : B
type BoxUnion<B, nT> = B extends Box<infer oT, infer oR> ? Box<oT | nT, oR> : B
type BoxIntersection<B, nT> = B extends Box<infer oT, infer oR> ? Box<oT & nT, oR> : B
type BoxReq<B, nR extends boolean> = B extends Box<infer oT, infer oR> ? Box<oT, nR> : B
type BoxSchema = Box<any, boolean>
// eslint-disable-next-line @typescript-eslint/ban-types
type primitiveType = string | number | boolean | Function | Date | undefined | null | void
type mappedSchema = joi.SchemaLike | BoxedPrimitive
type mappedSchemaMap = { [K: string]: mappedSchema }
type extendsGuard<T, S> = S extends T ? S : T
/**
* Every Schema that implements the Box to allow the extraction
*/
type BoxedPrimitive<T extends BoxSchema = any> =
| BoxAnySchema<T>
| BoxStringSchema<T>
| BoxNumberSchema<T>
| BoxBooleanSchema<T>
| BoxDateSchema<T>
| BoxFunctionSchema<T>
| BoxArraySchema<T>
| BoxObjectSchema<T>
| BoxAlternativesSchema<T>
interface BoxAnySchema<N extends Box<any, boolean>> extends joi.AnySchema {
__schemaTypeLiteral: 'BoxAnySchema'
default<T>(
value: T,
description?: string
): this extends BoxAnySchema<infer B> ? BoxAnySchema<BoxUnion<B, T>> : never
default(value: any, description?: string): this
default(): this
allow<T>(
...values: T[]
): this extends BoxAnySchema<infer B> ? BoxAnySchema<BoxUnion<B, T>> : never
allow<T>(values: T[]): this extends BoxAnySchema<infer B> ? BoxAnySchema<BoxUnion<B, T>> : never
allow(...values: any[]): this
allow(values: any[]): this
valid<T>(
...values: T[]
): this extends BoxAnySchema<infer B> ? BoxAnySchema<BoxType<B, T>> : never
valid<T>(values: T[]): this extends BoxAnySchema<infer B> ? BoxAnySchema<BoxType<B, T>> : never
valid(...values: any[]): this
valid(values: any[]): this
required(): this extends BoxAnySchema<infer B> ? BoxAnySchema<BoxReq<B, true>> : never
required(): this
exist(): this extends BoxAnySchema<infer B> ? BoxAnySchema<BoxReq<B, true>> : never
exist(): this
optional(): this extends BoxAnySchema<infer B> ? BoxAnySchema<BoxReq<B, false>> : never
optional(): this
}
interface BoxStringSchema<N extends BoxSchema> extends joi.StringSchema {
__schemaTypeLiteral: 'BoxStringSchema'
default<T extends string>(
value: T,
description?: string
): this extends BoxStringSchema<infer B> ? BoxStringSchema<BoxUnion<B, T>> : never
default(value: any, description?: string): this
default(): this
allow<T>(
...values: T[]
): this extends BoxStringSchema<infer B> ? BoxStringSchema<BoxUnion<B, T>> : never
allow<T>(
values: T[]
): this extends BoxStringSchema<infer B> ? BoxStringSchema<BoxUnion<B, T>> : never
allow(...values: any[]): this
allow(values: any[]): this
valid<T extends string>(
...values: T[]
): this extends BoxStringSchema<infer B> ? BoxStringSchema<BoxType<B, T>> : never
valid<T extends string>(
values: T[]
): this extends BoxStringSchema<infer B> ? BoxStringSchema<BoxType<B, T>> : never
valid(...values: any[]): this
valid(values: any[]): this
required(): this extends BoxStringSchema<infer B> ? BoxStringSchema<BoxReq<B, true>> : never
required(): this
exist(): this extends BoxStringSchema<infer B> ? BoxStringSchema<BoxReq<B, true>> : never
exist(): this
optional(): this extends BoxStringSchema<infer B> ? BoxStringSchema<BoxReq<B, false>> : never
optional(): this
}
interface BoxNumberSchema<N extends BoxSchema> extends joi.NumberSchema {
__schemaTypeLiteral: 'BoxNumberSchema'
default<T extends number>(
value: T,
description?: string
): this extends BoxNumberSchema<infer B> ? BoxNumberSchema<BoxUnion<B, T>> : never
default(value: any, description?: string): this
default(): this
allow<T>(
...values: T[]
): this extends BoxNumberSchema<infer B> ? BoxNumberSchema<BoxUnion<B, T>> : never
allow<T>(
values: T[]
): this extends BoxNumberSchema<infer B> ? BoxNumberSchema<BoxUnion<B, T>> : never
allow(...values: any[]): this
allow(values: any[]): this
valid<T extends string>(
...values: T[]
): this extends BoxNumberSchema<infer B> ? BoxNumberSchema<BoxType<B, T>> : never
valid<T extends string>(
values: T[]
): this extends BoxNumberSchema<infer B> ? BoxNumberSchema<BoxType<B, T>> : never
valid(...values: any[]): this
valid(values: any[]): this
required(): this extends BoxNumberSchema<infer B> ? BoxNumberSchema<BoxReq<B, true>> : never
required(): this
exist(): this extends BoxNumberSchema<infer B> ? BoxNumberSchema<BoxReq<B, true>> : never
exist(): this
optional(): this extends BoxNumberSchema<infer B> ? BoxNumberSchema<BoxReq<B, false>> : never
optional(): this
}
interface BoxBooleanSchema<N extends BoxSchema> extends joi.BooleanSchema {
__schemaTypeLiteral: 'BoxBooleanSchema'
default<T extends boolean>(
value: T,
description?: string
): this extends BoxBooleanSchema<infer B> ? BoxBooleanSchema<BoxUnion<B, T>> : never
default(value: any, description?: string): this
default(): this
allow<T>(
...values: T[]
): this extends BoxBooleanSchema<infer B> ? BoxBooleanSchema<BoxUnion<B, T>> : never
allow<T>(
values: T[]
): this extends BoxBooleanSchema<infer B> ? BoxBooleanSchema<BoxUnion<B, T>> : never
allow(...values: any[]): this
allow(values: any[]): this
valid<T extends string>(
...values: T[]
): this extends BoxBooleanSchema<infer B> ? BoxBooleanSchema<BoxType<B, T>> : never
valid<T extends string>(
values: T[]
): this extends BoxBooleanSchema<infer B> ? BoxBooleanSchema<BoxType<B, T>> : never
valid(...values: any[]): this
valid(values: any[]): this
required(): this extends BoxBooleanSchema<infer B> ? BoxBooleanSchema<BoxReq<B, true>> : never
required(): this
exist(): this extends BoxBooleanSchema<infer B> ? BoxBooleanSchema<BoxReq<B, true>> : never
exist(): this
optional(): this extends BoxBooleanSchema<infer B> ? BoxBooleanSchema<BoxReq<B, false>> : never
optional(): this
}
interface BoxDateSchema<N extends BoxSchema> extends joi.DateSchema {
__schemaTypeLiteral: 'BoxDateSchema'
default<T extends Date>(
value: T,
description?: string
): this extends BoxDateSchema<infer B> ? BoxDateSchema<BoxUnion<B, T>> : never
default(value: any, description?: string): this
default(): this
allow<T>(
...values: T[]
): this extends BoxDateSchema<infer B> ? BoxDateSchema<BoxUnion<B, T>> : never
allow<T>(
values: T[]
): this extends BoxDateSchema<infer B> ? BoxDateSchema<BoxUnion<B, T>> : never
allow(...values: any[]): this
allow(values: any[]): this
valid<T extends string>(
...values: T[]
): this extends BoxDateSchema<infer B> ? BoxDateSchema<BoxType<B, T>> : never
valid<T extends string>(
values: T[]
): this extends BoxDateSchema<infer B> ? BoxDateSchema<BoxType<B, T>> : never
valid(...values: any[]): this
valid(values: any[]): this
required(): this extends BoxDateSchema<infer B> ? BoxDateSchema<BoxReq<B, true>> : never
required(): this
exist(): this extends BoxDateSchema<infer B> ? BoxDateSchema<BoxReq<B, true>> : never
exist(): this
optional(): this extends BoxDateSchema<infer B> ? BoxDateSchema<BoxReq<B, false>> : never
optional(): this
}
interface BoxFunctionSchema<N extends BoxSchema> extends joi.FunctionSchema {
__schemaTypeLiteral: 'BoxFunctionSchema'
allow<T>(
...values: T[]
): this extends BoxFunctionSchema<infer B> ? BoxFunctionSchema<BoxUnion<B, T>> : never
allow<T>(
values: T[]
): this extends BoxFunctionSchema<infer B> ? BoxFunctionSchema<BoxUnion<B, T>> : never
allow(...values: any[]): this
allow(values: any[]): this
required(): this extends BoxFunctionSchema<infer B> ? BoxFunctionSchema<BoxReq<B, true>> : never
required(): this
exist(): this extends BoxFunctionSchema<infer B> ? BoxFunctionSchema<BoxReq<B, true>> : never
exist(): this
optional(): this extends BoxFunctionSchema<infer B>
? BoxFunctionSchema<BoxReq<B, false>>
: never
optional(): this
}
interface BoxArraySchema<N extends BoxSchema> extends joi.ArraySchema {
__schemaTypeLiteral: 'BoxArraySchema'
default<T extends any[]>(
value: T,
description?: string
): this extends BoxArraySchema<infer B> ? BoxArraySchema<BoxUnion<B, ArrayType<T>>> : never
default(value: any, description?: string): this
default(): this
allow<T>(
...values: T[]
): this extends BoxArraySchema<infer B> ? BoxArraySchema<BoxUnion<B, T>> : never
allow<T>(
values: T[]
): this extends BoxArraySchema<infer B> ? BoxArraySchema<BoxUnion<B, T>> : never
allow(...values: any[]): this
allow(values: any[]): this
items<T extends mappedSchema>(
type: T
): this extends BoxArraySchema<infer B> ? BoxArraySchema<BoxUnion<B, extractType<T>>> : never
items(...types: joi.SchemaLike[]): this
items(types: joi.SchemaLike[]): this
required(): this extends BoxArraySchema<infer B> ? BoxArraySchema<BoxReq<B, true>> : never
required(): this
exist(): this extends BoxArraySchema<infer B> ? BoxArraySchema<BoxReq<B, true>> : never
exist(): this
optional(): this extends BoxArraySchema<infer B> ? BoxArraySchema<BoxReq<B, false>> : never
optional(): this
}
interface BoxObjectSchema<N extends BoxSchema> extends joi.ObjectSchema {
__schemaTypeLiteral: 'BoxObjectSchema'
default<T extends mappedSchemaMap>(
value: T,
description?: string
): this extends BoxObjectSchema<infer B> ? BoxObjectSchema<BoxUnion<B, extractType<T>>> : never
default(value: any, description?: string): this
default(): this
allow<T>(
...values: T[]
): this extends BoxObjectSchema<infer B> ? BoxObjectSchema<BoxUnion<B, T>> : never
allow<T>(
values: T[]
): this extends BoxObjectSchema<infer B> ? BoxObjectSchema<BoxUnion<B, T>> : never
allow(...values: any[]): this
allow(values: any[]): this
keys<T extends mappedSchemaMap>(
schema: T
): this extends BoxObjectSchema<infer B>
? BoxObjectSchema<BoxIntersection<B, extractMap<T>>>
: never
keys(schema?: joi.SchemaMap): this
append<T extends mappedSchemaMap>(
schema: T
): this extends BoxObjectSchema<infer B>
? BoxObjectSchema<BoxIntersection<B, extractMap<T>>>
: never
append(schema?: joi.SchemaMap): this
pattern<S extends BoxStringSchema<any>, T extends mappedSchema>(
pattern: S,
schema: T
): this extends BoxObjectSchema<infer B>
? BoxObjectSchema<BoxIntersection<B, extractMap<{ [key in extractType<S>]: T }>>>
: never
pattern<T extends mappedSchema>(
pattern: RegExp,
schema: T
): this extends BoxObjectSchema<infer B>
? BoxObjectSchema<BoxIntersection<B, extractMap<{ [key: string]: T }>>>
: never
pattern(pattern: RegExp | joi.SchemaLike, schema: joi.SchemaLike): this
required(): this extends BoxObjectSchema<infer B> ? BoxObjectSchema<BoxReq<B, true>> : never
required(): this
exist(): this extends BoxObjectSchema<infer B> ? BoxObjectSchema<BoxReq<B, true>> : never
exist(): this
optional(): this extends BoxObjectSchema<infer B> ? BoxObjectSchema<BoxReq<B, false>> : never
optional(): this
}
interface BoxAlternativesSchema<N extends BoxSchema> extends joi.AlternativesSchema {
__schemaTypeLiteral: 'BoxAlternativesSchema'
allow<T>(
...values: T[]
): this extends BoxAlternativesSchema<infer B> ? BoxAlternativesSchema<BoxUnion<B, T>> : never
allow<T>(
values: T[]
): this extends BoxAlternativesSchema<infer B> ? BoxAlternativesSchema<BoxUnion<B, T>> : never
allow(...values: any[]): this
allow(values: any[]): this
try<T extends mappedSchema[]>(
...values: T
): this extends BoxAlternativesSchema<infer O>
? O extends Box<infer oT, infer oR>
? BoxAlternativesSchema<BoxType<O, oT | extractType<T>>>
: BoxAlternativesSchema<Box<extractType<T>, false>>
: BoxAlternativesSchema<Box<extractType<T>, false>>
try<T extends mappedSchema[]>(
values: T
): this extends BoxAlternativesSchema<infer O>
? O extends Box<infer oT, infer oR>
? BoxAlternativesSchema<BoxType<O, oT | extractType<T>>>
: BoxAlternativesSchema<Box<extractType<T>, false>>
: BoxAlternativesSchema<Box<extractType<T>, false>>
try(...types: joi.SchemaLike[]): this
try(types: joi.SchemaLike[]): this
required(): this extends BoxAlternativesSchema<infer B>
? BoxAlternativesSchema<BoxReq<B, true>>
: never
required(): this
exist(): this extends BoxAlternativesSchema<infer B>
? BoxAlternativesSchema<BoxReq<B, true>>
: never
exist(): this
optional(): this extends BoxAlternativesSchema<infer B>
? BoxAlternativesSchema<BoxReq<B, false>>
: never
optional(): this
when<
R,
T1 extends mappedSchema,
T2 extends mappedSchema,
T extends { then: T1; otherwise: T2 }
>(
ref: R,
defs: T
): this extends BoxAlternativesSchema<infer O>
? O extends Box<infer oT, infer oR>
? BoxAlternativesSchema<
BoxType<O, oT | extractType<T['then']> | extractType<T['otherwise']>>
>
: BoxAlternativesSchema<Box<extractType<T['then']> | extractType<T['otherwise']>, false>>
: BoxAlternativesSchema<Box<extractType<T['then']> | extractType<T['otherwise']>, false>>
when(ref: string | joi.Reference, options: joi.WhenOptions): this
when(ref: joi.Schema, options: joi.WhenSchemaOptions): this
}
type maybeExtractBox<T> = T extends Box<infer O, infer R> ? O : T
type Required<T, K = keyof T> = {
[j in K extends keyof T
? T[K] extends BoxedPrimitive<infer B>
? B['R'] extends true
? K
: never
: never
: never]: true
}
type Optional<T, K = keyof T> = {
[j in K extends keyof T
? T[K] extends BoxedPrimitive<infer B>
? B['R'] extends false
? K
: never
: never
: never]: true
}
type extractMap<T extends mappedSchemaMap> = { [K in keyof Optional<T>]?: extractType<T[K]> } &
{ [K in keyof Required<T>]: extractType<T[K]> }
type extractOne<T extends mappedSchema> =
/** Primitive types */
T extends primitiveType
? T
: /** Holds the extracted type */
T extends BoxAnySchema<infer O>
? maybeExtractBox<O>
: T extends BoxBooleanSchema<infer O>
? maybeExtractBox<O>
: T extends BoxStringSchema<infer O>
? maybeExtractBox<O>
: T extends BoxNumberSchema<infer O>
? maybeExtractBox<O>
: T extends BoxDateSchema<infer O>
? maybeExtractBox<O>
: T extends BoxFunctionSchema<infer O>
? maybeExtractBox<O>
: T extends BoxArraySchema<infer O>
? maybeExtractBox<O>[]
: T extends BoxObjectSchema<infer O>
? maybeExtractBox<O>
: T extends BoxAlternativesSchema<infer O>
? maybeExtractBox<O>
: T extends joi.AnySchema
? any
: any
type extractType<T extends mappedSchema> =
/**
* Hack to support [Schema1, Schema2, ...N] alternatives notation
* Can't use extractType directly here because of cycles:
* ```
* T extends Array<infer O> ? extractType<O> :
* ^ cycle
* ```
*/
T extends Array<infer O>
? O extends joi.SchemaLike
? extractOne<O>
: O extends BoxedPrimitive
? extractOne<O>
: O
: /**
* Handle Objects as schemas, without Joi.object at the root.
* It needs to come first than mappedSchema.
* It is difficult to avoid it to be inferred from extends clause.
*/
T extends mappedSchemaMap
? extractMap<T>
: /**
* This is the base case for every schema implemented
*/
T extends joi.SchemaLike
? extractOne<T>
: T extends BoxedPrimitive
? extractOne<T>
: /**
* Default case to handle primitives and schemas
*/
extractOne<T>
}

View File

@@ -104,11 +104,9 @@ export default (config: PayloadConfig): Configuration => {
], ],
}; };
if (Array.isArray(config.serverModules)) { config.serverModules.forEach((mod) => {
config.serverModules.forEach((mod) => { webpackConfig.resolve.alias[mod] = mockModulePath;
webpackConfig.resolve.alias[mod] = mockModulePath; });
});
}
if (config.webpack && typeof config.webpack === 'function') { if (config.webpack && typeof config.webpack === 'function') {
webpackConfig = config.webpack(webpackConfig); webpackConfig = config.webpack(webpackConfig);

View File

@@ -12,6 +12,7 @@
/* Do not emit comments to output. */ /* Do not emit comments to output. */
"noEmit": false, /* Do not emit outputs. */ "noEmit": false, /* Do not emit outputs. */
"strict": false, /* Enable all strict type-checking options. */ "strict": false, /* Enable all strict type-checking options. */
"noErrorTruncation": true,
"moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
"baseUrl": "", "baseUrl": "",
"paths": { "paths": {
@@ -35,7 +36,6 @@
"src/" "src/"
], ],
"exclude": [ "exclude": [
"demo",
"dist", "dist",
"build", "build",
"src/tests", "src/tests",

437
yarn.lock
View File

@@ -2,6 +2,23 @@
# yarn lockfile v1 # yarn lockfile v1
"@babel/cli@^7.12.8":
version "7.12.8"
resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.12.8.tgz#3b24ed2fd5da353ee6f19e8935ff8c93b5fe8430"
integrity sha512-/6nQj11oaGhLmZiuRUfxsujiPDc9BBReemiXgIbxc+M5W+MIiFKYwvNDJvBfnGKNsJTKbUfEheKc9cwoPHAVQA==
dependencies:
commander "^4.0.1"
convert-source-map "^1.1.0"
fs-readdir-recursive "^1.1.0"
glob "^7.0.0"
lodash "^4.17.19"
make-dir "^2.1.0"
slash "^2.0.0"
source-map "^0.5.0"
optionalDependencies:
"@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents"
chokidar "^3.4.0"
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
version "7.10.4" version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
@@ -15,9 +32,9 @@
integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==
"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.7.5": "@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.7.5":
version "7.12.8" version "7.12.9"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.8.tgz#8ad76c1a7d2a6a3beecc4395fa4f7b4cb88390e6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8"
integrity sha512-ra28JXL+5z73r1IC/t+FT1ApXU5LsulFDnTDntNfLQaScJUJmcHL5Qxm/IWanCToQk3bPWQo5bflbplU5r15pg== integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==
dependencies: dependencies:
"@babel/code-frame" "^7.10.4" "@babel/code-frame" "^7.10.4"
"@babel/generator" "^7.12.5" "@babel/generator" "^7.12.5"
@@ -25,7 +42,7 @@
"@babel/helpers" "^7.12.5" "@babel/helpers" "^7.12.5"
"@babel/parser" "^7.12.7" "@babel/parser" "^7.12.7"
"@babel/template" "^7.12.7" "@babel/template" "^7.12.7"
"@babel/traverse" "^7.12.8" "@babel/traverse" "^7.12.9"
"@babel/types" "^7.12.7" "@babel/types" "^7.12.7"
convert-source-map "^1.7.0" convert-source-map "^1.7.0"
debug "^4.1.0" debug "^4.1.0"
@@ -264,6 +281,20 @@
chalk "^2.0.0" chalk "^2.0.0"
js-tokens "^4.0.0" js-tokens "^4.0.0"
"@babel/node@^7.12.6":
version "7.12.6"
resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.12.6.tgz#28d40382d50d4dd9c6e712780c0443c6bf7be5c2"
integrity sha512-A1TpW2X05ZkI5+WV7Aa24QX4LyGwrGUQPflG1CyBdr84jUuH0mhkE2BQWSQAlfRnp4bMLjeveMJIhS20JaOfVQ==
dependencies:
"@babel/register" "^7.12.1"
commander "^4.0.1"
core-js "^3.2.1"
lodash "^4.17.19"
node-environment-flags "^1.0.5"
regenerator-runtime "^0.13.4"
resolve "^1.13.1"
v8flags "^3.1.1"
"@babel/parser@^7.1.0", "@babel/parser@^7.12.7", "@babel/parser@^7.7.0": "@babel/parser@^7.1.0", "@babel/parser@^7.12.7", "@babel/parser@^7.7.0":
version "7.12.7" version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056"
@@ -909,7 +940,7 @@
"@babel/helper-validator-option" "^7.12.1" "@babel/helper-validator-option" "^7.12.1"
"@babel/plugin-transform-typescript" "^7.12.1" "@babel/plugin-transform-typescript" "^7.12.1"
"@babel/register@^7.11.5": "@babel/register@^7.11.5", "@babel/register@^7.12.1":
version "7.12.1" version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.12.1.tgz#cdb087bdfc4f7241c03231f22e15d211acf21438" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.12.1.tgz#cdb087bdfc4f7241c03231f22e15d211acf21438"
integrity sha512-XWcmseMIncOjoydKZnWvWi0/5CUCD+ZYKhRwgYlWOrA8fGZ/FjuLRpqtIhLOVD/fvR1b9DQHtZPn68VvhpYf+Q== integrity sha512-XWcmseMIncOjoydKZnWvWi0/5CUCD+ZYKhRwgYlWOrA8fGZ/FjuLRpqtIhLOVD/fvR1b9DQHtZPn68VvhpYf+Q==
@@ -944,10 +975,10 @@
"@babel/parser" "^7.12.7" "@babel/parser" "^7.12.7"
"@babel/types" "^7.12.7" "@babel/types" "^7.12.7"
"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.8", "@babel/traverse@^7.7.0": "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9", "@babel/traverse@^7.7.0":
version "7.12.8" version "7.12.9"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.8.tgz#c1c2983bf9ba0f4f0eaa11dff7e77fa63307b2a4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.9.tgz#fad26c972eabbc11350e0b695978de6cc8e8596f"
integrity sha512-EIRQXPTwFEGRZyu6gXbjfpNORN1oZvwuzJbxcXjAgWV0iqXYDszN1Hx3FVm6YgZfu1ZQbCVAk3l+nIw95Xll9Q== integrity sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==
dependencies: dependencies:
"@babel/code-frame" "^7.10.4" "@babel/code-frame" "^7.10.4"
"@babel/generator" "^7.12.5" "@babel/generator" "^7.12.5"
@@ -1140,6 +1171,13 @@
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==
"@hapi/address@^4.0.1":
version "4.1.0"
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-4.1.0.tgz#d60c5c0d930e77456fdcde2598e77302e2955e1d"
integrity sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==
dependencies:
"@hapi/hoek" "^9.0.0"
"@hapi/bourne@1.x.x": "@hapi/bourne@1.x.x":
version "1.3.2" version "1.3.2"
resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a"
@@ -1150,6 +1188,11 @@
resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.0.0.tgz#5bb2193eb685c0007540ca61d166d4e1edaf918d" resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.0.0.tgz#5bb2193eb685c0007540ca61d166d4e1edaf918d"
integrity sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg== integrity sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==
"@hapi/formula@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-2.0.0.tgz#edade0619ed58c8e4f164f233cda70211e787128"
integrity sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==
"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": "@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0":
version "8.5.1" version "8.5.1"
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06"
@@ -1160,6 +1203,17 @@
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz#6c9eafc78c1529248f8f4d92b0799a712b6052c6" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz#6c9eafc78c1529248f8f4d92b0799a712b6052c6"
integrity sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw== integrity sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==
"@hapi/joi@17":
version "17.1.1"
resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-17.1.1.tgz#9cc8d7e2c2213d1e46708c6260184b447c661350"
integrity sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==
dependencies:
"@hapi/address" "^4.0.1"
"@hapi/formula" "^2.0.0"
"@hapi/hoek" "^9.0.0"
"@hapi/pinpoint" "^2.0.0"
"@hapi/topo" "^5.0.0"
"@hapi/joi@~15": "@hapi/joi@~15":
version "15.1.1" version "15.1.1"
resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7"
@@ -1170,6 +1224,11 @@
"@hapi/hoek" "8.x.x" "@hapi/hoek" "8.x.x"
"@hapi/topo" "3.x.x" "@hapi/topo" "3.x.x"
"@hapi/pinpoint@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-2.0.0.tgz#805b40d4dbec04fc116a73089494e00f073de8df"
integrity sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==
"@hapi/topo@3.x.x": "@hapi/topo@3.x.x":
version "3.1.6" version "3.1.6"
resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
@@ -1376,6 +1435,23 @@
resolved "https://registry.yarnpkg.com/@microsoft/load-themed-styles/-/load-themed-styles-1.10.136.tgz#67ee0a4a7787b83baf63c0f6a5db8c4e61663e7f" resolved "https://registry.yarnpkg.com/@microsoft/load-themed-styles/-/load-themed-styles-1.10.136.tgz#67ee0a4a7787b83baf63c0f6a5db8c4e61663e7f"
integrity sha512-D8wWUiW7HQKFp4Qgy5GsDvEymKew/4uK+4dSWSO/+6LfSI15kqDNS7g4Nf/VxL5FBmjwXqQV1d59ucgWiKUjJg== integrity sha512-D8wWUiW7HQKFp4Qgy5GsDvEymKew/4uK+4dSWSO/+6LfSI15kqDNS7g4Nf/VxL5FBmjwXqQV1d59ucgWiKUjJg==
"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents":
version "2.1.8-no-fsevents"
resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b"
integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w==
dependencies:
anymatch "^2.0.0"
async-each "^1.0.1"
braces "^2.3.2"
glob-parent "^3.1.0"
inherits "^2.0.3"
is-binary-path "^1.0.0"
is-glob "^4.0.0"
normalize-path "^3.0.0"
path-is-absolute "^1.0.0"
readdirp "^2.2.1"
upath "^1.1.1"
"@nodelib/fs.scandir@2.1.3": "@nodelib/fs.scandir@2.1.3":
version "2.1.3" version "2.1.3"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
@@ -1414,23 +1490,6 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.5.4.tgz#de25b5da9f727985a3757fd59b5d028aba75841a" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.5.4.tgz#de25b5da9f727985a3757fd59b5d028aba75841a"
integrity sha512-ZpKr+WTb8zsajqgDkvCEWgp6d5eJT6Q63Ng2neTbzBO76Lbe91vX/iVIW9dikq+Fs3yEo+ls4cxeXABD2LtcbQ== integrity sha512-ZpKr+WTb8zsajqgDkvCEWgp6d5eJT6Q63Ng2neTbzBO76Lbe91vX/iVIW9dikq+Fs3yEo+ls4cxeXABD2LtcbQ==
"@sideway/address@^4.1.0":
version "4.1.0"
resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.0.tgz#0b301ada10ac4e0e3fa525c90615e0b61a72b78d"
integrity sha512-wAH/JYRXeIFQRsxerIuLjgUu2Xszam+O5xKeatJ4oudShOOirfmsQ1D6LL54XOU2tizpCYku+s1wmU0SYdpoSA==
dependencies:
"@hapi/hoek" "^9.0.0"
"@sideway/formula@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c"
integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==
"@sideway/pinpoint@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
"@sinonjs/commons@^1.7.0": "@sinonjs/commons@^1.7.0":
version "1.8.1" version "1.8.1"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217"
@@ -1557,9 +1616,9 @@
"@babel/types" "^7.0.0" "@babel/types" "^7.0.0"
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6":
version "7.0.15" version "7.0.16"
resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz#db9e4238931eb69ef8aab0ad6523d4d4caa39d03" resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.16.tgz#0bbbf70c7bc4193210dd27e252c51260a37cd6a7"
integrity sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A== integrity sha512-S63Dt4CZOkuTmpLGGWtT/mQdVORJOpx6SZWGVaP56dda/0Nx5nEe82K7/LAm8zYr6SfMq+1N2OreIOrHAx656w==
dependencies: dependencies:
"@babel/types" "^7.3.0" "@babel/types" "^7.3.0"
@@ -1899,9 +1958,9 @@
"@types/node" "*" "@types/node" "*"
"@types/node@*": "@types/node@*":
version "14.14.9" version "14.14.10"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.9.tgz#04afc9a25c6ff93da14deabd65dc44485b53c8d6" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785"
integrity sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw== integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==
"@types/node@10.12.7": "@types/node@10.12.7":
version "10.12.7" version "10.12.7"
@@ -1957,7 +2016,7 @@
"@types/passport-local-mongoose@^4.0.13": "@types/passport-local-mongoose@^4.0.13":
version "4.0.13" version "4.0.13"
resolved "https://registry.npmjs.org/@types/passport-local-mongoose/-/passport-local-mongoose-4.0.13.tgz#0edc3aedcc82a70b7e461efc2dc85f42ccb80aa3" resolved "https://registry.yarnpkg.com/@types/passport-local-mongoose/-/passport-local-mongoose-4.0.13.tgz#0edc3aedcc82a70b7e461efc2dc85f42ccb80aa3"
integrity sha512-tjVfcyFXO+EIzjTg6DHm+Wq9LwftqDv0kQ/IlLqFHBtZ6gKMy5pLKdr4g62VGEJsgPX8F9UGb9inDREQ2tOpEw== integrity sha512-tjVfcyFXO+EIzjTg6DHm+Wq9LwftqDv0kQ/IlLqFHBtZ6gKMy5pLKdr4g62VGEJsgPX8F9UGb9inDREQ2tOpEw==
dependencies: dependencies:
"@types/passport-local" "*" "@types/passport-local" "*"
@@ -2720,7 +2779,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.5.2:
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.12.6: ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
version "6.12.6" version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -2888,12 +2947,14 @@ array-flatten@1.1.1:
integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
array-includes@^3.1.1: array-includes@^3.1.1:
version "3.1.1" version "3.1.2"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8"
integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==
dependencies: dependencies:
call-bind "^1.0.0"
define-properties "^1.1.3" define-properties "^1.1.3"
es-abstract "^1.17.0" es-abstract "^1.18.0-next.1"
get-intrinsic "^1.0.1"
is-string "^1.0.5" is-string "^1.0.5"
array-union@^2.1.0: array-union@^2.1.0:
@@ -3047,14 +3108,13 @@ babel-jest@^26.3.0, babel-jest@^26.6.3:
slash "^3.0.0" slash "^3.0.0"
babel-loader@^8.1.0: babel-loader@^8.1.0:
version "8.2.1" version "8.2.2"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.1.tgz#e53313254677e86f27536f5071d807e01d24ec00" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
integrity sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw== integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
dependencies: dependencies:
find-cache-dir "^2.1.0" find-cache-dir "^3.3.1"
loader-utils "^1.4.0" loader-utils "^1.4.0"
make-dir "^2.1.0" make-dir "^3.1.0"
pify "^4.0.1"
schema-utils "^2.6.5" schema-utils "^2.6.5"
babel-plugin-dynamic-import-node@^2.3.3: babel-plugin-dynamic-import-node@^2.3.3:
@@ -3327,7 +3387,7 @@ browser-process-hrtime@^1.0.0:
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.14.6, browserslist@^4.6.4: browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.14.7, browserslist@^4.6.4:
version "4.14.7" version "4.14.7"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6"
integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ== integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==
@@ -3604,7 +3664,7 @@ check-types@^8.0.3:
resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
"chokidar@>=2.0.0 <4.0.0": "chokidar@>=2.0.0 <4.0.0", chokidar@^3.4.0:
version "3.4.3" version "3.4.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b"
integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==
@@ -3741,6 +3801,15 @@ cliui@^6.0.0:
strip-ansi "^6.0.0" strip-ansi "^6.0.0"
wrap-ansi "^6.2.0" wrap-ansi "^6.2.0"
cliui@^7.0.2:
version "7.0.4"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
dependencies:
string-width "^4.2.0"
strip-ansi "^6.0.0"
wrap-ansi "^7.0.0"
clsx@^1.1.1: clsx@^1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
@@ -3850,7 +3919,7 @@ commander@^2.18.0, commander@^2.20.0, commander@^2.20.3:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
commander@^4.1.1: commander@^4.0.1, commander@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
@@ -3944,7 +4013,7 @@ content-type@^1.0.4, content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
version "1.7.0" version "1.7.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
@@ -3974,9 +4043,9 @@ copy-to-clipboard@^3.2.0:
toggle-selection "^1.0.6" toggle-selection "^1.0.6"
copyfiles@^2.4.0: copyfiles@^2.4.0:
version "2.4.0" version "2.4.1"
resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.0.tgz#fcac72a4f2b882f021dd156b4bcf6d71315487bd" resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5"
integrity sha512-yGjpR3yjQdxccW8EcJ4a7ZCA6wGER6/Q2Y+b7bXbVxGeSHBf93i9d7MzTsx+VV1CpMKQa3v4ThZfXBcltMzl0w== integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==
dependencies: dependencies:
glob "^7.0.5" glob "^7.0.5"
minimatch "^3.0.3" minimatch "^3.0.3"
@@ -3984,20 +4053,25 @@ copyfiles@^2.4.0:
noms "0.0.0" noms "0.0.0"
through2 "^2.0.1" through2 "^2.0.1"
untildify "^4.0.0" untildify "^4.0.0"
yargs "^15.3.1" yargs "^16.1.0"
core-js-compat@^3.7.0: core-js-compat@^3.7.0:
version "3.7.0" version "3.8.0"
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.7.0.tgz#8479c5d3d672d83f1f5ab94cf353e57113e065ed" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.0.tgz#3248c6826f4006793bd637db608bca6e4cd688b1"
integrity sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg== integrity sha512-o9QKelQSxQMYWHXc/Gc4L8bx/4F7TTraE5rhuN8I7mKBt5dBIUpXpIR3omv70ebr8ST5R3PqbDQr+ZI3+Tt1FQ==
dependencies: dependencies:
browserslist "^4.14.6" browserslist "^4.14.7"
semver "7.0.0" semver "7.0.0"
core-js-pure@^3.0.0: core-js-pure@^3.0.0:
version "3.7.0" version "3.8.0"
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.7.0.tgz#28a57c861d5698e053f0ff36905f7a3301b4191e" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.0.tgz#4cdd2eca37d49cda206b66e26204818dba77884a"
integrity sha512-EZD2ckZysv8MMt4J6HSvS9K2GdtlZtdBncKAmF9lr2n0c9dJUaUN88PSTjvgwCgQPWKTkERXITgS6JJRAnljtg== integrity sha512-fRjhg3NeouotRoIV0L1FdchA6CK7ZD+lyINyMoz19SyV+ROpC4noS1xItWHFtwZdlqfMfVPJEyEGdfri2bD1pA==
core-js@^3.2.1:
version "3.8.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.0.tgz#0fc2d4941cadf80538b030648bb64d230b4da0ce"
integrity sha512-W2VYNB0nwQQE7tKS7HzXd7r2y/y2SVJl4ga6oH/dnaLFzM0o2lB2P3zCkWj5Wc/zyMYjtgd5Hmhk0ObkQFZOIA==
core-util-is@1.0.2, core-util-is@~1.0.0: core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2" version "1.0.2"
@@ -4216,10 +4290,10 @@ css-tree@1.0.0-alpha.37:
mdn-data "2.0.4" mdn-data "2.0.4"
source-map "^0.6.1" source-map "^0.6.1"
css-tree@^1.0.0, css-tree@^1.0.0-alpha.28: css-tree@^1.0.0-alpha.28, css-tree@^1.1.2:
version "1.1.1" version "1.1.2"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.1.tgz#30b8c0161d9fb4e9e2141d762589b6ec2faebd2e" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5"
integrity sha512-NVN42M2fjszcUNpDbdkvutgQSlFYsr1z7kqeuCagHnNLBfYor6uP1WL1KrkmdYZ5Y1vTBCIOI/C/+8T98fJ71w== integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==
dependencies: dependencies:
mdn-data "2.0.14" mdn-data "2.0.14"
source-map "^0.6.1" source-map "^0.6.1"
@@ -4337,11 +4411,11 @@ cssnano@^4.1.10:
postcss "^7.0.0" postcss "^7.0.0"
csso@^4.0.2: csso@^4.0.2:
version "4.1.1" version "4.2.0"
resolved "https://registry.yarnpkg.com/csso/-/csso-4.1.1.tgz#e0cb02d6eb3af1df719222048e4359efd662af13" resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
integrity sha512-Rvq+e1e0TFB8E8X+8MQjHSY6vtol45s5gxtLI/018UsAn2IBMmwNEZRM/h+HVnAJRHjasLIKKUO3uvoMM28LvA== integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
dependencies: dependencies:
css-tree "^1.0.0" css-tree "^1.1.2"
cssom@^0.4.4: cssom@^0.4.4:
version "0.4.4" version "0.4.4"
@@ -4738,9 +4812,9 @@ ejs@^2.6.1:
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
electron-to-chromium@^1.3.591: electron-to-chromium@^1.3.591:
version "1.3.607" version "1.3.610"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.607.tgz#1bff13f1cf89f2fee0d244b8c64a7138f80f3a3b" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.610.tgz#1254eb394acd220a836ea1f203f8cded4e487052"
integrity sha512-h2SYNaBnlplGS0YyXl8oJWokfcNxVjJANQfMCsQefG6OSuAuNIeW+A8yGT/ci+xRoBb3k2zq1FrOvkgoKBol8g== integrity sha512-eFDC+yVQpEhtlapk4CYDPfV9ajF9cEof5TBcO49L1ETO+aYogrKWDmYpZyxBScMNe8Bo/gJamH4amQ4yyvXg4g==
emittery@^0.7.1: emittery@^0.7.1:
version "0.7.2" version "0.7.2"
@@ -4830,7 +4904,7 @@ error-stack-parser@^2.0.6:
dependencies: dependencies:
stackframe "^1.1.1" stackframe "^1.1.1"
es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: es-abstract@^1.17.0-next.1, es-abstract@^1.17.2:
version "1.17.7" version "1.17.7"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c"
integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==
@@ -5456,7 +5530,7 @@ finalhandler@~1.1.2:
statuses "~1.5.0" statuses "~1.5.0"
unpipe "~1.0.0" unpipe "~1.0.0"
find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: find-cache-dir@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
@@ -5615,6 +5689,11 @@ fs-monkey@1.0.1:
resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.1.tgz#4a82f36944365e619f4454d9fff106553067b781" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.1.tgz#4a82f36944365e619f4454d9fff106553067b781"
integrity sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA== integrity sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==
fs-readdir-recursive@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==
fs.realpath@^1.0.0: fs.realpath@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -5689,12 +5768,12 @@ gensync@^1.0.0-beta.1:
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
get-caller-file@^2.0.1: get-caller-file@^2.0.1, get-caller-file@^2.0.5:
version "2.0.5" version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
get-intrinsic@^1.0.0: get-intrinsic@^1.0.0, get-intrinsic@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be"
integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==
@@ -6014,6 +6093,11 @@ history@^4.9.0:
tiny-warning "^1.0.0" tiny-warning "^1.0.0"
value-equal "^1.0.1" value-equal "^1.0.1"
hoek@6.x.x:
version "6.1.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c"
integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==
hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2: hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2:
version "3.3.2" version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
@@ -6021,6 +6105,13 @@ hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2:
dependencies: dependencies:
react-is "^16.7.0" react-is "^16.7.0"
homedir-polyfill@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
dependencies:
parse-passwd "^1.0.0"
hoopy@^0.1.4: hoopy@^0.1.4:
version "0.1.4" version "0.1.4"
resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
@@ -6458,9 +6549,9 @@ is-color-stop@^1.0.0:
rgba-regex "^1.0.0" rgba-regex "^1.0.0"
is-core-module@^2.1.0: is-core-module@^2.1.0:
version "2.1.0" version "2.2.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
dependencies: dependencies:
has "^1.0.3" has "^1.0.3"
@@ -6746,6 +6837,13 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isemail@3.x.x:
version "3.2.0"
resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c"
integrity sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==
dependencies:
punycode "2.x.x"
isexe@^2.0.0: isexe@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -7195,24 +7293,22 @@ jmespath@^0.15.0:
resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217"
integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc= integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=
joi-extract-type@^15.0.8: joi-extract-type@15.0.2:
version "15.0.8" version "15.0.2"
resolved "https://registry.yarnpkg.com/joi-extract-type/-/joi-extract-type-15.0.8.tgz#29b42d79717b8fec6841b2bef76f97542e58e687" resolved "https://registry.yarnpkg.com/joi-extract-type/-/joi-extract-type-15.0.2.tgz#27cd7fd2e36aa3a8ccf184c320436bf7bff959fe"
integrity sha512-Or97aW6QN6YJq0B+x/vYs65+nmcPvYDE7xhlwRl7yHzY+7Z8pVaj0zxjdJlXmIA9zRcbbYQKCGvW+I4g0kUHgA== integrity sha512-oSAP6kw6pP7KO9zO1j/0LgoR5Zbcd5RY1dYIZjfsvbLZbwPYlsuO4Z1ztvYJRTQQUT2v/Dox7YoqQeNqUmTWQg==
dependencies: dependencies:
"@hapi/joi" "~15" "@hapi/joi" "~15"
"@types/hapi__joi" "~15" "@types/hapi__joi" "~15"
joi@^17.3.0: joi@^14.3.1:
version "17.3.0" version "14.3.1"
resolved "https://registry.yarnpkg.com/joi/-/joi-17.3.0.tgz#f1be4a6ce29bc1716665819ac361dfa139fff5d2" resolved "https://registry.yarnpkg.com/joi/-/joi-14.3.1.tgz#164a262ec0b855466e0c35eea2a885ae8b6c703c"
integrity sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg== integrity sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ==
dependencies: dependencies:
"@hapi/hoek" "^9.0.0" hoek "6.x.x"
"@hapi/topo" "^5.0.0" isemail "3.x.x"
"@sideway/address" "^4.1.0" topo "3.x.x"
"@sideway/formula" "^3.0.0"
"@sideway/pinpoint" "^2.0.0"
joycon@^2.2.5: joycon@^2.2.5:
version "2.2.5" version "2.2.5"
@@ -7632,9 +7728,9 @@ lodash@^4.0.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
loglevel@^1.6.2: loglevel@^1.6.2:
version "1.7.0" version "1.7.1"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ== integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0" version "1.4.0"
@@ -7698,7 +7794,7 @@ make-dir@^2.0.0, make-dir@^2.1.0:
pify "^4.0.1" pify "^4.0.1"
semver "^5.6.0" semver "^5.6.0"
make-dir@^3.0.0, make-dir@^3.0.2: make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
@@ -8074,9 +8170,9 @@ mongoose-paginate-v2@^1.3.6:
integrity sha512-J7kK09ZbESv8iZK7oBTtIOrhNOelB5RXZ2F/h/7AKEjYoX7vyfbvopSXARSog1ZYouSLkCGznKDDCJ89g/G4KQ== integrity sha512-J7kK09ZbESv8iZK7oBTtIOrhNOelB5RXZ2F/h/7AKEjYoX7vyfbvopSXARSog1ZYouSLkCGznKDDCJ89g/G4KQ==
mongoose@^5.8.9: mongoose@^5.8.9:
version "5.10.15" version "5.10.17"
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.10.15.tgz#5e559467890e0883d2a1ff0470a7467a1b47e52d" resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.10.17.tgz#8754cdaf0dc7964d512ed1889546528fb42e9eb8"
integrity sha512-3QUWCpMRdFCPIBZkjG/B2OkfMY2WLkR+hv335o4T2mn3ta9kx8qVvXeUDojp3OHMxBZVUyCA+hDyyP4/aKmHuA== integrity sha512-B7kcEaXbgdTQiloKfr9qQMdo5WOrTKEqIoWY9RWiMMAvbn+8n/vBjBKIH9wc/U+8Y4SIvfRf6kenfWbjLVe2YA==
dependencies: dependencies:
bson "^1.1.4" bson "^1.1.4"
kareem "2.3.1" kareem "2.3.1"
@@ -8222,6 +8318,14 @@ node-addon-api@^3.0.0:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.0.2.tgz#04bc7b83fd845ba785bb6eae25bc857e1ef75681" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.0.2.tgz#04bc7b83fd845ba785bb6eae25bc857e1ef75681"
integrity sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg== integrity sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg==
node-environment-flags@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088"
integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==
dependencies:
object.getownpropertydescriptors "^2.0.3"
semver "^5.7.0"
node-fetch@^1.0.1: node-fetch@^1.0.1:
version "1.7.3" version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
@@ -8449,12 +8553,12 @@ object-inspect@^1.8.0:
integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
object-is@^1.0.1: object-is@^1.0.1:
version "1.1.3" version "1.1.4"
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068"
integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg== integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==
dependencies: dependencies:
call-bind "^1.0.0"
define-properties "^1.1.3" define-properties "^1.1.3"
es-abstract "^1.18.0-next.1"
object-keys@^1.0.12, object-keys@^1.1.1: object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1" version "1.1.1"
@@ -8484,31 +8588,33 @@ object.assign@^4.1.0, object.assign@^4.1.1:
object-keys "^1.1.1" object-keys "^1.1.1"
object.entries@^1.1.1, object.entries@^1.1.2: object.entries@^1.1.1, object.entries@^1.1.2:
version "1.1.2" version "1.1.3"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6"
integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==
dependencies: dependencies:
call-bind "^1.0.0"
define-properties "^1.1.3" define-properties "^1.1.3"
es-abstract "^1.17.5" es-abstract "^1.18.0-next.1"
has "^1.0.3" has "^1.0.3"
object.fromentries@^2.0.2: object.fromentries@^2.0.2:
version "2.0.2" version "2.0.3"
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072"
integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==
dependencies: dependencies:
call-bind "^1.0.0"
define-properties "^1.1.3" define-properties "^1.1.3"
es-abstract "^1.17.0-next.1" es-abstract "^1.18.0-next.1"
function-bind "^1.1.1"
has "^1.0.3" has "^1.0.3"
object.getownpropertydescriptors@^2.1.0: object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
version "2.1.0" version "2.1.1"
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544"
integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==
dependencies: dependencies:
call-bind "^1.0.0"
define-properties "^1.1.3" define-properties "^1.1.3"
es-abstract "^1.17.0-next.1" es-abstract "^1.18.0-next.1"
object.pick@^1.3.0: object.pick@^1.3.0:
version "1.3.0" version "1.3.0"
@@ -8518,13 +8624,13 @@ object.pick@^1.3.0:
isobject "^3.0.1" isobject "^3.0.1"
object.values@^1.1.0, object.values@^1.1.1: object.values@^1.1.0, object.values@^1.1.1:
version "1.1.1" version "1.1.2"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731"
integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==
dependencies: dependencies:
call-bind "^1.0.0"
define-properties "^1.1.3" define-properties "^1.1.3"
es-abstract "^1.17.0-next.1" es-abstract "^1.18.0-next.1"
function-bind "^1.1.1"
has "^1.0.3" has "^1.0.3"
on-finished@~2.3.0: on-finished@~2.3.0:
@@ -8618,11 +8724,11 @@ p-limit@^2.0.0, p-limit@^2.2.0:
p-try "^2.0.0" p-try "^2.0.0"
p-limit@^3.0.2: p-limit@^3.0.2:
version "3.0.2" version "3.1.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
dependencies: dependencies:
p-try "^2.0.0" yocto-queue "^0.1.0"
p-locate@^2.0.0: p-locate@^2.0.0:
version "2.0.0" version "2.0.0"
@@ -8731,6 +8837,11 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0" json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6" lines-and-columns "^1.1.6"
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
parse5@5.1.1: parse5@5.1.1:
version "5.1.1" version "5.1.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
@@ -9770,7 +9881,7 @@ pump@^3.0.0:
end-of-stream "^1.1.0" end-of-stream "^1.1.0"
once "^1.3.1" once "^1.3.1"
punycode@^2.1.0, punycode@^2.1.1: punycode@2.x.x, punycode@^2.1.0, punycode@^2.1.1:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
@@ -10744,7 +10855,7 @@ semver-diff@^2.0.0:
dependencies: dependencies:
semver "^5.0.3" semver "^5.0.3"
"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
version "5.7.1" version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -10932,6 +11043,11 @@ sisteransi@^1.0.5:
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
slash@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
slash@^3.0.0: slash@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -11534,7 +11650,7 @@ tapable@2.0.0:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.0.0.tgz#a49c3d6a8a2bb606e7db372b82904c970d537a08" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.0.0.tgz#a49c3d6a8a2bb606e7db372b82904c970d537a08"
integrity sha512-bjzn0C0RWoffnNdTzNi7rNDhs1Zlwk2tRXgk8EiHKAOX1Mag3d6T0Y5zNa7l9CJ+EoUne/0UHdwS8tMbkh9zDg== integrity sha512-bjzn0C0RWoffnNdTzNi7rNDhs1Zlwk2tRXgk8EiHKAOX1Mag3d6T0Y5zNa7l9CJ+EoUne/0UHdwS8tMbkh9zDg==
tapable@^2.0.0: tapable@^2.0.0, tapable@^2.1.1:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.1.1.tgz#b01cc1902d42a7bb30514e320ce21c456f72fd3f" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.1.1.tgz#b01cc1902d42a7bb30514e320ce21c456f72fd3f"
integrity sha512-Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ== integrity sha512-Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ==
@@ -11633,9 +11749,9 @@ terser@^4.6.3:
source-map-support "~0.5.12" source-map-support "~0.5.12"
terser@^5.3.4, terser@^5.3.8: terser@^5.3.4, terser@^5.3.8:
version "5.5.0" version "5.5.1"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.0.tgz#1406fcb4d4bc517add3b22a9694284c040e33448" resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289"
integrity sha512-eopt1Gf7/AQyPhpygdKePTzaet31TvQxXvrf7xYUvD/d8qkCJm4SKPDzu+GHK5ZaYTn8rvttfqaZc3swK21e5g== integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==
dependencies: dependencies:
commander "^2.20.0" commander "^2.20.0"
source-map "~0.7.2" source-map "~0.7.2"
@@ -11776,6 +11892,13 @@ toidentifier@1.0.0:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
topo@3.x.x:
version "3.0.3"
resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.3.tgz#d5a67fb2e69307ebeeb08402ec2a2a6f5f7ad95c"
integrity sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==
dependencies:
hoek "6.x.x"
touch@^3.1.0: touch@^3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
@@ -12243,6 +12366,13 @@ v8-to-istanbul@^7.0.0:
convert-source-map "^1.6.0" convert-source-map "^1.6.0"
source-map "^0.7.3" source-map "^0.7.3"
v8flags@^3.1.1:
version "3.2.0"
resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656"
integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==
dependencies:
homedir-polyfill "^1.0.1"
validate-npm-package-license@^3.0.1: validate-npm-package-license@^3.0.1:
version "3.0.4" version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -12428,9 +12558,9 @@ webpack-sources@^2.1.1:
source-map "^0.6.1" source-map "^0.6.1"
webpack@^5.1.0, webpack@^5.6.0: webpack@^5.1.0, webpack@^5.6.0:
version "5.6.0" version "5.8.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.6.0.tgz#282d10434c403b070ed91d459b385e873b51a07d" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.8.0.tgz#65f00a181708279ff982c2d7338e1dd5505364c4"
integrity sha512-SIeFuBhuheKElRbd84O35UhKc0nxlgSwtzm2ksZ0BVhRJqxVJxEguT/pYhfiR0le/pxTa1VsCp7EOYyTsa6XOA== integrity sha512-X2yosPiHip3L0TE+ylruzrOqSgEgsdGyBOGFWKYChcwlKChaw9VodZIUovG1oo7s0ss6e3ZxBMn9tXR+nkPThA==
dependencies: dependencies:
"@types/eslint-scope" "^3.7.0" "@types/eslint-scope" "^3.7.0"
"@types/estree" "^0.0.45" "@types/estree" "^0.0.45"
@@ -12452,7 +12582,7 @@ webpack@^5.1.0, webpack@^5.6.0:
neo-async "^2.6.2" neo-async "^2.6.2"
pkg-dir "^4.2.0" pkg-dir "^4.2.0"
schema-utils "^3.0.0" schema-utils "^3.0.0"
tapable "^2.0.0" tapable "^2.1.1"
terser-webpack-plugin "^5.0.3" terser-webpack-plugin "^5.0.3"
watchpack "^2.0.0" watchpack "^2.0.0"
webpack-sources "^2.1.1" webpack-sources "^2.1.1"
@@ -12552,6 +12682,15 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0" string-width "^4.1.0"
strip-ansi "^6.0.0" strip-ansi "^6.0.0"
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrappy@1, wrappy@^1.0.2: wrappy@1, wrappy@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -12628,6 +12767,11 @@ y18n@^4.0.0:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
y18n@^5.0.5:
version "5.0.5"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18"
integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==
yallist@^2.1.2: yallist@^2.1.2:
version "2.1.2" version "2.1.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
@@ -12659,7 +12803,12 @@ yargs-parser@^18.1.2:
camelcase "^5.0.0" camelcase "^5.0.0"
decamelize "^1.2.0" decamelize "^1.2.0"
"yargs@12 - 15", yargs@^15.3.1, yargs@^15.4.1: yargs-parser@^20.2.2:
version "20.2.4"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
"yargs@12 - 15", yargs@^15.4.1:
version "15.4.1" version "15.4.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
@@ -12692,6 +12841,19 @@ yargs@^13.3.2:
y18n "^4.0.0" y18n "^4.0.0"
yargs-parser "^13.1.2" yargs-parser "^13.1.2"
yargs@^16.1.0:
version "16.1.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.1.1.tgz#5a4a095bd1ca806b0a50d0c03611d38034d219a1"
integrity sha512-hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w==
dependencies:
cliui "^7.0.2"
escalade "^3.1.1"
get-caller-file "^2.0.5"
require-directory "^2.1.1"
string-width "^4.2.0"
y18n "^5.0.5"
yargs-parser "^20.2.2"
yauzl@^2.10.0: yauzl@^2.10.0:
version "2.10.0" version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
@@ -12699,3 +12861,8 @@ yauzl@^2.10.0:
dependencies: dependencies:
buffer-crc32 "~0.2.3" buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0" fd-slicer "~1.1.0"
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==