From 8ca5fe6d267038aa43ac943a076daabdca033376 Mon Sep 17 00:00:00 2001 From: Juan Picado Date: Sun, 13 Jun 2021 16:23:48 +0200 Subject: [PATCH] fix: disable info registry section with pkg manager config (#2298) --- .../plugins/ui-theme/htmllinter.config.js | 6 - .../ui-theme/i18n/translations/en-US.json | 2 + packages/plugins/ui-theme/package.json | 5 +- .../RegistryInfoContent.test.tsx | 30 +-- .../RegistryInfoContent.tsx | 204 ++++++++++++------ .../App/Header/RegistryInfoContent/styles.ts | 5 - .../App/Header/RegistryInfoContent/types.ts | 8 - packages/web/src/renderHTML.ts | 3 +- pnpm-lock.yaml | 115 ++-------- 9 files changed, 168 insertions(+), 210 deletions(-) delete mode 100644 packages/plugins/ui-theme/htmllinter.config.js delete mode 100644 packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/styles.ts delete mode 100644 packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/types.ts diff --git a/packages/plugins/ui-theme/htmllinter.config.js b/packages/plugins/ui-theme/htmllinter.config.js deleted file mode 100644 index a7b44cf647b8..000000000000 --- a/packages/plugins/ui-theme/htmllinter.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - extend: require('@htmllinter/basic-config'), - rules: { - 'long-line-content': ['on', { maxLen: 120 }], - }, -}; diff --git a/packages/plugins/ui-theme/i18n/translations/en-US.json b/packages/plugins/ui-theme/i18n/translations/en-US.json index f9d41cc00a3e..00de90d54ccf 100644 --- a/packages/plugins/ui-theme/i18n/translations/en-US.json +++ b/packages/plugins/ui-theme/i18n/translations/en-US.json @@ -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": { diff --git a/packages/plugins/ui-theme/package.json b/packages/plugins/ui-theme/package.json index 8328aefb433f..7b0f1834d62d 100644 --- a/packages/plugins/ui-theme/package.json +++ b/packages/plugins/ui-theme/package.json @@ -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", diff --git a/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/RegistryInfoContent.test.tsx b/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/RegistryInfoContent.test.tsx index 5d797b4f7040..d4f75bc07c0c 100644 --- a/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/RegistryInfoContent.test.tsx +++ b/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/RegistryInfoContent.test.tsx @@ -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(' component', () => { }); test('should load the component with no data', () => { - const { getByTestId } = render(); - const unorderedListOfTodos = getByTestId('tabs-el'); - expect(unorderedListOfTodos.children.length).toBe(1); + render(); + 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 the component. - const { container, getByTestId } = render( - - ); - - // 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); + render(); + + 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(); }); }); diff --git a/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/RegistryInfoContent.tsx b/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/RegistryInfoContent.tsx index 04386d40aeaf..ba76269f3629 100644 --- a/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/RegistryInfoContent.tsx +++ b/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/RegistryInfoContent.tsx @@ -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 RegistryInfoContent: React.FC = (props) => { - const [tabPosition, setTabPosition] = useState(0); - const handleChange = (event: React.ChangeEvent<{}>, tabPosition: number): void => { - event.preventDefault(); - setTabPosition(tabPosition); - }; - - const renderNpmTab = (scope: string, registryUrl: string): JSX.Element => { - return ( - <> - - - - - ); - }; +const renderNpmTab = (scope: string, registryUrl: string): JSX.Element => { + return ( + + + + + + ); +}; - const renderPnpmTab = (scope: string, registryUrl: string): JSX.Element => { - return ( - <> - - - - - ); - }; +const renderPnpmTab = (scope: string, registryUrl: string): JSX.Element => { + return ( + + + + + + ); +}; - const renderYarnTab = (scope: string, registryUrl: string): JSX.Element => { - return ( +const renderYarnTab = (scope: string, registryUrl: string): JSX.Element => { + return ( + - ); - }; + + ); +}; + +const useStyles = makeStyles((theme) => ({ + root: { + width: '100%', + }, + heading: { + fontSize: theme.typography.pxToRem(15), + fontWeight: theme.typography.fontWeightBold, + }, +})); + +export const AccordionContainer = styled('div')({ + padding: 30, + paddingLeft: 0, + paddingRight: 0, +}); - const renderTabs = (): JSX.Element => { - const { scope, registryUrl } = props; +export const CommandContainer = styled('div')({ + padding: 5, +}); + +export const LinkContainer = styled('div')({ + margin: 10, + marginLeft: 0, +}); + +export type Props = { + registryUrl: string; + scope: string; +}; - return ( - <> - - - - - - {tabPosition === 0 && {renderNpmTab(scope, registryUrl)}} - {tabPosition === 1 && {renderPnpmTab(scope, registryUrl)}} - {tabPosition === 2 && {renderYarnTab(scope, registryUrl)}} - - ); - }; +const RegistryInfoContent: FC = ({ scope, registryUrl }) => { + const { t } = useTranslation(); + const classes = useStyles(); + const { configOptions } = useConfig(); - /* eslint react/prop-types:0 */ - const TabContainer: React.FC = ({ children }): JSX.Element => { - return ( - - {children} - - ); - }; + 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 {t('header.registry-no-conf')}; + } - return
{renderTabs()}
; + return hasPkgManagers ? ( + + {hasNpm && ( + + } + id="panel1a-header"> + {'npm'} + + + + {renderNpmTab(scope, registryUrl)} + + + + )} + {hasYarn && ( + + } + id="panel2a-header"> + {'yarn'} + + + + {renderYarnTab(scope, registryUrl)} + + + + )} + {hasPnpm && ( + + } + id="panel3a-header"> + {'pnpm'} + + + + {renderPnpmTab(scope, registryUrl)} + + + + )} + + + {t('header.registry-info-link')} + + + + ) : null; }; export default RegistryInfoContent; diff --git a/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/styles.ts b/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/styles.ts deleted file mode 100644 index fbe6f5f9488b..000000000000 --- a/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/styles.ts +++ /dev/null @@ -1,5 +0,0 @@ -import styled from '@emotion/styled'; - -export const CommandContainer = styled('div')({ - paddingTop: 20, -}); diff --git a/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/types.ts b/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/types.ts deleted file mode 100644 index 1c208cbe2ba9..000000000000 --- a/packages/plugins/ui-theme/src/App/Header/RegistryInfoContent/types.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface Props { - scope: string; - registryUrl: string; -} - -export interface State { - tabPosition: number; -} diff --git a/packages/web/src/renderHTML.ts b/packages/web/src/renderHTML.ts index 595e071b1167..b4973dcdb891 100644 --- a/packages/web/src/renderHTML.ts +++ b/packages/web/src/renderHTML.ts @@ -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'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6149b59c9f45..ab28bb8768ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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'}