diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000000..41ae0d5cdf --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx --no lint-staged diff --git a/examples/getstarted/.gitignore b/examples/getstarted/.gitignore index 42f3fcdbd2..78f32f6e55 100644 --- a/examples/getstarted/.gitignore +++ b/examples/getstarted/.gitignore @@ -110,6 +110,7 @@ testApp license.txt exports *.cache +dist build documentation .strapi-updater.json diff --git a/examples/kitchensink-ts/.gitignore b/examples/kitchensink-ts/.gitignore index 8e339ee395..2ed5eafd63 100644 --- a/examples/kitchensink-ts/.gitignore +++ b/examples/kitchensink-ts/.gitignore @@ -110,5 +110,6 @@ coverage license.txt exports *.cache +dist build .strapi-updater.json diff --git a/examples/kitchensink/.gitignore b/examples/kitchensink/.gitignore index 8e339ee395..2ed5eafd63 100644 --- a/examples/kitchensink/.gitignore +++ b/examples/kitchensink/.gitignore @@ -110,5 +110,6 @@ coverage license.txt exports *.cache +dist build .strapi-updater.json diff --git a/package.json b/package.json index 9df48d54c4..f4cdf80e0a 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ ".github/actions/*" ], "scripts": { + "prepare": "husky install", "setup": "yarn && yarn build", "watch": "lerna run --stream watch --no-private", "build": "lerna run --stream build --no-private", @@ -54,11 +55,6 @@ "test:generate-app": "node test/create-test-app.js", "doc:api": "node scripts/open-api/serve.js" }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, "lint-staged": { "*.{js,md,css,scss,yaml,yml}": [ "prettier --write" @@ -84,7 +80,7 @@ "fs-extra": "10.1.0", "get-port": "5.1.1", "glob": "7.2.3", - "husky": "3.1.0", + "husky": "8.0.1", "inquirer": "8.2.4", "istanbul": "~0.4.2", "jest": "29.0.3", @@ -93,7 +89,7 @@ "jest-environment-jsdom": "29.0.3", "jest-watch-typeahead": "2.2.0", "lerna": "5.4.3", - "lint-staged": "10.5.4", + "lint-staged": "13.0.3", "lodash": "4.17.21", "npm-run-all": "4.1.5", "nx": "14.4.2", diff --git a/packages/cli/create-strapi-app/create-strapi-app.js b/packages/cli/create-strapi-app/create-strapi-app.js index 50188fb8b4..7b4a7af926 100644 --- a/packages/cli/create-strapi-app/create-strapi-app.js +++ b/packages/cli/create-strapi-app/create-strapi-app.js @@ -62,6 +62,15 @@ async function initProject(projectName, program) { await checkInstallPath(resolve(projectName)); } + const programFlags = program.options + .reduce((acc, { short, long }) => [...acc, short, long], []) + .filter(Boolean); + + if (program.template && programFlags.includes(program.template)) { + console.error(`${program.template} is not a valid template`); + process.exit(1); + } + const hasDatabaseOptions = databaseOptions.some((opt) => program[opt]); if (program.quickstart && hasDatabaseOptions) { diff --git a/packages/cli/create-strapi-app/package.json b/packages/cli/create-strapi-app/package.json index 6eb32b884c..de75f61af2 100644 --- a/packages/cli/create-strapi-app/package.json +++ b/packages/cli/create-strapi-app/package.json @@ -45,6 +45,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/cli/create-strapi-starter/package.json b/packages/cli/create-strapi-starter/package.json index 3bd532ea6d..1ec9fafdc0 100644 --- a/packages/cli/create-strapi-starter/package.json +++ b/packages/cli/create-strapi-starter/package.json @@ -50,6 +50,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/cli/create-strapi-starter/resources/gitignore b/packages/cli/create-strapi-starter/resources/gitignore index 8e339ee395..2ed5eafd63 100644 --- a/packages/cli/create-strapi-starter/resources/gitignore +++ b/packages/cli/create-strapi-starter/resources/gitignore @@ -110,5 +110,6 @@ coverage license.txt exports *.cache +dist build .strapi-updater.json diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/index.js b/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/index.js index 4798cf2e99..b36b401d9e 100644 --- a/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/index.js +++ b/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/index.js @@ -2,6 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import styled from 'styled-components'; import { Typography } from '@strapi/design-system/Typography'; +import { Tooltip } from '@strapi/design-system/Tooltip'; import Media from './Media'; import MultipleMedias from './MultipleMedias'; import RelationMultiple from './RelationMultiple'; @@ -55,6 +56,15 @@ const CellContent = ({ content, fieldSchema, metadatas, name, queryInfos, rowId return ; + case 'string': + return ( + + + + + + ); + default: return ( diff --git a/packages/core/admin/admin/src/content-manager/components/PreviewWysiwyg/index.js b/packages/core/admin/admin/src/content-manager/components/PreviewWysiwyg/index.js index d028f979dc..42fc3845bb 100644 --- a/packages/core/admin/admin/src/content-manager/components/PreviewWysiwyg/index.js +++ b/packages/core/admin/admin/src/content-manager/components/PreviewWysiwyg/index.js @@ -13,7 +13,7 @@ import sanitizeHtml from './utils/satinizeHtml'; import Wrapper from './Wrapper'; const PreviewWysiwyg = ({ data }) => { - const html = useMemo(() => sanitizeHtml(md.render(data || '')), [data]); + const html = useMemo(() => sanitizeHtml(md.render(data.replaceAll('\\n', '\n') || '')), [data]); return ( diff --git a/packages/core/admin/admin/src/content-manager/components/SelectOne/SingleValue.js b/packages/core/admin/admin/src/content-manager/components/SelectOne/SingleValue.js index 0ed34ecb89..f22e5b766c 100644 --- a/packages/core/admin/admin/src/content-manager/components/SelectOne/SingleValue.js +++ b/packages/core/admin/admin/src/content-manager/components/SelectOne/SingleValue.js @@ -9,6 +9,7 @@ import { Typography } from '@strapi/design-system/Typography'; import get from 'lodash/get'; import has from 'lodash/has'; import isEmpty from 'lodash/isEmpty'; +import { Tooltip } from '@strapi/design-system/Tooltip'; import { getTrad } from '../../utils'; const StyledBullet = styled.div` @@ -43,7 +44,9 @@ const SingleValue = (props) => { - {props.data.label ?? '-'} + + {props.data.label ?? '-'} + ); diff --git a/packages/core/admin/admin/src/pages/App/index.js b/packages/core/admin/admin/src/pages/App/index.js index f4b69a7694..c353b68d04 100644 --- a/packages/core/admin/admin/src/pages/App/index.js +++ b/packages/core/admin/admin/src/pages/App/index.js @@ -91,7 +91,7 @@ function App() { try { const deviceId = await getUID(); - fetch('https://analytics.strapi.io/track', { + await fetch('https://analytics.strapi.io/track', { method: 'POST', body: JSON.stringify({ event: 'didInitializeAdministration', diff --git a/packages/core/admin/admin/src/pages/HomePage/SocialLinks.js b/packages/core/admin/admin/src/pages/HomePage/SocialLinks.js index 7a0dba6f61..584489689b 100644 --- a/packages/core/admin/admin/src/pages/HomePage/SocialLinks.js +++ b/packages/core/admin/admin/src/pages/HomePage/SocialLinks.js @@ -79,7 +79,7 @@ const socialLinks = [ }, { name: 'Discord', - link: 'https://slack.strapi.io/', + link: 'https://discord.strapi.io/', icon: , alt: 'discord', }, diff --git a/packages/core/admin/admin/src/pages/HomePage/tests/index.test.js b/packages/core/admin/admin/src/pages/HomePage/tests/index.test.js index 9f0188064d..8993585750 100644 --- a/packages/core/admin/admin/src/pages/HomePage/tests/index.test.js +++ b/packages/core/admin/admin/src/pages/HomePage/tests/index.test.js @@ -1172,7 +1172,7 @@ describe('Homepage', () => { diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/CardButton.js b/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/CardButton.js new file mode 100644 index 0000000000..dbe992eeeb --- /dev/null +++ b/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/CardButton.js @@ -0,0 +1,110 @@ +import React from 'react'; +import semver from 'semver'; +import PropTypes from 'prop-types'; +import { useIntl } from 'react-intl'; +import { Tooltip } from '@strapi/design-system/Tooltip'; +import { Button } from '@strapi/design-system/Button'; +import { Box } from '@strapi/design-system/Box'; +import Duplicate from '@strapi/icons/Duplicate'; + +const TooltipButton = ({ description, installMessage, disabled, handleCopy, pluginName }) => ( + + + + + +); + +const CardButton = ({ strapiPeerDepVersion, strapiAppVersion, handleCopy, pluginName }) => { + const { formatMessage } = useIntl(); + const versionRange = semver.validRange(strapiPeerDepVersion); + const isCompatible = semver.satisfies(strapiAppVersion, versionRange); + + const installMessage = formatMessage({ + id: 'admin.pages.MarketPlacePage.plugin.copy', + defaultMessage: 'Copy install command', + }); + + // Only plugins receive a strapiAppVersion + if (strapiAppVersion) { + if (!versionRange) { + return ( + + ); + } + + if (!isCompatible) { + return ( + + ); + } + } + + return ( + + ); +}; + +TooltipButton.defaultProps = { + disabled: false, + handleCopy: null, +}; + +TooltipButton.propTypes = { + description: PropTypes.string.isRequired, + installMessage: PropTypes.string.isRequired, + disabled: PropTypes.bool, + handleCopy: PropTypes.func, + pluginName: PropTypes.string.isRequired, +}; + +CardButton.defaultProps = { + strapiAppVersion: null, + strapiPeerDepVersion: null, +}; + +CardButton.propTypes = { + strapiAppVersion: PropTypes.string, + strapiPeerDepVersion: PropTypes.string, + handleCopy: PropTypes.func.isRequired, + pluginName: PropTypes.string.isRequired, +}; + +export default CardButton; diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js b/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js index 21be26758e..0dac88435a 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/InstallPluginButton.js @@ -1,20 +1,34 @@ import React from 'react'; import PropTypes from 'prop-types'; import { useIntl } from 'react-intl'; -import { CopyToClipboard } from 'react-copy-to-clipboard'; import { useNotification, useTracking } from '@strapi/helper-plugin'; import { Box } from '@strapi/design-system/Box'; import { Icon } from '@strapi/design-system/Icon'; import { Typography } from '@strapi/design-system/Typography'; import Check from '@strapi/icons/Check'; -import Duplicate from '@strapi/icons/Duplicate'; -import { Button } from '@strapi/design-system/Button'; +import CardButton from './CardButton'; -const InstallPluginButton = ({ isInstalled, isInDevelopmentMode, commandToCopy }) => { +const InstallPluginButton = ({ + isInstalled, + isInDevelopmentMode, + commandToCopy, + strapiAppVersion, + strapiPeerDepVersion, + pluginName, +}) => { const toggleNotification = useNotification(); const { formatMessage } = useIntl(); const { trackUsage } = useTracking(); + const handleCopy = () => { + navigator.clipboard.writeText(commandToCopy); + trackUsage('willInstallPlugin'); + toggleNotification({ + type: 'success', + message: { id: 'admin.pages.MarketPlacePage.plugin.copy.success' }, + }); + }; + // Already installed if (isInstalled) { return ( @@ -33,23 +47,12 @@ const InstallPluginButton = ({ isInstalled, isInDevelopmentMode, commandToCopy } // In development, show install button if (isInDevelopmentMode) { return ( - { - trackUsage('willInstallPlugin'); - toggleNotification({ - type: 'success', - message: { id: 'admin.pages.MarketPlacePage.plugin.copy.success' }, - }); - }} - text={commandToCopy} - > - - + ); } @@ -57,10 +60,18 @@ const InstallPluginButton = ({ isInstalled, isInDevelopmentMode, commandToCopy } return null; }; +InstallPluginButton.defaultProps = { + strapiAppVersion: null, + strapiPeerDepVersion: null, +}; + InstallPluginButton.propTypes = { isInstalled: PropTypes.bool.isRequired, isInDevelopmentMode: PropTypes.bool.isRequired, commandToCopy: PropTypes.string.isRequired, + strapiAppVersion: PropTypes.string, + strapiPeerDepVersion: PropTypes.string, + pluginName: PropTypes.string.isRequired, }; export default InstallPluginButton; diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js b/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js index 980a7b9c26..451f635b97 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js @@ -32,6 +32,7 @@ const NpmPackageCard = ({ useYarn, isInDevelopmentMode, npmPackageType, + strapiAppVersion, }) => { const { attributes } = npmPackage; const { formatMessage } = useIntl(); @@ -139,6 +140,9 @@ const NpmPackageCard = ({ isInstalled={isInstalled} isInDevelopmentMode={isInDevelopmentMode} commandToCopy={commandToCopy} + strapiAppVersion={strapiAppVersion} + strapiPeerDepVersion={attributes.strapiVersion} + pluginName={attributes.name} /> @@ -147,6 +151,7 @@ const NpmPackageCard = ({ NpmPackageCard.defaultProps = { isInDevelopmentMode: false, + strapiAppVersion: null, }; NpmPackageCard.propTypes = { @@ -164,12 +169,14 @@ NpmPackageCard.propTypes = { validated: PropTypes.bool.isRequired, madeByStrapi: PropTypes.bool.isRequired, strapiCompatibility: PropTypes.oneOf(['v3', 'v4']), + strapiVersion: PropTypes.string, }).isRequired, }).isRequired, isInstalled: PropTypes.bool.isRequired, useYarn: PropTypes.bool.isRequired, isInDevelopmentMode: PropTypes.bool, npmPackageType: PropTypes.string.isRequired, + strapiAppVersion: PropTypes.string, }; export default NpmPackageCard; diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js b/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js index 5bd80fc983..3e9f655770 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js @@ -9,6 +9,7 @@ const NpmPackagesGrid = ({ useYarn, isInDevelopmentMode, npmPackageType, + strapiAppVersion, }) => { // Check if an individual package is in the dependencies const isAlreadyInstalled = useCallback( @@ -26,6 +27,7 @@ const NpmPackagesGrid = ({ useYarn={useYarn} isInDevelopmentMode={isInDevelopmentMode} npmPackageType={npmPackageType} + strapiAppVersion={strapiAppVersion} /> ))} @@ -35,6 +37,7 @@ const NpmPackagesGrid = ({ NpmPackagesGrid.defaultProps = { installedPackageNames: [], + strapiAppVersion: null, }; NpmPackagesGrid.propTypes = { @@ -43,6 +46,7 @@ NpmPackagesGrid.propTypes = { useYarn: PropTypes.bool.isRequired, isInDevelopmentMode: PropTypes.bool.isRequired, npmPackageType: PropTypes.string.isRequired, + strapiAppVersion: PropTypes.string, }; export default NpmPackagesGrid; diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/index.js b/packages/core/admin/admin/src/pages/MarketplacePage/index.js index 1d5552fda4..133a9a1ba5 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/index.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/index.js @@ -50,7 +50,7 @@ const MarketPlacePage = () => { const toggleNotification = useNotification(); const [searchQuery, setSearchQuery] = useState(''); const [npmPackageType, setNpmPackageType] = useState('plugin'); - const { autoReload: isInDevelopmentMode, dependencies, useYarn } = useAppInfos(); + const { autoReload: isInDevelopmentMode, dependencies, useYarn, strapiVersion } = useAppInfos(); const isOnline = useNavigatorOnLine(); useFocusWhenNavigate(); @@ -247,6 +247,7 @@ const MarketPlacePage = () => { useYarn={useYarn} isInDevelopmentMode={isInDevelopmentMode} npmPackageType="plugin" + strapiAppVersion={strapiVersion} /> )} diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/tests/__snapshots__/index.test.js.snap b/packages/core/admin/admin/src/pages/MarketplacePage/tests/__snapshots__/index.test.js.snap index 6f3179d01f..6cecbbbfe5 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/tests/__snapshots__/index.test.js.snap +++ b/packages/core/admin/admin/src/pages/MarketplacePage/tests/__snapshots__/index.test.js.snap @@ -1223,38 +1223,46 @@ exports[`Marketplace page renders and matches the plugin tab snapshot 1`] = ` - - - Copy install command - - + @@ -1340,38 +1348,47 @@ exports[`Marketplace page renders and matches the plugin tab snapshot 1`] = ` - - - Copy install command - - + @@ -1410,7 +1427,7 @@ exports[`Marketplace page renders and matches the plugin tab snapshot 1`] = ` Documentation
@@ -1579,38 +1596,47 @@ exports[`Marketplace page renders and matches the plugin tab snapshot 1`] = `
- - - Copy install command - - +
@@ -2724,7 +2750,7 @@ exports[`Marketplace page renders and matches the provider tab snapshot 1`] = ` Amazon Ses
@@ -2856,7 +2882,7 @@ exports[`Marketplace page renders and matches the provider tab snapshot 1`] = ` AWS S3
@@ -2988,7 +3014,7 @@ exports[`Marketplace page renders and matches the provider tab snapshot 1`] = ` Cloudinary
@@ -3110,7 +3136,7 @@ exports[`Marketplace page renders and matches the provider tab snapshot 1`] = ` Local Upload
@@ -3242,7 +3268,7 @@ exports[`Marketplace page renders and matches the provider tab snapshot 1`] = ` Mailgun
@@ -3374,7 +3400,7 @@ exports[`Marketplace page renders and matches the provider tab snapshot 1`] = ` Nodemailer
@@ -3506,7 +3532,7 @@ exports[`Marketplace page renders and matches the provider tab snapshot 1`] = ` Rackspace
@@ -3638,7 +3664,7 @@ exports[`Marketplace page renders and matches the provider tab snapshot 1`] = ` SendGrid
@@ -3770,7 +3796,7 @@ exports[`Marketplace page renders and matches the provider tab snapshot 1`] = ` Sendmail
diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js b/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js index 99413b5ba5..a12c8df85b 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/tests/index.test.js @@ -8,6 +8,7 @@ import { screen, getByText, queryByText, + getByRole, } from '@testing-library/react'; import { IntlProvider } from 'react-intl'; import { QueryClient, QueryClientProvider } from 'react-query'; @@ -35,6 +36,7 @@ jest.mock('@strapi/helper-plugin', () => ({ '@strapi/plugin-documentation': '4.2.0', '@strapi/provider-upload-cloudinary': '4.2.0', }, + strapiVersion: '4.1.0', useYarn: true, })), })); @@ -215,7 +217,7 @@ describe('Marketplace page', () => { expect(pluginCardText).toEqual(null); }); - it('shows the installed text for installed plugins', async () => { + it('shows the installed text for installed plugins', () => { render(App); const pluginsTab = screen.getByRole('tab', { name: /plugins/i }); fireEvent.click(pluginsTab); @@ -235,7 +237,7 @@ describe('Marketplace page', () => { expect(notInstalledText).toBeVisible(); }); - it('shows the installed text for installed providers', async () => { + it('shows the installed text for installed providers', () => { // Open providers tab render(App); const providersTab = screen.getByRole('tab', { name: /providers/i }); @@ -255,4 +257,38 @@ describe('Marketplace page', () => { const notInstalledText = queryByText(notInstalledCard, /copy install command/i); expect(notInstalledText).toBeVisible(); }); + + it('disables the button and shows compatibility tooltip message when version provided', async () => { + const { getByTestId } = render(App); + const alreadyInstalledCard = screen + .getAllByTestId('npm-package-card') + .find((div) => div.innerHTML.includes('Transformer')); + const button = getByRole(alreadyInstalledCard, 'button', { name: /copy install command/i }); + const tooltip = getByTestId(`tooltip-Transformer`); + fireEvent.mouseOver(button); + await waitFor(() => { + expect(tooltip).toBeVisible(); + }); + expect(button).toBeDisabled(); + expect(tooltip).toBeInTheDocument(); + expect(tooltip).toHaveTextContent('Update your Strapi version: "4.1.0" to: "4.0.7"'); + }); + + it('shows compatibility tooltip message when no version provided', async () => { + const { getByTestId } = render(App); + const alreadyInstalledCard = screen + .getAllByTestId('npm-package-card') + .find((div) => div.innerHTML.includes('Config Sync')); + const button = getByRole(alreadyInstalledCard, 'button', { name: /copy install command/i }); + const tooltip = getByTestId(`tooltip-Config Sync`); + fireEvent.mouseOver(button); + await waitFor(() => { + expect(tooltip).toBeVisible(); + }); + expect(button).not.toBeDisabled(); + expect(tooltip).toBeInTheDocument(); + expect(tooltip).toHaveTextContent( + 'Unable to verify compatibility with your Strapi version: "4.1.0"' + ); + }); }); diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/tests/server.js b/packages/core/admin/admin/src/pages/MarketplacePage/tests/server.js index d5f59d1eec..6e87ef6eb7 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/tests/server.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/tests/server.js @@ -48,6 +48,7 @@ const handlers = [ validated: false, madeByStrapi: false, strapiCompatibility: 'v3', + strapiVersion: '^4.0.0', }, }, { @@ -221,6 +222,7 @@ const handlers = [ validated: false, madeByStrapi: false, strapiCompatibility: 'v4', + strapiVersion: '4.x.x', }, }, { @@ -291,6 +293,7 @@ const handlers = [ validated: true, madeByStrapi: false, strapiCompatibility: 'v4', + strapiVersion: 'Contact developer', }, }, { @@ -362,6 +365,7 @@ const handlers = [ validated: false, madeByStrapi: false, strapiCompatibility: 'v4', + strapiVersion: '^3.4.2', }, }, { @@ -404,6 +408,7 @@ const handlers = [ validated: true, madeByStrapi: true, strapiCompatibility: 'v4', + strapiVersion: '^4.0.7', }, }, { @@ -446,6 +451,7 @@ const handlers = [ validated: true, madeByStrapi: false, strapiCompatibility: 'v3', + strapiVersion: '^4.3.0', }, }, { @@ -488,6 +494,7 @@ const handlers = [ validated: false, madeByStrapi: false, strapiCompatibility: 'v4', + strapiVersion: '4.0.7', }, }, ], diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/tests/index.test.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/tests/index.test.js index f470600f5c..4fed4732f6 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/tests/index.test.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/tests/index.test.js @@ -1,11 +1,9 @@ import React from 'react'; import { IntlProvider } from 'react-intl'; -import { render as renderTL, fireEvent, screen, waitFor, configure } from '@testing-library/react'; +import { render as renderTL, fireEvent, screen, waitFor } from '@testing-library/react'; import { ThemeProvider, lightTheme } from '@strapi/design-system'; import LogoInput from '../index'; -configure({ asyncUtilTimeout: 8000 }); - const getFakeSize = jest.fn(() => ({ width: 500, height: 500, @@ -260,7 +258,7 @@ describe('ApplicationsInfosPage || LogoInput', () => { fireEvent.change(textInput, { target: { - value: 'https://cdn.pixabay.com/photo/2022/01/18/07/38/cat-6946505__340.jpg', + value: 'https://storage.googleapis.com/gtv-videos-bucket/sample/images/TearsOfSteel.jpg', }, }); @@ -276,10 +274,9 @@ describe('ApplicationsInfosPage || LogoInput', () => { fireEvent.click(screen.getByText('From url')); const textInput = document.querySelector('input[name="logo-url"]'); - fireEvent.change(textInput, { target: { - value: 'https://cdn.pixabay.com/photo/2022/01/18/07/38/cat-6946505__340.jpg', + value: 'https://storage.googleapis.com/gtv-videos-bucket/sample/images/TearsOfSteel.jpg', }, }); diff --git a/packages/core/admin/admin/src/translations/en.json b/packages/core/admin/admin/src/translations/en.json index 52320dfbe3..128dff946d 100644 --- a/packages/core/admin/admin/src/translations/en.json +++ b/packages/core/admin/admin/src/translations/en.json @@ -100,11 +100,11 @@ "Settings.apiTokens.duration.30-days": "30 days", "Settings.apiTokens.duration.90-days": "90 days", "Settings.apiTokens.duration.unlimited": "Unlimited", - "Settings.apiTokens.form.duration":"Token duration", - "Settings.apiTokens.form.type":"Token type", - "Settings.apiTokens.duration.expiration-date":"Expiration date", - "Settings.apiTokens.createPage.permissions.title":"Permissions", - "Settings.apiTokens.createPage.permissions.description":"Only actions bound by a route are listed below.", + "Settings.apiTokens.form.duration": "Token duration", + "Settings.apiTokens.form.type": "Token type", + "Settings.apiTokens.duration.expiration-date": "Expiration date", + "Settings.apiTokens.createPage.permissions.title": "Permissions", + "Settings.apiTokens.createPage.permissions.description": "Only actions bound by a route are listed below.", "Settings.apiTokens.RegenerateDialog.title": "Regenerate token", "Settings.apiTokens.popUpWarning.message": "Are you sure you want to regenerate this token?", "Settings.apiTokens.Button.cancel": "Cancel", @@ -270,6 +270,8 @@ "admin.pages.MarketPlacePage.plugin.installed": "Installed", "admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi": "Made by Strapi", "admin.pages.MarketPlacePage.plugin.tooltip.verified": "Plugin verified by Strapi", + "admin.pages.MarketPlacePage.plugin.version": "Update your Strapi version: \"{strapiAppVersion}\" to: \"{versionRange}\"", + "admin.pages.MarketPlacePage.plugin.version.null": "Unable to verify compatibility with your Strapi version: \"{strapiAppVersion}\"", "admin.pages.MarketPlacePage.providers": "Providers", "admin.pages.MarketPlacePage.search.clear": "Clear the search", "admin.pages.MarketPlacePage.search.empty": "No result for \"{target}\"", diff --git a/packages/core/admin/package.json b/packages/core/admin/package.json index 9f5726ce74..616e1ac22d 100644 --- a/packages/core/admin/package.json +++ b/packages/core/admin/package.json @@ -54,7 +54,7 @@ "@strapi/babel-plugin-switch-ee-ce": "4.4.3", "@strapi/design-system": "1.2.5", "@strapi/helper-plugin": "4.4.3", - "@strapi/icons": "1.2.3", + "@strapi/icons": "1.2.5", "@strapi/permissions": "4.4.3", "@strapi/typescript-utils": "4.4.3", "@strapi/utils": "4.4.3", @@ -163,6 +163,5 @@ ] } } - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" -} + } +} \ No newline at end of file diff --git a/packages/core/content-manager/package.json b/packages/core/content-manager/package.json index fe46baae52..bd07d8d3a6 100644 --- a/packages/core/content-manager/package.json +++ b/packages/core/content-manager/package.json @@ -38,6 +38,5 @@ "description": "Quick way to see, edit and delete the data in your database.", "required": true, "kind": "plugin" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/core/content-type-builder/package.json b/packages/core/content-type-builder/package.json index 7cee06ee31..23024abc36 100644 --- a/packages/core/content-type-builder/package.json +++ b/packages/core/content-type-builder/package.json @@ -56,6 +56,5 @@ "displayName": "Content Type Builder", "description": "Modelize the data structure of your API. Create new fields and relations in just a minute. The files are automatically created and updated in your project.", "kind": "plugin" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/core/database/package.json b/packages/core/database/package.json index f9e70e828d..0235190ffd 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -41,6 +41,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/core/email/package.json b/packages/core/email/package.json index ea0cda5843..248b629f86 100644 --- a/packages/core/email/package.json +++ b/packages/core/email/package.json @@ -44,6 +44,5 @@ "description": "Configure your application to send emails.", "required": true, "kind": "plugin" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/core/helper-plugin/lib/src/hooks/useTracking/index.js b/packages/core/helper-plugin/lib/src/hooks/useTracking/index.js index 1d2dc32ec0..30e6e3da2a 100644 --- a/packages/core/helper-plugin/lib/src/hooks/useTracking/index.js +++ b/packages/core/helper-plugin/lib/src/hooks/useTracking/index.js @@ -8,10 +8,10 @@ const useTracking = () => { const { uuid, telemetryProperties } = useContext(TrackingContext); const appInfo = useAppInfos(); - trackRef.current = (event, properties) => { + trackRef.current = async (event, properties) => { if (uuid) { try { - axios.post('https://analytics.strapi.io/track', { + await axios.post('https://analytics.strapi.io/track', { event, properties: { ...telemetryProperties, diff --git a/packages/core/helper-plugin/package.json b/packages/core/helper-plugin/package.json index 4d8de3041b..66ea9485b9 100644 --- a/packages/core/helper-plugin/package.json +++ b/packages/core/helper-plugin/package.json @@ -78,8 +78,8 @@ "@storybook/builder-webpack5": "6.5.9", "@storybook/manager-webpack5": "6.4.10", "@storybook/react": "^6.5.10", - "@strapi/design-system": "1.2.3", - "@strapi/icons": "1.2.3", + "@strapi/design-system": "1.2.5", + "@strapi/icons": "1.2.5", "@testing-library/react": "11.2.7", "@testing-library/react-hooks": "3.7.0", "babel-loader": "^8.2.5", @@ -101,6 +101,5 @@ ] } } - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/core/permissions/package.json b/packages/core/permissions/package.json index 54f715ec3f..006ec7b3d0 100644 --- a/packages/core/permissions/package.json +++ b/packages/core/permissions/package.json @@ -32,6 +32,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/core/strapi/package.json b/packages/core/strapi/package.json index 89449409a1..83d73b0c9d 100644 --- a/packages/core/strapi/package.json +++ b/packages/core/strapi/package.json @@ -78,7 +78,7 @@ "test:unit": "jest --verbose" }, "dependencies": { - "@koa/cors": "3.4.1", + "@koa/cors": "3.4.2", "@koa/router": "10.1.1", "@strapi/admin": "4.4.3", "@strapi/database": "4.4.3", @@ -139,6 +139,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/core/upload/admin/src/components/EditAssetDialog/index.js b/packages/core/upload/admin/src/components/EditAssetDialog/index.js index d2e9ceefb6..8aab10e035 100644 --- a/packages/core/upload/admin/src/components/EditAssetDialog/index.js +++ b/packages/core/upload/admin/src/components/EditAssetDialog/index.js @@ -225,6 +225,14 @@ export const EditAssetDialog = ({ }), value: getFileExtension(asset.ext), }, + + { + label: formatMessage({ + id: getTrad('modal.file-details.id'), + defaultMessage: 'Asset ID', + }), + value: asset.id, + }, ]} /> diff --git a/packages/core/upload/admin/src/components/EditAssetDialog/tests/__snapshots__/EditAssetDialog.test.js.snap b/packages/core/upload/admin/src/components/EditAssetDialog/tests/__snapshots__/EditAssetDialog.test.js.snap index 6be3fd8d8c..6e14e34e5a 100644 --- a/packages/core/upload/admin/src/components/EditAssetDialog/tests/__snapshots__/EditAssetDialog.test.js.snap +++ b/packages/core/upload/admin/src/components/EditAssetDialog/tests/__snapshots__/EditAssetDialog.test.js.snap @@ -1290,6 +1290,29 @@ exports[` renders and matches the snapshot 1`] = `
+
+
+
+ + Asset ID + + + 8 + +
+
+
diff --git a/packages/core/upload/admin/src/components/EditAssetDialog/tests/__snapshots__/index.test.js.snap b/packages/core/upload/admin/src/components/EditAssetDialog/tests/__snapshots__/index.test.js.snap index 6be3fd8d8c..6e14e34e5a 100644 --- a/packages/core/upload/admin/src/components/EditAssetDialog/tests/__snapshots__/index.test.js.snap +++ b/packages/core/upload/admin/src/components/EditAssetDialog/tests/__snapshots__/index.test.js.snap @@ -1290,6 +1290,29 @@ exports[` renders and matches the snapshot 1`] = `
+
+
+
+ + Asset ID + + + 8 + +
+
+
diff --git a/packages/core/upload/admin/src/translations/en.json b/packages/core/upload/admin/src/translations/en.json index 9df2127ace..8f8d4ad792 100644 --- a/packages/core/upload/admin/src/translations/en.json +++ b/packages/core/upload/admin/src/translations/en.json @@ -64,6 +64,7 @@ "modal.file-details.dimensions": "Dimensions", "modal.file-details.extension": "Extension", "modal.file-details.size": "Size", + "modal.file-details.id": "Asset ID", "modal.folder.elements.count": "{folderCount} folders, {assetCount} assets", "modal.header.browse": "Upload assets", "modal.header.file-detail": "Details", diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json index d8b5cddd08..f820fcb9a6 100644 --- a/packages/core/upload/package.json +++ b/packages/core/upload/package.json @@ -62,6 +62,5 @@ "description": "Media file management.", "required": true, "kind": "plugin" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index 3ea2542a96..1d8dbcf241 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -44,6 +44,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/generators/app/lib/resources/dot-files/common/gitignore b/packages/generators/app/lib/resources/dot-files/common/gitignore index 8e339ee395..2ed5eafd63 100644 --- a/packages/generators/app/lib/resources/dot-files/common/gitignore +++ b/packages/generators/app/lib/resources/dot-files/common/gitignore @@ -110,5 +110,6 @@ coverage license.txt exports *.cache +dist build .strapi-updater.json diff --git a/packages/generators/app/package.json b/packages/generators/app/package.json index 3f363bdcae..2a56503b41 100644 --- a/packages/generators/app/package.json +++ b/packages/generators/app/package.json @@ -52,6 +52,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/generators/generators/package.json b/packages/generators/generators/package.json index bbeac330c6..59cfdd268f 100644 --- a/packages/generators/generators/package.json +++ b/packages/generators/generators/package.json @@ -41,6 +41,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/plugins/color-picker/admin/src/translations/cs.json b/packages/plugins/color-picker/admin/src/translations/cs.json new file mode 100644 index 0000000000..455444de96 --- /dev/null +++ b/packages/plugins/color-picker/admin/src/translations/cs.json @@ -0,0 +1,12 @@ +{ + "color-picker.label": "Barva", + "color-picker.description": "Vyberte libovolnou barvu", + "color-picker.settings": "Nastavení", + "color-picket.input.format": "HEX", + "color-picker.options.advanced.regex": "RegExp vzor", + "color-picker.options.advanced.regex.description": "Zadejte regulární výraz pro ověření hodnoty HEX", + "color-picker.options.advanced.requiredField": "Povinné pole", + "color-picker.options.advanced.requiredField.description": "Pokud je toto pole prázdné, nebudete moci vytvořit záznam", + "color-picker.toggle.aria-label": "Přepínač výběru barvy", + "color-picker.input.aria-label": "Vstup pro výběr barvy" +} diff --git a/packages/plugins/color-picker/package.json b/packages/plugins/color-picker/package.json index 136ab69f06..9c2f8746f4 100644 --- a/packages/plugins/color-picker/package.json +++ b/packages/plugins/color-picker/package.json @@ -35,6 +35,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/plugins/documentation/package.json b/packages/plugins/documentation/package.json index 5355c28adf..79708a657a 100644 --- a/packages/plugins/documentation/package.json +++ b/packages/plugins/documentation/package.json @@ -61,6 +61,5 @@ "name": "documentation", "description": "Create an OpenAPI Document and visualize your API with SWAGGER UI.", "kind": "plugin" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/plugins/graphql/package.json b/packages/plugins/graphql/package.json index 6dab20f454..b189606f21 100644 --- a/packages/plugins/graphql/package.json +++ b/packages/plugins/graphql/package.json @@ -60,6 +60,5 @@ "name": "graphql", "description": "Adds GraphQL endpoint with default API methods.", "kind": "plugin" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/plugins/i18n/package.json b/packages/plugins/i18n/package.json index 5514bf12ff..eff5626d3e 100644 --- a/packages/plugins/i18n/package.json +++ b/packages/plugins/i18n/package.json @@ -41,6 +41,5 @@ "description": "This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API.", "required": false, "kind": "plugin" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/plugins/sentry/package.json b/packages/plugins/sentry/package.json index aca749533a..1e3494f42e 100644 --- a/packages/plugins/sentry/package.json +++ b/packages/plugins/sentry/package.json @@ -38,6 +38,5 @@ "displayName": "Sentry", "description": "Send Strapi error events to Sentry.", "kind": "plugin" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/plugins/users-permissions/package.json b/packages/plugins/users-permissions/package.json index e6394d1f5f..21d81af6ff 100644 --- a/packages/plugins/users-permissions/package.json +++ b/packages/plugins/users-permissions/package.json @@ -63,6 +63,5 @@ "description": "Protect your API with a full authentication process based on JWT. This plugin comes also with an ACL strategy that allows you to manage the permissions between the groups of users.", "required": true, "kind": "plugin" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/providers/email-amazon-ses/package.json b/packages/providers/email-amazon-ses/package.json index 467cec34f3..1273e3611e 100644 --- a/packages/providers/email-amazon-ses/package.json +++ b/packages/providers/email-amazon-ses/package.json @@ -42,6 +42,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/providers/email-mailgun/package.json b/packages/providers/email-mailgun/package.json index 2e52b55ef4..62bcc59eed 100644 --- a/packages/providers/email-mailgun/package.json +++ b/packages/providers/email-mailgun/package.json @@ -43,6 +43,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/providers/email-nodemailer/package.json b/packages/providers/email-nodemailer/package.json index 88f5bb12ac..6f713d6c8a 100644 --- a/packages/providers/email-nodemailer/package.json +++ b/packages/providers/email-nodemailer/package.json @@ -55,6 +55,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/providers/email-sendgrid/package.json b/packages/providers/email-sendgrid/package.json index b85fba9ee6..223ea881b6 100644 --- a/packages/providers/email-sendgrid/package.json +++ b/packages/providers/email-sendgrid/package.json @@ -42,6 +42,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/providers/email-sendmail/package.json b/packages/providers/email-sendmail/package.json index a6e69e52fd..ddef03e747 100644 --- a/packages/providers/email-sendmail/package.json +++ b/packages/providers/email-sendmail/package.json @@ -41,6 +41,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/providers/upload-aws-s3/package.json b/packages/providers/upload-aws-s3/package.json index a5cdafe317..bcf4d6b752 100644 --- a/packages/providers/upload-aws-s3/package.json +++ b/packages/providers/upload-aws-s3/package.json @@ -43,6 +43,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/providers/upload-cloudinary/package.json b/packages/providers/upload-cloudinary/package.json index 0f44f051e8..7c456edcea 100644 --- a/packages/providers/upload-cloudinary/package.json +++ b/packages/providers/upload-cloudinary/package.json @@ -43,6 +43,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/providers/upload-local/package.json b/packages/providers/upload-local/package.json index ebdab0ae2e..194e2bd813 100644 --- a/packages/providers/upload-local/package.json +++ b/packages/providers/upload-local/package.json @@ -41,6 +41,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/utils/babel-plugin-switch-ee-ce/package.json b/packages/utils/babel-plugin-switch-ee-ce/package.json index 6b3a9df869..fa85036bf8 100644 --- a/packages/utils/babel-plugin-switch-ee-ce/package.json +++ b/packages/utils/babel-plugin-switch-ee-ce/package.json @@ -32,6 +32,5 @@ "@babel/plugin-transform-modules-commonjs": "7.18.6", "@babel/plugin-transform-runtime": "7.18.10", "@babel/preset-env": "7.18.10" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/utils/logger/package.json b/packages/utils/logger/package.json index b9ed6272cf..5991e6e217 100644 --- a/packages/utils/logger/package.json +++ b/packages/utils/logger/package.json @@ -37,6 +37,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/packages/utils/typescript/package.json b/packages/utils/typescript/package.json index e8776a668f..95c01ad539 100644 --- a/packages/utils/typescript/package.json +++ b/packages/utils/typescript/package.json @@ -34,6 +34,5 @@ "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" - }, - "gitHead": "f99314ead7f0fdf82b921b9d8f0282a91e952ca8" + } } diff --git a/yarn.lock b/yarn.lock index 9476206385..b8849904b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2478,7 +2478,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@koa/cors@3.4.1", "@koa/cors@^3.1.0": +"@koa/cors@3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@koa/cors/-/cors-3.4.2.tgz#70c13e5843d1762ce78fd8767162cd916132c946" + integrity sha512-NJU7/+h9XAfw/W/dLadDg8JYrQ5EDxstBl9a9G0A++EqvrQpabWcZ4tBxOdW57QjketX66zkOcXE+5V7IjLWYA== + dependencies: + vary "^1.1.2" + +"@koa/cors@^3.1.0": version "3.4.1" resolved "https://registry.yarnpkg.com/@koa/cors/-/cors-3.4.1.tgz#ddd5c6ff07a1e60831e1281411a3b9fdb95a5b26" integrity sha512-/sG9NlpGZ/aBpnRamIlGs+wX+C/IJ5DodNK7iPQIVCG4eUQdGeshGhWQ6JCi7tpnD9sCtFXcS04iTimuaJfh4Q== @@ -5446,10 +5453,10 @@ optionalDependencies: typescript "^4.6.2" -"@strapi/icons@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@strapi/icons/-/icons-1.2.3.tgz#5999417e5643ee33e0177577003ddd8e8c53907b" - integrity sha512-vBvOl5sW4GKQAbna3aAhWi2HWOEZ9/v22iX5jG+0vqAwKdRGWaTBkMIYnw0UhKLUbVX3W+P+ViAtIbUycoLelg== +"@strapi/icons@1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@strapi/icons/-/icons-1.2.5.tgz#957ab7a336cb2b3ad5a4e1deec3257b41622337f" + integrity sha512-7c3vzMqmm4Xfms47mEJu8F1pV1Eizxrn/sND6WEdizc/S2sRhnye3axaHH4xtncqapB1NKUIUb2z5Bl0Xn+WCw== dependencies: rimraf "^3.0.2" @@ -7057,6 +7064,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + ansi-to-html@^0.6.11: version "0.6.15" resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.15.tgz#ac6ad4798a00f6aa045535d7f6a9cb9294eebea7" @@ -8424,25 +8436,6 @@ call-me-maybe@^1.0.1: resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" integrity sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw== -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -8836,6 +8829,14 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" @@ -9027,7 +9028,7 @@ colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== -colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16: +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16, colorette@^2.0.17: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== @@ -9090,7 +9091,7 @@ commander@^4.0.1, commander@^4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^6.2.0, commander@^6.2.1: +commander@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== @@ -9110,6 +9111,11 @@ commander@^9.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c" integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw== +commander@^9.3.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" + integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== + common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" @@ -9450,16 +9456,6 @@ core-util-is@^1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" @@ -9809,7 +9805,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -10398,6 +10394,11 @@ duplicate-dependencies-webpack-plugin@^1.0.2: pretty-bytes "^5.3.0" tapable "^1.1.3" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -10537,7 +10538,7 @@ enhanced-resolve@^5.10.0: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.6, enquirer@~2.3.6: +enquirer@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -11256,20 +11257,20 @@ execa@5.1.1, execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== +execa@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" execall@^2.0.0: version "2.0.0" @@ -12090,11 +12091,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.3" -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -12120,11 +12116,6 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== -get-stdin@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" - integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== - get-stdin@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" @@ -12137,14 +12128,14 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -13143,16 +13134,16 @@ https-proxy-agent@5, https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: agent-base "6" debug "4" -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -13160,22 +13151,10 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -husky@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/husky/-/husky-3.1.0.tgz#5faad520ab860582ed94f0c1a77f0f04c90b57c0" - integrity sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ== - dependencies: - chalk "^2.4.2" - ci-info "^2.0.0" - cosmiconfig "^5.2.1" - execa "^1.0.0" - get-stdin "^7.0.0" - opencollective-postinstall "^2.0.2" - pkg-dir "^4.2.0" - please-upgrade-node "^3.2.0" - read-pkg "^5.2.0" - run-node "^1.0.0" - slash "^3.0.0" +husky@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" + integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== iconv-lite@0.4.13: version "0.4.13" @@ -13255,14 +13234,6 @@ immer@9.0.6: resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.6.tgz#7a96bf2674d06c8143e327cbf73539388ddf1a73" integrity sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ== -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -13626,11 +13597,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - is-docker@2.2.1, is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" @@ -13676,6 +13642,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + is-function@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" @@ -13771,11 +13742,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== - is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" @@ -13836,11 +13802,6 @@ is-regex@^1.1.2, is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== - is-regexp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d" @@ -13882,6 +13843,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -15295,6 +15261,11 @@ liftoff@^2.5.0: rechoir "^0.6.2" resolve "^1.1.7" +lilconfig@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" + integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -15307,38 +15278,36 @@ linkify-it@^3.0.1: dependencies: uc.micro "^1.0.1" -lint-staged@10.5.4: - version "10.5.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665" - integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg== +lint-staged@13.0.3: + version "13.0.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" + integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== dependencies: - chalk "^4.1.0" - cli-truncate "^2.1.0" - commander "^6.2.0" - cosmiconfig "^7.0.0" - debug "^4.2.0" - dedent "^0.7.0" - enquirer "^2.3.6" - execa "^4.1.0" - listr2 "^3.2.2" - log-symbols "^4.0.0" - micromatch "^4.0.2" + cli-truncate "^3.1.0" + colorette "^2.0.17" + commander "^9.3.0" + debug "^4.3.4" + execa "^6.1.0" + lilconfig "2.0.5" + listr2 "^4.0.5" + micromatch "^4.0.5" normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "^3.3.0" + object-inspect "^1.12.2" + pidtree "^0.6.0" + string-argv "^0.3.1" + yaml "^2.1.1" -listr2@^3.2.2: - version "3.14.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" - integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== dependencies: cli-truncate "^2.1.0" colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.1" + rxjs "^7.5.5" through "^2.3.8" wrap-ansi "^7.0.0" @@ -15523,7 +15492,7 @@ log-symbols@^2.2.0: dependencies: chalk "^2.0.1" -log-symbols@^4.0.0, log-symbols@^4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -16099,7 +16068,7 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -16157,6 +16126,11 @@ mimic-fn@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + mimic-response@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -16969,13 +16943,20 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + npmlog@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" @@ -17109,7 +17090,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.12.0, object-inspect@^1.9.0: +object-inspect@^1.12.0, object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -17274,6 +17255,13 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + only@~0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" @@ -17296,11 +17284,6 @@ open@^7.0.3: is-docker "^2.0.0" is-wsl "^2.1.1" -opencollective-postinstall@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" - integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== - opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" @@ -17907,6 +17890,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -18054,6 +18042,11 @@ pidtree@^0.3.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -18112,13 +18105,6 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - plop@2.7.6: version "2.7.6" resolved "https://registry.yarnpkg.com/plop/-/plop-2.7.6.tgz#1fa5360cd5b04e9932ce677bb6bd44750d97ae67" @@ -19742,11 +19728,6 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: expand-tilde "^2.0.0" global-modules "^1.0.0" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -19891,11 +19872,6 @@ run-async@^2.4.0: resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== -run-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" - integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -19917,7 +19893,7 @@ rxjs@^6.4.0, rxjs@^6.6.0: dependencies: tslib "^1.9.0" -rxjs@^7.5.1, rxjs@^7.5.5: +rxjs@^7.5.5: version "7.5.6" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== @@ -20066,11 +20042,6 @@ selfsigned@^2.0.1: dependencies: node-forge "^1" -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== - "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -20375,6 +20346,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" @@ -20820,7 +20799,7 @@ strict-event-emitter@^0.2.0, strict-event-emitter@^0.2.4: dependencies: events "^3.3.0" -string-argv@0.3.1, string-argv@~0.3.1: +string-argv@^0.3.1, string-argv@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== @@ -20859,6 +20838,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + "string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" @@ -20928,15 +20916,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-object@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -20992,6 +20971,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" @@ -23074,6 +23058,11 @@ yaml@1.10.2, yaml@^1.10.0, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207" + integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg== + yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"