diff --git a/packages/web/.eslintignore b/packages/web/.eslintignore
index 14672a63..49a23822 100644
--- a/packages/web/.eslintignore
+++ b/packages/web/.eslintignore
@@ -1,3 +1,4 @@
node_modules
build
-source
\ No newline at end of file
+source
+.eslintrc.js
diff --git a/packages/web/.eslintrc.js b/packages/web/.eslintrc.js
index ab66f332..50134026 100644
--- a/packages/web/.eslintrc.js
+++ b/packages/web/.eslintrc.js
@@ -4,4 +4,7 @@ module.exports = {
'plugin:@tanstack/eslint-plugin-query/recommended',
'prettier',
],
+ rules: {
+ 'react/prop-types': 'warn',
+ },
};
diff --git a/packages/web/package.json b/packages/web/package.json
index a1fc9ee2..5b869c23 100644
--- a/packages/web/package.json
+++ b/packages/web/package.json
@@ -19,7 +19,6 @@
"@testing-library/user-event": "^12.1.10",
"clipboard-copy": "^4.0.1",
"compare-versions": "^4.1.3",
- "eslint-plugin-react": "^7.33.2",
"graphql": "^15.6.0",
"lodash": "^4.17.21",
"luxon": "^2.3.1",
@@ -47,7 +46,7 @@
"build:watch": "yarn nodemon --exec react-scripts build --watch 'src/**/*.ts' --watch 'public/**/*' --ext ts,html",
"test": "react-scripts test",
"eject": "react-scripts eject",
- "lint": "eslint .",
+ "lint": "eslint src --ext .js,.jsx",
"prepack": "yarn build"
},
"files": [
diff --git a/packages/web/src/components/AccountDropdownMenu/index.jsx b/packages/web/src/components/AccountDropdownMenu/index.jsx
index 17c31d8c..d60a4a66 100644
--- a/packages/web/src/components/AccountDropdownMenu/index.jsx
+++ b/packages/web/src/components/AccountDropdownMenu/index.jsx
@@ -1,5 +1,6 @@
import * as React from 'react';
import { useNavigate } from 'react-router-dom';
+import PropTypes from 'prop-types';
import MenuItem from '@mui/material/MenuItem';
import Menu from '@mui/material/Menu';
import { Link } from 'react-router-dom';
@@ -51,4 +52,12 @@ function AccountDropdownMenu(props) {
);
}
+
+AccountDropdownMenu.propTypes = {
+ open: PropTypes.bool.isRequired,
+ onClose: PropTypes.func.isRequired,
+ anchorEl: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
+ id: PropTypes.string.isRequired,
+};
+
export default AccountDropdownMenu;
diff --git a/packages/web/src/components/AddAppConnection/index.jsx b/packages/web/src/components/AddAppConnection/index.jsx
index 87db10bf..3b9737ea 100644
--- a/packages/web/src/components/AddAppConnection/index.jsx
+++ b/packages/web/src/components/AddAppConnection/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import LoadingButton from '@mui/lab/LoadingButton';
import Alert from '@mui/material/Alert';
import Dialog from '@mui/material/Dialog';
@@ -6,6 +7,8 @@ import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import * as React from 'react';
import { useNavigate, useSearchParams } from 'react-router-dom';
+
+import { AppPropType } from 'propTypes/propTypes';
import AppAuthClientsDialog from 'components/AppAuthClientsDialog/index.ee';
import InputCreator from 'components/InputCreator';
import * as URLS from 'config/urls';
@@ -13,7 +16,8 @@ import useAuthenticateApp from 'hooks/useAuthenticateApp.ee';
import useFormatMessage from 'hooks/useFormatMessage';
import { generateExternalLink } from 'helpers/translationValues';
import { Form } from './style';
-export default function AddAppConnection(props) {
+
+function AddAppConnection(props) {
const { application, connectionId, onClose } = props;
const { name, authDocUrl, key, auth } = application;
const navigate = useNavigate();
@@ -137,3 +141,11 @@ export default function AddAppConnection(props) {
);
}
+
+AddAppConnection.propTypes = {
+ onClose: PropTypes.func.isRequired,
+ application: AppPropType.isRequired,
+ connectionId: PropTypes.string,
+};
+
+export default AddAppConnection;
diff --git a/packages/web/src/components/AddNewAppConnection/index.jsx b/packages/web/src/components/AddNewAppConnection/index.jsx
index 4180f84d..def8b3cc 100644
--- a/packages/web/src/components/AddNewAppConnection/index.jsx
+++ b/packages/web/src/components/AddNewAppConnection/index.jsx
@@ -1,4 +1,5 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import { useLazyQuery } from '@apollo/client';
import { Link } from 'react-router-dom';
import debounce from 'lodash/debounce';
@@ -23,13 +24,14 @@ import * as URLS from 'config/urls';
import AppIcon from 'components/AppIcon';
import { GET_APPS } from 'graphql/queries/get-apps';
import useFormatMessage from 'hooks/useFormatMessage';
+
function createConnectionOrFlow(appKey, supportsConnections = false) {
if (!supportsConnections) {
return URLS.CREATE_FLOW_WITH_APP(appKey);
}
return URLS.APP_ADD_CONNECTION(appKey);
}
-export default function AddNewAppConnection(props) {
+function AddNewAppConnection(props) {
const { onClose } = props;
const theme = useTheme();
const matchSmallScreens = useMediaQuery(theme.breakpoints.down('sm'));
@@ -136,3 +138,9 @@ export default function AddNewAppConnection(props) {
);
}
+
+AddNewAppConnection.propTypes = {
+ onClose: PropTypes.func.isRequired,
+};
+
+export default AddNewAppConnection;
diff --git a/packages/web/src/components/AdminApplicationAuthClientDialog/index.jsx b/packages/web/src/components/AdminApplicationAuthClientDialog/index.jsx
index c15564a5..2fc93069 100644
--- a/packages/web/src/components/AdminApplicationAuthClientDialog/index.jsx
+++ b/packages/web/src/components/AdminApplicationAuthClientDialog/index.jsx
@@ -1,4 +1,5 @@
-import React from 'react';
+import * as React from 'react';
+import PropTypes from 'prop-types';
import LoadingButton from '@mui/lab/LoadingButton';
import Alert from '@mui/material/Alert';
import Dialog from '@mui/material/Dialog';
@@ -6,12 +7,16 @@ import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import CircularProgress from '@mui/material/CircularProgress';
+import { ApolloError } from '@apollo/client';
+
+import { FieldPropType } from 'propTypes/propTypes';
import useFormatMessage from 'hooks/useFormatMessage';
import InputCreator from 'components/InputCreator';
import Switch from 'components/Switch';
import TextField from 'components/TextField';
import { Form } from './style';
-export default function AdminApplicationAuthClientDialog(props) {
+
+function AdminApplicationAuthClientDialog(props) {
const {
error,
onClose,
@@ -80,3 +85,17 @@ export default function AdminApplicationAuthClientDialog(props) {
);
}
+
+AdminApplicationAuthClientDialog.propTypes = {
+ error: PropTypes.instanceOf(ApolloError),
+ onClose: PropTypes.func.isRequired,
+ title: PropTypes.string.isRequired,
+ loading: PropTypes.bool.isRequired,
+ submitHandler: PropTypes.func.isRequired,
+ authFields: PropTypes.arrayOf(FieldPropType),
+ submitting: PropTypes.bool.isRequired,
+ defaultValues: PropTypes.object.isRequired,
+ disabled: PropTypes.bool,
+};
+
+export default AdminApplicationAuthClientDialog;
diff --git a/packages/web/src/components/AdminApplicationAuthClients/index.jsx b/packages/web/src/components/AdminApplicationAuthClients/index.jsx
index f311a548..d9bc9135 100644
--- a/packages/web/src/components/AdminApplicationAuthClients/index.jsx
+++ b/packages/web/src/components/AdminApplicationAuthClients/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import { Link } from 'react-router-dom';
import CircularProgress from '@mui/material/CircularProgress';
import Stack from '@mui/material/Stack';
@@ -11,6 +12,7 @@ import * as URLS from 'config/urls';
import useFormatMessage from 'hooks/useFormatMessage';
import useAppAuthClients from 'hooks/useAppAuthClients.ee';
import NoResultFound from 'components/NoResultFound';
+
function AdminApplicationAuthClients(props) {
const { appKey } = props;
const formatMessage = useFormatMessage();
@@ -72,4 +74,9 @@ function AdminApplicationAuthClients(props) {
);
}
+
+AdminApplicationAuthClients.propTypes = {
+ appKey: PropTypes.string.isRequired,
+};
+
export default AdminApplicationAuthClients;
diff --git a/packages/web/src/components/AdminApplicationCreateAuthClient/index.jsx b/packages/web/src/components/AdminApplicationCreateAuthClient/index.jsx
index c253382e..4fe7c0e4 100644
--- a/packages/web/src/components/AdminApplicationCreateAuthClient/index.jsx
+++ b/packages/web/src/components/AdminApplicationCreateAuthClient/index.jsx
@@ -1,11 +1,15 @@
+import PropTypes from 'prop-types';
import React, { useCallback, useMemo } from 'react';
import { useMutation } from '@apollo/client';
+
+import { AppPropType } from 'propTypes/propTypes';
import { CREATE_APP_CONFIG } from 'graphql/mutations/create-app-config';
import { CREATE_APP_AUTH_CLIENT } from 'graphql/mutations/create-app-auth-client';
import useAppConfig from 'hooks/useAppConfig.ee';
import useFormatMessage from 'hooks/useFormatMessage';
import AdminApplicationAuthClientDialog from 'components/AdminApplicationAuthClientDialog';
-export default function AdminApplicationCreateAuthClient(props) {
+
+function AdminApplicationCreateAuthClient(props) {
const { appKey, application, onClose } = props;
const { auth } = application;
const formatMessage = useFormatMessage();
@@ -87,3 +91,11 @@ export default function AdminApplicationCreateAuthClient(props) {
/>
);
}
+
+AdminApplicationCreateAuthClient.propTypes = {
+ appKey: PropTypes.string.isRequired,
+ application: AppPropType.isRequired,
+ onClose: PropTypes.func.isRequired,
+};
+
+export default AdminApplicationCreateAuthClient;
diff --git a/packages/web/src/components/AdminApplicationSettings/index.jsx b/packages/web/src/components/AdminApplicationSettings/index.jsx
index bf8c7bbd..63fc36d7 100644
--- a/packages/web/src/components/AdminApplicationSettings/index.jsx
+++ b/packages/web/src/components/AdminApplicationSettings/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import { useMemo } from 'react';
import useAppConfig from 'hooks/useAppConfig.ee';
import useFormatMessage from 'hooks/useFormatMessage';
@@ -11,6 +12,7 @@ import { UPDATE_APP_CONFIG } from 'graphql/mutations/update-app-config';
import Form from 'components/Form';
import { Switch } from './style';
import useEnqueueSnackbar from 'hooks/useEnqueueSnackbar';
+
function AdminApplicationSettings(props) {
const { appConfig, loading } = useAppConfig(props.appKey);
const [createAppConfig, { loading: loadingCreateAppConfig }] = useMutation(
@@ -109,4 +111,9 @@ function AdminApplicationSettings(props) {
>
);
}
+
+AdminApplicationSettings.propTypes = {
+ appKey: PropTypes.string.isRequired,
+};
+
export default AdminApplicationSettings;
diff --git a/packages/web/src/components/AdminApplicationUpdateAuthClient/index.jsx b/packages/web/src/components/AdminApplicationUpdateAuthClient/index.jsx
index f837a709..420bfeb4 100644
--- a/packages/web/src/components/AdminApplicationUpdateAuthClient/index.jsx
+++ b/packages/web/src/components/AdminApplicationUpdateAuthClient/index.jsx
@@ -1,13 +1,15 @@
+import PropTypes from 'prop-types';
import React, { useCallback, useMemo } from 'react';
import { useParams } from 'react-router-dom';
import { useMutation } from '@apollo/client';
+import { AppPropType } from 'propTypes/propTypes';
import { UPDATE_APP_AUTH_CLIENT } from 'graphql/mutations/update-app-auth-client';
import useFormatMessage from 'hooks/useFormatMessage';
import AdminApplicationAuthClientDialog from 'components/AdminApplicationAuthClientDialog';
import useAdminAppAuthClient from 'hooks/useAdminAppAuthClient.ee';
-export default function AdminApplicationUpdateAuthClient(props) {
+function AdminApplicationUpdateAuthClient(props) {
const { application, onClose } = props;
const { auth } = application;
const formatMessage = useFormatMessage();
@@ -87,3 +89,10 @@ export default function AdminApplicationUpdateAuthClient(props) {
/>
);
}
+
+AdminApplicationUpdateAuthClient.propTypes = {
+ application: AppPropType.isRequired,
+ onClose: PropTypes.func.isRequired,
+};
+
+export default AdminApplicationUpdateAuthClient;
diff --git a/packages/web/src/components/AdminSettingsLayout/index.jsx b/packages/web/src/components/AdminSettingsLayout/index.jsx
index df3990ca..3db28cc9 100644
--- a/packages/web/src/components/AdminSettingsLayout/index.jsx
+++ b/packages/web/src/components/AdminSettingsLayout/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';
import GroupIcon from '@mui/icons-material/Group';
import GroupsIcon from '@mui/icons-material/Groups';
@@ -14,6 +15,7 @@ import Drawer from 'components/Drawer';
import * as URLS from 'config/urls';
import useFormatMessage from 'hooks/useFormatMessage';
import useCurrentUserAbility from 'hooks/useCurrentUserAbility';
+
function createDrawerLinks({
canReadRole,
canReadUser,
@@ -65,7 +67,8 @@ function createDrawerLinks({
].filter(Boolean);
return items;
}
-export default function SettingsLayout({ children }) {
+
+function SettingsLayout({ children }) {
const theme = useTheme();
const formatMessage = useFormatMessage();
const currentUserAbility = useCurrentUserAbility();
@@ -83,7 +86,6 @@ export default function SettingsLayout({ children }) {
currentUserAbility.can('create', 'SamlAuthProvider'),
canUpdateApp: currentUserAbility.can('update', 'App'),
});
- const a = 123;
const drawerBottomLinks = [
{
Icon: ArrowBackIosNewIcon,
@@ -118,3 +120,9 @@ export default function SettingsLayout({ children }) {
>
);
}
+
+SettingsLayout.propTypes = {
+ children: PropTypes.node.isRequired,
+};
+
+export default SettingsLayout;
diff --git a/packages/web/src/components/ApolloProvider/index.jsx b/packages/web/src/components/ApolloProvider/index.jsx
index 09fe2a28..d6fb3f26 100644
--- a/packages/web/src/components/ApolloProvider/index.jsx
+++ b/packages/web/src/components/ApolloProvider/index.jsx
@@ -3,6 +3,7 @@ import * as React from 'react';
import { mutateAndGetClient } from 'graphql/client';
import useAuthentication from 'hooks/useAuthentication';
import useEnqueueSnackbar from 'hooks/useEnqueueSnackbar';
+
const ApolloProvider = (props) => {
const enqueueSnackbar = useEnqueueSnackbar();
const authentication = useAuthentication();
@@ -25,4 +26,5 @@ const ApolloProvider = (props) => {
}, [onError, authentication]);
return ;
};
+
export default ApolloProvider;
diff --git a/packages/web/src/components/AppAuthClientsDialog/index.ee.jsx b/packages/web/src/components/AppAuthClientsDialog/index.ee.jsx
index 395bdc24..e6258946 100644
--- a/packages/web/src/components/AppAuthClientsDialog/index.ee.jsx
+++ b/packages/web/src/components/AppAuthClientsDialog/index.ee.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import Dialog from '@mui/material/Dialog';
import DialogTitle from '@mui/material/DialogTitle';
import List from '@mui/material/List';
@@ -7,7 +8,8 @@ import ListItemText from '@mui/material/ListItemText';
import * as React from 'react';
import useAppAuthClients from 'hooks/useAppAuthClients.ee';
import useFormatMessage from 'hooks/useFormatMessage';
-export default function AppAuthClientsDialog(props) {
+
+function AppAuthClientsDialog(props) {
const { appKey, onClientClick, onClose } = props;
const { appAuthClients } = useAppAuthClients({ appKey, active: true });
const formatMessage = useFormatMessage();
@@ -37,3 +39,11 @@ export default function AppAuthClientsDialog(props) {
);
}
+
+AppAuthClientsDialog.propTypes = {
+ appKey: PropTypes.string.isRequired,
+ onClientClick: PropTypes.func.isRequired,
+ onClose: PropTypes.func.isRequired,
+};
+
+export default AppAuthClientsDialog;
diff --git a/packages/web/src/components/AppBar/index.jsx b/packages/web/src/components/AppBar/index.jsx
index 1a0b9d8d..57f52ce0 100644
--- a/packages/web/src/components/AppBar/index.jsx
+++ b/packages/web/src/components/AppBar/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import AccountCircleIcon from '@mui/icons-material/AccountCircle';
import MenuIcon from '@mui/icons-material/Menu';
import MenuOpenIcon from '@mui/icons-material/MenuOpen';
@@ -13,8 +14,10 @@ import Logo from 'components/Logo/index';
import TrialStatusBadge from 'components/TrialStatusBadge/index.ee';
import * as URLS from 'config/urls';
import { Link } from './style';
+
const accountMenuId = 'account-menu';
-export default function AppBar(props) {
+
+function AppBar(props) {
const { drawerOpen, onDrawerOpen, onDrawerClose, maxWidth = false } = props;
const theme = useTheme();
const matchSmallScreens = useMediaQuery(theme.breakpoints.down('md'));
@@ -73,3 +76,15 @@ export default function AppBar(props) {
);
}
+
+AppBar.propTypes = {
+ drawerOpen: PropTypes.bool.isRequired,
+ onDrawerOpen: PropTypes.func.isRequired,
+ onDrawerClose: PropTypes.func.isRequired,
+ maxWidth: PropTypes.oneOfType([
+ PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]),
+ PropTypes.string,
+ ]),
+};
+
+export default AppBar;
diff --git a/packages/web/src/components/AppConnectionContextMenu/index.jsx b/packages/web/src/components/AppConnectionContextMenu/index.jsx
index e2f277df..829fc597 100644
--- a/packages/web/src/components/AppConnectionContextMenu/index.jsx
+++ b/packages/web/src/components/AppConnectionContextMenu/index.jsx
@@ -1,10 +1,14 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { Link } from 'react-router-dom';
import Menu from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
+
import * as URLS from 'config/urls';
import useFormatMessage from 'hooks/useFormatMessage';
-export default function ContextMenu(props) {
+import { ConnectionPropType } from 'propTypes/propTypes';
+
+function ContextMenu(props) {
const {
appKey,
connection,
@@ -61,3 +65,17 @@ export default function ContextMenu(props) {
);
}
+
+ContextMenu.propTypes = {
+ appKey: PropTypes.string.isRequired,
+ connection: ConnectionPropType.isRequired,
+ onClose: PropTypes.func.isRequired,
+ onMenuItemClick: PropTypes.func.isRequired,
+ anchorEl: PropTypes.oneOfType([
+ PropTypes.func,
+ PropTypes.shape({ current: PropTypes.instanceOf(Element) }),
+ ]),
+ disableReconnection: PropTypes.bool.isRequired,
+};
+
+export default ContextMenu;
diff --git a/packages/web/src/components/AppConnectionRow/index.jsx b/packages/web/src/components/AppConnectionRow/index.jsx
index 6a139098..7622575a 100644
--- a/packages/web/src/components/AppConnectionRow/index.jsx
+++ b/packages/web/src/components/AppConnectionRow/index.jsx
@@ -14,7 +14,9 @@ import ConnectionContextMenu from 'components/AppConnectionContextMenu';
import { DELETE_CONNECTION } from 'graphql/mutations/delete-connection';
import { TEST_CONNECTION } from 'graphql/queries/test-connection';
import useFormatMessage from 'hooks/useFormatMessage';
+import { ConnectionPropType } from 'propTypes/propTypes';
import { CardContent, Typography } from './style';
+
const countTranslation = (value) => (
<>
{value}
@@ -166,4 +168,9 @@ function AppConnectionRow(props) {
>
);
}
+
+AppConnectionRow.propTypes = {
+ connection: ConnectionPropType.isRequired,
+};
+
export default AppConnectionRow;
diff --git a/packages/web/src/components/AppConnections/index.jsx b/packages/web/src/components/AppConnections/index.jsx
index 74061258..3606b6ea 100644
--- a/packages/web/src/components/AppConnections/index.jsx
+++ b/packages/web/src/components/AppConnections/index.jsx
@@ -1,11 +1,13 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import { useQuery } from '@apollo/client';
import { GET_APP_CONNECTIONS } from 'graphql/queries/get-app-connections';
import AppConnectionRow from 'components/AppConnectionRow';
import NoResultFound from 'components/NoResultFound';
import useFormatMessage from 'hooks/useFormatMessage';
import * as URLS from 'config/urls';
-export default function AppConnections(props) {
+
+function AppConnections(props) {
const { appKey } = props;
const formatMessage = useFormatMessage();
const { data } = useQuery(GET_APP_CONNECTIONS, {
@@ -22,6 +24,7 @@ export default function AppConnections(props) {
/>
);
}
+
return (
<>
{appConnections.map((appConnection) => (
@@ -30,3 +33,9 @@ export default function AppConnections(props) {
>
);
}
+
+AppConnections.propTypes = {
+ appKey: PropTypes.string.isRequired,
+};
+
+export default AppConnections;
diff --git a/packages/web/src/components/AppFlows/index.jsx b/packages/web/src/components/AppFlows/index.jsx
index eede48f5..bf5f4d8e 100644
--- a/packages/web/src/components/AppFlows/index.jsx
+++ b/packages/web/src/components/AppFlows/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import { useQuery } from '@apollo/client';
import { Link, useSearchParams } from 'react-router-dom';
import { GET_FLOWS } from 'graphql/queries/get-flows';
@@ -12,7 +13,7 @@ const getLimitAndOffset = (page) => ({
limit: FLOW_PER_PAGE,
offset: (page - 1) * FLOW_PER_PAGE,
});
-export default function AppFlows(props) {
+function AppFlows(props) {
const { appKey } = props;
const formatMessage = useFormatMessage();
const [searchParams, setSearchParams] = useSearchParams();
@@ -62,3 +63,9 @@ export default function AppFlows(props) {
>
);
}
+
+AppFlows.propTypes = {
+ appKey: PropTypes.string.isRequired,
+};
+
+export default AppFlows;
diff --git a/packages/web/src/components/AppIcon/index.jsx b/packages/web/src/components/AppIcon/index.jsx
index 1357bd2d..92b102b6 100644
--- a/packages/web/src/components/AppIcon/index.jsx
+++ b/packages/web/src/components/AppIcon/index.jsx
@@ -1,9 +1,10 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import Avatar from '@mui/material/Avatar';
const inlineImgStyle = {
objectFit: 'contain',
};
-export default function AppIcon(props) {
+function AppIcon(props) {
const { name, url, color, sx = {}, variant = 'square', ...restProps } = props;
const initialLetter = name?.[0];
return (
@@ -14,8 +15,22 @@ export default function AppIcon(props) {
imgProps={{ style: inlineImgStyle }}
src={url}
alt={name}
- children={initialLetter}
{...restProps}
- />
+ >
+ {initialLetter}
+
);
}
+
+AppIcon.propTypes = {
+ name: PropTypes.string,
+ url: PropTypes.string,
+ color: PropTypes.string,
+ variant: PropTypes.oneOfType([
+ PropTypes.oneOf(['circular', 'rounded', 'square']),
+ PropTypes.string,
+ ]),
+ sx: PropTypes.object,
+};
+
+export default AppIcon;
diff --git a/packages/web/src/components/AppRow/index.jsx b/packages/web/src/components/AppRow/index.jsx
index bff2e1ab..6fb30490 100644
--- a/packages/web/src/components/AppRow/index.jsx
+++ b/packages/web/src/components/AppRow/index.jsx
@@ -1,4 +1,5 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import { Link } from 'react-router-dom';
import Card from '@mui/material/Card';
import Box from '@mui/material/Box';
@@ -6,13 +7,16 @@ import CardActionArea from '@mui/material/CardActionArea';
import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
import useFormatMessage from 'hooks/useFormatMessage';
import AppIcon from 'components/AppIcon';
+import { AppPropType } from 'propTypes/propTypes';
import { CardContent, Typography } from './style';
+
const countTranslation = (value) => (
<>
{value}
>
);
+
function AppRow(props) {
const formatMessage = useFormatMessage();
const { name, primaryColor, iconUrl, connectionCount, flowCount } =
@@ -65,4 +69,10 @@ function AppRow(props) {
);
}
+
+AppRow.propTypes = {
+ application: AppPropType.isRequired,
+ url: PropTypes.string.isRequired,
+};
+
export default AppRow;
diff --git a/packages/web/src/components/Can/index.jsx b/packages/web/src/components/Can/index.jsx
index b98893ce..242eeb4b 100644
--- a/packages/web/src/components/Can/index.jsx
+++ b/packages/web/src/components/Can/index.jsx
@@ -1,7 +1,18 @@
+import PropTypes from 'prop-types';
import { Can as OriginalCan } from '@casl/react';
-import * as React from 'react';
import useCurrentUserAbility from 'hooks/useCurrentUserAbility';
-export default function Can(props) {
+
+function Can(props) {
const currentUserAbility = useCurrentUserAbility();
return ;
}
+
+Can.propTypes = {
+ I: PropTypes.string.isRequired,
+ a: PropTypes.string,
+ an: PropTypes.string,
+ passThrough: PropTypes.bool,
+ children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,
+};
+
+export default Can;
diff --git a/packages/web/src/components/CheckoutCompletedAlert/index.ee.jsx b/packages/web/src/components/CheckoutCompletedAlert/index.ee.jsx
index f1ff8e91..2bc213e8 100644
--- a/packages/web/src/components/CheckoutCompletedAlert/index.ee.jsx
+++ b/packages/web/src/components/CheckoutCompletedAlert/index.ee.jsx
@@ -3,6 +3,7 @@ import { useLocation } from 'react-router-dom';
import Alert from '@mui/material/Alert';
import Typography from '@mui/material/Typography';
import useFormatMessage from 'hooks/useFormatMessage';
+
export default function CheckoutCompletedAlert() {
const formatMessage = useFormatMessage();
const location = useLocation();
diff --git a/packages/web/src/components/ChooseAppAndEventSubstep/index.jsx b/packages/web/src/components/ChooseAppAndEventSubstep/index.jsx
index c5b5c9f7..aa5da519 100644
--- a/packages/web/src/components/ChooseAppAndEventSubstep/index.jsx
+++ b/packages/web/src/components/ChooseAppAndEventSubstep/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import Typography from '@mui/material/Typography';
import Box from '@mui/material/Box';
@@ -11,6 +12,8 @@ import useFormatMessage from 'hooks/useFormatMessage';
import useApps from 'hooks/useApps';
import { EditorContext } from 'contexts/Editor';
import FlowSubstepTitle from 'components/FlowSubstepTitle';
+import { StepPropType, SubstepPropType } from 'propTypes/propTypes';
+
const optionGenerator = (app) => ({
label: app.name,
value: app.key,
@@ -222,4 +225,15 @@ function ChooseAppAndEventSubstep(props) {
);
}
+
+ChooseAppAndEventSubstep.propTypes = {
+ substep: SubstepPropType.isRequired,
+ expanded: PropTypes.bool,
+ onExpand: PropTypes.func.isRequired,
+ onCollapse: PropTypes.func.isRequired,
+ step: StepPropType.isRequired,
+ onSubmit: PropTypes.func.isRequired,
+ onChange: PropTypes.func.isRequired,
+};
+
export default ChooseAppAndEventSubstep;
diff --git a/packages/web/src/components/ChooseConnectionSubstep/index.jsx b/packages/web/src/components/ChooseConnectionSubstep/index.jsx
index 38e4367c..e5b0b8f3 100644
--- a/packages/web/src/components/ChooseConnectionSubstep/index.jsx
+++ b/packages/web/src/components/ChooseConnectionSubstep/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import { useLazyQuery, useQuery } from '@apollo/client';
import Autocomplete from '@mui/material/Autocomplete';
import Button from '@mui/material/Button';
@@ -14,14 +15,23 @@ import { GET_APP_CONNECTIONS } from 'graphql/queries/get-app-connections';
import { TEST_CONNECTION } from 'graphql/queries/test-connection';
import useAuthenticateApp from 'hooks/useAuthenticateApp.ee';
import useFormatMessage from 'hooks/useFormatMessage';
+import {
+ AppPropType,
+ StepPropType,
+ SubstepPropType,
+} from 'propTypes/propTypes';
+
const ADD_CONNECTION_VALUE = 'ADD_CONNECTION';
const ADD_SHARED_CONNECTION_VALUE = 'ADD_SHARED_CONNECTION';
+
const optionGenerator = (connection) => ({
label: connection?.formattedData?.screenName ?? 'Unnamed',
value: connection?.id,
});
+
const getOption = (options, connectionId) =>
options.find((connection) => connection.value === connectionId) || null;
+
function ChooseConnectionSubstep(props) {
const {
substep,
@@ -237,4 +247,16 @@ function ChooseConnectionSubstep(props) {
);
}
+
+ChooseConnectionSubstep.propTypes = {
+ application: AppPropType.isRequired,
+ substep: SubstepPropType.isRequired,
+ expanded: PropTypes.bool,
+ onExpand: PropTypes.func.isRequired,
+ onCollapse: PropTypes.func.isRequired,
+ onChange: PropTypes.func.isRequired,
+ onSubmit: PropTypes.func.isRequired,
+ step: StepPropType.isRequired,
+};
+
export default ChooseConnectionSubstep;
diff --git a/packages/web/src/components/ColorInput/ColorButton/index.jsx b/packages/web/src/components/ColorInput/ColorButton/index.jsx
index 76caa0a0..1dbf965b 100644
--- a/packages/web/src/components/ColorInput/ColorButton/index.jsx
+++ b/packages/web/src/components/ColorInput/ColorButton/index.jsx
@@ -1,7 +1,10 @@
import React from 'react';
+import PropTypes from 'prop-types';
import { Button } from './style';
+
const BG_IMAGE_FALLBACK =
'linear-gradient(45deg, #ccc 25%, transparent 25%), linear-gradient(135deg, #ccc 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #ccc 75%), linear-gradient(135deg, transparent 75%, #ccc 75%) /*! @noflip */';
+
const ColorButton = (props) => {
const {
bgColor,
@@ -24,4 +27,12 @@ const ColorButton = (props) => {
/>
);
};
+
+ColorButton.propTypes = {
+ bgColor: PropTypes.string.isRequired,
+ className: PropTypes.string,
+ disablePopover: PropTypes.bool.isRequired,
+ isBgColorValid: PropTypes.bool.isRequired,
+};
+
export default ColorButton;
diff --git a/packages/web/src/components/ColorInput/index.jsx b/packages/web/src/components/ColorInput/index.jsx
index 027e0af7..e1be650e 100644
--- a/packages/web/src/components/ColorInput/index.jsx
+++ b/packages/web/src/components/ColorInput/index.jsx
@@ -1,8 +1,10 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import { Controller, useFormContext } from 'react-hook-form';
import { MuiColorInput } from 'mui-color-input';
import ColorButton from './ColorButton';
-export default function ColorInput(props) {
+
+function ColorInput(props) {
const { control } = useFormContext();
const {
required,
@@ -32,3 +34,12 @@ export default function ColorInput(props) {
/>
);
}
+
+ColorInput.propTypes = {
+ shouldUnregister: PropTypes.bool,
+ name: PropTypes.string.isRequired,
+ disabled: PropTypes.bool,
+ required: PropTypes.bool,
+};
+
+export default ColorInput;
diff --git a/packages/web/src/components/ConditionalIconButton/index.jsx b/packages/web/src/components/ConditionalIconButton/index.jsx
index cf7f405d..50125c32 100644
--- a/packages/web/src/components/ConditionalIconButton/index.jsx
+++ b/packages/web/src/components/ConditionalIconButton/index.jsx
@@ -1,9 +1,11 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import { useTheme } from '@mui/material/styles';
import useMediaQuery from '@mui/material/useMediaQuery';
import Button from '@mui/material/Button';
import { IconButton } from './style';
-export default function ConditionalIconButton(props) {
+
+function ConditionalIconButton(props) {
const { icon, ...buttonProps } = props;
const theme = useTheme();
const matchSmallScreens = useMediaQuery(theme.breakpoints.down('md'));
@@ -24,3 +26,9 @@ export default function ConditionalIconButton(props) {
}
return ;
}
+
+ConditionalIconButton.propTypes = {
+ icon: PropTypes.node.isRequired,
+};
+
+export default ConditionalIconButton;
diff --git a/packages/web/src/components/ConfirmationDialog/index.jsx b/packages/web/src/components/ConfirmationDialog/index.jsx
index 1b319d62..abc5cd71 100644
--- a/packages/web/src/components/ConfirmationDialog/index.jsx
+++ b/packages/web/src/components/ConfirmationDialog/index.jsx
@@ -1,18 +1,20 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import Button from '@mui/material/Button';
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
-export default function ConfirmationDialog(props) {
+
+function ConfirmationDialog(props) {
const {
onClose,
onConfirm,
title,
description,
cancelButtonChildren,
- confirmButtionChildren,
+ confirmButtonChildren,
open = true,
} = props;
const dataTest = props['data-test'];
@@ -32,16 +34,29 @@ export default function ConfirmationDialog(props) {
)}
- {confirmButtionChildren && onConfirm && (
+ {confirmButtonChildren && onConfirm && (
)}
);
}
+
+ConfirmationDialog.propTypes = {
+ onClose: PropTypes.func.isRequired,
+ onConfirm: PropTypes.func.isRequired,
+ title: PropTypes.node.isRequired,
+ description: PropTypes.node.isRequired,
+ cancelButtonChildren: PropTypes.node.isRequired,
+ confirmButtonChildren: PropTypes.node.isRequired,
+ open: PropTypes.bool,
+ 'data-test': PropTypes.string,
+};
+
+export default ConfirmationDialog;
diff --git a/packages/web/src/components/Container/index.jsx b/packages/web/src/components/Container/index.jsx
index 07228073..ffafaa14 100644
--- a/packages/web/src/components/Container/index.jsx
+++ b/packages/web/src/components/Container/index.jsx
@@ -1,8 +1,10 @@
import * as React from 'react';
import MuiContainer from '@mui/material/Container';
+
export default function Container(props) {
return ;
}
+
Container.defaultProps = {
maxWidth: 'lg',
};
diff --git a/packages/web/src/components/ControlledAutocomplete/index.jsx b/packages/web/src/components/ControlledAutocomplete/index.jsx
index cd5ae7b9..a88d5038 100644
--- a/packages/web/src/components/ControlledAutocomplete/index.jsx
+++ b/packages/web/src/components/ControlledAutocomplete/index.jsx
@@ -1,10 +1,13 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { Controller, useFormContext } from 'react-hook-form';
import FormHelperText from '@mui/material/FormHelperText';
import Autocomplete, { createFilterOptions } from '@mui/material/Autocomplete';
import Typography from '@mui/material/Typography';
+
const getOption = (options, value) =>
options.find((option) => option.value === value) || null;
+
// Enables filtering by value in autocomplete dropdown
const filterOptions = createFilterOptions({
stringify: ({ label, value }) => `
@@ -12,6 +15,7 @@ const filterOptions = createFilterOptions({
${value}
`,
});
+
function ControlledAutocomplete(props) {
const { control, watch, setValue, resetField } = useFormContext();
const {
@@ -113,4 +117,18 @@ function ControlledAutocomplete(props) {
/>
);
}
+
+ControlledAutocomplete.propTypes = {
+ shouldUnregister: PropTypes.bool,
+ name: PropTypes.string.isRequired,
+ required: PropTypes.bool,
+ showOptionValue: PropTypes.bool,
+ description: PropTypes.string,
+ dependsOn: PropTypes.arrayOf(PropTypes.string),
+ defaultValue: PropTypes.any,
+ onBlur: PropTypes.func,
+ onChange: PropTypes.func,
+ options: PropTypes.array,
+};
+
export default ControlledAutocomplete;
diff --git a/packages/web/src/components/ControlledCheckbox/index.jsx b/packages/web/src/components/ControlledCheckbox/index.jsx
index 27c9aaf3..95400479 100644
--- a/packages/web/src/components/ControlledCheckbox/index.jsx
+++ b/packages/web/src/components/ControlledCheckbox/index.jsx
@@ -1,7 +1,9 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import { Controller, useFormContext } from 'react-hook-form';
import Checkbox from '@mui/material/Checkbox';
-export default function ControlledCheckbox(props) {
+
+function ControlledCheckbox(props) {
const { control } = useFormContext();
const {
required,
@@ -52,3 +54,15 @@ export default function ControlledCheckbox(props) {
/>
);
}
+
+ControlledCheckbox.propTypes = {
+ name: PropTypes.string.isRequired,
+ defaultValue: PropTypes.bool,
+ dataTest: PropTypes.string,
+ required: PropTypes.bool,
+ disabled: PropTypes.bool,
+ onBlur: PropTypes.func,
+ onChange: PropTypes.func,
+};
+
+export default ControlledCheckbox;
diff --git a/packages/web/src/components/ControlledCustomAutocomplete/Controller.jsx b/packages/web/src/components/ControlledCustomAutocomplete/Controller.jsx
index aa914b83..3c10427f 100644
--- a/packages/web/src/components/ControlledCustomAutocomplete/Controller.jsx
+++ b/packages/web/src/components/ControlledCustomAutocomplete/Controller.jsx
@@ -1,5 +1,7 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { Controller as RHFController, useFormContext } from 'react-hook-form';
+
function Controller(props) {
const { control } = useFormContext();
const {
@@ -20,4 +22,13 @@ function Controller(props) {
/>
);
}
+
+Controller.propTypes = {
+ defaultValue: PropTypes.string,
+ name: PropTypes.string.isRequired,
+ required: PropTypes.bool,
+ shouldUnregister: PropTypes.bool,
+ children: PropTypes.element.isRequired,
+};
+
export default Controller;
diff --git a/packages/web/src/components/ControlledCustomAutocomplete/CustomOptions.jsx b/packages/web/src/components/ControlledCustomAutocomplete/CustomOptions.jsx
index a0516f41..e0d74725 100644
--- a/packages/web/src/components/ControlledCustomAutocomplete/CustomOptions.jsx
+++ b/packages/web/src/components/ControlledCustomAutocomplete/CustomOptions.jsx
@@ -1,11 +1,14 @@
+import PropTypes from 'prop-types';
import Paper from '@mui/material/Paper';
import Popper from '@mui/material/Popper';
import Tab from '@mui/material/Tab';
import * as React from 'react';
import Suggestions from 'components/PowerInput/Suggestions';
import TabPanel from 'components/TabPanel';
+import { FieldDropdownOptionPropType } from 'propTypes/propTypes';
import Options from './Options';
import { Tabs } from './style';
+
const CustomOptions = (props) => {
const {
open,
@@ -69,4 +72,23 @@ const CustomOptions = (props) => {
);
};
+
+CustomOptions.propTypes = {
+ open: PropTypes.bool.isRequired,
+ anchorEl: PropTypes.oneOfType([PropTypes.element, PropTypes.func]).isRequired,
+ data: PropTypes.arrayOf(
+ PropTypes.shape({
+ id: PropTypes.string.isRequired,
+ name: PropTypes.string.isRequired,
+ output: PropTypes.arrayOf(PropTypes.object).isRequired,
+ }),
+ ).isRequired,
+ options: PropTypes.arrayOf(FieldDropdownOptionPropType).isRequired,
+ onSuggestionClick: PropTypes.func.isRequired,
+ onOptionClick: PropTypes.func.isRequired,
+ onTabChange: PropTypes.func.isRequired,
+ label: PropTypes.string,
+ initialTabIndex: PropTypes.oneOf([0, 1]),
+};
+
export default CustomOptions;
diff --git a/packages/web/src/components/ControlledCustomAutocomplete/Options.jsx b/packages/web/src/components/ControlledCustomAutocomplete/Options.jsx
index 9560b2a7..2d1cb3c8 100644
--- a/packages/web/src/components/ControlledCustomAutocomplete/Options.jsx
+++ b/packages/web/src/components/ControlledCustomAutocomplete/Options.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import ListItemButton from '@mui/material/ListItemButton';
import ListItemText from '@mui/material/ListItemText';
import throttle from 'lodash/throttle';
@@ -7,12 +8,16 @@ import { Typography } from '@mui/material';
import SearchInput from 'components/SearchInput';
import useFormatMessage from 'hooks/useFormatMessage';
import { SearchInputWrapper } from './style';
+import { FieldDropdownOptionPropType } from 'propTypes/propTypes';
+
const SHORT_LIST_LENGTH = 4;
const LIST_ITEM_HEIGHT = 64;
+
const computeListHeight = (currentLength) => {
const numberOfRenderedItems = Math.min(SHORT_LIST_LENGTH, currentLength);
return LIST_ITEM_HEIGHT * numberOfRenderedItems;
};
+
const renderItemFactory =
({ onOptionClick }) =>
(props) => {
@@ -44,6 +49,7 @@ const renderItemFactory =
);
};
+
const Options = (props) => {
const formatMessage = useFormatMessage();
const { data, onOptionClick } = props;
@@ -108,4 +114,10 @@ const Options = (props) => {
>
);
};
+
+Options.propTypes = {
+ data: PropTypes.arrayOf(FieldDropdownOptionPropType).isRequired,
+ onOptionClick: PropTypes.func.isRequired,
+};
+
export default Options;
diff --git a/packages/web/src/components/ControlledCustomAutocomplete/index.jsx b/packages/web/src/components/ControlledCustomAutocomplete/index.jsx
index e18f452d..87996e5e 100644
--- a/packages/web/src/components/ControlledCustomAutocomplete/index.jsx
+++ b/packages/web/src/components/ControlledCustomAutocomplete/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { useController, useFormContext } from 'react-hook-form';
import { IconButton } from '@mui/material';
@@ -28,6 +29,7 @@ import {
import CustomOptions from './CustomOptions';
import { processStepWithExecutions } from 'components/PowerInput/data';
import { StepExecutionsContext } from 'contexts/StepExecutions';
+
function ControlledCustomAutocomplete(props) {
const {
defaultValue = '',
@@ -257,4 +259,23 @@ function ControlledCustomAutocomplete(props) {
);
}
+
+ControlledCustomAutocomplete.propTypes = {
+ options: PropTypes.array,
+ loading: PropTypes.bool.isRequired,
+ showOptionValue: PropTypes.bool,
+ dependsOn: PropTypes.arrayOf(PropTypes.string),
+ defaultValue: PropTypes.string,
+ name: PropTypes.string.isRequired,
+ label: PropTypes.string,
+ type: PropTypes.string,
+ required: PropTypes.bool,
+ readOnly: PropTypes.bool,
+ description: PropTypes.string,
+ docUrl: PropTypes.string,
+ clickToCopy: PropTypes.bool,
+ disabled: PropTypes.bool,
+ shouldUnregister: PropTypes.bool,
+};
+
export default ControlledCustomAutocomplete;
diff --git a/packages/web/src/components/CustomLogo/index.ee.jsx b/packages/web/src/components/CustomLogo/index.ee.jsx
index ccea8c55..7408d6dd 100644
--- a/packages/web/src/components/CustomLogo/index.ee.jsx
+++ b/packages/web/src/components/CustomLogo/index.ee.jsx
@@ -1,5 +1,6 @@
import useConfig from 'hooks/useConfig';
import { LogoImage } from './style.ee';
+
const CustomLogo = () => {
const { config, loading } = useConfig(['logo.svgData']);
if (loading || !config?.['logo.svgData']) return null;
@@ -11,4 +12,5 @@ const CustomLogo = () => {
/>
);
};
+
export default CustomLogo;
diff --git a/packages/web/src/components/DefaultLogo/index.jsx b/packages/web/src/components/DefaultLogo/index.jsx
index 01043558..82795db0 100644
--- a/packages/web/src/components/DefaultLogo/index.jsx
+++ b/packages/web/src/components/DefaultLogo/index.jsx
@@ -4,7 +4,7 @@ import { FormattedMessage } from 'react-intl';
import MationLogo from 'components/MationLogo';
import useAutomatischInfo from 'hooks/useAutomatischInfo';
-export default function DefaultLogo() {
+const DefaultLogo = () => {
const { data: automatischInfo, isPending } = useAutomatischInfo();
const isMation = automatischInfo?.data.isMation;
@@ -16,4 +16,6 @@ export default function DefaultLogo() {
);
-}
+};
+
+export default DefaultLogo;
diff --git a/packages/web/src/components/DeleteAccountDialog/index.ee.jsx b/packages/web/src/components/DeleteAccountDialog/index.ee.jsx
index e21c3219..c4d3d08c 100644
--- a/packages/web/src/components/DeleteAccountDialog/index.ee.jsx
+++ b/packages/web/src/components/DeleteAccountDialog/index.ee.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { useNavigate } from 'react-router-dom';
import { useMutation } from '@apollo/client';
@@ -8,7 +9,8 @@ import { DELETE_CURRENT_USER } from 'graphql/mutations/delete-current-user.ee';
import useAuthentication from 'hooks/useAuthentication';
import useFormatMessage from 'hooks/useFormatMessage';
import useCurrentUser from 'hooks/useCurrentUser';
-export default function DeleteAccountDialog(props) {
+
+function DeleteAccountDialog(props) {
const [deleteCurrentUser] = useMutation(DELETE_CURRENT_USER);
const formatMessage = useFormatMessage();
const currentUser = useCurrentUser();
@@ -27,7 +29,13 @@ export default function DeleteAccountDialog(props) {
onClose={props.onClose}
onConfirm={handleConfirm}
cancelButtonChildren={formatMessage('deleteAccountDialog.cancel')}
- confirmButtionChildren={formatMessage('deleteAccountDialog.confirm')}
+ confirmButtonChildren={formatMessage('deleteAccountDialog.confirm')}
/>
);
}
+
+DeleteAccountDialog.propTypes = {
+ onClose: PropTypes.func.isRequired,
+};
+
+export default DeleteAccountDialog;
diff --git a/packages/web/src/components/DeleteRoleButton/index.ee.jsx b/packages/web/src/components/DeleteRoleButton/index.ee.jsx
index ec6aa318..69dec7e0 100644
--- a/packages/web/src/components/DeleteRoleButton/index.ee.jsx
+++ b/packages/web/src/components/DeleteRoleButton/index.ee.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import { useMutation } from '@apollo/client';
import DeleteIcon from '@mui/icons-material/Delete';
import IconButton from '@mui/material/IconButton';
@@ -7,7 +8,8 @@ import Can from 'components/Can';
import ConfirmationDialog from 'components/ConfirmationDialog';
import { DELETE_ROLE } from 'graphql/mutations/delete-role.ee';
import useFormatMessage from 'hooks/useFormatMessage';
-export default function DeleteRoleButton(props) {
+
+function DeleteRoleButton(props) {
const { disabled, roleId } = props;
const [showConfirmation, setShowConfirmation] = React.useState(false);
const [deleteRole] = useMutation(DELETE_ROLE, {
@@ -52,9 +54,16 @@ export default function DeleteRoleButton(props) {
onClose={() => setShowConfirmation(false)}
onConfirm={handleConfirm}
cancelButtonChildren={formatMessage('deleteRoleButton.cancel')}
- confirmButtionChildren={formatMessage('deleteRoleButton.confirm')}
+ confirmButtonChildren={formatMessage('deleteRoleButton.confirm')}
data-test="delete-role-modal"
/>
>
);
}
+
+DeleteRoleButton.propTypes = {
+ disabled: PropTypes.bool,
+ roleId: PropTypes.string.isRequired,
+};
+
+export default DeleteRoleButton;
diff --git a/packages/web/src/components/DeleteUserButton/index.ee.jsx b/packages/web/src/components/DeleteUserButton/index.ee.jsx
index 099b4f44..40b45d91 100644
--- a/packages/web/src/components/DeleteUserButton/index.ee.jsx
+++ b/packages/web/src/components/DeleteUserButton/index.ee.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import { useMutation } from '@apollo/client';
import DeleteIcon from '@mui/icons-material/Delete';
import IconButton from '@mui/material/IconButton';
@@ -6,7 +7,8 @@ import * as React from 'react';
import ConfirmationDialog from 'components/ConfirmationDialog';
import { DELETE_USER } from 'graphql/mutations/delete-user.ee';
import useFormatMessage from 'hooks/useFormatMessage';
-export default function DeleteUserButton(props) {
+
+function DeleteUserButton(props) {
const { userId } = props;
const [showConfirmation, setShowConfirmation] = React.useState(false);
const [deleteUser] = useMutation(DELETE_USER, {
@@ -46,9 +48,15 @@ export default function DeleteUserButton(props) {
onClose={() => setShowConfirmation(false)}
onConfirm={handleConfirm}
cancelButtonChildren={formatMessage('deleteUserButton.cancel')}
- confirmButtionChildren={formatMessage('deleteUserButton.confirm')}
+ confirmButtonChildren={formatMessage('deleteUserButton.confirm')}
data-test="delete-user-modal"
/>
>
);
}
+
+DeleteUserButton.propTypes = {
+ userId: PropTypes.string.isRequired,
+};
+
+export default DeleteUserButton;
diff --git a/packages/web/src/components/Drawer/index.jsx b/packages/web/src/components/Drawer/index.jsx
index 8cf9234a..e124d56f 100644
--- a/packages/web/src/components/Drawer/index.jsx
+++ b/packages/web/src/components/Drawer/index.jsx
@@ -1,4 +1,5 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import { useTheme } from '@mui/material/styles';
import Toolbar from '@mui/material/Toolbar';
import List from '@mui/material/List';
@@ -8,10 +9,12 @@ import Badge from '@mui/material/Badge';
import ListItemLink from 'components/ListItemLink';
import useFormatMessage from 'hooks/useFormatMessage';
import { Drawer as BaseDrawer } from './style';
+
const iOS =
typeof navigator !== 'undefined' &&
/iPad|iPhone|iPod/.test(navigator.userAgent);
-export default function Drawer(props) {
+
+function Drawer(props) {
const { links = [], bottomLinks = [], ...drawerProps } = props;
const theme = useTheme();
const matchSmallScreens = useMediaQuery(theme.breakpoints.down('md'));
@@ -70,3 +73,20 @@ export default function Drawer(props) {
);
}
+
+const DrawerLinkPropTypes = PropTypes.shape({
+ Icon: PropTypes.elementType.isRequired,
+ primary: PropTypes.string.isRequired,
+ to: PropTypes.string.isRequired,
+ target: PropTypes.oneOf(['_blank']),
+ badgeContent: PropTypes.node,
+ dataTest: PropTypes.string,
+});
+
+Drawer.propTypes = {
+ links: PropTypes.arrayOf(DrawerLinkPropTypes).isRequired,
+ bottomLinks: PropTypes.arrayOf(DrawerLinkPropTypes),
+ onClose: PropTypes.func.isRequired,
+};
+
+export default Drawer;
diff --git a/packages/web/src/components/DynamicField/index.jsx b/packages/web/src/components/DynamicField/index.jsx
index b22fce2a..03eb8d2e 100644
--- a/packages/web/src/components/DynamicField/index.jsx
+++ b/packages/web/src/components/DynamicField/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { v4 as uuidv4 } from 'uuid';
import { useFormContext, useWatch } from 'react-hook-form';
@@ -9,6 +10,8 @@ import RemoveIcon from '@mui/icons-material/Remove';
import AddIcon from '@mui/icons-material/Add';
import InputCreator from 'components/InputCreator';
import { EditorContext } from 'contexts/Editor';
+import { FieldsPropType } from 'propTypes/propTypes';
+
function DynamicField(props) {
const { label, description, fields, name, defaultValue, stepId } = props;
const { control, setValue, getValues } = useFormContext();
@@ -107,4 +110,23 @@ function DynamicField(props) {
);
}
+
+DynamicField.propTypes = {
+ onChange: PropTypes.func,
+ onBlur: PropTypes.func,
+ defaultValue: PropTypes.arrayOf(PropTypes.object),
+ name: PropTypes.string.isRequired,
+ label: PropTypes.string.isRequired,
+ type: PropTypes.string,
+ required: PropTypes.bool,
+ readOnly: PropTypes.bool,
+ description: PropTypes.string,
+ docUrl: PropTypes.string,
+ clickToCopy: PropTypes.bool,
+ disabled: PropTypes.bool,
+ fields: FieldsPropType.isRequired,
+ shouldUnregister: PropTypes.bool,
+ stepId: PropTypes.string,
+};
+
export default DynamicField;
diff --git a/packages/web/src/components/EditableTypography/index.jsx b/packages/web/src/components/EditableTypography/index.jsx
index 52a7016e..b30fcb1e 100644
--- a/packages/web/src/components/EditableTypography/index.jsx
+++ b/packages/web/src/components/EditableTypography/index.jsx
@@ -1,8 +1,11 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import Typography from '@mui/material/Typography';
import EditIcon from '@mui/icons-material/Edit';
import { Box, TextField } from './style';
+
const noop = () => null;
+
function EditableTypography(props) {
const { children, onConfirm = noop, sx, ...typographyProps } = props;
const [editing, setEditing] = React.useState(false);
@@ -55,4 +58,11 @@ function EditableTypography(props) {
);
}
+
+EditableTypography.propTypes = {
+ children: PropTypes.string.isRequired,
+ onConfirm: PropTypes.func,
+ sx: PropTypes.object,
+};
+
export default EditableTypography;
diff --git a/packages/web/src/components/Editor/index.jsx b/packages/web/src/components/Editor/index.jsx
index 4f9b9e3a..4c133a92 100644
--- a/packages/web/src/components/Editor/index.jsx
+++ b/packages/web/src/components/Editor/index.jsx
@@ -7,6 +7,8 @@ import { GET_FLOW } from 'graphql/queries/get-flow';
import { CREATE_STEP } from 'graphql/mutations/create-step';
import { UPDATE_STEP } from 'graphql/mutations/update-step';
import FlowStep from 'components/FlowStep';
+import { FlowPropType } from 'propTypes/propTypes';
+
function updateHandlerFactory(flowId, previousStepId) {
return function createStepUpdateHandler(cache, mutationResult) {
const { data } = mutationResult;
@@ -28,7 +30,8 @@ function updateHandlerFactory(flowId, previousStepId) {
});
};
}
-export default function Editor(props) {
+
+function Editor(props) {
const [updateStep] = useMutation(UPDATE_STEP);
const [createStep, { loading: creationInProgress }] = useMutation(
CREATE_STEP,
@@ -118,3 +121,9 @@ export default function Editor(props) {
);
}
+
+Editor.propTypes = {
+ flow: FlowPropType.isRequired,
+};
+
+export default Editor;
diff --git a/packages/web/src/components/EditorLayout/index.jsx b/packages/web/src/components/EditorLayout/index.jsx
index 040d7e42..52ed1586 100644
--- a/packages/web/src/components/EditorLayout/index.jsx
+++ b/packages/web/src/components/EditorLayout/index.jsx
@@ -17,6 +17,7 @@ import { UPDATE_FLOW_STATUS } from 'graphql/mutations/update-flow-status';
import { UPDATE_FLOW } from 'graphql/mutations/update-flow';
import { GET_FLOW } from 'graphql/queries/get-flow';
import * as URLS from 'config/urls';
+
export default function EditorLayout() {
const { flowId } = useParams();
const formatMessage = useFormatMessage();
diff --git a/packages/web/src/components/ExecutionHeader/index.jsx b/packages/web/src/components/ExecutionHeader/index.jsx
index 3a45c6be..2b2b7a46 100644
--- a/packages/web/src/components/ExecutionHeader/index.jsx
+++ b/packages/web/src/components/ExecutionHeader/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { DateTime } from 'luxon';
import Stack from '@mui/material/Stack';
@@ -5,6 +6,8 @@ import Box from '@mui/material/Box';
import Tooltip from '@mui/material/Tooltip';
import Typography from '@mui/material/Typography';
import useFormatMessage from 'hooks/useFormatMessage';
+import { ExecutionPropType } from 'propTypes/propTypes';
+
function ExecutionName(props) {
return (
@@ -12,6 +15,11 @@ function ExecutionName(props) {
);
}
+
+ExecutionName.propTypes = {
+ name: PropTypes.string.isRequired,
+};
+
function ExecutionId(props) {
const formatMessage = useFormatMessage();
const id = (
@@ -27,6 +35,11 @@ function ExecutionId(props) {
);
}
+
+ExecutionId.propTypes = {
+ id: PropTypes.string.isRequired,
+};
+
function ExecutionDate(props) {
const createdAt = DateTime.fromMillis(parseInt(props.createdAt, 10));
const relativeCreatedAt = createdAt.toRelative();
@@ -40,7 +53,13 @@ function ExecutionDate(props) {
);
}
-export default function ExecutionHeader(props) {
+
+ExecutionDate.propTypes = {
+ createdAt: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)])
+ .isRequired,
+};
+
+function ExecutionHeader(props) {
const { execution } = props;
if (!execution) return ;
return (
@@ -59,3 +78,9 @@ export default function ExecutionHeader(props) {
);
}
+
+ExecutionHeader.propTypes = {
+ execution: ExecutionPropType,
+};
+
+export default ExecutionHeader;
diff --git a/packages/web/src/components/ExecutionRow/index.jsx b/packages/web/src/components/ExecutionRow/index.jsx
index 17551428..82013a36 100644
--- a/packages/web/src/components/ExecutionRow/index.jsx
+++ b/packages/web/src/components/ExecutionRow/index.jsx
@@ -9,9 +9,12 @@ import * as URLS from 'config/urls';
import useFormatMessage from 'hooks/useFormatMessage';
import FlowAppIcons from 'components/FlowAppIcons';
import { Apps, CardContent, ArrowContainer, Title, Typography } from './style';
-export default function ExecutionRow(props) {
+import { ExecutionPropType } from 'propTypes/propTypes';
+
+function ExecutionRow(props) {
const formatMessage = useFormatMessage();
const { execution } = props;
+
const { flow } = execution;
const createdAt = DateTime.fromMillis(parseInt(execution.createdAt, 10));
const relativeCreatedAt = createdAt.toRelative();
@@ -66,3 +69,9 @@ export default function ExecutionRow(props) {
);
}
+
+ExecutionRow.propTypes = {
+ execution: ExecutionPropType.isRequired,
+};
+
+export default ExecutionRow;
diff --git a/packages/web/src/components/ExecutionStep/index.jsx b/packages/web/src/components/ExecutionStep/index.jsx
index 8aaf8555..21881523 100644
--- a/packages/web/src/components/ExecutionStep/index.jsx
+++ b/packages/web/src/components/ExecutionStep/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { DateTime } from 'luxon';
import Stack from '@mui/material/Stack';
@@ -21,6 +22,8 @@ import {
Metadata,
Wrapper,
} from './style';
+import { ExecutionStepPropType, StepPropType } from 'propTypes/propTypes';
+
function ExecutionStepId(props) {
const formatMessage = useFormatMessage();
const id = (
@@ -36,6 +39,11 @@ function ExecutionStepId(props) {
);
}
+
+ExecutionStepId.propTypes = {
+ id: PropTypes.string.isRequired,
+};
+
function ExecutionStepDate(props) {
const formatMessage = useFormatMessage();
const createdAt = DateTime.fromMillis(parseInt(props.createdAt, 10));
@@ -52,9 +60,15 @@ function ExecutionStepDate(props) {
);
}
+
+ExecutionStepDate.propTypes = {
+ createdAt: PropTypes.string.isRequired,
+};
+
const validIcon = ;
const errorIcon = ;
-export default function ExecutionStep(props) {
+
+function ExecutionStep(props) {
const { executionStep } = props;
const [activeTabIndex, setActiveTabIndex] = React.useState(0);
const step = executionStep.step;
@@ -136,3 +150,12 @@ export default function ExecutionStep(props) {
);
}
+
+ExecutionStep.propTypes = {
+ collapsed: PropTypes.bool,
+ step: StepPropType.isRequired,
+ index: PropTypes.number,
+ executionStep: ExecutionStepPropType.isRequired,
+};
+
+export default ExecutionStep;
diff --git a/packages/web/src/components/FlowAppIcons/index.jsx b/packages/web/src/components/FlowAppIcons/index.jsx
index d8b1d9a0..f95874e6 100644
--- a/packages/web/src/components/FlowAppIcons/index.jsx
+++ b/packages/web/src/components/FlowAppIcons/index.jsx
@@ -1,7 +1,9 @@
import * as React from 'react';
+import PropTypes from 'prop-types';
import AppIcon from 'components/AppIcon';
import IntermediateStepCount from 'components/IntermediateStepCount';
-export default function FlowAppIcons(props) {
+
+function FlowAppIcons(props) {
const { steps } = props;
const stepsCount = steps.length;
const firstStep = steps[0];
@@ -31,3 +33,13 @@ export default function FlowAppIcons(props) {
>
);
}
+
+FlowAppIcons.propTypes = {
+ steps: PropTypes.arrayOf(
+ PropTypes.shape({
+ iconUrl: PropTypes.string,
+ }),
+ ).isRequired,
+};
+
+export default FlowAppIcons;
diff --git a/packages/web/src/components/FlowContextMenu/index.jsx b/packages/web/src/components/FlowContextMenu/index.jsx
index 16118b1b..713ac779 100644
--- a/packages/web/src/components/FlowContextMenu/index.jsx
+++ b/packages/web/src/components/FlowContextMenu/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import { useMutation } from '@apollo/client';
import Menu from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
@@ -9,7 +10,8 @@ import * as URLS from 'config/urls';
import { DELETE_FLOW } from 'graphql/mutations/delete-flow';
import { DUPLICATE_FLOW } from 'graphql/mutations/duplicate-flow';
import useFormatMessage from 'hooks/useFormatMessage';
-export default function ContextMenu(props) {
+
+function ContextMenu(props) {
const { flowId, onClose, anchorEl } = props;
const enqueueSnackbar = useEnqueueSnackbar();
const [deleteFlow] = useMutation(DELETE_FLOW);
@@ -80,3 +82,14 @@ export default function ContextMenu(props) {
);
}
+
+ContextMenu.propTypes = {
+ flowId: PropTypes.string.isRequired,
+ onClose: PropTypes.func.isRequired,
+ anchorEl: PropTypes.oneOfType([
+ PropTypes.func,
+ PropTypes.shape({ current: PropTypes.instanceOf(Element) }),
+ ]).isRequired,
+};
+
+export default ContextMenu;
diff --git a/packages/web/src/components/FlowRow/index.jsx b/packages/web/src/components/FlowRow/index.jsx
index 410f91d9..dc012d6c 100644
--- a/packages/web/src/components/FlowRow/index.jsx
+++ b/packages/web/src/components/FlowRow/index.jsx
@@ -11,6 +11,8 @@ import FlowContextMenu from 'components/FlowContextMenu';
import useFormatMessage from 'hooks/useFormatMessage';
import * as URLS from 'config/urls';
import { Apps, CardContent, ContextMenu, Title, Typography } from './style';
+import { FlowPropType } from 'propTypes/propTypes';
+
function getFlowStatusTranslationKey(status) {
if (status === 'published') {
return 'flow.published';
@@ -19,6 +21,7 @@ function getFlowStatusTranslationKey(status) {
}
return 'flow.draft';
}
+
function getFlowStatusColor(status) {
if (status === 'published') {
return 'success';
@@ -27,7 +30,8 @@ function getFlowStatusColor(status) {
}
return 'info';
}
-export default function FlowRow(props) {
+
+function FlowRow(props) {
const formatMessage = useFormatMessage();
const contextButtonRef = React.useRef(null);
const [anchorEl, setAnchorEl] = React.useState(null);
@@ -113,3 +117,9 @@ export default function FlowRow(props) {
>
);
}
+
+FlowRow.propTypes = {
+ flow: FlowPropType.isRequired,
+};
+
+export default FlowRow;
diff --git a/packages/web/src/components/FlowStep/index.jsx b/packages/web/src/components/FlowStep/index.jsx
index df987e11..8d360498 100644
--- a/packages/web/src/components/FlowStep/index.jsx
+++ b/packages/web/src/components/FlowStep/index.jsx
@@ -1,3 +1,4 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { useLazyQuery } from '@apollo/client';
import Stack from '@mui/material/Stack';
@@ -33,8 +34,11 @@ import {
Wrapper,
} from './style';
import isEmpty from 'helpers/isEmpty';
+import { StepPropType } from 'propTypes/propTypes';
+
const validIcon = ;
const errorIcon = ;
+
function generateValidationSchema(substeps) {
const fieldValidations = substeps?.reduce(
(allValidations, { arguments: args }) => {
@@ -91,7 +95,8 @@ function generateValidationSchema(substeps) {
});
return yupResolver(validationSchema);
}
-export default function FlowStep(props) {
+
+function FlowStep(props) {
const { collapsed, onChange, onContinue } = props;
const editorContext = React.useContext(EditorContext);
const contextButtonRef = React.useRef(null);
@@ -309,3 +314,15 @@ export default function FlowStep(props) {
);
}
+
+FlowStep.propTypes = {
+ collapsed: PropTypes.bool,
+ step: StepPropType.isRequired,
+ index: PropTypes.number,
+ onOpen: PropTypes.func,
+ onClose: PropTypes.func,
+ onChange: PropTypes.func.isRequired,
+ onContinue: PropTypes.func,
+};
+
+export default FlowStep;
diff --git a/packages/web/src/components/FlowStepContextMenu/index.jsx b/packages/web/src/components/FlowStepContextMenu/index.jsx
index 2f11b577..e6e9e05a 100644
--- a/packages/web/src/components/FlowStepContextMenu/index.jsx
+++ b/packages/web/src/components/FlowStepContextMenu/index.jsx
@@ -1,9 +1,11 @@
+import PropTypes from 'prop-types';
import * as React from 'react';
import { useMutation } from '@apollo/client';
import Menu from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
import { DELETE_STEP } from 'graphql/mutations/delete-step';
import useFormatMessage from 'hooks/useFormatMessage';
+
function FlowStepContextMenu(props) {
const { stepId, onClose, anchorEl, deletable } = props;
const [deleteStep] = useMutation(DELETE_STEP, {
@@ -32,4 +34,12 @@ function FlowStepContextMenu(props) {
);
}
+
+FlowStepContextMenu.propTypes = {
+ stepId: PropTypes.string.isRequired,
+ onClose: PropTypes.func.isRequired,
+ anchorEl: PropTypes.element.isRequired,
+ deletable: PropTypes.bool.isRequired,
+};
+
export default FlowStepContextMenu;
diff --git a/packages/web/src/components/TestSubstep/index.jsx b/packages/web/src/components/TestSubstep/index.jsx
index 314d8cbf..6d5d0f45 100644
--- a/packages/web/src/components/TestSubstep/index.jsx
+++ b/packages/web/src/components/TestSubstep/index.jsx
@@ -91,8 +91,8 @@ function TestSubstep(props) {
severity="error"
sx={{ mb: 2, fontWeight: 500, width: '100%' }}
>
- {serializeErrors(error.graphQLErrors).map((error) => (
-
{error.message}
+ {serializeErrors(error.graphQLErrors).map((error, i) => (
+ {error.message}
))}
)}
diff --git a/packages/web/src/propTypes/propTypes.js b/packages/web/src/propTypes/propTypes.js
new file mode 100644
index 00000000..6e2caa1d
--- /dev/null
+++ b/packages/web/src/propTypes/propTypes.js
@@ -0,0 +1,479 @@
+import PropTypes from 'prop-types';
+
+export const JSONValuePropType = PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.number,
+ PropTypes.bool,
+ PropTypes.object,
+ PropTypes.array,
+]);
+
+export const AuthenticationStepFieldPropType = PropTypes.shape({
+ name: PropTypes.string,
+ value: PropTypes.oneOfType([PropTypes.string]),
+ properties: PropTypes.arrayOf(
+ PropTypes.shape({
+ name: PropTypes.string,
+ value: PropTypes.string,
+ }),
+ ),
+});
+
+export const AuthenticationStepPropType = PropTypes.shape({
+ type: PropTypes.oneOf(['mutation', 'openWithPopup']),
+ name: PropTypes.string,
+ arguments: PropTypes.arrayOf(AuthenticationStepFieldPropType),
+});
+
+export const FieldTextPropType = PropTypes.shape({
+ key: PropTypes.string,
+ label: PropTypes.string,
+ type: PropTypes.oneOf(['string']),
+ required: PropTypes.bool,
+ readOnly: PropTypes.bool,
+ value: PropTypes.string,
+ placeholder: PropTypes.oneOfType([PropTypes.string]),
+ description: PropTypes.string,
+ docUrl: PropTypes.string,
+ clickToCopy: PropTypes.bool,
+ variables: PropTypes.bool,
+ dependsOn: PropTypes.arrayOf(PropTypes.string),
+});
+
+export const FieldDropdownSourcePropType = PropTypes.shape({
+ type: PropTypes.string,
+ name: PropTypes.string,
+ arguments: PropTypes.arrayOf(
+ PropTypes.shape({
+ name: PropTypes.string,
+ value: PropTypes.string,
+ }),
+ ),
+});
+
+export const FieldDropdownAdditionalFieldsPropType = PropTypes.shape({
+ type: PropTypes.string,
+ name: PropTypes.string,
+ arguments: PropTypes.arrayOf(
+ PropTypes.shape({
+ name: PropTypes.string,
+ value: PropTypes.string,
+ }),
+ ),
+});
+
+export const FieldDropdownOptionPropType = PropTypes.shape({
+ label: PropTypes.string,
+ value: PropTypes.oneOfType([
+ PropTypes.bool,
+ PropTypes.string,
+ PropTypes.number,
+ ]),
+});
+
+export const FieldDropdownPropType = PropTypes.shape({
+ key: PropTypes.string,
+ label: PropTypes.string,
+ type: PropTypes.oneOf(['dropdown']),
+ required: PropTypes.bool,
+ readOnly: PropTypes.bool,
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
+ placeholder: PropTypes.oneOfType([PropTypes.string]),
+ description: PropTypes.string,
+ docUrl: PropTypes.string,
+ clickToCopy: PropTypes.bool,
+ variables: PropTypes.bool,
+ dependsOn: PropTypes.arrayOf(PropTypes.string),
+ options: PropTypes.arrayOf(FieldDropdownOptionPropType),
+ source: FieldDropdownSourcePropType,
+ additionalFields: FieldDropdownAdditionalFieldsPropType,
+});
+
+export const FieldsPropType = PropTypes.arrayOf(
+ PropTypes.oneOfType([FieldDropdownPropType, FieldTextPropType]),
+);
+
+export const FieldDynamicPropType = PropTypes.shape({
+ key: PropTypes.string,
+ label: PropTypes.string,
+ type: PropTypes.oneOf(['dynamic']),
+ required: PropTypes.bool,
+ readOnly: PropTypes.bool,
+ description: PropTypes.string,
+ value: PropTypes.arrayOf(PropTypes.object),
+ fields: FieldsPropType,
+});
+
+export const FieldPropType = PropTypes.oneOfType([
+ FieldDropdownPropType,
+ FieldTextPropType,
+ FieldDynamicPropType,
+]);
+
+export const SubstepPropType = PropTypes.shape({
+ key: PropTypes.string,
+ name: PropTypes.string,
+ arguments: PropTypes.arrayOf(FieldPropType),
+});
+
+export const RawTriggerPropType = PropTypes.shape({
+ name: PropTypes.string,
+ key: PropTypes.string,
+ type: PropTypes.oneOf(['webhook', 'polling']),
+ showWebhookUrl: PropTypes.bool,
+ pollInterval: PropTypes.number,
+ description: PropTypes.string,
+ useSingletonWebhook: PropTypes.bool,
+ singletonWebhookRefValueParameter: PropTypes.string,
+ getInterval: PropTypes.func,
+ run: PropTypes.func,
+ testRun: PropTypes.func,
+ registerHook: PropTypes.func,
+ unregisterHook: PropTypes.func,
+ arguments: PropTypes.arrayOf(FieldPropType),
+});
+
+export const TriggerPropType = PropTypes.shape({
+ name: PropTypes.string,
+ key: PropTypes.string,
+ type: PropTypes.oneOf(['webhook', 'polling']),
+ showWebhookUrl: PropTypes.bool,
+ pollInterval: PropTypes.number,
+ description: PropTypes.string,
+ useSingletonWebhook: PropTypes.bool,
+ singletonWebhookRefValueParameter: PropTypes.string,
+ getInterval: PropTypes.func,
+ run: PropTypes.func,
+ testRun: PropTypes.func,
+ registerHook: PropTypes.func,
+ unregisterHook: PropTypes.func,
+ substeps: PropTypes.arrayOf(SubstepPropType),
+});
+
+export const RawActionPropType = PropTypes.shape({
+ name: PropTypes.string,
+ key: PropTypes.string,
+ description: PropTypes.string,
+ run: PropTypes.func,
+ arguments: PropTypes.arrayOf(FieldPropType),
+});
+
+export const ActionPropType = PropTypes.shape({
+ name: PropTypes.string,
+ key: PropTypes.string,
+ description: PropTypes.string,
+ run: PropTypes.func,
+ substeps: PropTypes.arrayOf(SubstepPropType),
+});
+
+export const AuthPropType = PropTypes.shape({
+ generateAuthUrl: PropTypes.func,
+ verifyCredentials: PropTypes.func,
+ isStillVerified: PropTypes.func,
+ refreshToken: PropTypes.func,
+ verifyWebhook: PropTypes.func,
+ isRefreshTokenRequested: PropTypes.bool,
+ fields: PropTypes.arrayOf(FieldPropType),
+ authenticationSteps: PropTypes.arrayOf(AuthenticationStepPropType),
+ reconnectionSteps: PropTypes.arrayOf(AuthenticationStepPropType),
+ sharedAuthenticationSteps: PropTypes.arrayOf(AuthenticationStepPropType),
+ sharedReconnectionSteps: PropTypes.arrayOf(AuthenticationStepPropType),
+});
+
+export const AppPropType = PropTypes.shape({
+ name: PropTypes.string,
+ key: PropTypes.string,
+ iconUrl: PropTypes.string,
+ docUrl: PropTypes.string,
+ authDocUrl: PropTypes.string,
+ primaryColor: PropTypes.string,
+ supportsConnections: PropTypes.bool,
+ apiBaseUrl: PropTypes.string,
+ baseUrl: PropTypes.string,
+ auth: AuthPropType,
+ connectionCount: PropTypes.number,
+ flowCount: PropTypes.number,
+ beforeRequest: PropTypes.arrayOf(PropTypes.func),
+ dynamicData: PropTypes.object,
+ dynamicFields: PropTypes.object,
+ triggers: PropTypes.arrayOf(TriggerPropType),
+ actions: PropTypes.arrayOf(ActionPropType),
+});
+
+export const ConnectionPropType = PropTypes.shape({
+ id: PropTypes.string,
+ key: PropTypes.string,
+ data: PropTypes.string,
+ formattedData: PropTypes.object,
+ userId: PropTypes.string,
+ verified: PropTypes.bool,
+ count: PropTypes.number,
+ flowCount: PropTypes.number,
+ appData: AppPropType,
+ createdAt: PropTypes.string,
+ reconnectable: PropTypes.bool,
+ appAuthClientId: PropTypes.string,
+});
+
+AppPropType.connection = PropTypes.arrayOf(ConnectionPropType);
+
+export const ExecutionStepPropType = PropTypes.shape({
+ id: PropTypes.string,
+ executionId: PropTypes.string,
+ stepId: PropTypes.string,
+ dataIn: PropTypes.object,
+ dataOut: PropTypes.object,
+ errorDetails: PropTypes.object,
+ status: PropTypes.string,
+ createdAt: PropTypes.string,
+ updatedAt: PropTypes.string,
+});
+
+export const FlowPropType = PropTypes.shape({
+ id: PropTypes.string,
+ name: PropTypes.string,
+ userId: PropTypes.string,
+ active: PropTypes.bool,
+ status: PropTypes.oneOf(['paused', 'published', 'draft']),
+ createdAt: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.instanceOf(Date),
+ ]),
+ updatedAt: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.instanceOf(Date),
+ ]),
+ remoteWebhookId: PropTypes.string,
+ lastInternalId: PropTypes.func,
+});
+
+export const StepPropType = PropTypes.shape({
+ id: PropTypes.string,
+ name: PropTypes.string,
+ flowId: PropTypes.string,
+ key: PropTypes.string,
+ appKey: PropTypes.string,
+ iconUrl: PropTypes.string,
+ webhookUrl: PropTypes.string,
+ type: PropTypes.oneOf(['action', 'trigger']),
+ connectionId: PropTypes.string,
+ status: PropTypes.string,
+ position: PropTypes.number,
+ parameters: PropTypes.object,
+ connection: ConnectionPropType,
+ flow: FlowPropType,
+ executionSteps: PropTypes.arrayOf(ExecutionStepPropType),
+ output: PropTypes.object,
+ appData: AppPropType,
+});
+
+ExecutionStepPropType.step = StepPropType;
+FlowPropType.steps = PropTypes.arrayOf(StepPropType);
+
+export const ExecutionPropType = PropTypes.shape({
+ id: PropTypes.string,
+ flowId: PropTypes.string,
+ flow: FlowPropType,
+ testRun: PropTypes.bool,
+ status: PropTypes.oneOf(['success', 'failure']),
+ executionSteps: PropTypes.arrayOf(ExecutionStepPropType),
+ updatedAt: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.instanceOf(Date),
+ ]),
+ createdAt: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.instanceOf(Date),
+ ]),
+});
+
+export const PermissionPropType = PropTypes.shape({
+ id: PropTypes.string,
+ action: PropTypes.string,
+ subject: PropTypes.string,
+ conditions: PropTypes.arrayOf(PropTypes.string),
+});
+
+export const RolePropType = PropTypes.shape({
+ id: PropTypes.string,
+ key: PropTypes.string,
+ name: PropTypes.string,
+ description: PropTypes.string,
+ isAdmin: PropTypes.bool,
+ permissions: PropTypes.arrayOf(PermissionPropType),
+});
+
+export const UserPropType = PropTypes.shape({
+ id: PropTypes.string,
+ fullName: PropTypes.string,
+ email: PropTypes.string,
+ password: PropTypes.string,
+ connections: PropTypes.arrayOf(ConnectionPropType),
+ flows: PropTypes.arrayOf(FlowPropType),
+ steps: PropTypes.arrayOf(StepPropType),
+ role: RolePropType,
+ permissions: PropTypes.arrayOf(PermissionPropType),
+ createdAt: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.instanceOf(Date),
+ ]),
+ updatedAt: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.instanceOf(Date),
+ ]),
+ trialExpiryDate: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.instanceOf(Date),
+ ]),
+});
+
+export const PermissionCatalogPropType = PropTypes.shape({
+ actions: PropTypes.arrayOf(
+ PropTypes.shape({
+ label: PropTypes.string,
+ key: PropTypes.string,
+ subjects: PropTypes.arrayOf(PropTypes.string),
+ }),
+ ),
+ subjects: PropTypes.arrayOf(
+ PropTypes.shape({
+ label: PropTypes.string,
+ key: PropTypes.string,
+ }),
+ ),
+ conditions: PropTypes.arrayOf(
+ PropTypes.shape({
+ label: PropTypes.string,
+ key: PropTypes.string,
+ }),
+ ),
+});
+
+export const ConfigPropType = PropTypes.shape({
+ id: PropTypes.string,
+ key: PropTypes.string,
+ value: PropTypes.object,
+});
+
+export const TriggerItemPropType = PropTypes.shape({
+ raw: PropTypes.object,
+ meta: PropTypes.shape({
+ internalId: PropTypes.string,
+ }),
+});
+
+export const TriggerOutputPropType = PropTypes.shape({
+ data: PropTypes.arrayOf(TriggerItemPropType),
+ error: PropTypes.object,
+});
+
+export const ActionItemPropType = PropTypes.shape({
+ raw: PropTypes.object,
+});
+
+export const IActionOutputPropType = PropTypes.shape({
+ data: ActionItemPropType,
+ error: PropTypes.object,
+});
+
+export const AuthenticationPropType = PropTypes.shape({
+ client: PropTypes.any,
+ verifyCredentials: PropTypes.func,
+ isStillVerified: PropTypes.func,
+});
+
+export const PaymentPlanPropType = PropTypes.shape({
+ price: PropTypes.string,
+ name: PropTypes.string,
+ limit: PropTypes.string,
+ productId: PropTypes.string,
+});
+
+export const BillingTextCardActionPropType = PropTypes.shape({
+ type: PropTypes.oneOf(['text']),
+ text: PropTypes.string,
+});
+
+export const BillingLinkCardActionPropType = PropTypes.shape({
+ type: PropTypes.oneOf(['link']),
+ text: PropTypes.string,
+ src: PropTypes.string,
+});
+
+export const BillingCardActionPropType = PropTypes.oneOfType([
+ BillingTextCardActionPropType,
+ BillingLinkCardActionPropType,
+]);
+
+export const SubscriptionPropType = PropTypes.shape({
+ status: PropTypes.string,
+ monthlyQuota: PropTypes.shape({
+ title: PropTypes.string,
+ action: BillingCardActionPropType,
+ }),
+ nextBillDate: PropTypes.shape({
+ title: PropTypes.string,
+ action: BillingCardActionPropType,
+ }),
+ nextBillAmount: PropTypes.shape({
+ title: PropTypes.string,
+ action: BillingCardActionPropType,
+ }),
+});
+
+export const InvoicePropType = PropTypes.shape({
+ id: PropTypes.number,
+ amount: PropTypes.number,
+ currency: PropTypes.string,
+ payout_date: PropTypes.string,
+ receipt_url: PropTypes.string,
+});
+
+export const SamlAuthProviderPropType = PropTypes.shape({
+ id: PropTypes.string,
+ name: PropTypes.string,
+ certificate: PropTypes.string,
+ signatureAlgorithm: PropTypes.oneOf(['sha1', 'sha256', 'sha512']),
+ issuer: PropTypes.string,
+ entryPoint: PropTypes.string,
+ firstnameAttributeName: PropTypes.string,
+ surnameAttributeName: PropTypes.string,
+ emailAttributeName: PropTypes.string,
+ roleAttributeName: PropTypes.string,
+ defaultRoleId: PropTypes.string,
+ active: PropTypes.bool,
+ loginUrl: PropTypes.string,
+});
+
+export const SamlAuthProviderRolePropType = PropTypes.shape({
+ id: PropTypes.string,
+ samlAuthProviderId: PropTypes.string,
+ roleId: PropTypes.string,
+ remoteRoleName: PropTypes.string,
+});
+
+export const AppConfigPropType = PropTypes.shape({
+ id: PropTypes.string,
+ key: PropTypes.string,
+ allowCustomConnection: PropTypes.bool,
+ canConnect: PropTypes.bool,
+ canCustomConnect: PropTypes.bool,
+ shared: PropTypes.bool,
+ disabled: PropTypes.bool,
+});
+
+export const AppAuthClientPropType = PropTypes.shape({
+ id: PropTypes.string,
+ name: PropTypes.string,
+ appConfigId: PropTypes.string,
+ authDefaults: PropTypes.string,
+ formattedAuthDefaults: PropTypes.object,
+ active: PropTypes.bool,
+});
+
+export const NotificationPropType = PropTypes.shape({
+ name: PropTypes.string,
+ createdAt: PropTypes.string,
+ documentationUrl: PropTypes.string,
+ description: PropTypes.string,
+});
diff --git a/yarn.lock b/yarn.lock
index 2321a1a9..95a2c116 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5123,14 +5123,6 @@ aria-query@^5.0.0:
resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz"
integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==
-array-buffer-byte-length@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f"
- integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==
- dependencies:
- call-bind "^1.0.5"
- is-array-buffer "^3.0.4"
-
array-differ@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz"
@@ -5162,17 +5154,6 @@ array-includes@^3.1.3, array-includes@^3.1.4:
get-intrinsic "^1.1.1"
is-string "^1.0.7"
-array-includes@^3.1.6:
- version "3.1.7"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda"
- integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- get-intrinsic "^1.2.1"
- is-string "^1.0.7"
-
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
@@ -5196,41 +5177,6 @@ array.prototype.flatmap@^1.2.5:
define-properties "^1.1.3"
es-abstract "^1.19.0"
-array.prototype.flatmap@^1.3.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527"
- integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- es-shim-unscopables "^1.0.0"
-
-array.prototype.tosorted@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz#c8c89348337e51b8a3c48a9227f9ce93ceedcba8"
- integrity sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==
- dependencies:
- call-bind "^1.0.5"
- define-properties "^1.2.1"
- es-abstract "^1.22.3"
- es-errors "^1.1.0"
- es-shim-unscopables "^1.0.2"
-
-arraybuffer.prototype.slice@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6"
- integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==
- dependencies:
- array-buffer-byte-length "^1.0.1"
- call-bind "^1.0.5"
- define-properties "^1.2.1"
- es-abstract "^1.22.3"
- es-errors "^1.2.1"
- get-intrinsic "^1.2.3"
- is-array-buffer "^3.0.4"
- is-shared-array-buffer "^1.0.2"
-
arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz"
@@ -5285,13 +5231,6 @@ async@^3.2.3:
resolved "https://registry.npmjs.org/async/-/async-3.2.3.tgz"
integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
-asynciterator.prototype@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62"
- integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==
- dependencies:
- has-symbols "^1.0.3"
-
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
@@ -5319,13 +5258,6 @@ autoprefixer@^10.4.2:
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
-available-typed-arrays@^1.0.6, available-typed-arrays@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
- integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
- dependencies:
- possible-typed-array-names "^1.0.0"
-
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
@@ -5850,17 +5782,6 @@ call-bind@^1.0.0, call-bind@^1.0.2:
function-bind "^1.1.1"
get-intrinsic "^1.0.2"
-call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
- integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
- dependencies:
- es-define-property "^1.0.0"
- es-errors "^1.3.0"
- function-bind "^1.1.2"
- get-intrinsic "^1.2.4"
- set-function-length "^1.2.1"
-
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
@@ -6983,15 +6904,6 @@ defer-to-connect@^1.0.1:
resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz"
integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
-define-data-property@^1.0.1, define-data-property@^1.1.2, define-data-property@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
- integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
- dependencies:
- es-define-property "^1.0.0"
- es-errors "^1.3.0"
- gopd "^1.0.1"
-
define-lazy-prop@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz"
@@ -7004,15 +6916,6 @@ define-properties@^1.1.3:
dependencies:
object-keys "^1.0.12"
-define-properties@^1.2.0, define-properties@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
- integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
- dependencies:
- define-data-property "^1.0.1"
- has-property-descriptors "^1.0.0"
- object-keys "^1.1.1"
-
defined@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
@@ -7505,107 +7408,11 @@ es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1:
string.prototype.trimstart "^1.0.4"
unbox-primitive "^1.0.1"
-es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.22.4:
- version "1.22.4"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.4.tgz#26eb2e7538c3271141f5754d31aabfdb215f27bf"
- integrity sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==
- dependencies:
- array-buffer-byte-length "^1.0.1"
- arraybuffer.prototype.slice "^1.0.3"
- available-typed-arrays "^1.0.6"
- call-bind "^1.0.7"
- es-define-property "^1.0.0"
- es-errors "^1.3.0"
- es-set-tostringtag "^2.0.2"
- es-to-primitive "^1.2.1"
- function.prototype.name "^1.1.6"
- get-intrinsic "^1.2.4"
- get-symbol-description "^1.0.2"
- globalthis "^1.0.3"
- gopd "^1.0.1"
- has-property-descriptors "^1.0.2"
- has-proto "^1.0.1"
- has-symbols "^1.0.3"
- hasown "^2.0.1"
- internal-slot "^1.0.7"
- is-array-buffer "^3.0.4"
- is-callable "^1.2.7"
- is-negative-zero "^2.0.2"
- is-regex "^1.1.4"
- is-shared-array-buffer "^1.0.2"
- is-string "^1.0.7"
- is-typed-array "^1.1.13"
- is-weakref "^1.0.2"
- object-inspect "^1.13.1"
- object-keys "^1.1.1"
- object.assign "^4.1.5"
- regexp.prototype.flags "^1.5.2"
- safe-array-concat "^1.1.0"
- safe-regex-test "^1.0.3"
- string.prototype.trim "^1.2.8"
- string.prototype.trimend "^1.0.7"
- string.prototype.trimstart "^1.0.7"
- typed-array-buffer "^1.0.1"
- typed-array-byte-length "^1.0.0"
- typed-array-byte-offset "^1.0.0"
- typed-array-length "^1.0.4"
- unbox-primitive "^1.0.2"
- which-typed-array "^1.1.14"
-
-es-define-property@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
- integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
- dependencies:
- get-intrinsic "^1.2.4"
-
-es-errors@^1.0.0, es-errors@^1.1.0, es-errors@^1.2.1, es-errors@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
- integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
-
-es-iterator-helpers@^1.0.12:
- version "1.0.17"
- resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz#123d1315780df15b34eb181022da43e734388bb8"
- integrity sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==
- dependencies:
- asynciterator.prototype "^1.0.0"
- call-bind "^1.0.7"
- define-properties "^1.2.1"
- es-abstract "^1.22.4"
- es-errors "^1.3.0"
- es-set-tostringtag "^2.0.2"
- function-bind "^1.1.2"
- get-intrinsic "^1.2.4"
- globalthis "^1.0.3"
- has-property-descriptors "^1.0.2"
- has-proto "^1.0.1"
- has-symbols "^1.0.3"
- internal-slot "^1.0.7"
- iterator.prototype "^1.1.2"
- safe-array-concat "^1.1.0"
-
es-module-lexer@^0.9.0:
version "0.9.3"
resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz"
integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==
-es-set-tostringtag@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777"
- integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==
- dependencies:
- get-intrinsic "^1.2.4"
- has-tostringtag "^1.0.2"
- hasown "^2.0.1"
-
-es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763"
- integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==
- dependencies:
- hasown "^2.0.0"
-
es-to-primitive@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
@@ -7964,28 +7771,6 @@ eslint-plugin-react@^7.27.1:
semver "^6.3.0"
string.prototype.matchall "^4.0.6"
-eslint-plugin-react@^7.33.2:
- version "7.33.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608"
- integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==
- dependencies:
- array-includes "^3.1.6"
- array.prototype.flatmap "^1.3.1"
- array.prototype.tosorted "^1.1.1"
- doctrine "^2.1.0"
- es-iterator-helpers "^1.0.12"
- estraverse "^5.3.0"
- jsx-ast-utils "^2.4.1 || ^3.0.0"
- minimatch "^3.1.2"
- object.entries "^1.1.6"
- object.fromentries "^2.0.6"
- object.hasown "^1.1.2"
- object.values "^1.1.6"
- prop-types "^15.8.1"
- resolve "^2.0.0-next.4"
- semver "^6.3.1"
- string.prototype.matchall "^4.0.8"
-
eslint-plugin-testing-library@^5.0.1:
version "5.0.4"
resolved "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.0.4.tgz"
@@ -8598,13 +8383,6 @@ follow-redirects@^1.0.0, follow-redirects@^1.14.8, follow-redirects@^1.15.0:
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a"
integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==
-for-each@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
- integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
- dependencies:
- is-callable "^1.1.3"
-
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
@@ -8739,31 +8517,11 @@ function-bind@^1.1.1:
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-function-bind@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
- integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-
-function.prototype.name@^1.1.5, function.prototype.name@^1.1.6:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
- integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- functions-have-names "^1.2.3"
-
functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-functions-have-names@^1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
- integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
-
gauge@^3.0.0:
version "3.0.2"
resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz"
@@ -8826,17 +8584,6 @@ get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
-get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
- integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
- dependencies:
- es-errors "^1.3.0"
- function-bind "^1.1.2"
- has-proto "^1.0.1"
- has-symbols "^1.0.3"
- hasown "^2.0.0"
-
get-own-enumerable-property-symbols@^3.0.0:
version "3.0.2"
resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz"
@@ -8894,15 +8641,6 @@ get-symbol-description@^1.0.0:
call-bind "^1.0.2"
get-intrinsic "^1.1.1"
-get-symbol-description@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5"
- integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==
- dependencies:
- call-bind "^1.0.5"
- es-errors "^1.3.0"
- get-intrinsic "^1.2.4"
-
getopts@2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz"
@@ -9041,13 +8779,6 @@ globals@^13.6.0, globals@^13.9.0:
dependencies:
type-fest "^0.20.2"
-globalthis@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
- integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
- dependencies:
- define-properties "^1.1.3"
-
globby@^11.0.1, globby@^11.0.2, globby@^11.0.3, globby@^11.0.4, globby@^11.1.0:
version "11.1.0"
resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
@@ -9065,13 +8796,6 @@ goober@^2.0.33:
resolved "https://registry.yarnpkg.com/goober/-/goober-2.1.13.tgz#e3c06d5578486212a76c9eba860cbc3232ff6d7c"
integrity sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==
-gopd@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
- integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
- dependencies:
- get-intrinsic "^1.1.3"
-
got@^9.6.0:
version "9.6.0"
resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz"
@@ -9190,11 +8914,6 @@ has-bigints@^1.0.1:
resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz"
integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
-has-bigints@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
- integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
-
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
@@ -9205,18 +8924,6 @@ has-flag@^4.0.0:
resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1, has-property-descriptors@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
- integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
- dependencies:
- es-define-property "^1.0.0"
-
-has-proto@^1.0.1, has-proto@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
- integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
-
has-symbols@^1.0.1, has-symbols@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz"
@@ -9234,13 +8941,6 @@ has-tostringtag@^1.0.0:
dependencies:
has-symbols "^1.0.2"
-has-tostringtag@^1.0.1, has-tostringtag@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
- integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
- dependencies:
- has-symbols "^1.0.3"
-
has-unicode@^2.0.0, has-unicode@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
@@ -9258,13 +8958,6 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
-hasown@^2.0.0, hasown@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa"
- integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==
- dependencies:
- function-bind "^1.1.2"
-
he@1.2.0, he@^1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
@@ -9678,15 +9371,6 @@ internal-slot@^1.0.3:
has "^1.0.3"
side-channel "^1.0.4"
-internal-slot@^1.0.5, internal-slot@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802"
- integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==
- dependencies:
- es-errors "^1.3.0"
- hasown "^2.0.0"
- side-channel "^1.0.4"
-
interpret@^2.2.0:
version "2.2.0"
resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz"
@@ -9757,14 +9441,6 @@ is-arguments@^1.0.4:
call-bind "^1.0.2"
has-tostringtag "^1.0.0"
-is-array-buffer@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98"
- integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==
- dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.2.1"
-
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
@@ -9775,13 +9451,6 @@ is-arrayish@^0.3.1:
resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
-is-async-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646"
- integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==
- dependencies:
- has-tostringtag "^1.0.0"
-
is-bigint@^1.0.1:
version "1.0.4"
resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
@@ -9809,11 +9478,6 @@ is-buffer@~1.1.6:
resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-is-callable@^1.1.3, is-callable@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
- integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-
is-callable@^1.1.4, is-callable@^1.2.4:
version "1.2.4"
resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz"
@@ -9826,13 +9490,6 @@ is-ci@^2.0.0:
dependencies:
ci-info "^2.0.0"
-is-core-module@^2.13.0:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
- integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
- dependencies:
- hasown "^2.0.0"
-
is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1:
version "2.8.1"
resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz"
@@ -9847,7 +9504,7 @@ is-core-module@^2.9.0:
dependencies:
has "^1.0.3"
-is-date-object@^1.0.1, is-date-object@^1.0.5:
+is-date-object@^1.0.1:
version "1.0.5"
resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz"
integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
@@ -9864,13 +9521,6 @@ is-extglob@^2.1.1:
resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-is-finalizationregistry@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6"
- integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==
- dependencies:
- call-bind "^1.0.2"
-
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"
@@ -9888,13 +9538,6 @@ is-generator-fn@^2.0.0:
resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz"
integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
-is-generator-function@^1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
- integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
- dependencies:
- has-tostringtag "^1.0.0"
-
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
@@ -9920,11 +9563,6 @@ is-lambda@^1.0.1:
resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz"
integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=
-is-map@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
- integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
-
is-module@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz"
@@ -9935,11 +9573,6 @@ is-negative-zero@^2.0.1:
resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
-is-negative-zero@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747"
- integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==
-
is-npm@^5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz"
@@ -10032,23 +9665,11 @@ is-root@^2.1.0:
resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz"
integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==
-is-set@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
- integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
-
is-shared-array-buffer@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz"
integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
-is-shared-array-buffer@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688"
- integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==
- dependencies:
- call-bind "^1.0.7"
-
is-ssh@^1.3.0:
version "1.4.0"
resolved "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz"
@@ -10087,38 +9708,18 @@ is-text-path@^1.0.1:
dependencies:
text-extensions "^1.0.0"
-is-typed-array@^1.1.13:
- version "1.1.13"
- resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229"
- integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==
- dependencies:
- which-typed-array "^1.1.14"
-
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
-is-weakmap@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
- integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==
-
-is-weakref@^1.0.1, is-weakref@^1.0.2:
+is-weakref@^1.0.1:
version "1.0.2"
resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
dependencies:
call-bind "^1.0.2"
-is-weakset@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d"
- integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==
- dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.1"
-
is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz"
@@ -10131,11 +9732,6 @@ is-yarn-global@^0.3.0:
resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz"
integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
-isarray@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
- integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
-
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
@@ -10198,17 +9794,6 @@ istanbul-reports@^3.1.3:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
-iterator.prototype@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0"
- integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==
- dependencies:
- define-properties "^1.2.1"
- get-intrinsic "^1.2.1"
- has-symbols "^1.0.3"
- reflect.getprototypeof "^1.0.4"
- set-function-name "^2.0.1"
-
jake@^10.6.1:
version "10.8.2"
resolved "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz"
@@ -11523,13 +11108,6 @@ minimatch@9.0.3:
dependencies:
brace-expansion "^2.0.1"
-minimatch@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
minimatch@^5.0.1:
version "5.1.0"
resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz"
@@ -12225,11 +11803,6 @@ object-inspect@^1.11.0:
resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz"
integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
-object-inspect@^1.13.1:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
- integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
-
object-inspect@^1.9.0:
version "1.12.2"
resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz"
@@ -12258,16 +11831,6 @@ object.assign@^4.1.0, object.assign@^4.1.2:
has-symbols "^1.0.1"
object-keys "^1.1.1"
-object.assign@^4.1.5:
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
- integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
- dependencies:
- call-bind "^1.0.5"
- define-properties "^1.2.1"
- has-symbols "^1.0.3"
- object-keys "^1.1.1"
-
object.entries@^1.1.5:
version "1.1.5"
resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz"
@@ -12277,15 +11840,6 @@ object.entries@^1.1.5:
define-properties "^1.1.3"
es-abstract "^1.19.1"
-object.entries@^1.1.6:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131"
- integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
-
object.fromentries@^2.0.5:
version "2.0.5"
resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz"
@@ -12295,15 +11849,6 @@ object.fromentries@^2.0.5:
define-properties "^1.1.3"
es-abstract "^1.19.1"
-object.fromentries@^2.0.6:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616"
- integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
-
object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
version "2.1.3"
resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz"
@@ -12321,14 +11866,6 @@ object.hasown@^1.1.0:
define-properties "^1.1.3"
es-abstract "^1.19.1"
-object.hasown@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae"
- integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==
- dependencies:
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
-
object.values@^1.1.0, object.values@^1.1.5:
version "1.1.5"
resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz"
@@ -12338,15 +11875,6 @@ object.values@^1.1.0, object.values@^1.1.5:
define-properties "^1.1.3"
es-abstract "^1.19.1"
-object.values@^1.1.6:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a"
- integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
-
objection@^3.0.0:
version "3.0.1"
resolved "https://registry.npmjs.org/objection/-/objection-3.0.1.tgz"
@@ -12929,11 +12457,6 @@ portfinder@^1.0.28:
debug "^3.1.1"
mkdirp "^0.5.5"
-possible-typed-array-names@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
- integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
-
postcss-attribute-case-insensitive@^5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz"
@@ -14211,19 +13734,6 @@ redis-parser@^3.0.0:
dependencies:
redis-errors "^1.0.0"
-reflect.getprototypeof@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz#e0bd28b597518f16edaf9c0e292c631eb13e0674"
- integrity sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==
- dependencies:
- call-bind "^1.0.5"
- define-properties "^1.2.1"
- es-abstract "^1.22.3"
- es-errors "^1.0.0"
- get-intrinsic "^1.2.3"
- globalthis "^1.0.3"
- which-builtin-type "^1.1.3"
-
regenerate-unicode-properties@^9.0.0:
version "9.0.0"
resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz"
@@ -14266,16 +13776,6 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1:
call-bind "^1.0.2"
define-properties "^1.1.3"
-regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334"
- integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==
- dependencies:
- call-bind "^1.0.6"
- define-properties "^1.2.1"
- es-errors "^1.3.0"
- set-function-name "^2.0.1"
-
regexpp@^3.2.0:
version "3.2.0"
resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz"
@@ -14454,15 +13954,6 @@ resolve@^2.0.0-next.3:
is-core-module "^2.2.0"
path-parse "^1.0.6"
-resolve@^2.0.0-next.4:
- version "2.0.0-next.5"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c"
- integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==
- dependencies:
- is-core-module "^2.13.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
responselike@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz"
@@ -14572,16 +14063,6 @@ rxjs@^6.6.0:
dependencies:
tslib "^1.9.0"
-safe-array-concat@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692"
- integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==
- dependencies:
- call-bind "^1.0.5"
- get-intrinsic "^1.2.2"
- has-symbols "^1.0.3"
- isarray "^2.0.5"
-
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
@@ -14592,15 +14073,6 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0,
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-safe-regex-test@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377"
- integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==
- dependencies:
- call-bind "^1.0.6"
- es-errors "^1.3.0"
- is-regex "^1.1.4"
-
safe-stable-stringify@^1.1.0:
version "1.1.1"
resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz"
@@ -14721,7 +14193,7 @@ semver@7.0.0:
resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz"
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
-semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1:
+semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
version "6.3.1"
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
@@ -14830,28 +14302,6 @@ set-blocking@^2.0.0, set-blocking@~2.0.0:
resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-set-function-length@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425"
- integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==
- dependencies:
- define-data-property "^1.1.2"
- es-errors "^1.3.0"
- function-bind "^1.1.2"
- get-intrinsic "^1.2.3"
- gopd "^1.0.1"
- has-property-descriptors "^1.0.1"
-
-set-function-name@^2.0.0, set-function-name@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985"
- integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
- dependencies:
- define-data-property "^1.1.4"
- es-errors "^1.3.0"
- functions-have-names "^1.2.3"
- has-property-descriptors "^1.0.2"
-
setprototypeof@1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz"
@@ -15330,30 +14780,6 @@ string.prototype.matchall@^4.0.6:
regexp.prototype.flags "^1.3.1"
side-channel "^1.0.4"
-string.prototype.matchall@^4.0.8:
- version "4.0.10"
- resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100"
- integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
- get-intrinsic "^1.2.1"
- has-symbols "^1.0.3"
- internal-slot "^1.0.5"
- regexp.prototype.flags "^1.5.0"
- set-function-name "^2.0.0"
- side-channel "^1.0.4"
-
-string.prototype.trim@^1.2.8:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd"
- integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
-
string.prototype.trimend@^1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz"
@@ -15362,15 +14788,6 @@ string.prototype.trimend@^1.0.4:
call-bind "^1.0.2"
define-properties "^1.1.3"
-string.prototype.trimend@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e"
- integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
-
string.prototype.trimstart@^1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz"
@@ -15379,15 +14796,6 @@ string.prototype.trimstart@^1.0.4:
call-bind "^1.0.2"
define-properties "^1.1.3"
-string.prototype.trimstart@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298"
- integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.2.0"
- es-abstract "^1.22.1"
-
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz"
@@ -16060,50 +15468,6 @@ type-is@^1.6.4, type-is@~1.6.18:
media-typer "0.3.0"
mime-types "~2.1.24"
-typed-array-buffer@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3"
- integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==
- dependencies:
- call-bind "^1.0.7"
- es-errors "^1.3.0"
- is-typed-array "^1.1.13"
-
-typed-array-byte-length@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67"
- integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==
- dependencies:
- call-bind "^1.0.7"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-proto "^1.0.3"
- is-typed-array "^1.1.13"
-
-typed-array-byte-offset@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063"
- integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==
- dependencies:
- available-typed-arrays "^1.0.7"
- call-bind "^1.0.7"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-proto "^1.0.3"
- is-typed-array "^1.1.13"
-
-typed-array-length@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.5.tgz#57d44da160296d8663fd63180a1802ebf25905d5"
- integrity sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==
- dependencies:
- call-bind "^1.0.7"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-proto "^1.0.3"
- is-typed-array "^1.1.13"
- possible-typed-array-names "^1.0.0"
-
typedarray-to-buffer@^3.1.5:
version "3.1.5"
resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"
@@ -16146,16 +15510,6 @@ unbox-primitive@^1.0.1:
has-symbols "^1.0.2"
which-boxed-primitive "^1.0.2"
-unbox-primitive@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
- integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
- dependencies:
- call-bind "^1.0.2"
- has-bigints "^1.0.2"
- has-symbols "^1.0.3"
- which-boxed-primitive "^1.0.2"
-
undefsafe@^2.0.5:
version "2.0.5"
resolved "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz"
@@ -16730,45 +16084,6 @@ which-boxed-primitive@^1.0.2:
is-string "^1.0.5"
is-symbol "^1.0.3"
-which-builtin-type@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b"
- integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==
- dependencies:
- function.prototype.name "^1.1.5"
- has-tostringtag "^1.0.0"
- is-async-function "^2.0.0"
- is-date-object "^1.0.5"
- is-finalizationregistry "^1.0.2"
- is-generator-function "^1.0.10"
- is-regex "^1.1.4"
- is-weakref "^1.0.2"
- isarray "^2.0.5"
- which-boxed-primitive "^1.0.2"
- which-collection "^1.0.1"
- which-typed-array "^1.1.9"
-
-which-collection@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906"
- integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==
- dependencies:
- is-map "^2.0.1"
- is-set "^2.0.1"
- is-weakmap "^2.0.1"
- is-weakset "^2.0.1"
-
-which-typed-array@^1.1.14, which-typed-array@^1.1.9:
- version "1.1.14"
- resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06"
- integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==
- dependencies:
- available-typed-arrays "^1.0.6"
- call-bind "^1.0.5"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-tostringtag "^1.0.1"
-
which@^1.3.1:
version "1.3.1"
resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"