converts demo to ts
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
const config = require('./src/babel.config');
|
||||
|
||||
module.exports = (api) => config(api);
|
||||
module.exports = config;
|
||||
|
||||
@@ -6,11 +6,7 @@
|
||||
*/
|
||||
const checkRole = (allRoles, user) => {
|
||||
if (user) {
|
||||
if (allRoles.some((role) => {
|
||||
return user.roles && user.roles.some((individualRole) => {
|
||||
return individualRole === role;
|
||||
});
|
||||
})) {
|
||||
if (allRoles.some((role) => user.roles && user.roles.some((individualRole) => individualRole === role))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -18,4 +14,4 @@ const checkRole = (allRoles, user) => {
|
||||
return false;
|
||||
};
|
||||
|
||||
module.exports = checkRole;
|
||||
export default checkRole;
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = [
|
||||
export default [
|
||||
'admin',
|
||||
'editor',
|
||||
'moderator',
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'cta',
|
||||
labels: {
|
||||
singular: 'Call to Action',
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'email',
|
||||
labels: {
|
||||
singular: 'Email',
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'number',
|
||||
labels: {
|
||||
singular: 'Number',
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
blockImage: '/static/assets/images/generic-block-image.svg',
|
||||
slug: 'quote',
|
||||
labels: {
|
||||
@@ -1,5 +0,0 @@
|
||||
import React from 'react';
|
||||
|
||||
const Sidebar = () => <div className="sidebar">fake sidebar</div>
|
||||
|
||||
export default Sidebar;
|
||||
@@ -35,7 +35,7 @@ const insertButton = (editor, { href, label, style, newTab = false }) => {
|
||||
Transforms.insertNodes(editor, nodes);
|
||||
};
|
||||
|
||||
const ToolbarButton = ({ path }) => {
|
||||
const ToolbarButton: React.FC = ({ path }) => {
|
||||
const { open, closeAll } = useModal();
|
||||
const editor = useSlate();
|
||||
|
||||
@@ -5,7 +5,7 @@ import './index.scss';
|
||||
|
||||
const baseClass = 'rich-text-button';
|
||||
|
||||
const ButtonElement = ({ attributes, children, element }) => {
|
||||
const ButtonElement: React.FC = ({ attributes, children, element }) => {
|
||||
const { style = 'primary', label } = element;
|
||||
|
||||
return (
|
||||
@@ -1,12 +1,12 @@
|
||||
const roles = require('../access/roles');
|
||||
const checkRole = require('../access/checkRole');
|
||||
import roles from '../access/roles';
|
||||
import checkRole from '../access/checkRole';
|
||||
|
||||
const access = ({ req: { user } }) => {
|
||||
const result = checkRole(['admin'], user);
|
||||
return result;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'admins',
|
||||
labels: {
|
||||
singular: 'Admin',
|
||||
@@ -62,6 +62,10 @@ module.exports = {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'upload',
|
||||
type: 'uploads',
|
||||
},
|
||||
],
|
||||
timestamps: true,
|
||||
admin: {
|
||||
@@ -1,8 +1,8 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
const Email = require('../blocks/Email');
|
||||
const Quote = require('../blocks/Quote');
|
||||
const NumberBlock = require('../blocks/Number');
|
||||
const CallToAction = require('../blocks/CallToAction');
|
||||
import checkRole from '../access/checkRole';
|
||||
import Email from '../blocks/Email';
|
||||
import Quote from '../blocks/Quote';
|
||||
import NumberBlock from '../blocks/Number';
|
||||
import CallToAction from '../blocks/CallToAction';
|
||||
|
||||
const AllFields = {
|
||||
slug: 'all-fields',
|
||||
@@ -270,4 +270,4 @@ const AllFields = {
|
||||
timestamps: true,
|
||||
};
|
||||
|
||||
module.exports = AllFields;
|
||||
export default AllFields;
|
||||
@@ -9,4 +9,4 @@ const AutoLabel = {
|
||||
}],
|
||||
};
|
||||
|
||||
module.exports = AutoLabel;
|
||||
export default AutoLabel;
|
||||
@@ -1,9 +1,9 @@
|
||||
const Email = require('../blocks/Email');
|
||||
const Quote = require('../blocks/Quote');
|
||||
const NumberBlock = require('../blocks/Number');
|
||||
const CallToAction = require('../blocks/CallToAction');
|
||||
import Email from '../blocks/Email';
|
||||
import Quote from '../blocks/Quote';
|
||||
import NumberBlock from '../blocks/Number';
|
||||
import CallToAction from '../blocks/CallToAction';
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'blocks',
|
||||
labels: {
|
||||
singular: 'Blocks',
|
||||
@@ -17,4 +17,4 @@ const Code = {
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = Code;
|
||||
export default Code;
|
||||
@@ -50,4 +50,4 @@ const Conditions = {
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = Conditions;
|
||||
export default Conditions;
|
||||
@@ -1,5 +0,0 @@
|
||||
import React from 'react';
|
||||
|
||||
const Description = () => <div className="description">fake description field</div>;
|
||||
|
||||
export default Description;
|
||||
@@ -0,0 +1,5 @@
|
||||
import React from 'react';
|
||||
|
||||
const Description: React.FC = () => <div className="description">fake description field</div>;
|
||||
|
||||
export default Description;
|
||||
@@ -2,7 +2,7 @@ import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { Group } from '../../../../../../../components/forms';
|
||||
|
||||
const CustomGroup = (props) => (
|
||||
const CustomGroup: React.FC = (props) => (
|
||||
<div className="custom-group">
|
||||
<Group {...props} />
|
||||
</div>
|
||||
@@ -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',
|
||||
labels: {
|
||||
singular: 'Custom Component',
|
||||
@@ -1,8 +1,8 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
const Email = require('../blocks/Email');
|
||||
const Quote = require('../blocks/Quote');
|
||||
const NumberBlock = require('../blocks/Number');
|
||||
const CallToAction = require('../blocks/CallToAction');
|
||||
import checkRole from '../access/checkRole';
|
||||
import Email from '../blocks/Email';
|
||||
import Quote from '../blocks/Quote';
|
||||
import NumberBlock from '../blocks/Number';
|
||||
import CallToAction from '../blocks/CallToAction';
|
||||
|
||||
const DefaultValueTest = {
|
||||
slug: 'default-value-test',
|
||||
@@ -272,4 +272,4 @@ const DefaultValueTest = {
|
||||
timestamps: true,
|
||||
};
|
||||
|
||||
module.exports = DefaultValueTest;
|
||||
export default DefaultValueTest;
|
||||
@@ -1,8 +1,8 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
const Email = require('../blocks/Email');
|
||||
const Quote = require('../blocks/Quote');
|
||||
const NumberBlock = require('../blocks/Number');
|
||||
const CallToAction = require('../blocks/CallToAction');
|
||||
import checkRole from '../access/checkRole';
|
||||
import Email from '../blocks/Email';
|
||||
import Quote from '../blocks/Quote';
|
||||
import NumberBlock from '../blocks/Number';
|
||||
import CallToAction from '../blocks/CallToAction';
|
||||
|
||||
const DefaultValues = {
|
||||
slug: 'default-values',
|
||||
@@ -280,4 +280,4 @@ const DefaultValues = {
|
||||
],
|
||||
timestamps: true,
|
||||
};
|
||||
module.exports = DefaultValues;
|
||||
export default DefaultValues;
|
||||
@@ -1,4 +1,4 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
import checkRole from '../access/checkRole';
|
||||
|
||||
const access = ({ req: { user } }) => {
|
||||
const isAdmin = checkRole(['admin'], user);
|
||||
@@ -18,7 +18,7 @@ const access = ({ req: { user } }) => {
|
||||
return false;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'files',
|
||||
labels: {
|
||||
singular: 'File',
|
||||
@@ -28,4 +28,4 @@ const HiddenFields = {
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = HiddenFields;
|
||||
export default HiddenFields;
|
||||
@@ -1,5 +1,5 @@
|
||||
/* eslint-disable no-param-reassign */
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'hooks',
|
||||
labels: {
|
||||
singular: 'Hook',
|
||||
@@ -33,4 +33,4 @@ const LocalOperations = {
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = LocalOperations;
|
||||
export default LocalOperations;
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'localized-posts',
|
||||
labels: {
|
||||
singular: 'Localized Post',
|
||||
@@ -47,4 +47,4 @@ const LocalizedArrays = {
|
||||
timestamps: true,
|
||||
};
|
||||
|
||||
module.exports = LocalizedArrays;
|
||||
export default LocalizedArrays;
|
||||
@@ -1,6 +1,6 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
import checkRole from '../access/checkRole';
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'media',
|
||||
labels: {
|
||||
singular: 'Media',
|
||||
@@ -67,4 +67,4 @@ const NestedArray = {
|
||||
timestamps: true,
|
||||
};
|
||||
|
||||
module.exports = NestedArray;
|
||||
export default NestedArray;
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'previewable-post',
|
||||
labels: {
|
||||
singular: 'Previewable Post',
|
||||
@@ -1,8 +1,8 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
import checkRole from '../access/checkRole';
|
||||
|
||||
const access = ({ req: { user } }) => checkRole(['admin'], user);
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'public-users',
|
||||
labels: {
|
||||
singular: 'Public User',
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'relationship-a',
|
||||
access: {
|
||||
read: () => true,
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'relationship-b',
|
||||
access: {
|
||||
read: () => true,
|
||||
@@ -1,5 +1,5 @@
|
||||
const Button = require('../client/components/richText/elements/Button').default;
|
||||
const PurpleBackground = require('../client/components/richText/leaves/PurpleBackground').default;
|
||||
import Button from '../client/components/richText/elements/Button';
|
||||
import PurpleBackground from '../client/components/richText/leaves/PurpleBackground';
|
||||
|
||||
const RichText = {
|
||||
slug: 'rich-text',
|
||||
@@ -34,4 +34,4 @@ const RichText = {
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = RichText;
|
||||
export default RichText;
|
||||
@@ -40,4 +40,4 @@ const Select = {
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = Select;
|
||||
export default Select;
|
||||
@@ -1,6 +1,6 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
import checkRole from '../access/checkRole';
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'strict-access',
|
||||
labels: {
|
||||
singular: 'Strict Access',
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'validations',
|
||||
labels: {
|
||||
singular: 'Validation',
|
||||
@@ -1,8 +1,8 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
const Quote = require('../blocks/Quote');
|
||||
const CallToAction = require('../blocks/CallToAction');
|
||||
import checkRole from '../access/checkRole';
|
||||
import Quote from '../blocks/Quote';
|
||||
import CallToAction from '../blocks/CallToAction';
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'blocks-global',
|
||||
label: 'Blocks Global',
|
||||
access: {
|
||||
@@ -1,6 +1,6 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
import checkRole from '../access/checkRole';
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'global-with-access',
|
||||
label: 'Global with Strict Access',
|
||||
access: {
|
||||
@@ -1,6 +1,6 @@
|
||||
const checkRole = require('../access/checkRole');
|
||||
import checkRole from '../access/checkRole';
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
slug: 'navigation-array',
|
||||
label: 'Navigation Array',
|
||||
access: {
|
||||
8
demo/index.js
Normal file
8
demo/index.js
Normal file
@@ -0,0 +1,8 @@
|
||||
const babelConfig = require('../babel.config');
|
||||
|
||||
require('@babel/register')({
|
||||
...babelConfig,
|
||||
extensions: ['.ts', '.tsx', '.js', '.jsx'],
|
||||
});
|
||||
|
||||
require('./server.ts');
|
||||
@@ -1,35 +1,38 @@
|
||||
const { buildConfig } = require('../config');
|
||||
import path from 'path';
|
||||
import { buildConfig } from '../src/config/build';
|
||||
|
||||
const Admin = require('./collections/Admin');
|
||||
const AllFields = require('./collections/AllFields');
|
||||
const AutoLabel = require('./collections/AutoLabel');
|
||||
const Code = require('./collections/Code');
|
||||
const Conditions = require('./collections/Conditions');
|
||||
const CustomComponents = require('./collections/CustomComponents');
|
||||
const File = require('./collections/File');
|
||||
const Blocks = require('./collections/Blocks');
|
||||
const DefaultValues = require('./collections/DefaultValues');
|
||||
const HiddenFields = require('./collections/HiddenFields');
|
||||
const Hooks = require('./collections/Hooks');
|
||||
const Localized = require('./collections/Localized');
|
||||
const LocalizedArray = require('./collections/LocalizedArray');
|
||||
const LocalOperations = require('./collections/LocalOperations');
|
||||
const Media = require('./collections/Media');
|
||||
const NestedArrays = require('./collections/NestedArrays');
|
||||
const Preview = require('./collections/Preview');
|
||||
const PublicUsers = require('./collections/PublicUsers');
|
||||
const RelationshipA = require('./collections/RelationshipA');
|
||||
const RelationshipB = require('./collections/RelationshipB');
|
||||
const RichText = require('./collections/RichText');
|
||||
const Select = require('./collections/Select');
|
||||
const StrictPolicies = require('./collections/StrictPolicies');
|
||||
const Validations = require('./collections/Validations');
|
||||
import Admin from './collections/Admin';
|
||||
import AllFields from './collections/AllFields';
|
||||
import AutoLabel from './collections/AutoLabel';
|
||||
import Code from './collections/Code';
|
||||
import Conditions from './collections/Conditions';
|
||||
import CustomComponents from './collections/CustomComponents';
|
||||
import File from './collections/File';
|
||||
import Blocks from './collections/Blocks';
|
||||
import DefaultValues from './collections/DefaultValues';
|
||||
import HiddenFields from './collections/HiddenFields';
|
||||
import Hooks from './collections/Hooks';
|
||||
import Localized from './collections/Localized';
|
||||
import LocalizedArray from './collections/LocalizedArray';
|
||||
import LocalOperations from './collections/LocalOperations';
|
||||
import Media from './collections/Media';
|
||||
import NestedArrays from './collections/NestedArrays';
|
||||
import Preview from './collections/Preview';
|
||||
import PublicUsers from './collections/PublicUsers';
|
||||
import RelationshipA from './collections/RelationshipA';
|
||||
import RelationshipB from './collections/RelationshipB';
|
||||
import RichText from './collections/RichText';
|
||||
import Select from './collections/Select';
|
||||
import StrictPolicies from './collections/StrictPolicies';
|
||||
import Validations from './collections/Validations';
|
||||
|
||||
const BlocksGlobal = require('./globals/BlocksGlobal');
|
||||
const NavigationArray = require('./globals/NavigationArray');
|
||||
const GlobalWithStrictAccess = require('./globals/GlobalWithStrictAccess');
|
||||
import BlocksGlobal from './globals/BlocksGlobal';
|
||||
import NavigationArray from './globals/NavigationArray';
|
||||
import GlobalWithStrictAccess from './globals/GlobalWithStrictAccess';
|
||||
|
||||
module.exports = buildConfig({
|
||||
export default buildConfig({
|
||||
cookiePrefix: 'payload',
|
||||
serverURL: 'http://localhost:3000',
|
||||
admin: {
|
||||
user: 'admins',
|
||||
// indexHTML: 'custom-index.html',
|
||||
@@ -81,8 +84,6 @@ module.exports = buildConfig({
|
||||
GlobalWithStrictAccess,
|
||||
BlocksGlobal,
|
||||
],
|
||||
cookiePrefix: 'payload',
|
||||
serverURL: 'http://localhost:3000',
|
||||
cors: [
|
||||
'http://localhost',
|
||||
'http://localhost:3000',
|
||||
@@ -102,7 +103,7 @@ module.exports = buildConfig({
|
||||
defaultDepth: 2,
|
||||
compression: {},
|
||||
paths: {
|
||||
scss: 'client/scss/overrides.scss',
|
||||
scss: path.resolve(__dirname, './client/scss/overrides.scss'),
|
||||
},
|
||||
graphQL: {
|
||||
maxComplexity: 1000,
|
||||
@@ -1,7 +1,7 @@
|
||||
/* eslint-disable no-console */
|
||||
const express = require('express');
|
||||
const path = require('path');
|
||||
const payload = require('../src/dev');
|
||||
import express from 'express';
|
||||
import path from 'path';
|
||||
import payload from '../src';
|
||||
|
||||
const expressApp = express();
|
||||
|
||||
@@ -30,7 +30,7 @@ externalRouter.get('/', (req, res) => {
|
||||
|
||||
expressApp.use('/external-route', externalRouter);
|
||||
|
||||
exports.start = (cb) => {
|
||||
export const start = (cb) => {
|
||||
const server = expressApp.listen(3000, async () => {
|
||||
payload.logger.info(`listening on ${3000}...`);
|
||||
|
||||
@@ -42,5 +42,5 @@ exports.start = (cb) => {
|
||||
|
||||
// when server.js is launched directly
|
||||
if (module.id === require.main.id) {
|
||||
exports.start();
|
||||
start();
|
||||
}
|
||||
@@ -10,5 +10,6 @@
|
||||
"src/**/*.ts",
|
||||
"demo/"
|
||||
],
|
||||
"ext": "ts,js,json"
|
||||
"ext": "ts,js,json",
|
||||
"exec": "node ./demo/index.js"
|
||||
}
|
||||
|
||||
12
package.json
12
package.json
@@ -17,9 +17,9 @@
|
||||
"build:tsc": "tsc",
|
||||
"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",
|
||||
"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",
|
||||
"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 .",
|
||||
"test": "yarn test:int && yarn test:client",
|
||||
"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"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/cli": "^7.12.8",
|
||||
"@babel/core": "^7.11.6",
|
||||
"@babel/node": "^7.12.6",
|
||||
"@babel/plugin-proposal-class-properties": "^7.8.3",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.8.3",
|
||||
"@babel/plugin-transform-runtime": "^7.11.5",
|
||||
@@ -40,10 +42,10 @@
|
||||
"@faceless-ui/modal": "^1.0.4",
|
||||
"@faceless-ui/scroll-info": "^1.1.1",
|
||||
"@faceless-ui/window-info": "^1.2.2",
|
||||
"@hapi/joi": "17",
|
||||
"@payloadcms/config-provider": "0.0.9",
|
||||
"@typescript-eslint/parser": "4.0.1",
|
||||
"@udecode/slate-plugins": "^0.64.3",
|
||||
"ajv": "^6.12.6",
|
||||
"asap": "^2.0.6",
|
||||
"autoprefixer": "^9.7.4",
|
||||
"babel-jest": "^26.3.0",
|
||||
@@ -75,7 +77,7 @@
|
||||
"is-hotkey": "^0.1.6",
|
||||
"isomorphic-fetch": "^2.2.1",
|
||||
"jest": "26.6.3",
|
||||
"joi": "^17.3.0",
|
||||
"joi": "^14.3.1",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"jwt-decode": "^3.0.0",
|
||||
"method-override": "^3.0.0",
|
||||
@@ -218,7 +220,7 @@
|
||||
"eslint-plugin-react-hooks": "^2.3.0",
|
||||
"form-data": "^3.0.0",
|
||||
"graphql-request": "^2.0.0",
|
||||
"joi-extract-type": "^15.0.8",
|
||||
"joi-extract-type": "15.0.2",
|
||||
"mongodb": "^3.6.2",
|
||||
"nodemon": "^1.19.4",
|
||||
"passport-strategy": "^1.0.0",
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
module.exports = (api) => {
|
||||
const config = {
|
||||
module.exports = {
|
||||
presets: [
|
||||
require.resolve('@babel/preset-typescript'),
|
||||
[
|
||||
@@ -15,20 +14,14 @@ module.exports = (api) => {
|
||||
require.resolve('@babel/preset-react'),
|
||||
],
|
||||
plugins: [
|
||||
require.resolve('@babel/plugin-transform-runtime'),
|
||||
require.resolve('@babel/plugin-proposal-class-properties'),
|
||||
require.resolve('@babel/plugin-proposal-optional-chaining'),
|
||||
],
|
||||
};
|
||||
|
||||
if (api.env('test')) {
|
||||
config.plugins.push([
|
||||
[
|
||||
'babel-plugin-ignore-html-and-css-imports',
|
||||
{
|
||||
removeExtensions: ['.svg', '.css', '.scss', '.png', '.jpg'],
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
return config;
|
||||
],
|
||||
require.resolve('@babel/plugin-transform-runtime'),
|
||||
require.resolve('@babel/plugin-proposal-class-properties'),
|
||||
require.resolve('@babel/plugin-proposal-optional-chaining'),
|
||||
],
|
||||
};
|
||||
|
||||
@@ -18,8 +18,10 @@ export type Collection = {
|
||||
|
||||
type PayloadCollectionConfigFromSchema = joi.extractType<typeof schema>
|
||||
|
||||
interface PayloadCollectionConfig extends PayloadCollectionConfigFromSchema {
|
||||
hooks: {
|
||||
type PayloadCollectionConfigOmitted = Omit<PayloadCollectionConfigFromSchema, 'hooks' | 'access'>
|
||||
|
||||
type PayloadCollectionConfig = PayloadCollectionConfigOmitted & {
|
||||
hooks?: {
|
||||
beforeOperation: BeforeOperationHook[];
|
||||
beforeValidate: BeforeValidateHook[];
|
||||
beforeChange: BeforeChangeHook[];
|
||||
|
||||
@@ -3,137 +3,133 @@ import path from 'path';
|
||||
import collectionSchema from '../collections/config/schema';
|
||||
import globalSchema from '../globals/config/schema';
|
||||
|
||||
const schema = joi.object().keys({
|
||||
export default joi.object({
|
||||
serverURL: joi.string()
|
||||
.required(),
|
||||
cookiePrefix: joi.string()
|
||||
.default('payload'),
|
||||
routes: joi.object()
|
||||
.keys({
|
||||
admin: joi.string()
|
||||
.default('/admin'),
|
||||
api: joi.string()
|
||||
.default('/api'),
|
||||
graphQL: joi.string()
|
||||
.default('/graphql'),
|
||||
graphQLPlayground: joi.string()
|
||||
.default('/graphql-playground'),
|
||||
}).default(),
|
||||
collections: joi.array()
|
||||
.items(collectionSchema)
|
||||
.default([]),
|
||||
globals: joi.array()
|
||||
.items(globalSchema)
|
||||
.default([]),
|
||||
admin: joi.object()
|
||||
.keys({
|
||||
user: joi.string()
|
||||
.default('users'),
|
||||
meta: joi.object()
|
||||
.keys({
|
||||
titleSuffix: joi.string()
|
||||
.default('- Payload'),
|
||||
ogImage: joi.string()
|
||||
.default('/static/img/find-image-here.jpg'),
|
||||
favicon: joi.string()
|
||||
.default('/static/img/whatever.png'),
|
||||
})
|
||||
.default(),
|
||||
disable: joi.bool()
|
||||
.default(false),
|
||||
indexHTML: joi.string()
|
||||
.default(path.resolve(__dirname, '../admin/index.html')),
|
||||
components: joi.object()
|
||||
.keys({
|
||||
Nav: joi.func(),
|
||||
Dashboard: joi.func(),
|
||||
Icon: joi.func(),
|
||||
Logo: joi.func(),
|
||||
}),
|
||||
}).default(),
|
||||
defaultDepth: joi.number()
|
||||
.min(0)
|
||||
.max(30)
|
||||
.default(3),
|
||||
maxDepth: joi.number()
|
||||
.min(0)
|
||||
.max(100)
|
||||
.default(11),
|
||||
csrf: joi.array()
|
||||
.items(joi.string())
|
||||
.default([]),
|
||||
cors: joi.array()
|
||||
.items(joi.string())
|
||||
.default([]),
|
||||
publicENV: joi.object()
|
||||
.unknown(),
|
||||
express: joi.object()
|
||||
.keys({
|
||||
json: joi.object()
|
||||
.unknown()
|
||||
.default({}),
|
||||
}).default(),
|
||||
local: joi.boolean()
|
||||
.default(false),
|
||||
upload: joi.object()
|
||||
.keys({
|
||||
limits: joi.object()
|
||||
.keys({
|
||||
fileSize: joi.number(),
|
||||
}),
|
||||
}).default({}),
|
||||
webpack: joi.func(),
|
||||
serverModules: joi.object()
|
||||
.unknown(),
|
||||
rateLimit: joi.object()
|
||||
.keys({
|
||||
window: joi.number().default(15 * 60 * 100),
|
||||
max: joi.number().default(500),
|
||||
trustProxy: joi.boolean().default(false),
|
||||
skip: joi.func(),
|
||||
}).default(),
|
||||
graphQL: joi.object()
|
||||
.keys({
|
||||
mutations: joi.object().unknown().default({}),
|
||||
queries: joi.object().unknown().default({}),
|
||||
maxComplexity: joi.number().default(1000),
|
||||
disablePlaygroundInProduction: joi.boolean().default(true),
|
||||
}).default(),
|
||||
compression: joi.object().unknown(),
|
||||
localization: joi.alternatives()
|
||||
.try(
|
||||
joi.object().keys({
|
||||
locales: joi.array().items(joi.string()),
|
||||
defaultLocale: joi.string(),
|
||||
fallback: joi.boolean(),
|
||||
}),
|
||||
joi.boolean(),
|
||||
).default(false),
|
||||
email: joi.alternatives()
|
||||
.try(
|
||||
joi.object()
|
||||
.keys({
|
||||
transport: 'mock',
|
||||
fromName: joi.string().default('Payload CMS'),
|
||||
fromAddress: joi.string().default('cms@payloadcms.com'),
|
||||
}),
|
||||
joi.object()
|
||||
.keys({
|
||||
transport: joi.object().unknown(),
|
||||
transportOptions: joi.object().unknown(),
|
||||
fromName: joi.string().default('Payload CMS'),
|
||||
fromAddress: joi.string().default('cms@payloadcms.com'),
|
||||
}),
|
||||
).default({}),
|
||||
hooks: joi.object().keys({
|
||||
afterError: joi.func(),
|
||||
}).default({}),
|
||||
paths: joi.object()
|
||||
.keys({
|
||||
configDir: joi.string(),
|
||||
config: joi.string(),
|
||||
scss: joi.string().default(path.resolve(__dirname, '../admin/scss/overrides.scss')),
|
||||
}).default(),
|
||||
cookiePrefix: joi.string(),
|
||||
// routes: joi.object({
|
||||
// admin: joi.string()
|
||||
// .default('/admin'),
|
||||
// api: joi.string()
|
||||
// .default('/api'),
|
||||
// graphQL: joi.string()
|
||||
// .default('/graphql'),
|
||||
// graphQLPlayground: joi.string()
|
||||
// .default('/graphql-playground'),
|
||||
// }).default(),
|
||||
// collections: joi.array()
|
||||
// .items(collectionSchema)
|
||||
// .default([]),
|
||||
// globals: joi.array()
|
||||
// .items(globalSchema)
|
||||
// .default([]),
|
||||
// admin: joi.object()
|
||||
// .keys({
|
||||
// user: joi.string()
|
||||
// .default('users'),
|
||||
// meta: joi.object()
|
||||
// .keys({
|
||||
// titleSuffix: joi.string()
|
||||
// .default('- Payload'),
|
||||
// ogImage: joi.string()
|
||||
// .default('/static/img/find-image-here.jpg'),
|
||||
// favicon: joi.string()
|
||||
// .default('/static/img/whatever.png'),
|
||||
// })
|
||||
// .default(),
|
||||
// disable: joi.bool()
|
||||
// .default(false),
|
||||
// indexHTML: joi.string()
|
||||
// .default(path.resolve(__dirname, '../admin/index.html')),
|
||||
// components: joi.object()
|
||||
// .keys({
|
||||
// Nav: joi.func(),
|
||||
// Dashboard: joi.func(),
|
||||
// Icon: joi.func(),
|
||||
// Logo: joi.func(),
|
||||
// }),
|
||||
// }).default({}),
|
||||
// defaultDepth: joi.number()
|
||||
// .min(0)
|
||||
// .max(30)
|
||||
// .default(3),
|
||||
// maxDepth: joi.number()
|
||||
// .min(0)
|
||||
// .max(100)
|
||||
// .default(11),
|
||||
// csrf: joi.array()
|
||||
// .items(joi.string())
|
||||
// .default([]),
|
||||
// cors: joi.array()
|
||||
// .items(joi.string())
|
||||
// .default([]),
|
||||
// publicENV: joi.object()
|
||||
// .default({}),
|
||||
// express: joi.object()
|
||||
// .keys({
|
||||
// json: joi.object()
|
||||
// .default({}),
|
||||
// }).default(),
|
||||
// local: joi.boolean()
|
||||
// .default(false),
|
||||
// upload: joi.object()
|
||||
// .keys({
|
||||
// limits: joi.object()
|
||||
// .keys({
|
||||
// fileSize: joi.number(),
|
||||
// }),
|
||||
// }).default({}),
|
||||
// webpack: joi.func(),
|
||||
// serverModules: joi.array()
|
||||
// .items(joi.string())
|
||||
// .default([]),
|
||||
// rateLimit: joi.object()
|
||||
// .keys({
|
||||
// window: joi.number().default(15 * 60 * 100),
|
||||
// max: joi.number().default(500),
|
||||
// trustProxy: joi.boolean().default(false),
|
||||
// skip: joi.func(),
|
||||
// }).default(),
|
||||
// graphQL: joi.object()
|
||||
// .keys({
|
||||
// mutations: joi.object().default({}),
|
||||
// queries: joi.object().default({}),
|
||||
// maxComplexity: joi.number().default(1000),
|
||||
// disablePlaygroundInProduction: joi.boolean().default(true),
|
||||
// }).default(),
|
||||
// compression: joi.object().default({}),
|
||||
// localization: joi.alternatives()
|
||||
// .try(
|
||||
// joi.object().keys({
|
||||
// locales: joi.array().items(joi.string()),
|
||||
// defaultLocale: joi.string(),
|
||||
// fallback: joi.boolean(),
|
||||
// }),
|
||||
// joi.boolean(),
|
||||
// ).default(false),
|
||||
// email: joi.alternatives()
|
||||
// .try(
|
||||
// joi.object()
|
||||
// .keys({
|
||||
// transport: 'mock',
|
||||
// fromName: joi.string().default('Payload CMS'),
|
||||
// fromAddress: joi.string().default('cms@payloadcms.com'),
|
||||
// }),
|
||||
// joi.object()
|
||||
// .keys({
|
||||
// transport: joi.object(),
|
||||
// transportOptions: joi.object(),
|
||||
// fromName: joi.string().default('Payload CMS'),
|
||||
// fromAddress: joi.string().default('cms@payloadcms.com'),
|
||||
// }),
|
||||
// ).default({}),
|
||||
// hooks: joi.object().keys({
|
||||
// afterError: joi.func(),
|
||||
// }).default({}),
|
||||
// paths: joi.object()
|
||||
// .keys({
|
||||
// configDir: joi.string(),
|
||||
// config: joi.string(),
|
||||
// scss: joi.string().default(path.resolve(__dirname, '../admin/scss/overrides.scss')),
|
||||
// }).default(),
|
||||
});
|
||||
|
||||
export default schema;
|
||||
|
||||
@@ -54,18 +54,20 @@ export type Access = (args?: any) => boolean;
|
||||
|
||||
type PayloadConfigFromSchema = joi.extractType<typeof schema>
|
||||
|
||||
export interface PayloadConfig extends PayloadConfigFromSchema {
|
||||
graphQL: {
|
||||
mutations: {
|
||||
[key: string]: unknown
|
||||
} | ((graphQL: GraphQLType, payload: InitializeGraphQL) => any),
|
||||
queries: {
|
||||
[key: string]: unknown
|
||||
} | ((graphQL: GraphQLType, payload: InitializeGraphQL) => any),
|
||||
maxComplexity: number;
|
||||
disablePlaygroundInProduction: boolean;
|
||||
},
|
||||
email: EmailOptions,
|
||||
type PayloadConfigOmitted = Omit<PayloadConfigFromSchema, 'hooks' | 'email' | 'graphQL'>
|
||||
|
||||
export type PayloadConfig = PayloadConfigOmitted & {
|
||||
// graphQL: {
|
||||
// mutations: {
|
||||
// [key: string]: unknown
|
||||
// } | ((graphQL: GraphQLType, payload: InitializeGraphQL) => any),
|
||||
// queries: {
|
||||
// [key: string]: unknown
|
||||
// } | ((graphQL: GraphQLType, payload: InitializeGraphQL) => any),
|
||||
// maxComplexity: number;
|
||||
// disablePlaygroundInProduction: boolean;
|
||||
// },
|
||||
// email: EmailOptions,
|
||||
hooks: {
|
||||
afterError: (err: Error, res: Response) => void,
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ const validateSchema = (config: PayloadConfig): Config => {
|
||||
logger.error(`There were ${result.error.details.length} errors validating your Payload config`);
|
||||
|
||||
result.error.details.forEach(({ message }, i) => {
|
||||
console.log(JSON.stringify(result.error.details[i]));
|
||||
logger.error(`${i + 1}: ${message}`);
|
||||
});
|
||||
|
||||
|
||||
24
src/dev.js
24
src/dev.js
@@ -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;
|
||||
@@ -1,28 +1,6 @@
|
||||
import joi from 'joi';
|
||||
|
||||
const baseField = joi.object().keys({
|
||||
label: joi.string(),
|
||||
required: joi.boolean().default(false),
|
||||
saveToJWT: joi.boolean().default(false),
|
||||
unique: joi.boolean().default(false),
|
||||
localized: joi.boolean().default(false),
|
||||
index: joi.boolean().default(false),
|
||||
hidden: joi.boolean().default(false),
|
||||
access: joi.object().keys({
|
||||
create: joi.func(),
|
||||
read: joi.func(),
|
||||
update: joi.func(),
|
||||
delete: joi.func(),
|
||||
unlock: joi.func(),
|
||||
}),
|
||||
hooks: joi.object()
|
||||
.keys({
|
||||
beforeValidate: joi.array().items(joi.func()).default([]),
|
||||
beforeChange: joi.array().items(joi.func()).default([]),
|
||||
afterChange: joi.array().items(joi.func()).default([]),
|
||||
afterRead: joi.array().items(joi.func()).default([]),
|
||||
}).default(),
|
||||
admin: joi.object().keys({
|
||||
export const adminFields = joi.object().keys({
|
||||
position: joi.string().valid('sidebar'),
|
||||
width: joi.string(),
|
||||
style: joi.object().unknown(),
|
||||
@@ -34,104 +12,106 @@ const baseField = joi.object().keys({
|
||||
Field: joi.func(),
|
||||
Filter: joi.func(),
|
||||
}).default({}),
|
||||
}).default({}),
|
||||
});
|
||||
}).default();
|
||||
|
||||
// Joi.object({
|
||||
// type: Joi.string().required().only(['pizza', 'salad'])
|
||||
// })
|
||||
// .when(Joi.object({ type: 'pizza' }).unknown(), {
|
||||
// then: Joi.object({ pepperoni: Joi.boolean() })
|
||||
// })
|
||||
// .when(Joi.object({ type: 'salad' }).unknown(), {
|
||||
// then: Joi.object({ croutons: Joi.boolean() })
|
||||
// })
|
||||
export const baseField = joi.object().keys({
|
||||
label: joi.string(),
|
||||
required: joi.boolean().default(false),
|
||||
saveToJWT: joi.boolean().default(false),
|
||||
unique: joi.boolean().default(false),
|
||||
localized: joi.boolean().default(false),
|
||||
index: joi.boolean().default(false),
|
||||
hidden: joi.boolean().default(false),
|
||||
access: joi.object().keys({
|
||||
create: joi.func(),
|
||||
read: joi.func(),
|
||||
update: joi.func(),
|
||||
}),
|
||||
hooks: joi.object()
|
||||
.keys({
|
||||
beforeValidate: joi.array().items(joi.func()).default([]),
|
||||
beforeChange: joi.array().items(joi.func()).default([]),
|
||||
afterChange: joi.array().items(joi.func()).default([]),
|
||||
afterRead: joi.array().items(joi.func()).default([]),
|
||||
}).default(),
|
||||
admin: adminFields,
|
||||
}).default();
|
||||
|
||||
const types = {
|
||||
text: baseField.keys({
|
||||
const textProps = {
|
||||
type: joi.string().valid('text').required(),
|
||||
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(), {
|
||||
then: types[type],
|
||||
}),
|
||||
joi.object({
|
||||
type: joi.string().valid(...allTypes).required(),
|
||||
})).id('field');
|
||||
const numberProps = {
|
||||
type: joi.string().valid('number').required(),
|
||||
name: joi.string().required(),
|
||||
defaultValue: joi.number(),
|
||||
};
|
||||
|
||||
// const fieldSchema = joi.object({
|
||||
// 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');
|
||||
export const number = joi.object().keys(numberProps);
|
||||
|
||||
// const fieldSchema = joi.alternatives()
|
||||
// .try(
|
||||
// ,
|
||||
// baseField.keys({
|
||||
// type: joi.string().valid('number').required(),
|
||||
// name: joi.string().required(),
|
||||
// defaultValue: joi.number(),
|
||||
// }),
|
||||
// baseField.keys({
|
||||
// type: joi.string().valid('email').required(),
|
||||
// name: joi.string().required(),
|
||||
// }),
|
||||
// baseField.keys({
|
||||
// type: joi.string().valid('textarea').required(),
|
||||
// name: joi.string().required(),
|
||||
// }),
|
||||
// baseField.keys({
|
||||
// type: joi.string().valid('code').required(),
|
||||
// name: joi.string().required(),
|
||||
// }),
|
||||
// baseField.keys({
|
||||
// type: joi.string().valid('select').required(),
|
||||
// name: joi.string().required(),
|
||||
// options: joi.array().items(joi.string()).required(),
|
||||
// hasMany: joi.boolean().default(false),
|
||||
// }).default(),
|
||||
// baseField.keys({
|
||||
// type: joi.string().valid('row').required(),
|
||||
// fields: joi.array().items(joi.link('#field')),
|
||||
// }),
|
||||
// ).id('field');
|
||||
const textareaProps = {
|
||||
type: joi.string().valid('textarea').required(),
|
||||
name: joi.string().required(),
|
||||
defaultValue: joi.string(),
|
||||
};
|
||||
|
||||
export const textarea = joi.object().keys(textareaProps);
|
||||
|
||||
const emailProps = {
|
||||
type: joi.string().valid('email').required(),
|
||||
name: joi.string().required(),
|
||||
defaultValue: joi.string(),
|
||||
};
|
||||
|
||||
export const email = joi.object().keys(emailProps);
|
||||
|
||||
const codeProps = {
|
||||
type: joi.string().valid('code').required(),
|
||||
name: joi.string().required(),
|
||||
defaultValue: joi.string(),
|
||||
};
|
||||
|
||||
export const code = joi.object().keys(codeProps);
|
||||
|
||||
const selectProps = {
|
||||
type: joi.string().valid('select').required(),
|
||||
name: joi.string().required(),
|
||||
options: joi.array().items(joi.string()).required(),
|
||||
hasMany: joi.boolean().default(false),
|
||||
defaultValue: joi.string(),
|
||||
};
|
||||
|
||||
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;
|
||||
|
||||
@@ -1,157 +1,81 @@
|
||||
/* eslint-disable no-use-before-define */
|
||||
import joi from 'joi';
|
||||
import { CSSProperties } from 'react';
|
||||
import 'joi-extract-type';
|
||||
import { DeepRequired } from 'ts-essentials';
|
||||
import { PayloadRequest } from '../../express/types/payloadRequest';
|
||||
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
|
||||
export type FieldHook = (args: {
|
||||
value?: any,
|
||||
originalDoc?: any,
|
||||
data?: any,
|
||||
value?: unknown,
|
||||
originalDoc?: unknown,
|
||||
data?: unknown,
|
||||
operation?: 'create' | 'update',
|
||||
req?: PayloadRequest
|
||||
}) => Promise<any> | any;
|
||||
}) => Promise<unknown> | unknown;
|
||||
|
||||
type FieldBase = {
|
||||
name: string;
|
||||
label: string;
|
||||
slug?: string;
|
||||
required?: boolean;
|
||||
unique?: boolean;
|
||||
index?: boolean;
|
||||
defaultValue?: any;
|
||||
hidden?: boolean;
|
||||
localized?: boolean;
|
||||
maxLength?: number;
|
||||
height?: number;
|
||||
validate?: (value: any, field: Field) => any;
|
||||
// eslint-disable-next-line no-use-before-define
|
||||
hooks?: {
|
||||
beforeValidate?: FieldHook[];
|
||||
beforeChange?: FieldHook[];
|
||||
afterChange?: FieldHook[];
|
||||
afterRead?: FieldHook[];
|
||||
type BaseFieldFromSchema = joi.extractType<typeof baseField>;
|
||||
type BaseAdminFieldsFromSchema = joi.extractType<typeof adminFields>;
|
||||
|
||||
interface BaseAdminFields extends BaseAdminFieldsFromSchema {
|
||||
style: CSSProperties
|
||||
}
|
||||
|
||||
interface BaseField extends BaseFieldFromSchema {
|
||||
access: {
|
||||
create: Access
|
||||
read: Access
|
||||
update: Access
|
||||
}
|
||||
admin?: {
|
||||
position?: 'sidebar';
|
||||
width?: string;
|
||||
style?: CSSProperties;
|
||||
readOnly?: boolean;
|
||||
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[];
|
||||
hooks: {
|
||||
beforeValidate: FieldHook[]
|
||||
beforeChange: FieldHook[]
|
||||
afterChange: FieldHook[]
|
||||
afterRead: FieldHook[]
|
||||
}
|
||||
admin: BaseAdminFields
|
||||
}
|
||||
|
||||
export type ArrayField = FieldBase & {
|
||||
type: 'array';
|
||||
minRows?: number;
|
||||
maxRows?: number;
|
||||
fields?: Field[];
|
||||
}
|
||||
type TextFromSchema = joi.extractType<typeof text>;
|
||||
export interface TextField extends BaseField, TextFromSchema {}
|
||||
|
||||
export type RadioField = FieldBase & {
|
||||
type: 'radio';
|
||||
options: {
|
||||
value: string;
|
||||
label: string;
|
||||
}[];
|
||||
}
|
||||
type NumberFromSchema = joi.extractType<typeof number>;
|
||||
export interface NumberField extends BaseField, NumberFromSchema {}
|
||||
|
||||
export type Block = {
|
||||
slug: string,
|
||||
labels: {
|
||||
singular: string;
|
||||
plural: string;
|
||||
};
|
||||
fields: Field[],
|
||||
}
|
||||
type TextareaFromSchema = joi.extractType<typeof textarea>;
|
||||
export interface TextareaField extends BaseField, TextareaFromSchema {}
|
||||
|
||||
export type BlockField = FieldBase & {
|
||||
type: 'blocks';
|
||||
minRows?: number;
|
||||
maxRows?: number;
|
||||
blocks?: Block[];
|
||||
};
|
||||
type EmailFromSchema = joi.extractType<typeof email>;
|
||||
export interface EmailField extends BaseField, EmailFromSchema {}
|
||||
|
||||
export type Field = NumberField
|
||||
| TextField
|
||||
| EmailField
|
||||
type CodeFromSchema = joi.extractType<typeof code>;
|
||||
export interface CodeField extends BaseField, CodeFromSchema {}
|
||||
|
||||
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
|
||||
| EmailField
|
||||
| CodeField
|
||||
| CheckboxField
|
||||
| DateField
|
||||
| BlockField
|
||||
| RadioField
|
||||
| RelationshipField
|
||||
| ArrayField
|
||||
| RichTextField
|
||||
| GroupField
|
||||
| RowField
|
||||
| SelectField
|
||||
| SelectManyField
|
||||
| UploadField;
|
||||
| RowField
|
||||
|
||||
export type FieldConfig = DeepRequired<PayloadFieldConfig>
|
||||
|
||||
@@ -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
524
src/types/joi.d.ts
vendored
@@ -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>
|
||||
}
|
||||
@@ -104,11 +104,9 @@ export default (config: PayloadConfig): Configuration => {
|
||||
],
|
||||
};
|
||||
|
||||
if (Array.isArray(config.serverModules)) {
|
||||
config.serverModules.forEach((mod) => {
|
||||
webpackConfig.resolve.alias[mod] = mockModulePath;
|
||||
});
|
||||
}
|
||||
|
||||
if (config.webpack && typeof config.webpack === 'function') {
|
||||
webpackConfig = config.webpack(webpackConfig);
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
/* Do not emit comments to output. */
|
||||
"noEmit": false, /* Do not emit outputs. */
|
||||
"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). */
|
||||
"baseUrl": "",
|
||||
"paths": {
|
||||
@@ -35,7 +36,6 @@
|
||||
"src/"
|
||||
],
|
||||
"exclude": [
|
||||
"demo",
|
||||
"dist",
|
||||
"build",
|
||||
"src/tests",
|
||||
|
||||
437
yarn.lock
437
yarn.lock
@@ -2,6 +2,23 @@
|
||||
# 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":
|
||||
version "7.10.4"
|
||||
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==
|
||||
|
||||
"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.7.5":
|
||||
version "7.12.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.8.tgz#8ad76c1a7d2a6a3beecc4395fa4f7b4cb88390e6"
|
||||
integrity sha512-ra28JXL+5z73r1IC/t+FT1ApXU5LsulFDnTDntNfLQaScJUJmcHL5Qxm/IWanCToQk3bPWQo5bflbplU5r15pg==
|
||||
version "7.12.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8"
|
||||
integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.10.4"
|
||||
"@babel/generator" "^7.12.5"
|
||||
@@ -25,7 +42,7 @@
|
||||
"@babel/helpers" "^7.12.5"
|
||||
"@babel/parser" "^7.12.7"
|
||||
"@babel/template" "^7.12.7"
|
||||
"@babel/traverse" "^7.12.8"
|
||||
"@babel/traverse" "^7.12.9"
|
||||
"@babel/types" "^7.12.7"
|
||||
convert-source-map "^1.7.0"
|
||||
debug "^4.1.0"
|
||||
@@ -264,6 +281,20 @@
|
||||
chalk "^2.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":
|
||||
version "7.12.7"
|
||||
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/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"
|
||||
resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.12.1.tgz#cdb087bdfc4f7241c03231f22e15d211acf21438"
|
||||
integrity sha512-XWcmseMIncOjoydKZnWvWi0/5CUCD+ZYKhRwgYlWOrA8fGZ/FjuLRpqtIhLOVD/fvR1b9DQHtZPn68VvhpYf+Q==
|
||||
@@ -944,10 +975,10 @@
|
||||
"@babel/parser" "^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":
|
||||
version "7.12.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.8.tgz#c1c2983bf9ba0f4f0eaa11dff7e77fa63307b2a4"
|
||||
integrity sha512-EIRQXPTwFEGRZyu6gXbjfpNORN1oZvwuzJbxcXjAgWV0iqXYDszN1Hx3FVm6YgZfu1ZQbCVAk3l+nIw95Xll9Q==
|
||||
"@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.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.9.tgz#fad26c972eabbc11350e0b695978de6cc8e8596f"
|
||||
integrity sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.10.4"
|
||||
"@babel/generator" "^7.12.5"
|
||||
@@ -1140,6 +1171,13 @@
|
||||
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
|
||||
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":
|
||||
version "1.3.2"
|
||||
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"
|
||||
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":
|
||||
version "8.5.1"
|
||||
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"
|
||||
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":
|
||||
version "15.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7"
|
||||
@@ -1170,6 +1224,11 @@
|
||||
"@hapi/hoek" "8.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":
|
||||
version "3.1.6"
|
||||
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"
|
||||
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":
|
||||
version "2.1.3"
|
||||
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"
|
||||
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":
|
||||
version "1.8.1"
|
||||
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217"
|
||||
@@ -1557,9 +1616,9 @@
|
||||
"@babel/types" "^7.0.0"
|
||||
|
||||
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6":
|
||||
version "7.0.15"
|
||||
resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz#db9e4238931eb69ef8aab0ad6523d4d4caa39d03"
|
||||
integrity sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==
|
||||
version "7.0.16"
|
||||
resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.16.tgz#0bbbf70c7bc4193210dd27e252c51260a37cd6a7"
|
||||
integrity sha512-S63Dt4CZOkuTmpLGGWtT/mQdVORJOpx6SZWGVaP56dda/0Nx5nEe82K7/LAm8zYr6SfMq+1N2OreIOrHAx656w==
|
||||
dependencies:
|
||||
"@babel/types" "^7.3.0"
|
||||
|
||||
@@ -1899,9 +1958,9 @@
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/node@*":
|
||||
version "14.14.9"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.9.tgz#04afc9a25c6ff93da14deabd65dc44485b53c8d6"
|
||||
integrity sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw==
|
||||
version "14.14.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785"
|
||||
integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==
|
||||
|
||||
"@types/node@10.12.7":
|
||||
version "10.12.7"
|
||||
@@ -1957,7 +2016,7 @@
|
||||
|
||||
"@types/passport-local-mongoose@^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==
|
||||
dependencies:
|
||||
"@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"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
||||
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
||||
@@ -2888,12 +2947,14 @@ array-flatten@1.1.1:
|
||||
integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
|
||||
|
||||
array-includes@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348"
|
||||
integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8"
|
||||
integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==
|
||||
dependencies:
|
||||
call-bind "^1.0.0"
|
||||
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"
|
||||
|
||||
array-union@^2.1.0:
|
||||
@@ -3047,14 +3108,13 @@ babel-jest@^26.3.0, babel-jest@^26.6.3:
|
||||
slash "^3.0.0"
|
||||
|
||||
babel-loader@^8.1.0:
|
||||
version "8.2.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.1.tgz#e53313254677e86f27536f5071d807e01d24ec00"
|
||||
integrity sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==
|
||||
version "8.2.2"
|
||||
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
|
||||
integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
|
||||
dependencies:
|
||||
find-cache-dir "^2.1.0"
|
||||
find-cache-dir "^3.3.1"
|
||||
loader-utils "^1.4.0"
|
||||
make-dir "^2.1.0"
|
||||
pify "^4.0.1"
|
||||
make-dir "^3.1.0"
|
||||
schema-utils "^2.6.5"
|
||||
|
||||
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"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6"
|
||||
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"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b"
|
||||
integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==
|
||||
@@ -3741,6 +3801,15 @@ cliui@^6.0.0:
|
||||
strip-ansi "^6.0.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:
|
||||
version "1.1.1"
|
||||
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"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
|
||||
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"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
|
||||
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
|
||||
@@ -3974,9 +4043,9 @@ copy-to-clipboard@^3.2.0:
|
||||
toggle-selection "^1.0.6"
|
||||
|
||||
copyfiles@^2.4.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.0.tgz#fcac72a4f2b882f021dd156b4bcf6d71315487bd"
|
||||
integrity sha512-yGjpR3yjQdxccW8EcJ4a7ZCA6wGER6/Q2Y+b7bXbVxGeSHBf93i9d7MzTsx+VV1CpMKQa3v4ThZfXBcltMzl0w==
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5"
|
||||
integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==
|
||||
dependencies:
|
||||
glob "^7.0.5"
|
||||
minimatch "^3.0.3"
|
||||
@@ -3984,20 +4053,25 @@ copyfiles@^2.4.0:
|
||||
noms "0.0.0"
|
||||
through2 "^2.0.1"
|
||||
untildify "^4.0.0"
|
||||
yargs "^15.3.1"
|
||||
yargs "^16.1.0"
|
||||
|
||||
core-js-compat@^3.7.0:
|
||||
version "3.7.0"
|
||||
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.7.0.tgz#8479c5d3d672d83f1f5ab94cf353e57113e065ed"
|
||||
integrity sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==
|
||||
version "3.8.0"
|
||||
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.0.tgz#3248c6826f4006793bd637db608bca6e4cd688b1"
|
||||
integrity sha512-o9QKelQSxQMYWHXc/Gc4L8bx/4F7TTraE5rhuN8I7mKBt5dBIUpXpIR3omv70ebr8ST5R3PqbDQr+ZI3+Tt1FQ==
|
||||
dependencies:
|
||||
browserslist "^4.14.6"
|
||||
browserslist "^4.14.7"
|
||||
semver "7.0.0"
|
||||
|
||||
core-js-pure@^3.0.0:
|
||||
version "3.7.0"
|
||||
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.7.0.tgz#28a57c861d5698e053f0ff36905f7a3301b4191e"
|
||||
integrity sha512-EZD2ckZysv8MMt4J6HSvS9K2GdtlZtdBncKAmF9lr2n0c9dJUaUN88PSTjvgwCgQPWKTkERXITgS6JJRAnljtg==
|
||||
version "3.8.0"
|
||||
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.0.tgz#4cdd2eca37d49cda206b66e26204818dba77884a"
|
||||
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:
|
||||
version "1.0.2"
|
||||
@@ -4216,10 +4290,10 @@ css-tree@1.0.0-alpha.37:
|
||||
mdn-data "2.0.4"
|
||||
source-map "^0.6.1"
|
||||
|
||||
css-tree@^1.0.0, css-tree@^1.0.0-alpha.28:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.1.tgz#30b8c0161d9fb4e9e2141d762589b6ec2faebd2e"
|
||||
integrity sha512-NVN42M2fjszcUNpDbdkvutgQSlFYsr1z7kqeuCagHnNLBfYor6uP1WL1KrkmdYZ5Y1vTBCIOI/C/+8T98fJ71w==
|
||||
css-tree@^1.0.0-alpha.28, css-tree@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5"
|
||||
integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==
|
||||
dependencies:
|
||||
mdn-data "2.0.14"
|
||||
source-map "^0.6.1"
|
||||
@@ -4337,11 +4411,11 @@ cssnano@^4.1.10:
|
||||
postcss "^7.0.0"
|
||||
|
||||
csso@^4.0.2:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/csso/-/csso-4.1.1.tgz#e0cb02d6eb3af1df719222048e4359efd662af13"
|
||||
integrity sha512-Rvq+e1e0TFB8E8X+8MQjHSY6vtol45s5gxtLI/018UsAn2IBMmwNEZRM/h+HVnAJRHjasLIKKUO3uvoMM28LvA==
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
|
||||
integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
|
||||
dependencies:
|
||||
css-tree "^1.0.0"
|
||||
css-tree "^1.1.2"
|
||||
|
||||
cssom@^0.4.4:
|
||||
version "0.4.4"
|
||||
@@ -4738,9 +4812,9 @@ ejs@^2.6.1:
|
||||
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
|
||||
|
||||
electron-to-chromium@^1.3.591:
|
||||
version "1.3.607"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.607.tgz#1bff13f1cf89f2fee0d244b8c64a7138f80f3a3b"
|
||||
integrity sha512-h2SYNaBnlplGS0YyXl8oJWokfcNxVjJANQfMCsQefG6OSuAuNIeW+A8yGT/ci+xRoBb3k2zq1FrOvkgoKBol8g==
|
||||
version "1.3.610"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.610.tgz#1254eb394acd220a836ea1f203f8cded4e487052"
|
||||
integrity sha512-eFDC+yVQpEhtlapk4CYDPfV9ajF9cEof5TBcO49L1ETO+aYogrKWDmYpZyxBScMNe8Bo/gJamH4amQ4yyvXg4g==
|
||||
|
||||
emittery@^0.7.1:
|
||||
version "0.7.2"
|
||||
@@ -4830,7 +4904,7 @@ error-stack-parser@^2.0.6:
|
||||
dependencies:
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c"
|
||||
integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==
|
||||
@@ -5456,7 +5530,7 @@ finalhandler@~1.1.2:
|
||||
statuses "~1.5.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"
|
||||
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
|
||||
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"
|
||||
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:
|
||||
version "1.0.0"
|
||||
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"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
||||
|
||||
get-intrinsic@^1.0.0:
|
||||
get-intrinsic@^1.0.0, get-intrinsic@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be"
|
||||
integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==
|
||||
@@ -6014,6 +6093,11 @@ history@^4.9.0:
|
||||
tiny-warning "^1.0.0"
|
||||
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:
|
||||
version "3.3.2"
|
||||
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:
|
||||
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:
|
||||
version "0.1.4"
|
||||
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"
|
||||
|
||||
is-core-module@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946"
|
||||
integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
|
||||
integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
|
||||
dependencies:
|
||||
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"
|
||||
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:
|
||||
version "2.0.0"
|
||||
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"
|
||||
integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=
|
||||
|
||||
joi-extract-type@^15.0.8:
|
||||
version "15.0.8"
|
||||
resolved "https://registry.yarnpkg.com/joi-extract-type/-/joi-extract-type-15.0.8.tgz#29b42d79717b8fec6841b2bef76f97542e58e687"
|
||||
integrity sha512-Or97aW6QN6YJq0B+x/vYs65+nmcPvYDE7xhlwRl7yHzY+7Z8pVaj0zxjdJlXmIA9zRcbbYQKCGvW+I4g0kUHgA==
|
||||
joi-extract-type@15.0.2:
|
||||
version "15.0.2"
|
||||
resolved "https://registry.yarnpkg.com/joi-extract-type/-/joi-extract-type-15.0.2.tgz#27cd7fd2e36aa3a8ccf184c320436bf7bff959fe"
|
||||
integrity sha512-oSAP6kw6pP7KO9zO1j/0LgoR5Zbcd5RY1dYIZjfsvbLZbwPYlsuO4Z1ztvYJRTQQUT2v/Dox7YoqQeNqUmTWQg==
|
||||
dependencies:
|
||||
"@hapi/joi" "~15"
|
||||
"@types/hapi__joi" "~15"
|
||||
|
||||
joi@^17.3.0:
|
||||
version "17.3.0"
|
||||
resolved "https://registry.yarnpkg.com/joi/-/joi-17.3.0.tgz#f1be4a6ce29bc1716665819ac361dfa139fff5d2"
|
||||
integrity sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg==
|
||||
joi@^14.3.1:
|
||||
version "14.3.1"
|
||||
resolved "https://registry.yarnpkg.com/joi/-/joi-14.3.1.tgz#164a262ec0b855466e0c35eea2a885ae8b6c703c"
|
||||
integrity sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ==
|
||||
dependencies:
|
||||
"@hapi/hoek" "^9.0.0"
|
||||
"@hapi/topo" "^5.0.0"
|
||||
"@sideway/address" "^4.1.0"
|
||||
"@sideway/formula" "^3.0.0"
|
||||
"@sideway/pinpoint" "^2.0.0"
|
||||
hoek "6.x.x"
|
||||
isemail "3.x.x"
|
||||
topo "3.x.x"
|
||||
|
||||
joycon@^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==
|
||||
|
||||
loglevel@^1.6.2:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0"
|
||||
integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==
|
||||
version "1.7.1"
|
||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
|
||||
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:
|
||||
version "1.4.0"
|
||||
@@ -7698,7 +7794,7 @@ make-dir@^2.0.0, make-dir@^2.1.0:
|
||||
pify "^4.0.1"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
|
||||
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==
|
||||
|
||||
mongoose@^5.8.9:
|
||||
version "5.10.15"
|
||||
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.10.15.tgz#5e559467890e0883d2a1ff0470a7467a1b47e52d"
|
||||
integrity sha512-3QUWCpMRdFCPIBZkjG/B2OkfMY2WLkR+hv335o4T2mn3ta9kx8qVvXeUDojp3OHMxBZVUyCA+hDyyP4/aKmHuA==
|
||||
version "5.10.17"
|
||||
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-5.10.17.tgz#8754cdaf0dc7964d512ed1889546528fb42e9eb8"
|
||||
integrity sha512-B7kcEaXbgdTQiloKfr9qQMdo5WOrTKEqIoWY9RWiMMAvbn+8n/vBjBKIH9wc/U+8Y4SIvfRf6kenfWbjLVe2YA==
|
||||
dependencies:
|
||||
bson "^1.1.4"
|
||||
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"
|
||||
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:
|
||||
version "1.7.3"
|
||||
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==
|
||||
|
||||
object-is@^1.0.1:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81"
|
||||
integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068"
|
||||
integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==
|
||||
dependencies:
|
||||
call-bind "^1.0.0"
|
||||
define-properties "^1.1.3"
|
||||
es-abstract "^1.18.0-next.1"
|
||||
|
||||
object-keys@^1.0.12, object-keys@^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.entries@^1.1.1, object.entries@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add"
|
||||
integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6"
|
||||
integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==
|
||||
dependencies:
|
||||
call-bind "^1.0.0"
|
||||
define-properties "^1.1.3"
|
||||
es-abstract "^1.17.5"
|
||||
es-abstract "^1.18.0-next.1"
|
||||
has "^1.0.3"
|
||||
|
||||
object.fromentries@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9"
|
||||
integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072"
|
||||
integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==
|
||||
dependencies:
|
||||
call-bind "^1.0.0"
|
||||
define-properties "^1.1.3"
|
||||
es-abstract "^1.17.0-next.1"
|
||||
function-bind "^1.1.1"
|
||||
es-abstract "^1.18.0-next.1"
|
||||
has "^1.0.3"
|
||||
|
||||
object.getownpropertydescriptors@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
|
||||
integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
|
||||
object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544"
|
||||
integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==
|
||||
dependencies:
|
||||
call-bind "^1.0.0"
|
||||
define-properties "^1.1.3"
|
||||
es-abstract "^1.17.0-next.1"
|
||||
es-abstract "^1.18.0-next.1"
|
||||
|
||||
object.pick@^1.3.0:
|
||||
version "1.3.0"
|
||||
@@ -8518,13 +8624,13 @@ object.pick@^1.3.0:
|
||||
isobject "^3.0.1"
|
||||
|
||||
object.values@^1.1.0, object.values@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"
|
||||
integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731"
|
||||
integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==
|
||||
dependencies:
|
||||
call-bind "^1.0.0"
|
||||
define-properties "^1.1.3"
|
||||
es-abstract "^1.17.0-next.1"
|
||||
function-bind "^1.1.1"
|
||||
es-abstract "^1.18.0-next.1"
|
||||
has "^1.0.3"
|
||||
|
||||
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-limit@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe"
|
||||
integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
||||
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
|
||||
dependencies:
|
||||
p-try "^2.0.0"
|
||||
yocto-queue "^0.1.0"
|
||||
|
||||
p-locate@^2.0.0:
|
||||
version "2.0.0"
|
||||
@@ -8731,6 +8837,11 @@ parse-json@^5.0.0:
|
||||
json-parse-even-better-errors "^2.3.0"
|
||||
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:
|
||||
version "5.1.1"
|
||||
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"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
||||
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
||||
@@ -10744,7 +10855,7 @@ semver-diff@^2.0.0:
|
||||
dependencies:
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
||||
@@ -10932,6 +11043,11 @@ sisteransi@^1.0.5:
|
||||
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
|
||||
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:
|
||||
version "3.0.0"
|
||||
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"
|
||||
integrity sha512-bjzn0C0RWoffnNdTzNi7rNDhs1Zlwk2tRXgk8EiHKAOX1Mag3d6T0Y5zNa7l9CJ+EoUne/0UHdwS8tMbkh9zDg==
|
||||
|
||||
tapable@^2.0.0:
|
||||
tapable@^2.0.0, tapable@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.1.1.tgz#b01cc1902d42a7bb30514e320ce21c456f72fd3f"
|
||||
integrity sha512-Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ==
|
||||
@@ -11633,9 +11749,9 @@ terser@^4.6.3:
|
||||
source-map-support "~0.5.12"
|
||||
|
||||
terser@^5.3.4, terser@^5.3.8:
|
||||
version "5.5.0"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.0.tgz#1406fcb4d4bc517add3b22a9694284c040e33448"
|
||||
integrity sha512-eopt1Gf7/AQyPhpygdKePTzaet31TvQxXvrf7xYUvD/d8qkCJm4SKPDzu+GHK5ZaYTn8rvttfqaZc3swK21e5g==
|
||||
version "5.5.1"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289"
|
||||
integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==
|
||||
dependencies:
|
||||
commander "^2.20.0"
|
||||
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"
|
||||
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:
|
||||
version "3.1.0"
|
||||
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"
|
||||
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:
|
||||
version "3.0.4"
|
||||
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"
|
||||
|
||||
webpack@^5.1.0, webpack@^5.6.0:
|
||||
version "5.6.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.6.0.tgz#282d10434c403b070ed91d459b385e873b51a07d"
|
||||
integrity sha512-SIeFuBhuheKElRbd84O35UhKc0nxlgSwtzm2ksZ0BVhRJqxVJxEguT/pYhfiR0le/pxTa1VsCp7EOYyTsa6XOA==
|
||||
version "5.8.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.8.0.tgz#65f00a181708279ff982c2d7338e1dd5505364c4"
|
||||
integrity sha512-X2yosPiHip3L0TE+ylruzrOqSgEgsdGyBOGFWKYChcwlKChaw9VodZIUovG1oo7s0ss6e3ZxBMn9tXR+nkPThA==
|
||||
dependencies:
|
||||
"@types/eslint-scope" "^3.7.0"
|
||||
"@types/estree" "^0.0.45"
|
||||
@@ -12452,7 +12582,7 @@ webpack@^5.1.0, webpack@^5.6.0:
|
||||
neo-async "^2.6.2"
|
||||
pkg-dir "^4.2.0"
|
||||
schema-utils "^3.0.0"
|
||||
tapable "^2.0.0"
|
||||
tapable "^2.1.1"
|
||||
terser-webpack-plugin "^5.0.3"
|
||||
watchpack "^2.0.0"
|
||||
webpack-sources "^2.1.1"
|
||||
@@ -12552,6 +12682,15 @@ wrap-ansi@^6.2.0:
|
||||
string-width "^4.1.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:
|
||||
version "1.0.2"
|
||||
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"
|
||||
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:
|
||||
version "2.1.2"
|
||||
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"
|
||||
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"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
|
||||
integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
|
||||
@@ -12692,6 +12841,19 @@ yargs@^13.3.2:
|
||||
y18n "^4.0.0"
|
||||
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:
|
||||
version "2.10.0"
|
||||
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
|
||||
@@ -12699,3 +12861,8 @@ yauzl@^2.10.0:
|
||||
dependencies:
|
||||
buffer-crc32 "~0.2.3"
|
||||
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==
|
||||
|
||||
Reference in New Issue
Block a user