Merge branch 'main' into chore/notification-variant

This commit is contained in:
ivanThePleasant 2023-01-16 16:57:54 +02:00 committed by GitHub
commit d26a24c79b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 332 additions and 63 deletions

View File

@ -0,0 +1,25 @@
# Linking the Strapi Design System
Follow these steps to use a local version of the Strapi design system with the Strapi monorepo
First, run `yarn build` in `strapi-design-system/packages/strapi-design-system` to generate the bundle.
In your copy of Strapi, you can link the design system using either a [relative path](#relative-path) or [yarn link](#yarn-link).
### Relative path
Replace the version number in both `strapi/packages/core/admin/package.json` and `strapi/packages/core/helper-plugin/package.json` with the relative path to your copy of the design system:
```
"@strapi/design-system": "link:../../../../strapi-design-system/packages/strapi-design-system"
```
### Yarn link
Alternatively, you can use [`yarn link`](https://classic.yarnpkg.com/lang/en/docs/cli/link/) by first running `yarn link` in `strapi-design-system/packages/design-system` and then `yarn link @strapi/design-system` in both `strapi/packages/core/admin` and `strapi/packages/core/helper-plugin`. With this approach, no changes need to be made to the `package.json`
Once the link is setup, run the following command from the root of the monorepo
```
yarn lerna clean && yarn setup
```

View File

@ -50,6 +50,17 @@ const sidebars = {
},
],
},
{
type: 'category',
label: 'Admin',
items: [
{
type: 'doc',
label: 'Link Strapi Design System',
id: 'core/admin/link-strapi-design-system',
},
],
},
{
type: 'category',
label: 'Content Type Builder',

View File

@ -19,7 +19,7 @@
"main": "lib/index.js",
"devDependencies": {
"@testing-library/jest-dom": "5.16.5",
"core-js": "3.26.1",
"core-js": "3.27.1",
"jest-styled-components": "7.1.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",

View File

@ -0,0 +1,3 @@
last 3 major versions
Firefox ESR
last 2 Opera versions

View File

@ -90,6 +90,7 @@ const Notification = ({ dispatch, notification }) => {
{formattedMessage({
id: message?.id || message,
defaultMessage: message?.defaultMessage || message?.id || message,
values: message?.values,
})}
</Alert>
);

View File

@ -973,7 +973,7 @@ describe('Wysiwyg render and actions buttons', () => {
fill="none"
focusable="false"
height="1em"
viewBox="0 0 24"
viewBox="0 0 24 24"
width="1em"
xmlns="http://www.w3.org/2000/svg"
>

View File

@ -37,6 +37,23 @@ jest.spyOn(axiosInstance, 'get').mockResolvedValue({
jest.spyOn(Date, 'now').mockImplementation(() => new Date('2015-10-01T08:00:00.000Z'));
// TO BE REMOVED: we have added this mock to prevent errors in the snapshots caused by the Unicode space character
// before AM/PM in the dates, after the introduction of node 18.13
jest.mock('react-intl', () => {
const reactIntl = jest.requireActual('react-intl');
const intl = reactIntl.createIntl({
locale: 'en',
});
intl.formatDate = jest.fn(() => '11/15/2021');
intl.formatTime = jest.fn(() => '12:00 AM');
return {
...reactIntl,
useIntl: () => intl,
};
});
const client = new QueryClient({
defaultOptions: {
queries: {

View File

@ -44,19 +44,20 @@
"@babel/preset-react": "7.18.6",
"@babel/runtime": "7.18.9",
"@casl/ability": "^5.4.3",
"@fingerprintjs/fingerprintjs": "3.3.3",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.7",
"@fingerprintjs/fingerprintjs": "3.3.6",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
"@strapi/babel-plugin-switch-ee-ce": "4.5.6",
"@strapi/design-system": "1.4.2",
"@strapi/helper-plugin": "4.5.6",
"@strapi/icons": "1.4.1",
"@strapi/icons": "1.4.2",
"@strapi/permissions": "4.5.6",
"@strapi/typescript-utils": "4.5.6",
"@strapi/utils": "4.5.6",
"axios": "1.2.1",
"axios": "1.2.2",
"babel-loader": "8.2.5",
"babel-plugin-styled-components": "2.0.2",
"bcryptjs": "2.4.3",
"browserslist-to-esbuild": "1.2.0",
"chalk": "^4.1.1",
"chokidar": "^3.5.1",
"codemirror": "^5.65.11",

View File

@ -10,6 +10,7 @@ const { ESBuildMinifyPlugin } = require('esbuild-loader');
const WebpackBar = require('webpackbar');
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin');
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
const browserslistToEsbuild = require('browserslist-to-esbuild');
const alias = require('./webpack.alias');
const getClientEnvironment = require('./env');
@ -52,6 +53,8 @@ module.exports = ({
const excludeRegex = createPluginsExcludePath(pluginsPath);
const buildTarget = browserslistToEsbuild();
return {
mode: isProduction ? 'production' : 'development',
bail: !!isProduction,
@ -72,7 +75,7 @@ module.exports = ({
minimize: optimize,
minimizer: [
new ESBuildMinifyPlugin({
target: 'es2015',
target: buildTarget,
css: true, // Apply minification to CSS assets
}),
],
@ -88,7 +91,7 @@ module.exports = ({
exclude: excludeRegex,
options: {
loader: 'tsx',
target: 'es2015',
target: buildTarget,
},
},
{
@ -152,7 +155,7 @@ module.exports = ({
loader: require.resolve('esbuild-loader'),
options: {
loader: 'jsx',
target: 'es2015',
target: buildTarget,
},
},
},
@ -165,7 +168,7 @@ module.exports = ({
loader: require.resolve('esbuild-loader'),
options: {
loader: 'jsx',
target: 'es2015',
target: buildTarget,
},
},
},

View File

@ -296,7 +296,9 @@ const cleanOrderColumnsForInnoDB = async ({
FROM :joinTableName: b
WHERE a.:orderColumnName: >= b.:orderColumnName: AND a.:joinColumnName: = b.:joinColumnName: AND a.:joinColumnName: = :id
) AS src_order
FROM :joinTableName: a`,
FROM :joinTableName: a
WHERE a.:joinColumnName: = :id
`,
{
tempOrderTableName,
joinTableName: joinTable.name,
@ -338,7 +340,9 @@ const cleanOrderColumnsForInnoDB = async ({
.map(() => '?')
.join(', ')})
) AS inv_order
FROM ?? a`,
FROM ?? a
WHERE a.?? IN (${inverseRelIds.map(() => '?').join(', ')})
`,
[
tempInvOrderTableName,
joinTable.name,
@ -349,6 +353,8 @@ const cleanOrderColumnsForInnoDB = async ({
inverseJoinColumn.name,
...inverseRelIds,
joinTable.name,
inverseJoinColumn.name,
...inverseRelIds,
]
)
.transacting(trx);

View File

@ -0,0 +1,3 @@
last 3 major versions
Firefox ESR
last 2 Opera versions

View File

@ -13,6 +13,38 @@ import { createMemoryHistory } from 'history';
import qs from 'qs';
import FilterListURLQuery from '../index';
// TO BE REMOVED: we have added this mock to prevent errors in the snapshots caused by the Unicode space character
// before AM/PM in the dates, after the introduction of node 18.13
jest.mock('react-intl', () => {
const reactIntl = jest.requireActual('react-intl');
const intl = reactIntl.createIntl({
locale: 'en',
messages: {
'components.FilterOptions.FILTER_TYPES.$eq': 'is',
'components.FilterOptions.FILTER_TYPES.$ne': 'is not',
'components.FilterOptions.FILTER_TYPES.$contains': 'contains (case sensitive)',
'components.FilterOptions.FILTER_TYPES.$notContains': 'does not contain (case sensitive)',
'components.FilterOptions.FILTER_TYPES.$gt': 'is greater than',
'components.FilterOptions.FILTER_TYPES.$gte': 'is greater than or equal to',
'components.FilterOptions.FILTER_TYPES.$lt': 'is lower than',
'components.FilterOptions.FILTER_TYPES.$lte': 'is lower than or equal to',
'components.FilterOptions.FILTER_TYPES.$startsWith': 'starts with',
'components.FilterOptions.FILTER_TYPES.$endsWith': 'ends with',
'components.FilterOptions.FILTER_TYPES.$null': 'is null',
'components.FilterOptions.FILTER_TYPES.$notNull': 'is not null',
},
textComponent: 'span',
});
intl.formatDate = jest.fn(() => 'Wednesday, September 1, 2021');
intl.formatTime = jest.fn(() => '12:45 AM');
return {
...reactIntl,
useIntl: () => intl,
};
});
const makeApp = (history, filtersSchema) => (
<Router history={history}>
<ThemeProvider theme={lightTheme}>

View File

@ -1,6 +1,6 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import { IntlProvider } from 'react-intl';
import { IntlProvider, useIntl } from 'react-intl';
import { ThemeProvider, lightTheme } from '@strapi/design-system';
import RelativeTime from '../index';
@ -12,6 +12,17 @@ const App = (
</ThemeProvider>
);
// TO BE REMOVED: we have added this mock to prevent errors in the snapshots caused by the Unicode space character
// before AM/PM in the dates, after the introduction of node 18.13
jest.mock('react-intl', () => ({
...jest.requireActual('react-intl'),
useIntl: jest.fn(() => ({
formatDate: jest.fn(() => '10/1/2015'),
formatTime: jest.fn(() => '7:55 AM'),
formatRelativeTime: jest.fn(() => '5 minutes ago'),
})),
}));
describe('RelativeTime', () => {
beforeEach(() => {
jest.spyOn(Date, 'now').mockImplementation(() => new Date('2015-10-01 08:00:00'));
@ -37,6 +48,11 @@ describe('RelativeTime', () => {
});
it('can display the relative time for a future date', () => {
useIntl.mockReturnValueOnce({
formatDate: jest.fn(() => '10/1/2015'),
formatTime: jest.fn(() => '7:50 AM'),
formatRelativeTime: jest.fn(() => 'in 5 minutes'),
});
jest.spyOn(Date, 'now').mockImplementation(() => new Date('2015-10-01 07:50:00'));
render(App);
@ -45,6 +61,11 @@ describe('RelativeTime', () => {
});
it('can display the relative time for a past date', () => {
useIntl.mockReturnValueOnce({
formatDate: jest.fn(() => '10/1/2015'),
formatTime: jest.fn(() => '8:00 AM'),
formatRelativeTime: jest.fn(() => '5 minutes ago'),
});
jest.spyOn(Date, 'now').mockImplementation(() => new Date('2015-10-01 08:00:00'));
render(App);

View File

@ -39,7 +39,7 @@
"watch": "yarn create:index && cross-env NODE_ENV=development webpack-cli -w"
},
"dependencies": {
"axios": "1.2.1",
"axios": "1.2.2",
"date-fns": "2.29.3",
"formik": "^2.2.6",
"immer": "9.0.6",
@ -65,9 +65,10 @@
"@storybook/manager-webpack5": "6.5.15",
"@storybook/react": "^6.5.10",
"@strapi/design-system": "1.4.2",
"@strapi/icons": "1.4.1",
"@strapi/icons": "1.4.2",
"@testing-library/react": "12.1.4",
"@testing-library/react-hooks": "8.0.1",
"browserslist-to-esbuild": "1.2.0",
"cross-env": "^7.0.3",
"esbuild-loader": "^2.20.0",
"react-test-renderer": "^17.0.2",

View File

@ -1,5 +1,6 @@
const webpack = require('webpack');
const { ESBuildMinifyPlugin } = require('esbuild-loader');
const browserslistToEsbuild = require('browserslist-to-esbuild');
const packageJson = require('./package.json');
@ -42,7 +43,7 @@ module.exports = {
loader: require.resolve('esbuild-loader'),
options: {
loader: 'jsx',
target: 'es2015',
target: browserslistToEsbuild(),
},
},
},

View File

@ -0,0 +1,97 @@
'use strict';
const { createTestBuilder } = require('../../../../../test/helpers/builder');
const { createStrapiInstance } = require('../../../../../test/helpers/strapi');
const { createContentAPIRequest } = require('../../../../../test/helpers/request');
let strapi;
let rq;
const component = {
displayName: 'somecomponent',
attributes: {
name: {
type: 'string',
},
},
};
const ct = {
displayName: 'withcomponent',
singularName: 'withcomponent',
pluralName: 'withcomponents',
attributes: {
field: {
type: 'component',
component: 'default.somecomponent',
repeatable: true,
required: false,
},
},
};
const createEntity = async (data) => {
return rq.post('/', {
body: { data },
qs: { populate: ['field'] },
});
};
const updateEntity = async (id, data) => {
return rq.put(`/${id}`, {
body: { data },
qs: { populate: ['field'] },
});
};
const getEntity = async (id) => {
return rq.get(`/${id}`, {
qs: { populate: ['field'] },
});
};
describe('Given a content type with a repeatable component and two entities created', () => {
const builder = createTestBuilder();
let entity1;
let entity2;
beforeAll(async () => {
await builder.addComponent(component).addContentType(ct).build();
strapi = await createStrapiInstance();
rq = await createContentAPIRequest({ strapi });
rq.setURLPrefix('/api/withcomponents');
// Create two entities
const res1 = await createEntity({ field: [{ name: 'field1' }, { name: 'field2' }] });
entity1 = res1.body.data;
const res2 = await createEntity({ field: [{ name: 'field1' }, { name: 'field2' }] });
entity2 = res2.body.data;
});
afterAll(async () => {
await strapi.destroy();
await builder.cleanup();
});
describe('When I update the order of one of the entities components', () => {
test('Then the order of both entity components is preserved', async () => {
const updatedEntity1 = await updateEntity(entity1.id, {
field: [entity1.attributes.field[1], entity1.attributes.field[0]],
});
const res = await getEntity(entity2.id);
expect(updatedEntity1.body.data.attributes.field).toEqual([
{ id: expect.anything(), name: 'field2' },
{ id: expect.anything(), name: 'field1' },
]);
expect(res.statusCode).toBe(200);
expect(res.body.data.attributes.field).toEqual([
{ id: expect.anything(), name: 'field1' },
{ id: expect.anything(), name: 'field2' },
]);
});
});
});

View File

@ -13,6 +13,7 @@ const VideoPreviewWrapper = styled(Box)`
canvas,
video {
display: block;
pointer-events: none;
max-width: 100%;
max-height: ${({ size }) => (size === 'M' ? 164 / 16 : 88 / 16)}rem;
}

View File

@ -332,6 +332,7 @@ exports[`MediaLibrary / AssetList snapshots the asset list 1`] = `
.c28 canvas,
.c28 video {
display: block;
pointer-events: none;
max-width: 100%;
max-height: 10.25rem;
}

View File

@ -1,6 +1,7 @@
import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { useIntl } from 'react-intl';
import { useNotification } from '@strapi/helper-plugin';
import { AssetDialog } from '../AssetDialog';
import { AssetDefinition } from '../../constants';
@ -8,6 +9,7 @@ import { CarouselAssets } from './Carousel/CarouselAssets';
import { EditFolderDialog } from '../EditFolderDialog';
import { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';
import getAllowedFiles from '../../utils/getAllowedFiles';
import getTrad from '../../utils/getTrad';
const STEPS = {
AssetSelect: 'SelectAsset',
@ -35,6 +37,7 @@ export const MediaLibraryInput = ({
const [droppedAssets, setDroppedAssets] = useState();
const [folderId, setFolderId] = useState(null);
const { formatMessage } = useIntl();
const toggleNotification = useNotification();
useEffect(() => {
// Clear the uploaded files on close
@ -100,8 +103,24 @@ export const MediaLibraryInput = ({
};
const handleAssetDrop = (assets) => {
setDroppedAssets(assets);
setStep(STEPS.AssetUpload);
const allowedAssets = getAllowedFiles(fieldAllowedTypes, assets);
if (allowedAssets.length > 0) {
setDroppedAssets(allowedAssets);
setStep(STEPS.AssetUpload);
} else {
toggleNotification({
type: 'warning',
timeout: 4000,
message: {
id: getTrad('input.notification.not-supported'),
defaultMessage: `You can't upload this type of file.`,
values: {
fileTypes: fieldAllowedTypes.join(','),
},
},
});
}
};
let label = intlLabel.id ? formatMessage(intlLabel) : '';

View File

@ -680,6 +680,7 @@ exports[`PendingAssetStep snapshots the component with valid cards 1`] = `
.c50 canvas,
.c50 video {
display: block;
pointer-events: none;
max-width: 100%;
max-height: 5.5rem;
}

View File

@ -38,6 +38,7 @@
"input.placeholder.icon": "Drop the asset in this zone",
"input.url.description": "Separate your URL links by a carriage return.",
"input.url.label": "URL",
"input.notification.not-supported": "You can't upload this type of file, only the following types are accepted {fileTypes}",
"list.assets.title": "Assets ({count})",
"list.asset.at.finished": "The assets have finished loading.",
"list.assets-empty.search": "No result found",

114
yarn.lock
View File

@ -1889,10 +1889,10 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
"@fingerprintjs/fingerprintjs@3.3.3":
version "3.3.3"
resolved "https://registry.yarnpkg.com/@fingerprintjs/fingerprintjs/-/fingerprintjs-3.3.3.tgz#ead445032c92a79d5f585953019402ed223edc7d"
integrity sha512-HH6KqZnopF3NIXypYG4f2qxoSRmGCSzp81wJMfWjSTtvsX3cAg12RFJcm+a6Az3XadcZUrXKW3p5Dv0wyCUeuA==
"@fingerprintjs/fingerprintjs@3.3.6":
version "3.3.6"
resolved "https://registry.yarnpkg.com/@fingerprintjs/fingerprintjs/-/fingerprintjs-3.3.6.tgz#4c3f1726dc0cb10b915cfce78d9471b38cd809bd"
integrity sha512-Inh0OoFVzO2PLvrUF8RZhY9NVDdg9DJHQ5YlvXhrGtQxSPzy2smS3TWzLAi+zlHSJNHSvi+1zYayLen2lGxjdA==
dependencies:
tslib "^2.0.1"
@ -3652,18 +3652,18 @@
node-addon-api "^3.2.1"
node-gyp-build "^4.3.0"
"@pmmmwh/react-refresh-webpack-plugin@0.5.7", "@pmmmwh/react-refresh-webpack-plugin@^0.5.3":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.7.tgz#58f8217ba70069cc6a73f5d7e05e85b458c150e2"
integrity sha512-bcKCAzF0DV2IIROp9ZHkRJa6O4jy7NlnHdWL3GmcUxYWNjLXkK5kfELELwEfSP5hXPfVL/qOGMAROuMQb9GG8Q==
"@pmmmwh/react-refresh-webpack-plugin@0.5.10", "@pmmmwh/react-refresh-webpack-plugin@^0.5.3":
version "0.5.10"
resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8"
integrity sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==
dependencies:
ansi-html-community "^0.0.8"
common-path-prefix "^3.0.0"
core-js-pure "^3.8.1"
core-js-pure "^3.23.3"
error-stack-parser "^2.0.6"
find-up "^5.0.0"
html-entities "^2.1.0"
loader-utils "^2.0.0"
loader-utils "^2.0.4"
schema-utils "^3.0.0"
source-map "^0.7.3"
@ -5316,10 +5316,10 @@
regenerator-runtime "^0.13.7"
resolve-from "^5.0.0"
"@strapi/design-system@1.4.1":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@strapi/design-system/-/design-system-1.4.1.tgz#f2daa634eaa4f22ac29e6b2b86791187aaa9887e"
integrity sha512-olDi71FFQFU9luSC0yvIwB0i77Y/JIvt9HyLcUhK/rsRyiaiNzplAe5hi5aaphhJv++9rML2nSiwgfX/V4a5ZA==
"@strapi/design-system@1.4.2":
version "1.4.2"
resolved "https://registry.yarnpkg.com/@strapi/design-system/-/design-system-1.4.2.tgz#fbbce86ca616f3dd33c811029bfbc90e1fa38a12"
integrity sha512-0zH2c2t2XFKhw7N7VCmH4goaFZi6bKseyMtrb15oo4WYJzqZgTR/ER88L6gaDserW5xFu97yXHkYz+Ammk1exQ==
dependencies:
"@floating-ui/react-dom" "^1.0.0"
"@internationalized/number" "^3.1.1"
@ -5349,10 +5349,10 @@
optionalDependencies:
typescript "^4.6.2"
"@strapi/icons@1.4.1":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@strapi/icons/-/icons-1.4.1.tgz#121a2f68f65ac1b29031b7ab1e9774e17dbaeead"
integrity sha512-bwVM5NVXUJEUbbeelOVEslDIbGdZAGSwFSdV6Erb2Cwp3gtYB5Hfu4bRbVPeSwRWsd3IseC0USDpOQ3PzLK1qg==
"@strapi/icons@1.4.2":
version "1.4.2"
resolved "https://registry.yarnpkg.com/@strapi/icons/-/icons-1.4.2.tgz#29e52aef88e9c5b125f296af9e861bc71433e16e"
integrity sha512-V56sfBItnQ+lU/fU+nCYSQDjBK57EOxWKeM99tBx0RYhZzMJ5gRplWKsNRl/JhErVEPait0Dlv73EaixhdTyhw==
"@stylelint/postcss-css-in-js@^0.37.2":
version "0.37.3"
@ -7374,10 +7374,10 @@ axe-core@^4.4.3:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f"
integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==
axios@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.1.tgz#44cf04a3c9f0c2252ebd85975361c026cb9f864a"
integrity sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==
axios@1.2.2, axios@^1.0.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1"
integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
@ -7390,15 +7390,6 @@ axios@^0.26.0:
dependencies:
follow-redirects "^1.14.8"
axios@^1.0.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1"
integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
proxy-from-env "^1.1.0"
axobject-query@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
@ -7930,6 +7921,13 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
browserslist-to-esbuild@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/browserslist-to-esbuild/-/browserslist-to-esbuild-1.2.0.tgz#5c5b9ca73106da02e0168007396c4ec4c1e6d643"
integrity sha512-ftrrbI/VHBgEnmnSyhkqvQVMp6jAKybfs0qMIlm7SLBrQTGMsdCIP4q3BoKeLsZTBQllIQtY9kbxgRYV2WU47g==
dependencies:
browserslist "^4.17.3"
browserslist@^4.12.0, browserslist@^4.14.5:
version "4.20.2"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88"
@ -7941,6 +7939,16 @@ browserslist@^4.12.0, browserslist@^4.14.5:
node-releases "^2.0.2"
picocolors "^1.0.0"
browserslist@^4.17.3:
version "4.21.4"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
dependencies:
caniuse-lite "^1.0.30001400"
electron-to-chromium "^1.4.251"
node-releases "^2.0.6"
update-browserslist-db "^1.0.9"
browserslist@^4.20.2:
version "4.21.0"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.0.tgz#7ab19572361a140ecd1e023e2c1ed95edda0cefe"
@ -8283,6 +8291,11 @@ caniuse-lite@^1.0.30001370:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz#2dc3bc3bfcb5d5a929bec11300883040d7b4b4be"
integrity sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==
caniuse-lite@^1.0.30001400:
version "1.0.30001442"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz#40337f1cf3be7c637b061e2f78582dc1daec0614"
integrity sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==
capture-exit@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
@ -9196,15 +9209,15 @@ core-js-compat@^3.8.1:
dependencies:
browserslist "^4.21.3"
core-js-pure@^3.20.2, core-js-pure@^3.8.1:
version "3.24.1"
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.24.1.tgz#8839dde5da545521bf282feb7dc6d0b425f39fd3"
integrity sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg==
core-js-pure@^3.20.2, core-js-pure@^3.23.3:
version "3.27.1"
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.27.1.tgz#ede4a6b8440585c7190062757069c01d37a19dca"
integrity sha512-BS2NHgwwUppfeoqOXqi08mUqS5FiZpuRuJJpKsaME7kJz0xxuk0xkhDdfMIlP/zLa80krBqss1LtD7f889heAw==
core-js@3.26.1, core-js@^3.0.4, core-js@^3.6.5, core-js@^3.8.2:
version "3.26.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.26.1.tgz#7a9816dabd9ee846c1c0fe0e8fcad68f3709134e"
integrity sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==
core-js@3.27.1, core-js@^3.0.4, core-js@^3.6.5, core-js@^3.8.2:
version "3.27.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.27.1.tgz#23cc909b315a6bb4e418bf40a52758af2103ba46"
integrity sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==
core-js@3.6.5:
version "3.6.5"
@ -10149,6 +10162,11 @@ electron-to-chromium@^1.4.202:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.208.tgz#ecb5b47c8cc212a43172ffc5ce50178a638a5d74"
integrity sha512-diMr4t69FigAGUk2KovP0bygEtN/9AkqEVkzjEp0cu+zFFbZMVvwACpTTfuj1mAmFR5kNoSW8wGKDFWIvmThiQ==
electron-to-chromium@^1.4.251:
version "1.4.284"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
electron-to-chromium@^1.4.84:
version "1.4.106"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz#e7a3bfa9d745dd9b9e597616cb17283cc349781a"
@ -15043,10 +15061,10 @@ loader-utils@^1.2.3:
emojis-list "^3.0.0"
json5 "^1.0.1"
loader-utils@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
loader-utils@^2.0.0, loader-utils@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c"
integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==
dependencies:
big.js "^5.2.2"
emojis-list "^3.0.0"
@ -17465,8 +17483,6 @@ path-case@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5"
integrity sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=
dependencies:
no-case "^2.2.0"
path-dirname@^1.0.0:
version "1.0.2"
@ -21516,6 +21532,14 @@ update-browserslist-db@^1.0.0, update-browserslist-db@^1.0.5:
escalade "^3.1.1"
picocolors "^1.0.0"
update-browserslist-db@^1.0.9:
version "1.0.10"
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
dependencies:
escalade "^3.1.1"
picocolors "^1.0.0"
upper-case-first@^1.1.0, upper-case-first@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115"