diff --git a/packages/console/package.json b/packages/console/package.json
index 5ec6a03ec..2038f18d8 100644
--- a/packages/console/package.json
+++ b/packages/console/package.json
@@ -19,7 +19,7 @@
"devDependencies": {
"@fontsource/roboto-mono": "^4.5.7",
"@logto/phrases": "^0.1.0",
- "@logto/react": "^0.1.11",
+ "@logto/react": "^0.1.12",
"@logto/shared": "^0.1.0",
"@logto/schemas": "^0.1.0",
"@mdx-js/react": "^1.6.22",
diff --git a/packages/console/src/components/AppContent/components/Topbar/index.tsx b/packages/console/src/components/AppContent/components/Topbar/index.tsx
index 478ddb22e..eaf4b65a0 100644
--- a/packages/console/src/components/AppContent/components/Topbar/index.tsx
+++ b/packages/console/src/components/AppContent/components/Topbar/index.tsx
@@ -5,6 +5,7 @@ import Spacer from '@/components/Spacer';
import Logo from '@/icons/Logo';
import GetStartedProgress from '@/pages/GetStarted/components/GetStartedProgress';
+import UserInfo from '../UserInfo';
import * as styles from './index.module.scss';
const Topbar = () => {
@@ -17,6 +18,7 @@ const Topbar = () => {
{t('admin_console.title')}
+
);
};
diff --git a/packages/console/src/components/AppContent/components/UserInfo/index.module.scss b/packages/console/src/components/AppContent/components/UserInfo/index.module.scss
new file mode 100644
index 000000000..34afba859
--- /dev/null
+++ b/packages/console/src/components/AppContent/components/UserInfo/index.module.scss
@@ -0,0 +1,63 @@
+@use '@/scss/underscore' as _;
+
+.container {
+ display: flex;
+ align-items: center;
+ padding: _.unit(2);
+ margin-left: _.unit(4);
+ border-radius: 8px;
+ transition: background-color 0.2s ease-in-out;
+ user-select: none;
+ cursor: pointer;
+
+ &:hover,
+ &.active {
+ background-color: var(--color-surface-5);
+ }
+
+ img {
+ width: 36px;
+ height: 36px;
+ margin-right: _.unit(2);
+ border-radius: 6px;
+ }
+
+ .wrapper {
+ display: flex;
+ flex-direction: column;
+
+ .name {
+ font: var(--font-subhead-2);
+ color: var(--color-text);
+ }
+
+ .role {
+ font: var(--font-body-small);
+ color: var(--color-caption);
+ }
+ }
+}
+
+.dropdown {
+ padding: _.unit(2);
+}
+
+.dropdownItem {
+ height: 40px;
+ padding: 0 _.unit(5) 0 _.unit(4);
+ border-radius: 8px;
+ min-width: 170px;
+
+ &.loading {
+ opacity: 60%;
+ cursor: default;
+
+ &:hover {
+ background-color: unset;
+ }
+ }
+
+ .spinner {
+ margin-left: _.unit(6);
+ }
+}
diff --git a/packages/console/src/components/AppContent/components/UserInfo/index.tsx b/packages/console/src/components/AppContent/components/UserInfo/index.tsx
new file mode 100644
index 000000000..8802e427a
--- /dev/null
+++ b/packages/console/src/components/AppContent/components/UserInfo/index.tsx
@@ -0,0 +1,89 @@
+import { useLogto } from '@logto/react';
+import { User, UserRole } from '@logto/schemas';
+import classNames from 'classnames';
+import React, { useEffect, useRef, useState, MouseEvent } from 'react';
+import { useTranslation } from 'react-i18next';
+
+import Dropdown, { DropdownItem } from '@/components/Dropdown';
+import Spinner from '@/components/Spinner';
+import { getAvatarById } from '@/consts/avatars';
+import useApi from '@/hooks/use-api';
+import SignOut from '@/icons/SignOut';
+
+import * as styles from './index.module.scss';
+
+const UserInfo = () => {
+ const { isAuthenticated, getIdTokenClaims, signOut } = useLogto();
+ const api = useApi();
+ const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' });
+ const anchorRef = useRef(null);
+ const [showDropDown, setShowDropdown] = useState(false);
+ const [user, setUser] = useState();
+ const [isLoading, setIsLoading] = useState(false);
+
+ useEffect(() => {
+ (async () => {
+ if (isAuthenticated) {
+ const { sub: userId } = getIdTokenClaims() ?? {};
+
+ if (userId) {
+ const data = await api.get(`/api/users/${userId}`).json();
+ setUser(data);
+ }
+ }
+ })();
+ }, [api, isAuthenticated, getIdTokenClaims]);
+
+ if (!user) {
+ return null;
+ }
+
+ const { id, name, avatar, roleNames } = user;
+ const isAdmin = roleNames.includes(UserRole.Admin);
+
+ return (
+ <>
+ {
+ setShowDropdown(true);
+ }}
+ >
+
+
+
{name}
+ {isAdmin &&
{t('user_details.roles.admin')}
}
+
+
+ {
+ setShowDropdown(false);
+ }}
+ >
+ }
+ onClick={(event: MouseEvent) => {
+ event.stopPropagation();
+
+ if (isLoading) {
+ return;
+ }
+ setIsLoading(true);
+ void signOut(`${window.location.origin}/console`);
+ }}
+ >
+ {t('sign_out')}
+ {isLoading && }
+
+
+ >
+ );
+};
+
+export default UserInfo;
diff --git a/packages/console/src/components/Button/index.module.scss b/packages/console/src/components/Button/index.module.scss
index 723a45c00..b45edd748 100644
--- a/packages/console/src/components/Button/index.module.scss
+++ b/packages/console/src/components/Button/index.module.scss
@@ -1,12 +1,14 @@
@use '@/scss/underscore' as _;
.button {
+ display: flex;
+ align-items: center;
+ justify-content: center;
border: none;
outline: none;
border-radius: _.unit(2);
font: var(--font-button);
- transition: background 0.2s ease-in-out;
- align-items: center;
+ transition: background-color 0.2s ease-in-out;
white-space: nowrap;
user-select: none;
position: relative;
@@ -20,16 +22,9 @@
opacity: 60%;
.spinner {
- width: 16px;
- height: 16px;
position: absolute;
- top: 50%;
left: 50%;
- transform: translate(-50%, -50%);
-
- svg {
- @include _.rotating-animation;
- }
+ transform: translateX(-50%);
}
.spinner ~ span {
diff --git a/packages/console/src/components/Button/index.tsx b/packages/console/src/components/Button/index.tsx
index 31f1d99a0..ced3b1d47 100644
--- a/packages/console/src/components/Button/index.tsx
+++ b/packages/console/src/components/Button/index.tsx
@@ -3,7 +3,7 @@ import classNames from 'classnames';
import React, { HTMLProps, ReactElement, ReactNode, useEffect, useRef, useState } from 'react';
import { useTranslation } from 'react-i18next';
-import Spinner from '@/icons/Spinner';
+import Spinner from '@/components/Spinner';
import DangerousRaw from '../DangerousRaw';
import * as styles from './index.module.scss';
@@ -78,11 +78,7 @@ const Button = ({
}}
{...rest}
>
- {showSpinner && (
-
-
-
- )}
+ {showSpinner && }
{icon && {icon}}
{title && (typeof title === 'string' ? {t(title)} : title)}
diff --git a/packages/console/src/components/Dropdown/DropdownItem.tsx b/packages/console/src/components/Dropdown/DropdownItem.tsx
index 824ae30d0..76be4313f 100644
--- a/packages/console/src/components/Dropdown/DropdownItem.tsx
+++ b/packages/console/src/components/Dropdown/DropdownItem.tsx
@@ -1,10 +1,10 @@
import classNames from 'classnames';
-import React from 'react';
+import React, { MouseEvent } from 'react';
import * as styles from './DropdownItem.module.scss';
type Props = {
- onClick?: () => void;
+ onClick?: (event: MouseEvent) => void;
className?: string;
children: React.ReactNode;
icon?: React.ReactNode;
diff --git a/packages/console/src/components/Spinner/index.module.scss b/packages/console/src/components/Spinner/index.module.scss
new file mode 100644
index 000000000..b066fcc98
--- /dev/null
+++ b/packages/console/src/components/Spinner/index.module.scss
@@ -0,0 +1,12 @@
+@use '@/scss/underscore' as _;
+
+.spinner {
+ width: 16px;
+ height: 16px;
+ display: inline-flex;
+ align-items: center;
+
+ svg {
+ @include _.rotating-animation;
+ }
+}
diff --git a/packages/console/src/components/Spinner/index.tsx b/packages/console/src/components/Spinner/index.tsx
new file mode 100644
index 000000000..8f7da30bb
--- /dev/null
+++ b/packages/console/src/components/Spinner/index.tsx
@@ -0,0 +1,21 @@
+import classNames from 'classnames';
+import React from 'react';
+
+import * as styles from './index.module.scss';
+
+type Props = {
+ className?: string;
+};
+
+const Spinner = ({ className }: Props) => (
+
+
+
+);
+
+export default Spinner;
diff --git a/packages/console/src/icons/SignOut.tsx b/packages/console/src/icons/SignOut.tsx
new file mode 100644
index 000000000..ec7e7d8f9
--- /dev/null
+++ b/packages/console/src/icons/SignOut.tsx
@@ -0,0 +1,21 @@
+import React, { SVGProps } from 'react';
+
+const SignOut = (props: SVGProps) => {
+ return (
+
+ );
+};
+
+export default SignOut;
diff --git a/packages/console/src/icons/Spinner.tsx b/packages/console/src/icons/Spinner.tsx
deleted file mode 100644
index 54f5ee3bb..000000000
--- a/packages/console/src/icons/Spinner.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import React, { SVGProps } from 'react';
-
-const Spinner = (props: SVGProps) => (
-
-);
-
-export default Spinner;
diff --git a/packages/console/src/scss/details.module.scss b/packages/console/src/scss/details.module.scss
index 52f178841..650f0974e 100644
--- a/packages/console/src/scss/details.module.scss
+++ b/packages/console/src/scss/details.module.scss
@@ -18,7 +18,6 @@
}
.footer {
- text-align: right;
position: sticky;
bottom: 0;
margin: 0 _.unit(-6);
@@ -27,6 +26,8 @@
background: var(--color-base);
.footerMain {
+ display: flex;
+ justify-content: flex-end;
border-bottom-left-radius: 16px;
border-bottom-right-radius: 16px;
background: var(--color-layer-1);
diff --git a/packages/phrases/src/locales/en.ts b/packages/phrases/src/locales/en.ts
index 93c03232a..deadf5532 100644
--- a/packages/phrases/src/locales/en.ts
+++ b/packages/phrases/src/locales/en.ts
@@ -96,6 +96,8 @@ const translation = {
},
admin_console: {
title: 'Admin Console',
+ sign_out: 'Sign out',
+ profile: 'Profile',
copy: {
pending: 'Copy',
copying: 'Copying',
diff --git a/packages/phrases/src/locales/zh-cn.ts b/packages/phrases/src/locales/zh-cn.ts
index 4eccd1191..966822ac9 100644
--- a/packages/phrases/src/locales/zh-cn.ts
+++ b/packages/phrases/src/locales/zh-cn.ts
@@ -96,6 +96,8 @@ const translation = {
},
admin_console: {
title: '管理面板',
+ sign_out: '登出',
+ profile: '账户管理',
copy: {
pending: '拷贝',
copying: '拷贝中',
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f84d7667d..7b7e45d03 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -633,7 +633,7 @@ importers:
specifiers:
'@fontsource/roboto-mono': ^4.5.7
'@logto/phrases': ^0.1.0
- '@logto/react': ^0.1.11
+ '@logto/react': ^0.1.12
'@logto/schemas': ^0.1.0
'@logto/shared': ^0.1.0
'@mdx-js/react': ^1.6.22
@@ -689,7 +689,7 @@ importers:
devDependencies:
'@fontsource/roboto-mono': 4.5.7
'@logto/phrases': link:../phrases
- '@logto/react': 0.1.11_react@17.0.2
+ '@logto/react': 0.1.12_react@17.0.2
'@logto/schemas': link:../schemas
'@logto/shared': link:../shared
'@mdx-js/react': 1.6.22_react@17.0.2
@@ -921,7 +921,7 @@ importers:
stylelint: ^14.8.2
typescript: ^4.7.2
devDependencies:
- '@logto/react': 0.1.11_react@17.0.2
+ '@logto/react': 0.1.12_react@17.0.2
'@logto/schemas': link:../schemas
'@logto/shared': link:../shared
'@parcel/core': 2.5.0
@@ -4625,7 +4625,6 @@ packages:
pacote: 13.4.1
semver: 7.3.7
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -4656,7 +4655,6 @@ packages:
p-waterfall: 2.1.1
semver: 7.3.7
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -4797,7 +4795,6 @@ packages:
whatwg-url: 8.7.0
yargs-parser: 20.2.4
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -4995,7 +4992,6 @@ packages:
npm-registry-fetch: 9.0.0
npmlog: 4.1.2
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -5025,7 +5021,6 @@ packages:
pify: 5.0.0
read-package-json: 3.0.1
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -5064,7 +5059,6 @@ packages:
npmlog: 4.1.2
tar: 6.1.11
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -5163,7 +5157,6 @@ packages:
pacote: 13.4.1
semver: 7.3.7
transitivePeerDependencies:
- - bluebird
- encoding
- supports-color
dev: true
@@ -5209,7 +5202,6 @@ packages:
'@npmcli/run-script': 3.0.2
npmlog: 4.1.2
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -5311,7 +5303,6 @@ packages:
slash: 3.0.0
write-json-file: 4.3.0
transitivePeerDependencies:
- - bluebird
- encoding
- supports-color
dev: true
@@ -5358,8 +5349,8 @@ packages:
superstruct: 0.15.4
dev: true
- /@logto/react/0.1.11_react@17.0.2:
- resolution: {integrity: sha512-iu4weOF300A5A+6/O1bnHkq4VUTi1vkRiHb+XSgVhs4xE2Hd3uE4tfT7PqWQbBZW1KJktiGFgR8pOGwfDnVgLw==}
+ /@logto/react/0.1.12_react@17.0.2:
+ resolution: {integrity: sha512-Bo6qlAm5JHeNofKdfzsMd+FtIvwmONqORjMUnN1Fv8qvs9/mHGD+0fsM4dAHj2cV5FdDRARhDjXwBeg3CMvrBQ==}
requiresBuild: true
peerDependencies:
react: '>=16.8.0'
@@ -5495,7 +5486,6 @@ packages:
treeverse: 2.0.0
walk-up-path: 1.0.0
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -5531,8 +5521,6 @@ packages:
promise-retry: 2.0.1
semver: 7.3.7
which: 2.0.2
- transitivePeerDependencies:
- - bluebird
dev: true
/@npmcli/installed-package-contents/1.0.7:
@@ -5563,7 +5551,6 @@ packages:
pacote: 13.4.1
semver: 7.3.7
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -5615,7 +5602,6 @@ packages:
node-gyp: 9.0.0
read-package-json-fast: 2.0.3
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -6671,7 +6657,6 @@ packages:
stylelint-config-xo-scss: 0.15.0_cazrl3eatzhkw4y7xb6glndqh4
transitivePeerDependencies:
- eslint
- - eslint-import-resolver-webpack
- postcss
- prettier
- supports-color
@@ -6691,7 +6676,6 @@ packages:
stylelint-config-xo-scss: 0.15.0_zhymizk4kfitko2u2d4p3qwyee
transitivePeerDependencies:
- eslint
- - eslint-import-resolver-webpack
- postcss
- prettier
- supports-color
@@ -6711,7 +6695,6 @@ packages:
stylelint-config-xo-scss: 0.15.0_cazrl3eatzhkw4y7xb6glndqh4
transitivePeerDependencies:
- eslint
- - eslint-import-resolver-webpack
- postcss
- prettier
- supports-color
@@ -6735,7 +6718,7 @@ packages:
eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u
eslint-plugin-consistent-default-export-name: 0.0.7
eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0
- eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany
+ eslint-plugin-import: 2.25.4_eslint@8.10.0
eslint-plugin-no-use-extend-native: 0.5.0
eslint-plugin-node: 11.1.0_eslint@8.10.0
eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m
@@ -6745,7 +6728,6 @@ packages:
pkg-dir: 4.2.0
prettier: 2.5.1
transitivePeerDependencies:
- - eslint-import-resolver-webpack
- supports-color
- typescript
dev: true
@@ -6767,7 +6749,7 @@ packages:
eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u
eslint-plugin-consistent-default-export-name: 0.0.7
eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0
- eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany
+ eslint-plugin-import: 2.25.4_eslint@8.10.0
eslint-plugin-no-use-extend-native: 0.5.0
eslint-plugin-node: 11.1.0_eslint@8.10.0
eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m
@@ -6777,7 +6759,6 @@ packages:
pkg-dir: 4.2.0
prettier: 2.5.1
transitivePeerDependencies:
- - eslint-import-resolver-webpack
- supports-color
- typescript
dev: true
@@ -6799,7 +6780,7 @@ packages:
eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u
eslint-plugin-consistent-default-export-name: 0.0.7
eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0
- eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany
+ eslint-plugin-import: 2.25.4_eslint@8.10.0
eslint-plugin-no-use-extend-native: 0.5.0
eslint-plugin-node: 11.1.0_eslint@8.10.0
eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m
@@ -6809,7 +6790,6 @@ packages:
pkg-dir: 4.2.0
prettier: 2.5.1
transitivePeerDependencies:
- - eslint-import-resolver-webpack
- supports-color
- typescript
dev: true
@@ -6831,7 +6811,7 @@ packages:
eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u
eslint-plugin-consistent-default-export-name: 0.0.7
eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0
- eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany
+ eslint-plugin-import: 2.25.4_eslint@8.10.0
eslint-plugin-no-use-extend-native: 0.5.0
eslint-plugin-node: 11.1.0_eslint@8.10.0
eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m
@@ -6841,7 +6821,6 @@ packages:
pkg-dir: 4.2.0
prettier: 2.5.1
transitivePeerDependencies:
- - eslint-import-resolver-webpack
- supports-color
- typescript
dev: true
@@ -9039,8 +9018,6 @@ packages:
qs: 6.9.7
raw-body: 2.4.3
type-is: 1.6.18
- transitivePeerDependencies:
- - supports-color
dev: true
/bonjour-service/1.0.11:
@@ -9235,8 +9212,6 @@ packages:
ssri: 8.0.1
tar: 6.1.11
unique-filename: 1.1.1
- transitivePeerDependencies:
- - bluebird
dev: true
/cacache/16.1.0:
@@ -9261,8 +9236,6 @@ packages:
ssri: 9.0.1
tar: 6.1.11
unique-filename: 1.1.1
- transitivePeerDependencies:
- - bluebird
dev: true
/cache-content-type/1.0.1:
@@ -9790,8 +9763,6 @@ packages:
on-headers: 1.0.2
safe-buffer: 5.1.2
vary: 1.1.2
- transitivePeerDependencies:
- - supports-color
dev: true
/concat-map/0.0.1:
@@ -10416,22 +10387,12 @@ packages:
/debug/2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
dependencies:
ms: 2.0.0
dev: true
/debug/3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
dependencies:
ms: 2.1.3
@@ -10659,8 +10620,6 @@ packages:
dependencies:
address: 1.1.2
debug: 2.6.9
- transitivePeerDependencies:
- - supports-color
dev: true
/detect-port/1.3.0:
@@ -10670,8 +10629,6 @@ packages:
dependencies:
address: 1.1.2
debug: 2.6.9
- transitivePeerDependencies:
- - supports-color
dev: true
/dezalgo/1.0.3:
@@ -11200,7 +11157,7 @@ packages:
dependencies:
debug: 4.3.3
eslint: 8.10.0
- eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany
+ eslint-plugin-import: 2.25.4_eslint@8.10.0
glob: 7.2.0
is-glob: 4.0.3
resolve: 1.22.0
@@ -11209,31 +11166,12 @@ packages:
- supports-color
dev: true
- /eslint-module-utils/2.7.3_l62aq42yiamaj3cnpuf6avthf4:
+ /eslint-module-utils/2.7.3:
resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
engines: {node: '>=4'}
- peerDependencies:
- '@typescript-eslint/parser': '*'
- eslint-import-resolver-node: '*'
- eslint-import-resolver-typescript: '*'
- eslint-import-resolver-webpack: '*'
- peerDependenciesMeta:
- '@typescript-eslint/parser':
- optional: true
- eslint-import-resolver-node:
- optional: true
- eslint-import-resolver-typescript:
- optional: true
- eslint-import-resolver-webpack:
- optional: true
dependencies:
- '@typescript-eslint/parser': 5.14.0_fo4uz55zgcu432252zy2gvpvcu
debug: 3.2.7
- eslint-import-resolver-node: 0.3.6
- eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u
find-up: 2.1.0
- transitivePeerDependencies:
- - supports-color
dev: true
/eslint-plugin-consistent-default-export-name/0.0.7:
@@ -11268,24 +11206,19 @@ packages:
ignore: 5.2.0
dev: true
- /eslint-plugin-import/2.25.4_sidoke6kqbkbdht6nlmwbfnany:
+ /eslint-plugin-import/2.25.4_eslint@8.10.0:
resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==}
engines: {node: '>=4'}
peerDependencies:
- '@typescript-eslint/parser': '*'
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
- peerDependenciesMeta:
- '@typescript-eslint/parser':
- optional: true
dependencies:
- '@typescript-eslint/parser': 5.14.0_fo4uz55zgcu432252zy2gvpvcu
array-includes: 3.1.4
array.prototype.flat: 1.2.5
debug: 2.6.9
doctrine: 2.1.0
eslint: 8.10.0
eslint-import-resolver-node: 0.3.6
- eslint-module-utils: 2.7.3_l62aq42yiamaj3cnpuf6avthf4
+ eslint-module-utils: 2.7.3
has: 1.0.3
is-core-module: 2.8.1
is-glob: 4.0.3
@@ -11293,10 +11226,6 @@ packages:
object.values: 1.1.5
resolve: 1.22.0
tsconfig-paths: 3.13.0
- transitivePeerDependencies:
- - eslint-import-resolver-typescript
- - eslint-import-resolver-webpack
- - supports-color
dev: true
/eslint-plugin-no-use-extend-native/0.5.0:
@@ -11688,8 +11617,6 @@ packages:
type-is: 1.6.18
utils-merge: 1.0.1
vary: 1.1.2
- transitivePeerDependencies:
- - supports-color
dev: true
/extend-shallow/2.0.1:
@@ -11881,8 +11808,6 @@ packages:
parseurl: 1.3.3
statuses: 1.5.0
unpipe: 1.0.0
- transitivePeerDependencies:
- - supports-color
dev: true
/find-cache-dir/3.3.2:
@@ -14654,7 +14579,6 @@ packages:
import-local: 3.1.0
npmlog: 4.1.2
transitivePeerDependencies:
- - bluebird
- encoding
- supports-color
dev: true
@@ -14689,7 +14613,6 @@ packages:
npm-package-arg: 8.1.5
npm-registry-fetch: 11.0.0
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -14703,7 +14626,6 @@ packages:
semver: 7.3.7
ssri: 8.0.1
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -14886,7 +14808,7 @@ packages:
dev: true
/lodash.get/4.4.2:
- resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=}
+ resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
dev: true
/lodash.ismatch/4.4.0:
@@ -14909,7 +14831,7 @@ packages:
dev: true
/lodash.once/4.1.1:
- resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=}
+ resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
dev: true
/lodash.orderby/4.6.0:
@@ -15078,7 +15000,6 @@ packages:
socks-proxy-agent: 6.1.1
ssri: 9.0.1
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -15102,7 +15023,6 @@ packages:
socks-proxy-agent: 5.0.1
ssri: 8.0.1
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -15127,7 +15047,6 @@ packages:
socks-proxy-agent: 6.1.1
ssri: 8.0.1
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -16021,7 +15940,6 @@ packages:
tar: 6.1.11
which: 2.0.2
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -16197,7 +16115,6 @@ packages:
minizlib: 2.1.2
npm-package-arg: 8.1.5
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -16213,7 +16130,6 @@ packages:
npm-package-arg: 9.0.2
proc-log: 2.0.1
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -16230,7 +16146,6 @@ packages:
minizlib: 2.1.2
npm-package-arg: 8.1.5
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -16656,7 +16571,6 @@ packages:
ssri: 9.0.1
tar: 6.1.11
transitivePeerDependencies:
- - bluebird
- supports-color
dev: true
@@ -17832,11 +17746,6 @@ packages:
/promise-inflight/1.0.1:
resolution: {integrity: sha1-mEcocL8igTL8vdhoEputEsPAKeM=}
- peerDependencies:
- bluebird: '*'
- peerDependenciesMeta:
- bluebird:
- optional: true
dev: true
/promise-retry/2.0.1:
@@ -18109,7 +18018,6 @@ packages:
text-table: 0.2.0
transitivePeerDependencies:
- eslint
- - supports-color
- typescript
- vue-template-compiler
- webpack
@@ -19217,8 +19125,6 @@ packages:
on-finished: 2.3.0
range-parser: 1.2.1
statuses: 1.5.0
- transitivePeerDependencies:
- - supports-color
dev: true
/serialize-error/7.0.1:
@@ -19265,8 +19171,6 @@ packages:
http-errors: 1.6.3
mime-types: 2.1.35
parseurl: 1.3.3
- transitivePeerDependencies:
- - supports-color
dev: true
/serve-static/1.14.2:
@@ -19277,8 +19181,6 @@ packages:
escape-html: 1.0.3
parseurl: 1.3.3
send: 0.17.2
- transitivePeerDependencies:
- - supports-color
dev: true
/set-blocking/2.0.0: