mirror of
https://github.com/verdaccio/verdaccio.git
synced 2025-02-17 03:19:36 +01:00
fix: disable info registry section with pkg manager config (#2298)
This commit is contained in:
parent
73d34bf9c4
commit
8ca5fe6d26
@ -1,6 +0,0 @@
|
||||
module.exports = {
|
||||
extend: require('@htmllinter/basic-config'),
|
||||
rules: {
|
||||
'long-line-content': ['on', { maxLen: 120 }],
|
||||
},
|
||||
};
|
@ -15,6 +15,8 @@
|
||||
"header": {
|
||||
"documentation": "Documentation",
|
||||
"registry-info": "Registry Information",
|
||||
"registry-info-link": "Learn more",
|
||||
"registry-no-conf": "No configurations available",
|
||||
"greetings": "Hi "
|
||||
},
|
||||
"search": {
|
||||
|
@ -21,9 +21,7 @@
|
||||
"@emotion/jest": "^11.3.0",
|
||||
"@emotion/styled": "10.0.27",
|
||||
"@emotion/styled-base": "^10.0.31",
|
||||
"@htmllinter/basic-config": "^0.5.1",
|
||||
"@htmllinter/core": "^0.5.1",
|
||||
"@material-ui/core": "4.11.2",
|
||||
"@material-ui/core": "4.11.4",
|
||||
"@material-ui/icons": "4.11.2",
|
||||
"@material-ui/styles": "^4.11.4",
|
||||
"@testing-library/dom": "7.31.2",
|
||||
@ -135,7 +133,6 @@
|
||||
"test:size": "bundlesize",
|
||||
"lint": "pnpm lint:js && pnpm lint:css",
|
||||
"lint:css": "yarn stylelint \"src/**/styles.ts\"",
|
||||
"lint:html": "yarn htmllinter src/template/index.html",
|
||||
"verdaccio:server": "node tools/verdaccio.js",
|
||||
"build": "webpack --config tools/webpack.prod.config.babel.js",
|
||||
"build:stats": "webpack --config tools/webpack.prod.config.babel.js --json > stats.json",
|
||||
|
@ -1,6 +1,6 @@
|
||||
import React from 'react';
|
||||
|
||||
import { render, cleanup, fireEvent } from 'verdaccio-ui/utils/test-react-testing-library';
|
||||
import { screen, render, cleanup } from 'verdaccio-ui/utils/test-react-testing-library';
|
||||
|
||||
import RegistryInfoContent from './RegistryInfoContent';
|
||||
|
||||
@ -10,27 +10,19 @@ describe('<RegistryInfoContent /> component', () => {
|
||||
});
|
||||
|
||||
test('should load the component with no data', () => {
|
||||
const { getByTestId } = render(<RegistryInfoContent registryUrl={''} scope={''} />);
|
||||
const unorderedListOfTodos = getByTestId('tabs-el');
|
||||
expect(unorderedListOfTodos.children.length).toBe(1);
|
||||
render(<RegistryInfoContent registryUrl={''} scope={''} />);
|
||||
expect(screen.getByText('No configurations available')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
test('should load the appropiate tab content when the tab is clicked', () => {
|
||||
const props = { registryUrl: 'http://localhost:4872', scope: '@' };
|
||||
const pnpmTabTextContent = `pnpm adduser --registry ${props.registryUrl}`;
|
||||
render(<RegistryInfoContent registryUrl={props.registryUrl} scope={props.scope} />);
|
||||
|
||||
// Render the component.
|
||||
const { container, getByTestId } = render(
|
||||
<RegistryInfoContent registryUrl={props.registryUrl} scope={props.scope} />
|
||||
);
|
||||
|
||||
// Assert the text content for pnpm tab is not present intially
|
||||
expect(container.textContent).not.toContain(pnpmTabTextContent);
|
||||
|
||||
const pnpmTab = getByTestId('pnpm-tab');
|
||||
fireEvent.click(pnpmTab);
|
||||
|
||||
// Assert the text content is correct after clicking on the tab.
|
||||
expect(container.textContent).toContain(pnpmTabTextContent);
|
||||
screen.debug();
|
||||
expect(screen.getByText('pnpm set @:registry http://localhost:4872')).toBeInTheDocument();
|
||||
expect(screen.getByText('pnpm adduser --registry http://localhost:4872')).toBeInTheDocument();
|
||||
expect(
|
||||
screen.getByText('pnpm profile set password --registry http://localhost:4872')
|
||||
).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
@ -1,9 +1,17 @@
|
||||
import React, { useState } from 'react';
|
||||
import styled from '@emotion/styled';
|
||||
import Accordion from '@material-ui/core/Accordion';
|
||||
import AccordionDetails from '@material-ui/core/AccordionDetails';
|
||||
import AccordionSummary from '@material-ui/core/AccordionSummary';
|
||||
import Box from '@material-ui/core/Box';
|
||||
import Link from '@material-ui/core/Link';
|
||||
import { makeStyles } from '@material-ui/core/styles';
|
||||
import Typography from '@material-ui/core/Typography';
|
||||
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
|
||||
import React, { FC } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
import CopyToClipBoard from 'verdaccio-ui/components/CopyToClipBoard';
|
||||
import { default as Typography } from 'verdaccio-ui/components/Heading';
|
||||
import Tab from 'verdaccio-ui/components/Tab';
|
||||
import Tabs from 'verdaccio-ui/components/Tabs';
|
||||
import { useConfig } from 'verdaccio-ui/providers/config';
|
||||
import {
|
||||
getCLISetRegistry,
|
||||
getCLIChangePassword,
|
||||
@ -11,81 +19,137 @@ import {
|
||||
} from 'verdaccio-ui/utils/cli-utils';
|
||||
import { NODE_MANAGER } from 'verdaccio-ui/utils/constants';
|
||||
|
||||
import { CommandContainer } from './styles';
|
||||
import { Props, State } from './types';
|
||||
const renderNpmTab = (scope: string, registryUrl: string): JSX.Element => {
|
||||
return (
|
||||
<Box display="flex" flexDirection="column" p={1}>
|
||||
<CopyToClipBoard
|
||||
text={getCLISetConfigRegistry(`${NODE_MANAGER.npm} set`, scope, registryUrl)}
|
||||
/>
|
||||
<CopyToClipBoard text={getCLISetRegistry(`${NODE_MANAGER.npm} adduser`, registryUrl)} />
|
||||
<CopyToClipBoard text={getCLIChangePassword(NODE_MANAGER.npm, registryUrl)} />
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
||||
const RegistryInfoContent: React.FC<Props> = (props) => {
|
||||
const [tabPosition, setTabPosition] = useState<State['tabPosition']>(0);
|
||||
const handleChange = (event: React.ChangeEvent<{}>, tabPosition: number): void => {
|
||||
event.preventDefault();
|
||||
setTabPosition(tabPosition);
|
||||
};
|
||||
const renderPnpmTab = (scope: string, registryUrl: string): JSX.Element => {
|
||||
return (
|
||||
<Box display="flex" flexDirection="column" p={1}>
|
||||
<CopyToClipBoard
|
||||
text={getCLISetConfigRegistry(`${NODE_MANAGER.pnpm} set`, scope, registryUrl)}
|
||||
/>
|
||||
<CopyToClipBoard text={getCLISetRegistry(`${NODE_MANAGER.pnpm} adduser`, registryUrl)} />
|
||||
<CopyToClipBoard text={getCLIChangePassword(NODE_MANAGER.pnpm, registryUrl)} />
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
||||
const renderNpmTab = (scope: string, registryUrl: string): JSX.Element => {
|
||||
return (
|
||||
<>
|
||||
<CopyToClipBoard
|
||||
text={getCLISetConfigRegistry(`${NODE_MANAGER.npm} set`, scope, registryUrl)}
|
||||
/>
|
||||
<CopyToClipBoard text={getCLISetRegistry(`${NODE_MANAGER.npm} adduser`, registryUrl)} />
|
||||
<CopyToClipBoard text={getCLIChangePassword(NODE_MANAGER.npm, registryUrl)} />
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
const renderPnpmTab = (scope: string, registryUrl: string): JSX.Element => {
|
||||
return (
|
||||
<>
|
||||
<CopyToClipBoard
|
||||
text={getCLISetConfigRegistry(`${NODE_MANAGER.pnpm} set`, scope, registryUrl)}
|
||||
/>
|
||||
<CopyToClipBoard text={getCLISetRegistry(`${NODE_MANAGER.pnpm} adduser`, registryUrl)} />
|
||||
<CopyToClipBoard text={getCLIChangePassword(NODE_MANAGER.pnpm, registryUrl)} />
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
const renderYarnTab = (scope: string, registryUrl: string): JSX.Element => {
|
||||
return (
|
||||
const renderYarnTab = (scope: string, registryUrl: string): JSX.Element => {
|
||||
return (
|
||||
<Box display="flex" flexDirection="column" p={1}>
|
||||
<CopyToClipBoard
|
||||
text={getCLISetConfigRegistry(`${NODE_MANAGER.yarn} config set`, scope, registryUrl)}
|
||||
/>
|
||||
);
|
||||
};
|
||||
</Box>
|
||||
);
|
||||
};
|
||||
|
||||
const renderTabs = (): JSX.Element => {
|
||||
const { scope, registryUrl } = props;
|
||||
const useStyles = makeStyles((theme) => ({
|
||||
root: {
|
||||
width: '100%',
|
||||
},
|
||||
heading: {
|
||||
fontSize: theme.typography.pxToRem(15),
|
||||
fontWeight: theme.typography.fontWeightBold,
|
||||
},
|
||||
}));
|
||||
|
||||
return (
|
||||
<>
|
||||
<Tabs
|
||||
color={'primary'}
|
||||
data-testid={'tabs-el'}
|
||||
indicatorColor={'primary'}
|
||||
onChange={handleChange}
|
||||
value={tabPosition}
|
||||
variant="fullWidth">
|
||||
<Tab data-testid={'npm-tab'} label={NODE_MANAGER.npm} />
|
||||
<Tab data-testid={'pnpm-tab'} label={NODE_MANAGER.pnpm} />
|
||||
<Tab data-testid={'yarn-tab'} label={NODE_MANAGER.yarn} />
|
||||
</Tabs>
|
||||
{tabPosition === 0 && <TabContainer>{renderNpmTab(scope, registryUrl)}</TabContainer>}
|
||||
{tabPosition === 1 && <TabContainer>{renderPnpmTab(scope, registryUrl)}</TabContainer>}
|
||||
{tabPosition === 2 && <TabContainer>{renderYarnTab(scope, registryUrl)}</TabContainer>}
|
||||
</>
|
||||
);
|
||||
};
|
||||
export const AccordionContainer = styled('div')({
|
||||
padding: 30,
|
||||
paddingLeft: 0,
|
||||
paddingRight: 0,
|
||||
});
|
||||
|
||||
/* eslint react/prop-types:0 */
|
||||
const TabContainer: React.FC = ({ children }): JSX.Element => {
|
||||
return (
|
||||
<CommandContainer data-testid={'tab-content'}>
|
||||
<Typography>{children}</Typography>
|
||||
</CommandContainer>
|
||||
);
|
||||
};
|
||||
export const CommandContainer = styled('div')({
|
||||
padding: 5,
|
||||
});
|
||||
|
||||
return <div>{renderTabs()}</div>;
|
||||
export const LinkContainer = styled('div')({
|
||||
margin: 10,
|
||||
marginLeft: 0,
|
||||
});
|
||||
|
||||
export type Props = {
|
||||
registryUrl: string;
|
||||
scope: string;
|
||||
};
|
||||
|
||||
const RegistryInfoContent: FC<Props> = ({ scope, registryUrl }) => {
|
||||
const { t } = useTranslation();
|
||||
const classes = useStyles();
|
||||
const { configOptions } = useConfig();
|
||||
|
||||
const hasNpm = configOptions?.pkgManagers?.includes('npm');
|
||||
const hasYarn = configOptions?.pkgManagers?.includes('yarn');
|
||||
const hasPnpm = configOptions?.pkgManagers?.includes('pnpm');
|
||||
const hasPkgManagers = hasNpm | hasPnpm | hasYarn;
|
||||
if (!hasPkgManagers || !scope || !registryUrl) {
|
||||
return <AccordionContainer>{t('header.registry-no-conf')}</AccordionContainer>;
|
||||
}
|
||||
|
||||
return hasPkgManagers ? (
|
||||
<AccordionContainer>
|
||||
{hasNpm && (
|
||||
<Accordion>
|
||||
<AccordionSummary
|
||||
aria-controls="panel1a-content"
|
||||
expandIcon={<ExpandMoreIcon />}
|
||||
id="panel1a-header">
|
||||
<Typography className={classes.heading}>{'npm'}</Typography>
|
||||
</AccordionSummary>
|
||||
<AccordionDetails>
|
||||
<CommandContainer data-testid={'tab-content'}>
|
||||
{renderNpmTab(scope, registryUrl)}
|
||||
</CommandContainer>
|
||||
</AccordionDetails>
|
||||
</Accordion>
|
||||
)}
|
||||
{hasYarn && (
|
||||
<Accordion>
|
||||
<AccordionSummary
|
||||
aria-controls="panel2a-content"
|
||||
expandIcon={<ExpandMoreIcon />}
|
||||
id="panel2a-header">
|
||||
<Typography className={classes.heading}>{'yarn'}</Typography>
|
||||
</AccordionSummary>
|
||||
<AccordionDetails>
|
||||
<CommandContainer data-testid={'tab-content'}>
|
||||
{renderYarnTab(scope, registryUrl)}
|
||||
</CommandContainer>
|
||||
</AccordionDetails>
|
||||
</Accordion>
|
||||
)}
|
||||
{hasPnpm && (
|
||||
<Accordion>
|
||||
<AccordionSummary
|
||||
aria-controls="panel3a-content"
|
||||
expandIcon={<ExpandMoreIcon />}
|
||||
id="panel3a-header">
|
||||
{'pnpm'}
|
||||
</AccordionSummary>
|
||||
<AccordionDetails>
|
||||
<CommandContainer data-testid={'tab-content'}>
|
||||
{renderPnpmTab(scope, registryUrl)}
|
||||
</CommandContainer>
|
||||
</AccordionDetails>
|
||||
</Accordion>
|
||||
)}
|
||||
<LinkContainer>
|
||||
<Link href="https://verdaccio.org/docs/en/cli-registry" target="_blank">
|
||||
<Typography>{t('header.registry-info-link')}</Typography>
|
||||
</Link>
|
||||
</LinkContainer>
|
||||
</AccordionContainer>
|
||||
) : null;
|
||||
};
|
||||
|
||||
export default RegistryInfoContent;
|
||||
|
@ -1,5 +0,0 @@
|
||||
import styled from '@emotion/styled';
|
||||
|
||||
export const CommandContainer = styled('div')({
|
||||
paddingTop: 20,
|
||||
});
|
@ -1,8 +0,0 @@
|
||||
export interface Props {
|
||||
scope: string;
|
||||
registryUrl: string;
|
||||
}
|
||||
|
||||
export interface State {
|
||||
tabPosition: number;
|
||||
}
|
@ -28,8 +28,7 @@ export default function renderHTML(config, manifest, manifestFiles, req, res) {
|
||||
const title = config?.web?.title ?? WEB_TITLE;
|
||||
const login = hasLogin(config);
|
||||
const scope = config?.web?.scope ?? '';
|
||||
// FIXME: logo URI is incomplete
|
||||
let logoURI = config?.web?.logo ?? '';
|
||||
const logoURI = config?.web?.logo ?? '';
|
||||
const pkgManagers = config?.web?.pkgManagers ?? ['yarn', 'pnpm', 'npm'];
|
||||
const version = pkgJSON.version;
|
||||
const primaryColor = validatePrimaryColor(config?.web?.primary_color) ?? '#4b5e40';
|
||||
|
115
pnpm-lock.yaml
generated
115
pnpm-lock.yaml
generated
@ -744,9 +744,7 @@ importers:
|
||||
'@emotion/jest': ^11.3.0
|
||||
'@emotion/styled': 10.0.27
|
||||
'@emotion/styled-base': ^10.0.31
|
||||
'@htmllinter/basic-config': ^0.5.1
|
||||
'@htmllinter/core': ^0.5.1
|
||||
'@material-ui/core': 4.11.2
|
||||
'@material-ui/core': 4.11.4
|
||||
'@material-ui/icons': 4.11.2
|
||||
'@material-ui/styles': ^4.11.4
|
||||
'@testing-library/dom': 7.31.2
|
||||
@ -820,10 +818,8 @@ importers:
|
||||
'@emotion/jest': 11.3.0
|
||||
'@emotion/styled': 10.0.27_33bb31e1d857102242df3642b32eda18
|
||||
'@emotion/styled-base': 10.0.31_33bb31e1d857102242df3642b32eda18
|
||||
'@htmllinter/basic-config': 0.5.1
|
||||
'@htmllinter/core': 0.5.1
|
||||
'@material-ui/core': 4.11.2_react-dom@17.0.2+react@17.0.2
|
||||
'@material-ui/icons': 4.11.2_00fcc96c46389b3398eebc2d751ab6a0
|
||||
'@material-ui/core': 4.11.4_react-dom@17.0.2+react@17.0.2
|
||||
'@material-ui/icons': 4.11.2_f543984b3e6c18c2e2e104a9ecbda934
|
||||
'@material-ui/styles': 4.11.4_react-dom@17.0.2+react@17.0.2
|
||||
'@testing-library/dom': 7.31.2
|
||||
'@testing-library/jest-dom': 5.14.1
|
||||
@ -3569,32 +3565,6 @@ packages:
|
||||
'@hapi/hoek': 9.1.0
|
||||
dev: true
|
||||
|
||||
/@htmllinter/basic-config/0.5.1:
|
||||
resolution: {integrity: sha512-IrzjDoQXNL5Db5vS5jUBk2fcYiCLVyeHNRK4ZmMUSoehesfaMLZy755VAn+iVdZyV01KaSYVMKB7rIH1CTm0Ig==}
|
||||
dependencies:
|
||||
'@htmllinter/basic-rules': 0.5.1
|
||||
'@htmllinter/core': 0.5.1
|
||||
dev: true
|
||||
|
||||
/@htmllinter/basic-rules/0.5.1:
|
||||
resolution: {integrity: sha512-bZyGTJkP+e0w+VA+Jk1SEKlGhypRKxXoOSSE42WrTvukMM4/4WNQKgU8QrXOiBOVs0ckKo1/W6nEevtl7PjNyw==}
|
||||
dependencies:
|
||||
'@htmllinter/core': 0.5.1
|
||||
dev: true
|
||||
|
||||
/@htmllinter/core/0.5.1:
|
||||
resolution: {integrity: sha512-OoJMqlQd0w12i1UqKCSBo5ZRjz7P96ODmUjVsMfxCZZKYncDQvwtuhLXp8tSQ4WAcCP1ACLtEtjM+vHv7yxCvA==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
ajv: 6.12.4
|
||||
chalk: 3.0.0
|
||||
glob: 7.1.6
|
||||
posthtml: 0.13.4
|
||||
reshape-parser: 1.0.0
|
||||
strip-ansi: 6.0.0
|
||||
text-table: 0.2.0
|
||||
dev: true
|
||||
|
||||
/@istanbuljs/load-nyc-config/1.1.0:
|
||||
resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
|
||||
engines: {node: '>=8'}
|
||||
@ -3840,8 +3810,8 @@ packages:
|
||||
rimraf: 2.7.1
|
||||
dev: true
|
||||
|
||||
/@material-ui/core/4.11.2_react-dom@17.0.2+react@17.0.2:
|
||||
resolution: {integrity: sha512-/D1+AQQeYX/WhT/FUk78UCRj8ch/RCglsQLYujYTIqPSJlwZHKcvHidNeVhODXeApojeXjkl0tWdk5C9ofwOkQ==}
|
||||
/@material-ui/core/4.11.4_react-dom@17.0.2+react@17.0.2:
|
||||
resolution: {integrity: sha512-oqb+lJ2Dl9HXI9orc6/aN8ZIAMkeThufA5iZELf2LQeBn2NtjVilF5D2w7e9RpntAzDb4jK5DsVhkfOvFY/8fg==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.6 || ^17.0.0
|
||||
@ -3851,9 +3821,9 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.12.5
|
||||
'@babel/runtime': 7.14.5
|
||||
'@material-ui/styles': 4.11.4_react-dom@17.0.2+react@17.0.2
|
||||
'@material-ui/system': 4.11.2_react-dom@17.0.2+react@17.0.2
|
||||
'@material-ui/system': 4.11.3_react-dom@17.0.2+react@17.0.2
|
||||
'@material-ui/types': 5.1.0
|
||||
'@material-ui/utils': 4.11.2_react-dom@17.0.2+react@17.0.2
|
||||
'@types/react-transition-group': 4.4.0
|
||||
@ -3863,11 +3833,11 @@ packages:
|
||||
prop-types: 15.7.2
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
react-is: 16.13.1
|
||||
react-is: 17.0.2
|
||||
react-transition-group: 4.4.1_react-dom@17.0.2+react@17.0.2
|
||||
dev: true
|
||||
|
||||
/@material-ui/icons/4.11.2_00fcc96c46389b3398eebc2d751ab6a0:
|
||||
/@material-ui/icons/4.11.2_f543984b3e6c18c2e2e104a9ecbda934:
|
||||
resolution: {integrity: sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
peerDependencies:
|
||||
@ -3880,7 +3850,7 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.12.5
|
||||
'@material-ui/core': 4.11.2_react-dom@17.0.2+react@17.0.2
|
||||
'@material-ui/core': 4.11.4_react-dom@17.0.2+react@17.0.2
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
dev: true
|
||||
@ -3916,8 +3886,8 @@ packages:
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
dev: true
|
||||
|
||||
/@material-ui/system/4.11.2_react-dom@17.0.2+react@17.0.2:
|
||||
resolution: {integrity: sha512-BELFJEel5E+5DMiZb6XXT3peWRn6UixRvBtKwSxqntmD0+zwbbfCij6jtGwwdJhN1qX/aXrKu10zX31GBaeR7A==}
|
||||
/@material-ui/system/4.11.3_react-dom@17.0.2+react@17.0.2:
|
||||
resolution: {integrity: sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.6 || ^17.0.0
|
||||
@ -3927,7 +3897,7 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.12.5
|
||||
'@babel/runtime': 7.14.5
|
||||
'@material-ui/utils': 4.11.2_react-dom@17.0.2+react@17.0.2
|
||||
csstype: 2.6.13
|
||||
prop-types: 15.7.2
|
||||
@ -3951,11 +3921,11 @@ packages:
|
||||
react: ^16.8.0 || ^17.0.0
|
||||
react-dom: ^16.8.0 || ^17.0.0
|
||||
dependencies:
|
||||
'@babel/runtime': 7.12.5
|
||||
'@babel/runtime': 7.14.5
|
||||
prop-types: 15.7.2
|
||||
react: 17.0.2
|
||||
react-dom: 17.0.2_react@17.0.2
|
||||
react-is: 16.13.1
|
||||
react-is: 17.0.2
|
||||
dev: true
|
||||
|
||||
/@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents:
|
||||
@ -4561,7 +4531,7 @@ packages:
|
||||
/@types/react-transition-group/4.4.0:
|
||||
resolution: {integrity: sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w==}
|
||||
dependencies:
|
||||
'@types/react': 16.9.48
|
||||
'@types/react': 16.14.2
|
||||
dev: true
|
||||
|
||||
/@types/react-virtualized/9.21.10:
|
||||
@ -4578,13 +4548,6 @@ packages:
|
||||
csstype: 3.0.3
|
||||
dev: true
|
||||
|
||||
/@types/react/16.9.48:
|
||||
resolution: {integrity: sha512-4ykBVswgYitPGMXFRxJCHkxJDU2rjfU3/zw67f8+dB7sNdVJXsrwqoYxz/stkAucymnEEbRPFmX7Ce5Mc/kJCw==}
|
||||
dependencies:
|
||||
'@types/prop-types': 15.7.3
|
||||
csstype: 3.0.3
|
||||
dev: true
|
||||
|
||||
/@types/request/2.48.5:
|
||||
resolution: {integrity: sha512-/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ==}
|
||||
dependencies:
|
||||
@ -8120,13 +8083,6 @@ packages:
|
||||
utila: 0.4.0
|
||||
dev: true
|
||||
|
||||
/dom-helpers/5.2.0:
|
||||
resolution: {integrity: sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.11.2
|
||||
csstype: 3.0.3
|
||||
dev: true
|
||||
|
||||
/dom-helpers/5.2.1:
|
||||
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
|
||||
dependencies:
|
||||
@ -9535,7 +9491,7 @@ packages:
|
||||
dependencies:
|
||||
asynckit: 0.4.0
|
||||
combined-stream: 1.0.8
|
||||
mime-types: 2.1.30
|
||||
mime-types: 2.1.31
|
||||
|
||||
/form-data/3.0.0:
|
||||
resolution: {integrity: sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==}
|
||||
@ -13305,7 +13261,6 @@ packages:
|
||||
/mime-db/1.48.0:
|
||||
resolution: {integrity: sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: true
|
||||
|
||||
/mime-types/2.1.27:
|
||||
resolution: {integrity: sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==}
|
||||
@ -13331,7 +13286,6 @@ packages:
|
||||
engines: {node: '>= 0.6'}
|
||||
dependencies:
|
||||
mime-db: 1.48.0
|
||||
dev: true
|
||||
|
||||
/mime/1.6.0:
|
||||
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
|
||||
@ -14390,10 +14344,6 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/parse5/4.0.0:
|
||||
resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==}
|
||||
dev: true
|
||||
|
||||
/parse5/5.1.0:
|
||||
resolution: {integrity: sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==}
|
||||
|
||||
@ -15155,26 +15105,6 @@ packages:
|
||||
source-map: 0.6.1
|
||||
dev: true
|
||||
|
||||
/posthtml-parser/0.5.3:
|
||||
resolution: {integrity: sha512-uHosRn0y+1wbnlYKrqMjBPoo/kK5LPYImLtiETszNFYfFwAD3cQdD1R2E13Mh5icBxkHj+yKtlIHozCsmVWD/Q==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
dependencies:
|
||||
htmlparser2: 3.10.1
|
||||
dev: true
|
||||
|
||||
/posthtml-render/1.4.0:
|
||||
resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==}
|
||||
engines: {node: '>=10'}
|
||||
dev: true
|
||||
|
||||
/posthtml/0.13.4:
|
||||
resolution: {integrity: sha512-i2oTo/+dwXGC6zaAQSF6WZEQSbEqu10hsvg01DWzGAfZmy31Iiy9ktPh9nnXDfZiYytjxTIvxoK4TI0uk4QWpw==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
dependencies:
|
||||
posthtml-parser: 0.5.3
|
||||
posthtml-render: 1.4.0
|
||||
dev: true
|
||||
|
||||
/prebuild-install/5.3.5:
|
||||
resolution: {integrity: sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==}
|
||||
engines: {node: '>=6'}
|
||||
@ -15640,8 +15570,8 @@ packages:
|
||||
react: '>=16.6.0'
|
||||
react-dom: '>=16.6.0'
|
||||
dependencies:
|
||||
'@babel/runtime': 7.11.2
|
||||
dom-helpers: 5.2.0
|
||||
'@babel/runtime': 7.14.5
|
||||
dom-helpers: 5.2.1
|
||||
loose-envify: 1.4.0
|
||||
prop-types: 15.7.2
|
||||
react: 17.0.2
|
||||
@ -16102,13 +16032,6 @@ packages:
|
||||
resolution: {integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=}
|
||||
dev: true
|
||||
|
||||
/reshape-parser/1.0.0:
|
||||
resolution: {integrity: sha1-RtIE+yD2i8hwvsZwljBSGcAXOHQ=}
|
||||
engines: {node: '>= 6.0.0'}
|
||||
dependencies:
|
||||
parse5: 4.0.0
|
||||
dev: true
|
||||
|
||||
/resolve-cwd/2.0.0:
|
||||
resolution: {integrity: sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=}
|
||||
engines: {node: '>=4'}
|
||||
|
Loading…
Reference in New Issue
Block a user