diff --git a/.github/actions/check-pr-status/package.json b/.github/actions/check-pr-status/package.json index 3062c986a6..fc456026b1 100644 --- a/.github/actions/check-pr-status/package.json +++ b/.github/actions/check-pr-status/package.json @@ -1,6 +1,6 @@ { "name": "check-pr-status", - "version": "4.1.5", + "version": "4.1.6", "main": "dist/index.js", "license": "MIT", "private": true, diff --git a/examples/getstarted/package.json b/examples/getstarted/package.json index dcec2b2819..cb35fee90f 100644 --- a/examples/getstarted/package.json +++ b/examples/getstarted/package.json @@ -1,7 +1,7 @@ { "name": "getstarted", "private": true, - "version": "4.1.5", + "version": "4.1.6", "description": "A Strapi application.", "scripts": { "develop": "strapi develop", @@ -12,23 +12,23 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/admin": "4.1.5", - "@strapi/plugin-documentation": "4.1.5", - "@strapi/plugin-graphql": "4.1.5", - "@strapi/plugin-i18n": "4.1.5", - "@strapi/plugin-sentry": "4.1.5", - "@strapi/plugin-users-permissions": "4.1.5", - "@strapi/provider-email-mailgun": "4.1.5", - "@strapi/provider-upload-aws-s3": "4.1.5", - "@strapi/provider-upload-cloudinary": "4.1.5", - "@strapi/strapi": "4.1.5", - "@strapi/utils": "4.1.5", + "@strapi/admin": "4.1.6", + "@strapi/plugin-documentation": "4.1.6", + "@strapi/plugin-graphql": "4.1.6", + "@strapi/plugin-i18n": "4.1.6", + "@strapi/plugin-sentry": "4.1.6", + "@strapi/plugin-users-permissions": "4.1.6", + "@strapi/provider-email-mailgun": "4.1.6", + "@strapi/provider-upload-aws-s3": "4.1.6", + "@strapi/provider-upload-cloudinary": "4.1.6", + "@strapi/strapi": "4.1.6", + "@strapi/utils": "4.1.6", + "@vscode/sqlite3": "5.0.8", + "better-sqlite3": "7.5.0", "lodash": "4.17.21", "mysql": "2.18.1", "passport-google-oauth2": "0.2.0", "pg": "8.6.0", - "better-sqlite3": "7.5.0", - "@vscode/sqlite3": "5.0.7", "sqlite3": "5.0.2" }, "strapi": { diff --git a/examples/kitchensink/package.json b/examples/kitchensink/package.json index 092528a5ed..dd01c0ee5c 100644 --- a/examples/kitchensink/package.json +++ b/examples/kitchensink/package.json @@ -1,7 +1,7 @@ { "name": "kitchensink", "private": true, - "version": "4.1.5", + "version": "4.1.6", "description": "A Strapi application.", "scripts": { "develop": "strapi develop", @@ -12,12 +12,12 @@ "strapi": "strapi" }, "dependencies": { - "@strapi/admin": "4.1.5", - "@strapi/provider-email-mailgun": "4.1.5", - "@strapi/provider-upload-aws-s3": "4.1.5", - "@strapi/provider-upload-cloudinary": "4.1.5", - "@strapi/strapi": "4.1.5", - "@strapi/utils": "4.1.5", + "@strapi/admin": "4.1.6", + "@strapi/provider-email-mailgun": "4.1.6", + "@strapi/provider-upload-aws-s3": "4.1.6", + "@strapi/provider-upload-cloudinary": "4.1.6", + "@strapi/strapi": "4.1.6", + "@strapi/utils": "4.1.6", "lodash": "4.17.21", "mysql": "2.18.1", "passport-google-oauth2": "0.2.0", diff --git a/lerna.json b/lerna.json index 5fe80ae165..18bde1d63d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "4.1.5", + "version": "4.1.6", "packages": [ "packages/*", "examples/*" diff --git a/package.json b/package.json index 4996c42e0e..8870d0dda3 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "eslint-plugin-jsx-a11y": "6.5.1", "eslint-plugin-node": "11.1.0", "eslint-plugin-react": "7.29.4", - "eslint-plugin-react-hooks": "4.3.0", + "eslint-plugin-react-hooks": "4.4.0", "eslint-plugin-redux-saga": "1.3.2", "execa": "1.0.0", "fs-extra": "10.0.1", diff --git a/packages/admin-test-utils/package.json b/packages/admin-test-utils/package.json index 946c67e162..870b3821af 100644 --- a/packages/admin-test-utils/package.json +++ b/packages/admin-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/admin-test-utils", - "version": "4.1.5", + "version": "4.1.6", "private": true, "description": "Test utilities for the Strapi administration panel", "license": "MIT", diff --git a/packages/cli/create-strapi-app/package.json b/packages/cli/create-strapi-app/package.json index 4d2b14f841..71eb9e354b 100644 --- a/packages/cli/create-strapi-app/package.json +++ b/packages/cli/create-strapi-app/package.json @@ -1,6 +1,6 @@ { "name": "create-strapi-app", - "version": "4.1.5", + "version": "4.1.6", "description": "Generate a new Strapi application.", "keywords": [ "create-strapi-app", @@ -38,7 +38,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/generate-new": "4.1.5", + "@strapi/generate-new": "4.1.6", "commander": "6.1.0", "inquirer": "8.2.0" }, diff --git a/packages/cli/create-strapi-starter/package.json b/packages/cli/create-strapi-starter/package.json index ef2090fd71..94d6a1642c 100644 --- a/packages/cli/create-strapi-starter/package.json +++ b/packages/cli/create-strapi-starter/package.json @@ -1,6 +1,6 @@ { "name": "create-strapi-starter", - "version": "4.1.5", + "version": "4.1.6", "description": "Generate a new Strapi application.", "keywords": [ "create-strapi-starter", @@ -38,7 +38,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/generate-new": "4.1.5", + "@strapi/generate-new": "4.1.6", "chalk": "4.1.1", "ci-info": "3.1.1", "commander": "7.1.0", diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/utils/hasContent.js b/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/utils/hasContent.js index bec6d453ac..57cdd29ddb 100644 --- a/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/utils/hasContent.js +++ b/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/utils/hasContent.js @@ -16,7 +16,12 @@ export default function hasContent(type, content, metadatas, fieldSchema) { return content.length > 0; } - const value = content[mainFieldName]; + const value = content?.[mainFieldName]; + + // relations, media ... show the id as fallback + if (mainFieldName === 'id' && ![undefined, null].includes(value)) { + return true; + } /* The ID field reports itself as type `integer`, which makes it impossible to distinguish it from other number fields. diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/utils/tests/hasContent.test.js b/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/utils/tests/hasContent.test.js index 266bb10ec4..d9b708c44c 100644 --- a/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/utils/tests/hasContent.test.js +++ b/packages/core/admin/admin/src/content-manager/components/DynamicTable/CellContent/utils/tests/hasContent.test.js @@ -50,8 +50,15 @@ describe('hasContent', () => { }); }); + describe('ID', () => { + it('returns true for id main fields', () => { + const normalizedContent = hasContent('media', { id: 1 }); + expect(normalizedContent).toEqual(true); + }); + }); + describe('single component', () => { - it('extracts content from single components with content', () => { + it('extracts content with content', () => { const normalizedContent = hasContent( 'component', { name: 'content', id: 1 }, @@ -60,7 +67,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(true); }); - it('extracts content from single components without content', () => { + it('extracts content without content', () => { const normalizedContent = hasContent( 'component', { name: '', id: 1 }, @@ -69,7 +76,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(false); }); - it('extracts integers from single components with content', () => { + it('extracts integers with content', () => { const normalizedContent = hasContent( 'component', { number: 1, id: 1 }, @@ -78,7 +85,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(true); }); - it('extracts integers from single components without content', () => { + it('extracts integers without content', () => { const normalizedContent = hasContent( 'component', { number: null, id: 1 }, @@ -87,7 +94,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(false); }); - it('extracts float from single components with content', () => { + it('extracts float with content', () => { const normalizedContent = hasContent( 'component', { number: 1.11, id: 1 }, @@ -96,7 +103,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(true); }); - it('extracts float from single components without content', () => { + it('extracts float without content', () => { const normalizedContent = hasContent( 'component', { number: null, id: 1 }, @@ -105,7 +112,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(false); }); - it('extracts decimal from single components with content', () => { + it('extracts decimal with content', () => { const normalizedContent = hasContent( 'component', { number: 1.11, id: 1 }, @@ -114,7 +121,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(true); }); - it('extracts decimal from single components without content', () => { + it('extracts decimal without content', () => { const normalizedContent = hasContent( 'component', { number: null, id: 1 }, @@ -123,7 +130,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(false); }); - it('extracts biginteger from single components with content', () => { + it('extracts biginteger with content', () => { const normalizedContent = hasContent( 'component', { number: '12345678901234567890', id: 1 }, @@ -132,7 +139,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(true); }); - it('extracts biginteger from single components without content', () => { + it('extracts biginteger without content', () => { const normalizedContent = hasContent( 'component', { number: null, id: 1 }, @@ -140,10 +147,28 @@ describe('hasContent', () => { ); expect(normalizedContent).toEqual(false); }); + + it('does not fail if the attribute is not set', () => { + const normalizedContent = hasContent( + 'component', + { id: 1 }, + { mainField: { name: 'number', type: 'biginteger' } } + ); + expect(normalizedContent).toEqual(false); + }); + + it('returns true id the main field is an id', () => { + const normalizedContent = hasContent( + 'component', + { id: 1 }, + { mainField: { name: 'id', type: 'integer' } } + ); + expect(normalizedContent).toEqual(true); + }); }); describe('repeatable components', () => { - it('extracts content from repeatable components with content', () => { + it('extracts content with content', () => { const normalizedContent = hasContent( 'component', [{ name: 'content_2', value: 'truthy', id: 1 }], @@ -153,7 +178,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(true); }); - it('extracts content from repeatable components without content', () => { + it('extracts content without content', () => { const normalizedContent = hasContent( 'component', [{ name: 'content_2', value: '', id: 1 }], @@ -163,7 +188,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(true); }); - it('extracts content from repeatable components without content', () => { + it('extracts content without content', () => { const normalizedContent = hasContent( 'component', [{ id: 1 }, { id: 2 }], @@ -173,7 +198,7 @@ describe('hasContent', () => { expect(normalizedContent).toEqual(true); }); - it('extracts content from repeatable components without content', () => { + it('extracts content without content', () => { const normalizedContent = hasContent( 'component', [], diff --git a/packages/core/admin/admin/src/content-manager/components/FieldComponent/index.js b/packages/core/admin/admin/src/content-manager/components/FieldComponent/index.js index 7281891c65..16a47c10ec 100644 --- a/packages/core/admin/admin/src/content-manager/components/FieldComponent/index.js +++ b/packages/core/admin/admin/src/content-manager/components/FieldComponent/index.js @@ -106,7 +106,6 @@ const FieldComponent = ({ componentValue={componentValue} componentValueLength={componentValueLength} componentUid={componentUid} - isNested={isNested} isReadOnly={isReadOnly} max={max} min={min} diff --git a/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/index.js b/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/index.js index 65355ef5b9..b6d31cff45 100644 --- a/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/index.js +++ b/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/index.js @@ -5,7 +5,6 @@ import { useIntl } from 'react-intl'; import styled from 'styled-components'; import PropTypes from 'prop-types'; import get from 'lodash/get'; -import take from 'lodash/take'; import { useNotification } from '@strapi/helper-plugin'; import { Box } from '@strapi/design-system/Box'; import { Flex } from '@strapi/design-system/Flex'; @@ -17,6 +16,7 @@ import ItemTypes from '../../utils/ItemTypes'; import ComponentInitializer from '../ComponentInitializer'; import connect from './utils/connect'; import select from './utils/select'; +import getComponentErrorKeys from './utils/getComponentErrorKeys'; import DraggedItem from './DraggedItem'; import AccordionGroupCustom from './AccordionGroupCustom'; @@ -38,7 +38,6 @@ const RepeatableComponent = ({ componentUid, componentValue, componentValueLength, - isNested, isReadOnly, max, min, @@ -59,16 +58,7 @@ const RepeatableComponent = ({ return getMaxTempKey(componentValue || []) + 1; }, [componentValue]); - const componentErrorKeys = Object.keys(formErrors) - .filter(errorKey => { - return take(errorKey.split('.'), isNested ? 3 : 1).join('.') === name; - }) - .map(errorKey => { - return errorKey - .split('.') - .slice(0, name.split('.').length + 1) - .join('.'); - }); + const componentErrorKeys = getComponentErrorKeys(name, formErrors); const toggleCollapses = () => { setCollapseToOpen(''); @@ -187,7 +177,6 @@ RepeatableComponent.defaultProps = { componentValue: null, componentValueLength: 0, formErrors: {}, - isNested: false, max: Infinity, min: 0, }; @@ -198,7 +187,6 @@ RepeatableComponent.propTypes = { componentValue: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), componentValueLength: PropTypes.number, formErrors: PropTypes.object, - isNested: PropTypes.bool, isReadOnly: PropTypes.bool.isRequired, max: PropTypes.number, min: PropTypes.number, diff --git a/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/utils/getComponentErrorKeys.js b/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/utils/getComponentErrorKeys.js new file mode 100644 index 0000000000..d12c3e8eb3 --- /dev/null +++ b/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/utils/getComponentErrorKeys.js @@ -0,0 +1,10 @@ +export default function getComponentErrorKeys(name, formErrors) { + return Object.keys(formErrors) + .filter(errorKey => errorKey.startsWith(name)) + .map(errorKey => + errorKey + .split('.') + .slice(0, name.split('.').length + 1) + .join('.') + ); +} diff --git a/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/utils/tests/getComponentErrorKeys.test.js b/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/utils/tests/getComponentErrorKeys.test.js new file mode 100644 index 0000000000..d0dbdfddbe --- /dev/null +++ b/packages/core/admin/admin/src/content-manager/components/RepeatableComponent/utils/tests/getComponentErrorKeys.test.js @@ -0,0 +1,27 @@ +import getComponentErrorKeys from '../getComponentErrorKeys'; + +describe('getComponentErrorKeys', () => { + test('retrieves error keys for non nested components', () => { + const FIXTURE = { + 'component.0.name': 'unique-error', + 'component.1.field': 'validation-error', + }; + + expect(getComponentErrorKeys('component', FIXTURE)).toStrictEqual([ + 'component.0', + 'component.1', + ]); + }); + + test('retrieves error keys for nested components', () => { + const FIXTURE = { + 'parent.child.0.name': 'unique-error', + 'parent.child.1.field': 'validation-error', + }; + + expect(getComponentErrorKeys('parent.child', FIXTURE)).toStrictEqual([ + 'parent.child.0', + 'parent.child.1', + ]); + }); +}); diff --git a/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/index.js b/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/index.js index f3107fa8cc..2c9f6df01b 100644 --- a/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/index.js +++ b/packages/core/admin/admin/src/content-manager/pages/EditSettingsView/index.js @@ -59,7 +59,6 @@ const EditSettingsView = ({ mainLayout, components, isContentTypeView, slug, upd 'relation', 'component', 'boolean', - 'date', 'media', 'richtext', 'timestamp', diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/components/MissingPluginBanner/index.js b/packages/core/admin/admin/src/pages/MarketplacePage/components/MissingPluginBanner/index.js new file mode 100644 index 0000000000..1d62b5b52b --- /dev/null +++ b/packages/core/admin/admin/src/pages/MarketplacePage/components/MissingPluginBanner/index.js @@ -0,0 +1,40 @@ +import React from 'react'; +import { useIntl } from 'react-intl'; +import { ContentBox, useTracking } from '@strapi/helper-plugin'; +import GlassesSquare from '@strapi/icons/GlassesSquare'; +import ExternalLink from '@strapi/icons/ExternalLink'; +import { Icon } from '@strapi/design-system/Icon'; + +const MissingPluginBanner = () => { + const { formatMessage } = useIntl(); + const { trackUsage } = useTracking(); + + return ( + trackUsage('didMissMarketplacePlugin')} + > + } + iconBackground="alternative100" + endAction={ + + } + /> + + ); +}; + +export default MissingPluginBanner; diff --git a/packages/core/admin/admin/src/pages/MarketplacePage/index.js b/packages/core/admin/admin/src/pages/MarketplacePage/index.js index 1cd90c9959..3f4a703eab 100644 --- a/packages/core/admin/admin/src/pages/MarketplacePage/index.js +++ b/packages/core/admin/admin/src/pages/MarketplacePage/index.js @@ -27,6 +27,7 @@ import { fetchAppInformation } from './utils/api'; import useFetchInstalledPlugins from '../../hooks/useFetchInstalledPlugins'; import useFetchMarketplacePlugins from '../../hooks/useFetchMarketplacePlugins'; import adminPermissions from '../../permissions'; +import MissingPluginBanner from './components/MissingPluginBanner'; const matchSearch = (plugins, search) => { return matchSorter(plugins, search, { @@ -219,6 +220,9 @@ const MarketPlacePage = () => { ))} )} + + + 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 2025221a37..65dddc6417 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 @@ -87,6 +87,10 @@ describe('Marketplace page', () => { padding-left: 16px; } + .c56 { + padding-top: 32px; + } + .c49 { font-weight: 600; color: #32324d; @@ -253,6 +257,19 @@ describe('Marketplace page', () => { height: 100%; } + .c57 { + background: #ffffff; + padding: 24px; + border-radius: 4px; + box-shadow: 0px 1px 4px rgba(33,33,52,0.1); + } + + .c58 { + background: #f6ecfc; + padding: 12px; + border-radius: 4px; + } + .c31 { display: -webkit-box; display: -webkit-flex; @@ -297,10 +314,21 @@ describe('Marketplace page', () => { height: 12; } + .c63 { + color: #666687; + margin-left: 8px; + width: 12px; + height: 12px; + } + .c51 path { fill: #328048; } + .c64 path { + fill: #666687; + } + .c24 { padding-right: 8px; padding-left: 12px; @@ -467,6 +495,21 @@ describe('Marketplace page', () => { align-items: center; } + .c60 { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + } + + .c60 > * { + margin-top: 0; + margin-bottom: 0; + } + .c41 > * { margin-left: 0; margin-right: 0; @@ -496,6 +539,26 @@ describe('Marketplace page', () => { line-height: 1.43; } + .c61 { + font-weight: 500; + color: #32324d; + font-size: 0.75rem; + line-height: 1.33; + } + + .c59 { + margin-right: 24px; + } + + .c59 svg { + width: 2rem; + height: 2rem; + } + + .c62 { + word-break: break-all; + } + .c28 { display: grid; grid-template-columns: repeat(12,1fr); @@ -1496,6 +1559,74 @@ describe('Marketplace page', () => { +
+ +
+
+ + + + +
+
+
+ + Documentation + + + + +
+ + Tell us what plugin you are looking for and we'll let our community plugin developers know in case they are in search for inspiration! + +
+
+
+
@@ -1515,8 +1646,8 @@ describe('Marketplace page', () => { it('should return search results matching the query', async () => { const { container } = render(App); const input = await getByPlaceholderText(container, 'Search for a plugin'); - fireEvent.change(input, { target: { value: 'documentation' } }); - const match = screen.getByText('Documentation'); + fireEvent.change(input, { target: { value: 'comment' } }); + const match = screen.getByText('Comments'); const notMatch = screen.queryByText('Sentry'); expect(match).toBeVisible(); diff --git a/packages/core/admin/admin/src/translations/en.json b/packages/core/admin/admin/src/translations/en.json index 78c388f2ab..dd1f8d3b0a 100644 --- a/packages/core/admin/admin/src/translations/en.json +++ b/packages/core/admin/admin/src/translations/en.json @@ -218,6 +218,8 @@ "admin.pages.MarketPlacePage.search.placeholder": "Search for a plugin", "admin.pages.MarketPlacePage.submit.plugin.link": "Submit your plugin", "admin.pages.MarketPlacePage.subtitle": "Get more out of Strapi", + "admin.pages.MarketPlacePage.missingPlugin.title": "Missing a plugin?", + "admin.pages.MarketPlacePage.missingPlugin.description": "Tell us what plugin you are looking for and we'll let our community plugin developers know in case they are in search for inspiration!", "anErrorOccurred": "Woops! Something went wrong. Please, try again.", "app.component.CopyToClipboard.label": "Copy to clipboard", "app.component.search.label": "Search for {target}", diff --git a/packages/core/admin/package.json b/packages/core/admin/package.json index 74cc0f5ac7..3076fb1d0e 100644 --- a/packages/core/admin/package.json +++ b/packages/core/admin/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/admin", - "version": "4.1.5", + "version": "4.1.6", "description": "Strapi Admin", "repository": { "type": "git", @@ -52,11 +52,11 @@ "@fortawesome/free-brands-svg-icons": "^5.15.3", "@fortawesome/free-solid-svg-icons": "^5.15.3", "@fortawesome/react-fontawesome": "^0.1.14", - "@strapi/babel-plugin-switch-ee-ce": "4.1.5", + "@strapi/babel-plugin-switch-ee-ce": "4.1.6", "@strapi/design-system": "0.0.1-alpha.79", - "@strapi/helper-plugin": "4.1.5", + "@strapi/helper-plugin": "4.1.6", "@strapi/icons": "0.0.1-alpha.79", - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "axios": "0.24.0", "babel-loader": "8.2.3", "babel-plugin-styled-components": "2.0.2", diff --git a/packages/core/content-manager/package.json b/packages/core/content-manager/package.json index 82e4da49e8..dca9a38148 100644 --- a/packages/core/content-manager/package.json +++ b/packages/core/content-manager/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-content-manager", - "version": "4.1.5", + "version": "4.1.6", "description": "A powerful UI to easily manage your data.", "repository": { "type": "git", @@ -24,7 +24,7 @@ }, "dependencies": { "@sindresorhus/slugify": "1.1.0", - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "lodash": "4.17.21" }, "engines": { diff --git a/packages/core/content-type-builder/package.json b/packages/core/content-type-builder/package.json index 8bad8fd3df..bb3239fb8a 100644 --- a/packages/core/content-type-builder/package.json +++ b/packages/core/content-type-builder/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-content-type-builder", - "version": "4.1.5", + "version": "4.1.6", "description": "Strapi plugin to create content type", "repository": { "type": "git", @@ -28,9 +28,9 @@ }, "dependencies": { "@sindresorhus/slugify": "1.1.0", - "@strapi/generators": "4.1.5", - "@strapi/helper-plugin": "4.1.5", - "@strapi/utils": "4.1.5", + "@strapi/generators": "4.1.6", + "@strapi/helper-plugin": "4.1.6", + "@strapi/utils": "4.1.6", "fs-extra": "10.0.0", "lodash": "4.17.21", "pluralize": "^8.0.0", diff --git a/packages/core/database/package.json b/packages/core/database/package.json index be3c964c8b..85e110c33f 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/database", - "version": "4.1.5", + "version": "4.1.6", "description": "Strapi's database layer", "homepage": "https://strapi.io", "bugs": { diff --git a/packages/core/email/package.json b/packages/core/email/package.json index 1596208917..1ebfd1e895 100644 --- a/packages/core/email/package.json +++ b/packages/core/email/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-email", - "version": "4.1.5", + "version": "4.1.6", "description": "Easily configure your Strapi application to send emails.", "repository": { "type": "git", @@ -26,12 +26,12 @@ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll" }, "dependencies": { - "@strapi/provider-email-sendmail": "4.1.5", - "@strapi/utils": "4.1.5", + "@strapi/provider-email-sendmail": "4.1.6", + "@strapi/utils": "4.1.6", "lodash": "4.17.21" }, "devDependencies": { - "@strapi/helper-plugin": "4.1.5" + "@strapi/helper-plugin": "4.1.6" }, "engines": { "node": ">=12.22.0 <=16.x.x", diff --git a/packages/core/helper-plugin/package.json b/packages/core/helper-plugin/package.json index bccdcae7d5..770c155de3 100644 --- a/packages/core/helper-plugin/package.json +++ b/packages/core/helper-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/helper-plugin", - "version": "4.1.5", + "version": "4.1.6", "description": "Helper for Strapi plugins development", "repository": { "type": "git", diff --git a/packages/core/strapi/package.json b/packages/core/strapi/package.json index b57900f1e4..9d58bc5d93 100644 --- a/packages/core/strapi/package.json +++ b/packages/core/strapi/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/strapi", - "version": "4.1.5", + "version": "4.1.6", "description": "An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite", "keywords": [ "strapi", @@ -80,16 +80,16 @@ "dependencies": { "@koa/cors": "3.1.0", "@koa/router": "10.1.1", - "@strapi/admin": "4.1.5", - "@strapi/database": "4.1.5", - "@strapi/generate-new": "4.1.5", - "@strapi/generators": "4.1.5", - "@strapi/logger": "4.1.5", - "@strapi/plugin-content-manager": "4.1.5", - "@strapi/plugin-content-type-builder": "4.1.5", - "@strapi/plugin-email": "4.1.5", - "@strapi/plugin-upload": "4.1.5", - "@strapi/utils": "4.1.5", + "@strapi/admin": "4.1.6", + "@strapi/database": "4.1.6", + "@strapi/generate-new": "4.1.6", + "@strapi/generators": "4.1.6", + "@strapi/logger": "4.1.6", + "@strapi/plugin-content-manager": "4.1.6", + "@strapi/plugin-content-type-builder": "4.1.6", + "@strapi/plugin-email": "4.1.6", + "@strapi/plugin-upload": "4.1.6", + "@strapi/utils": "4.1.6", "bcryptjs": "2.4.3", "boxen": "5.1.2", "chalk": "4.1.2", diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json index 8c5c810cf3..f6d6e97619 100644 --- a/packages/core/upload/package.json +++ b/packages/core/upload/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-upload", - "version": "4.1.5", + "version": "4.1.6", "description": "Makes it easy to upload images and files to your Strapi Application.", "license": "SEE LICENSE IN LICENSE", "author": { @@ -23,9 +23,9 @@ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll" }, "dependencies": { - "@strapi/helper-plugin": "4.1.5", - "@strapi/provider-upload-local": "4.1.5", - "@strapi/utils": "4.1.5", + "@strapi/helper-plugin": "4.1.6", + "@strapi/provider-upload-local": "4.1.6", + "@strapi/utils": "4.1.6", "byte-size": "7.0.1", "cropperjs": "1.5.11", "fs-extra": "10.0.0", diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index dccb6d6c6f..30155f48e0 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/utils", - "version": "4.1.5", + "version": "4.1.6", "description": "Shared utilities for the Strapi packages", "keywords": [ "strapi", diff --git a/packages/generators/app/package.json b/packages/generators/app/package.json index dcfde2260a..e168e058c4 100644 --- a/packages/generators/app/package.json +++ b/packages/generators/app/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/generate-new", - "version": "4.1.5", + "version": "4.1.6", "description": "Generate a new Strapi application.", "keywords": [ "generate", diff --git a/packages/generators/generators/package.json b/packages/generators/generators/package.json index 9e965e8600..0682ed0a86 100644 --- a/packages/generators/generators/package.json +++ b/packages/generators/generators/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/generators", - "version": "4.1.5", + "version": "4.1.6", "description": "Interactive API generator.", "keywords": [ "strapi", @@ -30,7 +30,7 @@ "main": "lib/index.js", "dependencies": { "@sindresorhus/slugify": "1.1.0", - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "chalk": "4.1.2", "fs-extra": "10.0.0", "node-plop": "0.26.3", diff --git a/packages/plugins/documentation/package.json b/packages/plugins/documentation/package.json index 0fe4b6d109..8602ec4d13 100644 --- a/packages/plugins/documentation/package.json +++ b/packages/plugins/documentation/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-documentation", - "version": "4.1.5", + "version": "4.1.6", "description": "Create an OpenAPI Document and visualize your API with SWAGGER UI.", "repository": { "type": "git", @@ -24,8 +24,8 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/helper-plugin": "4.1.5", - "@strapi/utils": "4.1.5", + "@strapi/helper-plugin": "4.1.6", + "@strapi/utils": "4.1.6", "bcryptjs": "2.4.3", "cheerio": "^1.0.0-rc.5", "fs-extra": "10.0.0", diff --git a/packages/plugins/graphql/package.json b/packages/plugins/graphql/package.json index 9906ec689d..b364b88917 100644 --- a/packages/plugins/graphql/package.json +++ b/packages/plugins/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-graphql", - "version": "4.1.5", + "version": "4.1.6", "description": "Adds GraphQL endpoint with default API methods.", "repository": { "type": "git", @@ -30,7 +30,7 @@ "@apollo/federation": "^0.28.0", "@graphql-tools/schema": "8.1.2", "@graphql-tools/utils": "^8.0.2", - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "apollo-server-core": "3.1.2", "apollo-server-koa": "3.1.2", "glob": "^7.1.7", diff --git a/packages/plugins/i18n/package.json b/packages/plugins/i18n/package.json index c2a050a8ce..8b45977c18 100644 --- a/packages/plugins/i18n/package.json +++ b/packages/plugins/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-i18n", - "version": "4.1.5", + "version": "4.1.6", "description": "This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API", "repository": { "type": "git", @@ -24,7 +24,7 @@ "test:unit": "jest --verbose" }, "dependencies": { - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "lodash": "4.17.21" }, "engines": { diff --git a/packages/plugins/sentry/package.json b/packages/plugins/sentry/package.json index 6317ac49a1..72c8a7e0bc 100644 --- a/packages/plugins/sentry/package.json +++ b/packages/plugins/sentry/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-sentry", - "version": "4.1.5", + "version": "4.1.6", "description": "Send Strapi error events to Sentry", "repository": { "type": "git", diff --git a/packages/plugins/users-permissions/package.json b/packages/plugins/users-permissions/package.json index 10f07a6b75..cda6d374ba 100644 --- a/packages/plugins/users-permissions/package.json +++ b/packages/plugins/users-permissions/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/plugin-users-permissions", - "version": "4.1.5", + "version": "4.1.6", "description": "Protect your API with a full-authentication process based on JWT", "repository": { "type": "git", @@ -27,8 +27,8 @@ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll" }, "dependencies": { - "@strapi/helper-plugin": "4.1.5", - "@strapi/utils": "4.1.5", + "@strapi/helper-plugin": "4.1.6", + "@strapi/utils": "4.1.6", "bcryptjs": "2.4.3", "grant-koa": "5.4.8", "jsonwebtoken": "^8.1.0", diff --git a/packages/providers/email-amazon-ses/package.json b/packages/providers/email-amazon-ses/package.json index b01ba2c4d9..e6f8f68f45 100644 --- a/packages/providers/email-amazon-ses/package.json +++ b/packages/providers/email-amazon-ses/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-amazon-ses", - "version": "4.1.5", + "version": "4.1.6", "description": "Amazon SES provider for strapi email", "keywords": [ "email", @@ -36,7 +36,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "node-ses": "^3.0.3" }, "engines": { diff --git a/packages/providers/email-mailgun/package.json b/packages/providers/email-mailgun/package.json index 3c215b01bb..9c39bc768c 100644 --- a/packages/providers/email-mailgun/package.json +++ b/packages/providers/email-mailgun/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-mailgun", - "version": "4.1.5", + "version": "4.1.6", "description": "Mailgun provider for strapi email plugin", "keywords": [ "email", @@ -36,7 +36,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "mailgun-js": "0.22.0" }, "engines": { diff --git a/packages/providers/email-nodemailer/package.json b/packages/providers/email-nodemailer/package.json index 978c81d80c..796b87b443 100644 --- a/packages/providers/email-nodemailer/package.json +++ b/packages/providers/email-nodemailer/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-nodemailer", - "version": "4.1.5", + "version": "4.1.6", "description": "Nodemailer provider for Strapi 3", "keywords": [ "strapi", diff --git a/packages/providers/email-sendgrid/package.json b/packages/providers/email-sendgrid/package.json index 49379bf06f..9ad6910e76 100644 --- a/packages/providers/email-sendgrid/package.json +++ b/packages/providers/email-sendgrid/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-sendgrid", - "version": "4.1.5", + "version": "4.1.6", "description": "Sendgrid provider for strapi email", "keywords": [ "email", @@ -37,7 +37,7 @@ }, "dependencies": { "@sendgrid/mail": "7.4.7", - "@strapi/utils": "4.1.5" + "@strapi/utils": "4.1.6" }, "engines": { "node": ">=12.22.0 <=16.x.x", diff --git a/packages/providers/email-sendmail/package.json b/packages/providers/email-sendmail/package.json index 2ef5944d5d..8e723b0bb2 100644 --- a/packages/providers/email-sendmail/package.json +++ b/packages/providers/email-sendmail/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-email-sendmail", - "version": "4.1.5", + "version": "4.1.6", "description": "Sendmail provider for strapi email", "keywords": [ "email", @@ -35,7 +35,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "sendmail": "^1.6.1" }, "engines": { diff --git a/packages/providers/upload-aws-s3/package.json b/packages/providers/upload-aws-s3/package.json index a6478f5c71..ab9755da04 100644 --- a/packages/providers/upload-aws-s3/package.json +++ b/packages/providers/upload-aws-s3/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-aws-s3", - "version": "4.1.5", + "version": "4.1.6", "description": "AWS S3 provider for strapi upload", "keywords": [ "upload", diff --git a/packages/providers/upload-cloudinary/package.json b/packages/providers/upload-cloudinary/package.json index 6ba1b290e4..a9a878b69f 100644 --- a/packages/providers/upload-cloudinary/package.json +++ b/packages/providers/upload-cloudinary/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-cloudinary", - "version": "4.1.5", + "version": "4.1.6", "description": "Cloudinary provider for strapi upload", "keywords": [ "upload", @@ -36,7 +36,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "cloudinary": "^1.25.1", "into-stream": "^5.1.0" }, diff --git a/packages/providers/upload-local/package.json b/packages/providers/upload-local/package.json index bcb0545da4..b3a1085ae1 100644 --- a/packages/providers/upload-local/package.json +++ b/packages/providers/upload-local/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-local", - "version": "4.1.5", + "version": "4.1.6", "description": "Local provider for strapi upload", "keywords": [ "upload", @@ -35,7 +35,7 @@ "test": "echo \"no tests yet\"" }, "dependencies": { - "@strapi/utils": "4.1.5", + "@strapi/utils": "4.1.6", "fs-extra": "10.0.0" }, "engines": { diff --git a/packages/providers/upload-rackspace/package.json b/packages/providers/upload-rackspace/package.json index 423145a2ec..b8e5bd0577 100644 --- a/packages/providers/upload-rackspace/package.json +++ b/packages/providers/upload-rackspace/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/provider-upload-rackspace", - "version": "4.1.5", + "version": "4.1.6", "description": "Rackspace provider for strapi upload", "repository": { "type": "git", diff --git a/packages/utils/babel-plugin-switch-ee-ce/package.json b/packages/utils/babel-plugin-switch-ee-ce/package.json index 3d826d5327..e93275fe0d 100644 --- a/packages/utils/babel-plugin-switch-ee-ce/package.json +++ b/packages/utils/babel-plugin-switch-ee-ce/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/babel-plugin-switch-ee-ce", - "version": "4.1.5", + "version": "4.1.6", "private": false, "description": "Babel plugin to switch from CE to EE at runtime", "repository": "git://github.com/strapi/strapi.git", diff --git a/packages/utils/logger/package.json b/packages/utils/logger/package.json index 62dd421cb9..9d58d2dcd1 100644 --- a/packages/utils/logger/package.json +++ b/packages/utils/logger/package.json @@ -1,6 +1,6 @@ { "name": "@strapi/logger", - "version": "4.1.5", + "version": "4.1.6", "description": "Strapi's logger", "homepage": "https://strapi.io", "bugs": { diff --git a/yarn.lock b/yarn.lock index 95e4516b12..413555eb82 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5922,10 +5922,10 @@ resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.33.3.tgz#aacc6b3ea9f7b175e0c9a18c9b97e4005a2f4fcc" integrity sha512-JGZ11QV+/ZcfudW2Cz2JVp54/pJNXbsuWRgSh2ZmmZdQBKXqBtIGrwI1Wyx8nlbzAiEFe7FHi4K1zX4//jxTnQ== -"@vscode/sqlite3@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@vscode/sqlite3/-/sqlite3-5.0.7.tgz#358df36bb0e9e735c54785e3e4b9b2dce1d32895" - integrity sha512-NlsOf+Hir2r4zopI1qMvzWXPwPJuFscirkmFTniTAT24Yz2FWcyZxzK7UT8iSNiTqOCPz48yF55ZVHaz7tTuVQ== +"@vscode/sqlite3@5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@vscode/sqlite3/-/sqlite3-5.0.8.tgz#72b07061c5f90a9dd598a5506f598fcc817fab90" + integrity sha512-6wvQdMjpi1kwYI5mfzm98siEQb2mlBKX4xdNtJFj/uNqb6wqd3JOhk+5FL7geR0hduXE5lHjv+q69jtsEtUJDA== dependencies: node-addon-api "^4.2.0" @@ -6995,9 +6995,9 @@ aws-sdk@2.892.0: xml2js "0.4.19" aws-sdk@^2.382.0: - version "2.1102.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1102.0.tgz#00cceeb39966bf0000ff64d7fb237c38640618f5" - integrity sha512-MMOncE8IG3Dop3WPza6ryTAEz413ftn/MtDO7ouessb3ljlg5BfqRkTe/rhPH5svqEqJvlh7qHnK0VjgJwmLTQ== + version "2.1103.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1103.0.tgz#b0c69b8fd0a31729860bd9218f3c691d06240fcb" + integrity sha512-naSAcfoLs55byP8djBHXgZQF3pcsgyX815HSPYjqkzmlukbE9mCVoguUp5rbqLYbLgcnMw4tp2N4ohpBB3voIg== dependencies: buffer "4.9.2" events "1.1.1" @@ -9968,9 +9968,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.564: - version "1.4.98" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.98.tgz#1a9a0dec9792e78c5be1df052b6c74078d6b1b16" - integrity sha512-1IdsuSAnIGVxoYT1LkcUFb9MfjRxdHhCU9qiaDzhl1XvYgK9c8E2O9aJOPgGMQ68CSI8NxmLwrYhjvGauT8yuw== + version "1.4.101" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.101.tgz#71f3a10065146d7445ba5d4c06ba2cc063b0817a" + integrity sha512-XJH+XmJjACx1S7ASl/b//KePcda5ocPnFH2jErztXcIS8LpP0SE6rX8ZxiY5/RaDPnaF1rj0fPaHfppzb0e2Aw== electron-to-chromium@^1.4.84: version "1.4.85" @@ -10414,10 +10414,10 @@ eslint-plugin-node@11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-react-hooks@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" - integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== +eslint-plugin-react-hooks@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz#71c39e528764c848d8253e1aa2c7024ed505f6c4" + integrity sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ== eslint-plugin-react@7.29.4: version "7.29.4" @@ -15749,12 +15749,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minimist@^1.2.6: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -22075,9 +22070,9 @@ use-composed-ref@^1.0.0: integrity sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw== use-isomorphic-layout-effect@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz#7bb6589170cd2987a152042f9084f9effb75c225" - integrity sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== use-latest@^1.0.0: version "1.2.0"