Updated settings components.
@ -1 +1 @@
|
|||||||
<svg fill="none" height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><g clip-rule="evenodd" fill="rgb(0,0,0)" fill-rule="evenodd"><path d="m12 4c-4.41828 0-8 3.58172-8 8 0 4.4183 3.58172 8 8 8 4.4183 0 8-3.5817 8-8 0-4.41828-3.5817-8-8-8zm-10 8c0-5.52285 4.47715-10 10-10 5.5228 0 10 4.47715 10 10 0 5.5228-4.4772 10-10 10-5.52285 0-10-4.4772-10-10z"/><path d="m11.168 11.4453c.3063-.4595.9272-.5837 1.3867-.2774l3 2c.4595.3064.5837.9273.2774 1.3868-.3064.4595-.9273.5837-1.3868.2773l-3-2c-.4595-.3063-.5837-.9272-.2773-1.3867z"/><path d="m12 6c.5523 0 1 .44772 1 1v5c0 .5523-.4477 1-1 1s-1-.4477-1-1v-5c0-.55228.4477-1 1-1z"/></g></svg>
|
<svg height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><g clip-rule="evenodd"><path d="M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16zM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12z"/><path d="M11.168 11.445a1 1 0 0 1 1.387-.277l3 2a1 1 0 0 1-1.11 1.664l-3-2a1 1 0 0 1-.277-1.387z"/><path d="M12 6a1 1 0 0 1 1 1v5a1 1 0 1 1-2 0V7a1 1 0 0 1 1-1z"/></g></svg>
|
Before Width: | Height: | Size: 665 B After Width: | Height: | Size: 400 B |
@ -1 +1 @@
|
|||||||
<svg height="512pt" viewBox="0 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m197.332031 170.667969h-160c-20.585937 0-37.332031-16.746094-37.332031-37.335938v-96c0-20.585937 16.746094-37.332031 37.332031-37.332031h160c20.589844 0 37.335938 16.746094 37.335938 37.332031v96c0 20.589844-16.746094 37.335938-37.335938 37.335938zm-160-138.667969c-2.941406 0-5.332031 2.390625-5.332031 5.332031v96c0 2.945313 2.390625 5.335938 5.332031 5.335938h160c2.945313 0 5.335938-2.390625 5.335938-5.335938v-96c0-2.941406-2.390625-5.332031-5.335938-5.332031zm0 0"/><path d="m197.332031 512h-160c-20.585937 0-37.332031-16.746094-37.332031-37.332031v-224c0-20.589844 16.746094-37.335938 37.332031-37.335938h160c20.589844 0 37.335938 16.746094 37.335938 37.335938v224c0 20.585937-16.746094 37.332031-37.335938 37.332031zm-160-266.667969c-2.941406 0-5.332031 2.390625-5.332031 5.335938v224c0 2.941406 2.390625 5.332031 5.332031 5.332031h160c2.945313 0 5.335938-2.390625 5.335938-5.332031v-224c0-2.945313-2.390625-5.335938-5.335938-5.335938zm0 0"/><path d="m474.667969 512h-160c-20.589844 0-37.335938-16.746094-37.335938-37.332031v-96c0-20.589844 16.746094-37.335938 37.335938-37.335938h160c20.585937 0 37.332031 16.746094 37.332031 37.335938v96c0 20.585937-16.746094 37.332031-37.332031 37.332031zm-160-138.667969c-2.945313 0-5.335938 2.390625-5.335938 5.335938v96c0 2.941406 2.390625 5.332031 5.335938 5.332031h160c2.941406 0 5.332031-2.390625 5.332031-5.332031v-96c0-2.945313-2.390625-5.335938-5.332031-5.335938zm0 0"/><path d="m474.667969 298.667969h-160c-20.589844 0-37.335938-16.746094-37.335938-37.335938v-224c0-20.585937 16.746094-37.332031 37.335938-37.332031h160c20.585937 0 37.332031 16.746094 37.332031 37.332031v224c0 20.589844-16.746094 37.335938-37.332031 37.335938zm-160-266.667969c-2.945313 0-5.335938 2.390625-5.335938 5.332031v224c0 2.945313 2.390625 5.335938 5.335938 5.335938h160c2.941406 0 5.332031-2.390625 5.332031-5.335938v-224c0-2.941406-2.390625-5.332031-5.332031-5.332031zm0 0"/></svg>
|
<svg height="512pt" viewBox="0 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="M197.332 170.668h-160C16.746 170.668 0 153.922 0 133.332v-96C0 16.746 16.746 0 37.332 0h160c20.59 0 37.336 16.746 37.336 37.332v96c0 20.59-16.746 37.336-37.336 37.336zM37.332 32A5.336 5.336 0 0 0 32 37.332v96a5.337 5.337 0 0 0 5.332 5.336h160a5.338 5.338 0 0 0 5.336-5.336v-96A5.337 5.337 0 0 0 197.332 32zM197.332 512h-160C16.746 512 0 495.254 0 474.668v-224c0-20.59 16.746-37.336 37.332-37.336h160c20.59 0 37.336 16.746 37.336 37.336v224c0 20.586-16.746 37.332-37.336 37.332zm-160-266.668A5.337 5.337 0 0 0 32 250.668v224A5.336 5.336 0 0 0 37.332 480h160a5.337 5.337 0 0 0 5.336-5.332v-224a5.338 5.338 0 0 0-5.336-5.336zM474.668 512h-160c-20.59 0-37.336-16.746-37.336-37.332v-96c0-20.59 16.746-37.336 37.336-37.336h160c20.586 0 37.332 16.746 37.332 37.336v96C512 495.254 495.254 512 474.668 512zm-160-138.668a5.338 5.338 0 0 0-5.336 5.336v96a5.337 5.337 0 0 0 5.336 5.332h160a5.336 5.336 0 0 0 5.332-5.332v-96a5.337 5.337 0 0 0-5.332-5.336zM474.668 298.668h-160c-20.59 0-37.336-16.746-37.336-37.336v-224C277.332 16.746 294.078 0 314.668 0h160C495.254 0 512 16.746 512 37.332v224c0 20.59-16.746 37.336-37.332 37.336zM314.668 32a5.337 5.337 0 0 0-5.336 5.332v224a5.338 5.338 0 0 0 5.336 5.336h160a5.337 5.337 0 0 0 5.332-5.336v-224A5.336 5.336 0 0 0 474.668 32zm0 0"/></svg>
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.3 KiB |
1
assets/edit.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg clip-rule="evenodd" fill-rule="evenodd" height="512" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><g id="Icon"><path d="m13.647 3.25c.414 0 .75.336.75.75s-.336.75-.75.75h-8.647c-1.243 0-2.25 1.007-2.25 2.25v12c0 1.243 1.007 2.25 2.25 2.25h12c1.243 0 2.25-1.007 2.25-2.25v-8.647c0-.414.336-.75.75-.75s.75.336.75.75v8.647c0 2.071-1.679 3.75-3.75 3.75h-12c-2.071 0-3.75-1.679-3.75-3.75v-12c0-2.071 1.679-3.75 3.75-3.75z"/><path d="m22.092 5.09-8.841 8.841c-.082.082-.182.144-.293.181l-3.182 1.06c-.269.09-.566.02-.767-.181s-.271-.498-.181-.767l1.06-3.182c.037-.111.099-.211.181-.293l8.841-8.841c.878-.877 2.301-.877 3.179 0l.003.003c.877.878.877 2.301 0 3.179zm-1.061-1.06c.292-.292.292-.766 0-1.058l-.003-.003c-.292-.292-.766-.292-1.058 0l-8.715 8.715-.53 1.591 1.591-.53z"/><path d="m20.322 5.799c.293.293.293.768 0 1.061-.292.292-.768.292-1.06 0l-2.122-2.122c-.292-.292-.292-.768 0-1.06.293-.293.768-.293 1.061 0z"/></g></svg>
|
After Width: | Height: | Size: 999 B |
@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1400 1400"><path d="M367.43 422.13a54.44 54.44 0 0 1-38.66-16L205 282.35A54.69 54.69 0 0 1 282.37 205l123.74 123.79a54.68 54.68 0 0 1-38.68 93.34ZM1156.3 1211a54.51 54.51 0 0 1-38.67-16l-123.74-123.79a54.68 54.68 0 1 1 77.34-77.33L1195 1117.65a54.7 54.7 0 0 1-38.7 93.35ZM243.7 1211a54.7 54.7 0 0 1-38.7-93.35l123.74-123.76a54.69 54.69 0 0 1 77.36 77.32L282.37 1195a54.51 54.51 0 0 1-38.67 16ZM1032.57 422.13a54.68 54.68 0 0 1-38.68-93.34L1117.61 205a54.69 54.69 0 0 1 77.39 77.35l-123.77 123.76a54.44 54.44 0 0 1-38.66 16.02ZM229.69 754.69h-175a54.69 54.69 0 0 1 0-109.38h175a54.69 54.69 0 0 1 0 109.38ZM1345.31 754.69h-175a54.69 54.69 0 0 1 0-109.38h175a54.69 54.69 0 0 1 0 109.38ZM700 1400a54.68 54.68 0 0 1-54.69-54.69v-175a54.69 54.69 0 0 1 109.38 0v175A54.68 54.68 0 0 1 700 1400ZM700 284.38a54.7 54.7 0 0 1-54.69-54.69v-175a54.69 54.69 0 0 1 109.38 0v175A54.7 54.7 0 0 1 700 284.38Z"/><circle cx="700" cy="700" r="306.25"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1400 1400"><path d="M367.43 422.13a54.44 54.44 0 0 1-38.66-16L205 282.35A54.69 54.69 0 0 1 282.37 205l123.74 123.79a54.68 54.68 0 0 1-38.68 93.34ZM1156.3 1211a54.51 54.51 0 0 1-38.67-16l-123.74-123.79a54.68 54.68 0 1 1 77.34-77.33L1195 1117.65a54.7 54.7 0 0 1-38.7 93.35Zm-912.6 0a54.7 54.7 0 0 1-38.7-93.35l123.74-123.76a54.69 54.69 0 0 1 77.36 77.32L282.37 1195a54.51 54.51 0 0 1-38.67 16Zm788.87-788.87a54.68 54.68 0 0 1-38.68-93.34L1117.61 205a54.69 54.69 0 0 1 77.39 77.35l-123.77 123.76a54.44 54.44 0 0 1-38.66 16.02ZM229.69 754.69h-175a54.69 54.69 0 0 1 0-109.38h175a54.69 54.69 0 0 1 0 109.38Zm1115.62 0h-175a54.69 54.69 0 0 1 0-109.38h175a54.69 54.69 0 0 1 0 109.38ZM700 1400a54.68 54.68 0 0 1-54.69-54.69v-175a54.69 54.69 0 0 1 109.38 0v175A54.68 54.68 0 0 1 700 1400Zm0-1115.62a54.7 54.7 0 0 1-54.69-54.69v-175a54.69 54.69 0 0 1 109.38 0v175A54.7 54.7 0 0 1 700 284.38Z"/><circle cx="700" cy="700" r="306.25"/></svg>
|
Before Width: | Height: | Size: 989 B After Width: | Height: | Size: 980 B |
@ -1 +1 @@
|
|||||||
<svg height="512pt" viewBox="-56 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m267 236.375c36.253906-22.582031 60.433594-62.796875 60.433594-108.5625 0-70.476562-57.335938-127.8125-127.8125-127.8125-70.476563 0-127.8125 57.335938-127.8125 127.8125 0 45.765625 24.179687 85.976562 60.429687 108.558594-77.015625 27.699218-132.238281 101.46875-132.238281 187.902344v72.242187c0 8.550781 6.933594 15.484375 15.484375 15.484375h368.265625c8.550781 0 15.480469-6.933594 15.480469-15.484375v-72.242187c0-86.429688-55.21875-160.195313-132.230469-187.898438zm101.265625 244.65625h-337.296875v-56.757812c0-92.992188 75.652344-168.644532 168.648438-168.644532 92.992187 0 168.648437 75.652344 168.648437 168.644532zm-71.800781-353.21875c0 53.402344-43.441406 96.847656-96.84375 96.847656s-96.84375-43.445312-96.84375-96.847656c0-53.398438 43.441406-96.84375 96.84375-96.84375s96.84375 43.445312 96.84375 96.84375zm0 0"/></svg>
|
<svg height="512pt" viewBox="-56 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="M267 236.375c36.254-22.582 60.434-62.797 60.434-108.563C327.434 57.337 270.098 0 199.62 0 129.145 0 71.81 57.336 71.81 127.813c0 45.765 24.18 85.976 60.43 108.558C55.222 264.071 0 337.84 0 424.273v72.243C0 505.066 6.934 512 15.484 512H383.75c8.55 0 15.48-6.934 15.48-15.484v-72.243c0-86.43-55.218-160.195-132.23-187.898zm101.266 244.656H30.969v-56.758c0-92.992 75.652-168.644 168.648-168.644 92.992 0 168.649 75.652 168.649 168.644zm-71.801-353.219c0 53.403-43.442 96.848-96.844 96.848s-96.844-43.445-96.844-96.847c0-53.399 43.442-96.844 96.844-96.844s96.844 43.445 96.844 96.844zm0 0"/></svg>
|
Before Width: | Height: | Size: 940 B After Width: | Height: | Size: 695 B |
@ -1,25 +1,16 @@
|
|||||||
import PropTypes from 'prop-types';
|
import { Icon, Text, Flexbox } from 'react-basics';
|
||||||
import { Icon, Flexbox } from 'react-basics';
|
|
||||||
import Logo from 'assets/logo.svg';
|
import Logo from 'assets/logo.svg';
|
||||||
import styles from './EmptyPlaceholder.module.css';
|
|
||||||
|
|
||||||
function EmptyPlaceholder({ msg, children }) {
|
function EmptyPlaceholder({ msg, children }) {
|
||||||
return (
|
return (
|
||||||
<div className={styles.placeholder}>
|
<Flexbox direction="column" alignItems="center" justifyContent="center" gap={60} height={600}>
|
||||||
<Icon className={styles.icon} size="xl">
|
<Icon size="xl">
|
||||||
<Logo />
|
<Logo />
|
||||||
</Icon>
|
</Icon>
|
||||||
<h2 className={styles.msg}>{msg}</h2>
|
<Text size="lg">{msg}</Text>
|
||||||
<Flexbox justifyContent="center" alignItems="center">
|
<div>{children}</div>
|
||||||
{children}
|
</Flexbox>
|
||||||
</Flexbox>
|
|
||||||
</div>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
EmptyPlaceholder.propTypes = {
|
|
||||||
msg: PropTypes.node,
|
|
||||||
children: PropTypes.node,
|
|
||||||
};
|
|
||||||
|
|
||||||
export default EmptyPlaceholder;
|
export default EmptyPlaceholder;
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
.placeholder {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
min-height: 600px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.msg {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
@ -1,8 +1,10 @@
|
|||||||
import Calendar from 'assets/calendar.svg';
|
import Calendar from 'assets/calendar.svg';
|
||||||
import Clock from 'assets/clock.svg';
|
import Clock from 'assets/clock.svg';
|
||||||
import Dashboard from 'assets/dashboard.svg';
|
import Dashboard from 'assets/dashboard.svg';
|
||||||
|
import Edit from 'assets/edit.svg';
|
||||||
import Gear from 'assets/gear.svg';
|
import Gear from 'assets/gear.svg';
|
||||||
import Globe from 'assets/globe.svg';
|
import Globe from 'assets/globe.svg';
|
||||||
|
import Lock from 'assets/lock.svg';
|
||||||
import Logo from 'assets/logo.svg';
|
import Logo from 'assets/logo.svg';
|
||||||
import Moon from 'assets/moon.svg';
|
import Moon from 'assets/moon.svg';
|
||||||
import Profile from 'assets/profile.svg';
|
import Profile from 'assets/profile.svg';
|
||||||
@ -10,4 +12,18 @@ import Sun from 'assets/sun.svg';
|
|||||||
import User from 'assets/user.svg';
|
import User from 'assets/user.svg';
|
||||||
import Users from 'assets/users.svg';
|
import Users from 'assets/users.svg';
|
||||||
|
|
||||||
export { Calendar, Clock, Dashboard, Gear, Globe, Logo, Moon, Profile, Sun, User, Users };
|
export {
|
||||||
|
Calendar,
|
||||||
|
Clock,
|
||||||
|
Dashboard,
|
||||||
|
Edit,
|
||||||
|
Gear,
|
||||||
|
Globe,
|
||||||
|
Lock,
|
||||||
|
Logo,
|
||||||
|
Moon,
|
||||||
|
Profile,
|
||||||
|
Sun,
|
||||||
|
User,
|
||||||
|
Users,
|
||||||
|
};
|
||||||
|
@ -4,19 +4,22 @@ import classNames from 'classnames';
|
|||||||
import { Dashboard, Logo, Profile, User, Users, Clock, Globe } from 'components/icons';
|
import { Dashboard, Logo, Profile, User, Users, Clock, Globe } from 'components/icons';
|
||||||
import NavGroup from './NavGroup';
|
import NavGroup from './NavGroup';
|
||||||
import styles from './NavBar.module.css';
|
import styles from './NavBar.module.css';
|
||||||
|
import ThemeButton from '../buttons/ThemeButton';
|
||||||
|
import LanguageButton from '../buttons/LanguageButton';
|
||||||
|
|
||||||
const { ChevronDown, Search } = Icons;
|
const { ChevronDown, Search } = Icons;
|
||||||
|
|
||||||
const analytics = [
|
const analytics = [
|
||||||
{ key: 'dashboard', label: 'Dashboard', url: '/dashboard', icon: <Dashboard /> },
|
{ label: 'Dashboard', url: '/dashboard', icon: <Dashboard /> },
|
||||||
{ key: 'realtime', label: 'Realtime', url: '/realtime', icon: <Clock /> },
|
{ label: 'Realtime', url: '/realtime', icon: <Clock /> },
|
||||||
{ key: 'queries', label: 'Queries', url: '/queries', icon: <Search /> },
|
{ label: 'Queries', url: '/queries', icon: <Search /> },
|
||||||
];
|
];
|
||||||
|
|
||||||
const settings = [
|
const settings = [
|
||||||
{ key: 'websites', label: 'Websites', url: '/settings/websites', icon: <Globe /> },
|
{ label: 'Websites', url: '/settings/websites', icon: <Globe /> },
|
||||||
{ key: 'users', label: 'Users', url: '/settings/users', icon: <User /> },
|
{ label: 'Users', url: '/settings/users', icon: <User /> },
|
||||||
{ key: 'teams', label: 'Teams', url: '/settings/teams', icon: <Users /> },
|
{ label: 'Teams', url: '/settings/teams', icon: <Users /> },
|
||||||
|
{ label: 'Profile', url: '/settings/profile', icon: <Profile /> },
|
||||||
];
|
];
|
||||||
|
|
||||||
export default function NavBar() {
|
export default function NavBar() {
|
||||||
@ -38,10 +41,10 @@ export default function NavBar() {
|
|||||||
<NavGroup title="Analytics" items={analytics} minimized={minimized} />
|
<NavGroup title="Analytics" items={analytics} minimized={minimized} />
|
||||||
<NavGroup title="Settings" items={settings} minimized={minimized} />
|
<NavGroup title="Settings" items={settings} minimized={minimized} />
|
||||||
<div className={styles.footer}>
|
<div className={styles.footer}>
|
||||||
<Icon>
|
<div className={styles.buttons}>
|
||||||
<Profile />
|
<ThemeButton />
|
||||||
</Icon>
|
<LanguageButton />
|
||||||
<Text>Profile</Text>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -45,3 +45,9 @@
|
|||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.buttons {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
@ -26,18 +26,23 @@ export default function NavGroup({
|
|||||||
[styles.minimized]: minimized,
|
[styles.minimized]: minimized,
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<div className={styles.header} onClick={allowExpand ? handleExpand : undefined}>
|
{title && (
|
||||||
<Text>{title}</Text>
|
<div className={styles.header} onClick={allowExpand ? handleExpand : undefined}>
|
||||||
<Icon size="sm" rotate={expanded ? 0 : -90}>
|
<Text>{title}</Text>
|
||||||
<ChevronDown />
|
<Icon size="sm" rotate={expanded ? 0 : -90}>
|
||||||
</Icon>
|
<ChevronDown />
|
||||||
</div>
|
</Icon>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
<div className={styles.body}>
|
<div className={styles.body}>
|
||||||
{items.map(({ key, label, url, icon }) => {
|
{items.map(({ label, url, icon, divider }) => {
|
||||||
return (
|
return (
|
||||||
<Link key={key} href={url}>
|
<Link key={label} href={url}>
|
||||||
<a
|
<a
|
||||||
className={classNames(styles.item, { [styles.selected]: pathname.startsWith(url) })}
|
className={classNames(styles.item, {
|
||||||
|
[styles.divider]: divider,
|
||||||
|
[styles.selected]: pathname.startsWith(url),
|
||||||
|
})}
|
||||||
>
|
>
|
||||||
<Icon>{icon}</Icon>
|
<Icon>{icon}</Icon>
|
||||||
<Text className={styles.text}>{label}</Text>
|
<Text className={styles.text}>{label}</Text>
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.items {
|
.items {
|
||||||
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
@ -33,6 +34,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -43,6 +45,10 @@
|
|||||||
width: 200px;
|
width: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.item {
|
||||||
|
color: var(--base700);
|
||||||
|
}
|
||||||
|
|
||||||
.item.selected {
|
.item.selected {
|
||||||
color: var(--base900);
|
color: var(--base900);
|
||||||
border-right-color: var(--primary400);
|
border-right-color: var(--primary400);
|
||||||
@ -58,10 +64,6 @@
|
|||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.item {
|
|
||||||
color: var(--base600);
|
|
||||||
}
|
|
||||||
|
|
||||||
.minimized .text,
|
.minimized .text,
|
||||||
.minimized .header {
|
.minimized .header {
|
||||||
display: none;
|
display: none;
|
||||||
@ -74,3 +76,18 @@ a.item {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.divider:before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
margin: auto;
|
||||||
|
border-top: 1px solid var(--base300);
|
||||||
|
width: 160px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.minimized .divider:before {
|
||||||
|
width: 60px;
|
||||||
|
}
|
||||||
|
@ -39,8 +39,7 @@ export default function Dashboard({ userId }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Page>
|
<Page>
|
||||||
<PageHeader>
|
<PageHeader title={formatMessage(messages.dashboard)}>
|
||||||
<div>{formatMessage(messages.dashboard)}</div>
|
|
||||||
{!editing && <DashboardSettingsButton />}
|
{!editing && <DashboardSettingsButton />}
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
{editing && <DashboardEdit websites={data} />}
|
{editing && <DashboardEdit websites={data} />}
|
||||||
|
46
components/pages/settings/profile/ChangePasswordButton.js
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import { useState } from 'react';
|
||||||
|
import { defineMessages, useIntl } from 'react-intl';
|
||||||
|
import { Button, Icon, Modal, useToast } from 'react-basics';
|
||||||
|
import PasswordEditForm from 'components/pages/settings/profile/PasswordEditForm';
|
||||||
|
import { Lock } from 'components/icons';
|
||||||
|
|
||||||
|
const messages = defineMessages({
|
||||||
|
changePassword: { id: 'label.change-password', defaultMessage: 'Change password' },
|
||||||
|
saved: { id: 'message.saved-successfully', defaultMessage: 'Saved successfully.' },
|
||||||
|
});
|
||||||
|
|
||||||
|
export default function ChangePasswordButton() {
|
||||||
|
const { formatMessage } = useIntl();
|
||||||
|
const [edit, setEdit] = useState(false);
|
||||||
|
const { toast, showToast } = useToast();
|
||||||
|
|
||||||
|
const handleSave = () => {
|
||||||
|
showToast({ message: formatMessage(messages.saved), variant: 'success' });
|
||||||
|
setEdit(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleAdd = () => {
|
||||||
|
setEdit(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleClose = () => {
|
||||||
|
setEdit(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{toast}
|
||||||
|
<Button onClick={handleAdd}>
|
||||||
|
<Icon>
|
||||||
|
<Lock />
|
||||||
|
</Icon>
|
||||||
|
Change Password
|
||||||
|
</Button>
|
||||||
|
{edit && (
|
||||||
|
<Modal title={formatMessage(messages.changePassword)} onClose={handleClose}>
|
||||||
|
{() => <PasswordEditForm onSave={handleSave} onClose={handleClose} />}
|
||||||
|
</Modal>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
76
components/pages/settings/profile/PasswordEditForm.js
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
import { useRef } from 'react';
|
||||||
|
import { Form, FormRow, FormInput, FormButtons, PasswordField, Button } from 'react-basics';
|
||||||
|
import useApi from 'hooks/useApi';
|
||||||
|
import useUser from 'hooks/useUser';
|
||||||
|
|
||||||
|
export default function PasswordEditForm({ userId, onSave, onClose }) {
|
||||||
|
const user = useUser();
|
||||||
|
const isCurrentUser = !userId || user?.id === userId;
|
||||||
|
const url = isCurrentUser ? `/users/${user?.id}/password` : `/users/${user?.id}`;
|
||||||
|
const { post, useMutation } = useApi();
|
||||||
|
const { mutate, error, isLoading } = useMutation(data => post(url, data));
|
||||||
|
const ref = useRef(null);
|
||||||
|
|
||||||
|
const handleSubmit = async data => {
|
||||||
|
const payload = isCurrentUser
|
||||||
|
? data
|
||||||
|
: {
|
||||||
|
password: data.newPassword,
|
||||||
|
};
|
||||||
|
|
||||||
|
mutate(payload, {
|
||||||
|
onSuccess: async () => {
|
||||||
|
onSave();
|
||||||
|
ref.current.reset();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const samePassword = value => {
|
||||||
|
if (value !== ref?.current?.getValues('newPassword')) {
|
||||||
|
return "Passwords don't match";
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Form ref={ref} onSubmit={handleSubmit} error={error}>
|
||||||
|
{isCurrentUser && (
|
||||||
|
<FormRow label="Current password">
|
||||||
|
<FormInput name="currentPassword" rules={{ required: 'Required' }}>
|
||||||
|
<PasswordField autoComplete="off" />
|
||||||
|
</FormInput>
|
||||||
|
</FormRow>
|
||||||
|
)}
|
||||||
|
<FormRow label="New password">
|
||||||
|
<FormInput
|
||||||
|
name="newPassword"
|
||||||
|
rules={{
|
||||||
|
required: 'Required',
|
||||||
|
minLength: { value: 8, message: 'Minimum length 8 characters' },
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<PasswordField autoComplete="off" />
|
||||||
|
</FormInput>
|
||||||
|
</FormRow>
|
||||||
|
<FormRow label="Confirm password">
|
||||||
|
<FormInput
|
||||||
|
name="confirmPassword"
|
||||||
|
rules={{
|
||||||
|
required: 'Required',
|
||||||
|
minLength: { value: 8, message: 'Minimum length 8 characters' },
|
||||||
|
validate: samePassword,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<PasswordField autoComplete="off" />
|
||||||
|
</FormInput>
|
||||||
|
</FormRow>
|
||||||
|
<FormButtons flex>
|
||||||
|
<Button type="submit" variant="primary" disabled={isLoading}>
|
||||||
|
Save
|
||||||
|
</Button>
|
||||||
|
<Button onClick={onClose}>Close</Button>
|
||||||
|
</FormButtons>
|
||||||
|
</Form>
|
||||||
|
);
|
||||||
|
}
|
@ -1,48 +1,26 @@
|
|||||||
|
import { Breadcrumbs, Item } from 'react-basics';
|
||||||
|
import { defineMessages, useIntl } from 'react-intl';
|
||||||
import Page from 'components/layout/Page';
|
import Page from 'components/layout/Page';
|
||||||
import PageHeader from 'components/layout/PageHeader';
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
import ProfileDetails from 'components/pages/settings/profile/ProfileDetails';
|
import ProfileDetails from './ProfileDetails';
|
||||||
import { useState } from 'react';
|
import ChangePasswordButton from './ChangePasswordButton';
|
||||||
import { Breadcrumbs, Icon, Item, useToast, Modal, Button } from 'react-basics';
|
|
||||||
import UserPasswordForm from 'components/pages/settings/users/UserPasswordForm';
|
const messages = defineMessages({
|
||||||
import Lock from 'assets/lock.svg';
|
profile: { id: 'label.profile', defaultMessage: 'Profile' },
|
||||||
|
});
|
||||||
|
|
||||||
export default function ProfileSettings() {
|
export default function ProfileSettings() {
|
||||||
const [edit, setEdit] = useState(false);
|
const { formatMessage } = useIntl();
|
||||||
const { toast, showToast } = useToast();
|
|
||||||
|
|
||||||
const handleSave = () => {
|
|
||||||
showToast({ message: 'Saved successfully.', variant: 'success' });
|
|
||||||
setEdit(false);
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleAdd = () => {
|
|
||||||
setEdit(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleClose = () => {
|
|
||||||
setEdit(false);
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page>
|
<Page>
|
||||||
{toast}
|
|
||||||
<PageHeader>
|
<PageHeader>
|
||||||
<Breadcrumbs>
|
<Breadcrumbs>
|
||||||
<Item>Profile</Item>
|
<Item>{formatMessage(messages.profile)}</Item>
|
||||||
</Breadcrumbs>
|
</Breadcrumbs>
|
||||||
<Button onClick={handleAdd}>
|
<ChangePasswordButton />
|
||||||
<Icon>
|
|
||||||
<Lock />
|
|
||||||
</Icon>
|
|
||||||
Change Password
|
|
||||||
</Button>
|
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
<ProfileDetails />
|
<ProfileDetails />
|
||||||
{edit && (
|
|
||||||
<Modal title="Change password" onClose={handleClose}>
|
|
||||||
{close => <UserPasswordForm onSave={handleSave} onClose={close} />}
|
|
||||||
</Modal>
|
|
||||||
)}
|
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
65
components/pages/settings/users/UserAddForm.js
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
import {
|
||||||
|
Dropdown,
|
||||||
|
Item,
|
||||||
|
Form,
|
||||||
|
FormRow,
|
||||||
|
FormButtons,
|
||||||
|
FormInput,
|
||||||
|
TextField,
|
||||||
|
PasswordField,
|
||||||
|
SubmitButton,
|
||||||
|
} from 'react-basics';
|
||||||
|
import { useIntl, defineMessages } from 'react-intl';
|
||||||
|
import useApi from 'hooks/useApi';
|
||||||
|
import { ROLES } from 'lib/constants';
|
||||||
|
|
||||||
|
const messages = defineMessages({
|
||||||
|
username: { id: 'label.username', defaultMessage: 'Username' },
|
||||||
|
password: { id: 'label.password', defaultMessage: 'Password' },
|
||||||
|
role: { id: 'label.role', defaultMessage: 'Role' },
|
||||||
|
user: { id: 'label.user', defaultMessage: 'User' },
|
||||||
|
admin: { id: 'label.admin', defaultMessage: 'Admin' },
|
||||||
|
save: { id: 'label.save', defaultMessage: 'Save' },
|
||||||
|
cancel: { id: 'label.cancel', defaultMessage: 'Cancel' },
|
||||||
|
required: { id: 'label.required', defaultMessage: 'Required' },
|
||||||
|
});
|
||||||
|
|
||||||
|
export default function UserAddForm({ onSave }) {
|
||||||
|
const { post, useMutation } = useApi();
|
||||||
|
const { mutate, error } = useMutation(data => post(`/users`, data));
|
||||||
|
const { formatMessage } = useIntl();
|
||||||
|
|
||||||
|
const handleSubmit = async data => {
|
||||||
|
mutate(data, {
|
||||||
|
onSuccess: async () => {
|
||||||
|
onSave(data);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Form onSubmit={handleSubmit} error={error}>
|
||||||
|
<FormRow label={formatMessage(messages.username)}>
|
||||||
|
<FormInput name="username" rules={{ required: formatMessage(messages.required) }}>
|
||||||
|
<TextField />
|
||||||
|
</FormInput>
|
||||||
|
</FormRow>
|
||||||
|
<FormRow label={formatMessage(messages.password)}>
|
||||||
|
<FormInput name="password" rules={{ required: formatMessage(messages.required) }}>
|
||||||
|
<PasswordField />
|
||||||
|
</FormInput>
|
||||||
|
</FormRow>
|
||||||
|
<FormRow label={formatMessage(messages.role)}>
|
||||||
|
<FormInput name="role" rules={{ required: formatMessage(messages.required) }}>
|
||||||
|
<Dropdown style={{ width: 200 }}>
|
||||||
|
<Item key={ROLES.user}>{formatMessage(messages.user)}</Item>
|
||||||
|
<Item key={ROLES.admin}>{formatMessage(messages.admin)}</Item>
|
||||||
|
</Dropdown>
|
||||||
|
</FormInput>
|
||||||
|
</FormRow>
|
||||||
|
<FormButtons>
|
||||||
|
<SubmitButton variant="primary">{formatMessage(messages.save)}</SubmitButton>
|
||||||
|
</FormButtons>
|
||||||
|
</Form>
|
||||||
|
);
|
||||||
|
}
|
@ -9,7 +9,6 @@ import {
|
|||||||
SubmitButton,
|
SubmitButton,
|
||||||
} from 'react-basics';
|
} from 'react-basics';
|
||||||
import { useRef } from 'react';
|
import { useRef } from 'react';
|
||||||
import { useMutation } from '@tanstack/react-query';
|
|
||||||
import useApi from 'hooks/useApi';
|
import useApi from 'hooks/useApi';
|
||||||
import { ROLES } from 'lib/constants';
|
import { ROLES } from 'lib/constants';
|
||||||
|
|
||||||
@ -26,7 +25,7 @@ const items = [
|
|||||||
|
|
||||||
export default function UserEditForm({ data, onSave }) {
|
export default function UserEditForm({ data, onSave }) {
|
||||||
const { id } = data;
|
const { id } = data;
|
||||||
const { post } = useApi();
|
const { post, useMutation } = useApi();
|
||||||
const { mutate, error } = useMutation(({ username }) => post(`/user/${id}`, { username }));
|
const { mutate, error } = useMutation(({ username }) => post(`/user/${id}`, { username }));
|
||||||
const ref = useRef(null);
|
const ref = useRef(null);
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ import useUser from 'hooks/useUser';
|
|||||||
|
|
||||||
export default function UserPasswordForm({ onSave, onClose, userId }) {
|
export default function UserPasswordForm({ onSave, onClose, userId }) {
|
||||||
const user = useUser();
|
const user = useUser();
|
||||||
|
|
||||||
const isCurrentUser = !userId || user?.id === userId;
|
const isCurrentUser = !userId || user?.id === userId;
|
||||||
const url = isCurrentUser ? `/users/${user?.id}/password` : `/users/${user?.id}`;
|
const url = isCurrentUser ? `/users/${user?.id}/password` : `/users/${user?.id}`;
|
||||||
const { post, useMutation } = useApi();
|
const { post, useMutation } = useApi();
|
||||||
|
@ -1,21 +1,30 @@
|
|||||||
import { useQuery } from '@tanstack/react-query';
|
import { useEffect, useState } from 'react';
|
||||||
|
import { defineMessages, useIntl } from 'react-intl';
|
||||||
|
import { Breadcrumbs, Item, Tabs, useToast } from 'react-basics';
|
||||||
|
import Link from 'next/link';
|
||||||
|
import { useRouter } from 'next/router';
|
||||||
import UserDelete from 'components/pages/settings/users/UserDelete';
|
import UserDelete from 'components/pages/settings/users/UserDelete';
|
||||||
import UserEditForm from 'components/pages/settings/users/UserEditForm';
|
import UserEditForm from 'components/pages/settings/users//UserEditForm';
|
||||||
import UserPasswordForm from 'components/pages/settings/users/UserPasswordForm';
|
import UserPasswordForm from 'components/pages/settings/users/UserPasswordForm';
|
||||||
import Page from 'components/layout/Page';
|
import Page from 'components/layout/Page';
|
||||||
import PageHeader from 'components/layout/PageHeader';
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
import useApi from 'hooks/useApi';
|
import useApi from 'hooks/useApi';
|
||||||
import Link from 'next/link';
|
|
||||||
import { useRouter } from 'next/router';
|
const messages = defineMessages({
|
||||||
import { useEffect, useState } from 'react';
|
users: { id: 'label.users', defaultMessage: 'Users' },
|
||||||
import { Breadcrumbs, Item, Icon, Tabs, useToast, Modal, Button } from 'react-basics';
|
details: { id: 'label.details', defaultMessage: 'Details' },
|
||||||
import Pen from 'assets/pen.svg';
|
changePassword: { id: 'label.change-password', defaultMessage: 'Change password' },
|
||||||
|
actions: { id: 'label.actions', defaultMessage: 'Actions' },
|
||||||
|
saved: { id: 'message.saved-successfully', defaultMessage: 'Saved successfully.' },
|
||||||
|
delete: { id: 'message.delete-successfully', defaultMessage: 'Delete successfully.' },
|
||||||
|
});
|
||||||
|
|
||||||
export default function UserSettings({ userId }) {
|
export default function UserSettings({ userId }) {
|
||||||
|
const { formatMessage } = useIntl();
|
||||||
const [edit, setEdit] = useState(false);
|
const [edit, setEdit] = useState(false);
|
||||||
const [values, setValues] = useState(null);
|
const [values, setValues] = useState(null);
|
||||||
const [tab, setTab] = useState('general');
|
const [tab, setTab] = useState('details');
|
||||||
const { get } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
const { toast, showToast } = useToast();
|
const { toast, showToast } = useToast();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { data, isLoading } = useQuery(
|
const { data, isLoading } = useQuery(
|
||||||
@ -39,14 +48,6 @@ export default function UserSettings({ userId }) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleAdd = () => {
|
|
||||||
setEdit(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleClose = () => {
|
|
||||||
setEdit(false);
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleDelete = async () => {
|
const handleDelete = async () => {
|
||||||
showToast({ message: 'Deleted successfully.', variant: 'danger' });
|
showToast({ message: 'Deleted successfully.', variant: 'danger' });
|
||||||
await router.push('/users');
|
await router.push('/users');
|
||||||
@ -64,30 +65,19 @@ export default function UserSettings({ userId }) {
|
|||||||
<PageHeader>
|
<PageHeader>
|
||||||
<Breadcrumbs>
|
<Breadcrumbs>
|
||||||
<Item>
|
<Item>
|
||||||
<Link href="/users">Users</Link>
|
<Link href="/settings/users">{formatMessage(messages.users)}</Link>
|
||||||
</Item>
|
</Item>
|
||||||
<Item>{values?.username}</Item>
|
<Item>{values?.username}</Item>
|
||||||
</Breadcrumbs>
|
</Breadcrumbs>
|
||||||
<Button onClick={handleAdd}>
|
|
||||||
<Icon>
|
|
||||||
<Pen />
|
|
||||||
</Icon>
|
|
||||||
Change Password
|
|
||||||
</Button>
|
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
<Tabs selectedKey={tab} onSelect={setTab} style={{ marginBottom: 30, fontSize: 14 }}>
|
<Tabs selectedKey={tab} onSelect={setTab} style={{ marginBottom: 30, fontSize: 14 }}>
|
||||||
<Item key="general">General</Item>
|
<Item key="details">{formatMessage(messages.details)}</Item>
|
||||||
<Item key="delete">Danger Zone</Item>
|
<Item key="password">{formatMessage(messages.changePassword)}</Item>
|
||||||
|
<Item key="delete">{formatMessage(messages.actions)}</Item>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
{tab === 'general' && <UserEditForm userId={userId} data={values} onSave={handleSave} />}
|
{tab === 'details' && <UserEditForm userId={userId} data={values} onSave={handleSave} />}
|
||||||
|
{tab === 'password' && <UserPasswordForm userId={userId} onSave={handleSave} />}
|
||||||
{tab === 'delete' && <UserDelete userId={userId} onSave={handleDelete} />}
|
{tab === 'delete' && <UserDelete userId={userId} onSave={handleDelete} />}
|
||||||
{edit && (
|
|
||||||
<Modal title="Add website" onClose={handleClose}>
|
|
||||||
{close => (
|
|
||||||
<UserPasswordForm userId={userId} data={values} onSave={handleSave} onClose={close} />
|
|
||||||
)}
|
|
||||||
</Modal>
|
|
||||||
)}
|
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,44 +1,69 @@
|
|||||||
|
import { useState } from 'react';
|
||||||
|
import { Button, Text, Icon, useToast, Icons, Modal } from 'react-basics';
|
||||||
|
import { useIntl, defineMessages } from 'react-intl';
|
||||||
import Page from 'components/layout/Page';
|
import Page from 'components/layout/Page';
|
||||||
import PageHeader from 'components/layout/PageHeader';
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
|
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
||||||
import UsersTable from 'components/pages/settings/users/UsersTable';
|
import UsersTable from 'components/pages/settings/users/UsersTable';
|
||||||
import { useState } from 'react';
|
import UserEditForm from 'components/pages/settings/users/UserEditForm';
|
||||||
import { Button, Icon, useToast } from 'react-basics';
|
|
||||||
import { useMutation } from '@tanstack/react-query';
|
|
||||||
import useApi from 'hooks/useApi';
|
import useApi from 'hooks/useApi';
|
||||||
|
import useUser from 'hooks/useUser';
|
||||||
|
|
||||||
|
const { Plus } = Icons;
|
||||||
|
|
||||||
|
const messages = defineMessages({
|
||||||
|
saved: { id: 'messages.api-key-saved', defaultMessage: 'API key saved.' },
|
||||||
|
noUsers: {
|
||||||
|
id: 'messages.no-useres',
|
||||||
|
defaultMessage: "You don't have any users.",
|
||||||
|
},
|
||||||
|
users: { id: 'label.users', defaultMessage: 'Users' },
|
||||||
|
createUser: { id: 'label.create-user', defaultMessage: 'Create user' },
|
||||||
|
});
|
||||||
|
|
||||||
export default function UsersList() {
|
export default function UsersList() {
|
||||||
const [loading, setLoading] = useState(false);
|
const [edit, setEdit] = useState(false);
|
||||||
const [error, setError] = useState();
|
const { formatMessage } = useIntl();
|
||||||
const { toast, showToast } = useToast();
|
const { toast, showToast } = useToast();
|
||||||
const { post } = useApi();
|
const { user } = useUser();
|
||||||
const { mutate, isLoading } = useMutation(data => post('/api-key', data));
|
const { get, useQuery } = useApi();
|
||||||
|
const { data, isLoading, error, refetch } = useQuery(['user'], () => get(`/users`), {
|
||||||
|
enabled: !!user,
|
||||||
|
});
|
||||||
|
const hasData = data && data.length !== 0;
|
||||||
|
|
||||||
const handleSave = () => {
|
const handleSave = async () => {
|
||||||
mutate(
|
await refetch();
|
||||||
{},
|
setEdit(false);
|
||||||
{
|
showToast({ message: formatMessage(messages.saved), variant: 'success' });
|
||||||
onSuccess: async () => {
|
|
||||||
showToast({ message: 'API key saved.', variant: 'success' });
|
|
||||||
},
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleAdd = () => setEdit(true);
|
||||||
|
|
||||||
|
const handleClose = () => setEdit(false);
|
||||||
|
|
||||||
|
const addButton = (
|
||||||
|
<Button variant="primary" onClick={handleAdd}>
|
||||||
|
<Icon>
|
||||||
|
<Plus />
|
||||||
|
</Icon>
|
||||||
|
<Text>{formatMessage(messages.createUser)}</Text>
|
||||||
|
</Button>
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page loading={loading || isLoading} error={error}>
|
<Page loading={isLoading} error={error}>
|
||||||
{toast}
|
{toast}
|
||||||
<PageHeader title="Users">
|
<PageHeader title={formatMessage(messages.users)}>{addButton}</PageHeader>
|
||||||
<Button onClick={handleSave}>
|
{hasData && <UsersTable data={data} />}
|
||||||
<Icon icon="plus" /> Create user
|
{!hasData && (
|
||||||
</Button>
|
<EmptyPlaceholder message={formatMessage(messages.noUsers)}>{addButton}</EmptyPlaceholder>
|
||||||
</PageHeader>
|
)}
|
||||||
<UsersTable
|
{edit && (
|
||||||
onLoading={({ isLoading, error }) => {
|
<Modal title={formatMessage(messages.createUser)} onClose={handleClose}>
|
||||||
setLoading(isLoading);
|
{close => <UserEditForm onSave={handleSave} onClose={close} />}
|
||||||
setError(error);
|
</Modal>
|
||||||
}}
|
)}
|
||||||
onAddKeyClick={handleSave}
|
|
||||||
/>
|
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
|
||||||
import { formatDistance } from 'date-fns';
|
|
||||||
import useApi from 'hooks/useApi';
|
|
||||||
import Link from 'next/link';
|
|
||||||
import { useEffect, useState } from 'react';
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
|
Text,
|
||||||
Icon,
|
Icon,
|
||||||
Table,
|
Table,
|
||||||
TableBody,
|
TableBody,
|
||||||
@ -14,84 +9,66 @@ import {
|
|||||||
TableHeader,
|
TableHeader,
|
||||||
TableRow,
|
TableRow,
|
||||||
} from 'react-basics';
|
} from 'react-basics';
|
||||||
|
import { formatDistance } from 'date-fns';
|
||||||
|
import Link from 'next/link';
|
||||||
|
import { Edit } from 'components/icons';
|
||||||
import styles from './UsersTable.module.css';
|
import styles from './UsersTable.module.css';
|
||||||
|
|
||||||
const defaultColumns = [
|
const columns = [
|
||||||
{ name: 'username', label: 'Username', style: { flex: 2 } },
|
{ name: 'username', label: 'Username', style: { flex: 2 } },
|
||||||
{ name: 'role', label: 'Role', style: { flex: 2 } },
|
{ name: 'role', label: 'Role', style: { flex: 2 } },
|
||||||
{ name: 'created', label: 'Created' },
|
{ name: 'created', label: 'Created' },
|
||||||
{ name: 'action', label: ' ' },
|
{ name: 'action', label: ' ' },
|
||||||
];
|
];
|
||||||
|
|
||||||
export default function UsersTable({ columns = defaultColumns, onLoading, onAddKeyClick }) {
|
export default function UsersTable({ data = [] }) {
|
||||||
const [values, setValues] = useState(null);
|
|
||||||
const { get } = useApi();
|
|
||||||
const { data, isLoading, error } = useQuery(['user'], () => get(`/users`));
|
|
||||||
const hasData = data && data.length !== 0;
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (data) {
|
|
||||||
setValues(data);
|
|
||||||
onLoading({ data, isLoading, error });
|
|
||||||
}
|
|
||||||
}, [onLoading, data, isLoading, error]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<Table className={styles.table} columns={columns} rows={data}>
|
||||||
{hasData && (
|
<TableHeader>
|
||||||
<Table className={styles.table} columns={columns} rows={values}>
|
{(column, index) => {
|
||||||
<TableHeader>
|
return (
|
||||||
{(column, index) => {
|
<TableColumn key={index} className={styles.header} style={{ ...column.style }}>
|
||||||
return (
|
{column.label}
|
||||||
<TableColumn key={index} className={styles.header} style={{ ...column.style }}>
|
</TableColumn>
|
||||||
{column.label}
|
);
|
||||||
</TableColumn>
|
}}
|
||||||
);
|
</TableHeader>
|
||||||
}}
|
<TableBody>
|
||||||
</TableHeader>
|
{(row, keys, rowIndex) => {
|
||||||
<TableBody>
|
row.created = formatDistance(new Date(row.createdAt), new Date(), {
|
||||||
{(row, keys, rowIndex) => {
|
addSuffix: true,
|
||||||
row.created = formatDistance(new Date(row.createdAt), new Date(), {
|
});
|
||||||
addSuffix: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
row.action = (
|
row.action = (
|
||||||
<div className={styles.actions}>
|
<div className={styles.actions}>
|
||||||
<Link href={`/settings/users/${row.id}`}>
|
<Link href={`/settings/users/${row.id}`}>
|
||||||
<Button>
|
<Button>
|
||||||
<Icon icon="arrow-right" />
|
<Icon>
|
||||||
Settings
|
<Edit />
|
||||||
</Button>
|
</Icon>
|
||||||
</Link>
|
<Text>Edit</Text>
|
||||||
</div>
|
</Button>
|
||||||
);
|
</Link>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TableRow key={rowIndex} data={row} keys={keys}>
|
<TableRow key={rowIndex} data={row} keys={keys}>
|
||||||
{(data, key, colIndex) => {
|
{(data, key, colIndex) => {
|
||||||
return (
|
return (
|
||||||
<TableCell
|
<TableCell
|
||||||
key={colIndex}
|
key={colIndex}
|
||||||
className={styles.cell}
|
className={styles.cell}
|
||||||
style={{ ...columns[colIndex]?.style }}
|
style={{ ...columns[colIndex]?.style }}
|
||||||
>
|
>
|
||||||
{data[key]}
|
{data[key]}
|
||||||
</TableCell>
|
</TableCell>
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
</TableRow>
|
</TableRow>
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
</TableBody>
|
</TableBody>
|
||||||
</Table>
|
</Table>
|
||||||
)}
|
|
||||||
{!hasData && (
|
|
||||||
<EmptyPlaceholder className={styles.empty} msg="You don't have any Users.">
|
|
||||||
<Button variant="primary" onClick={onAddKeyClick}>
|
|
||||||
<Icon icon="plus" /> Create User
|
|
||||||
</Button>
|
|
||||||
</EmptyPlaceholder>
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ export default function ShareUrl({ websiteId, data, onSave }) {
|
|||||||
);
|
);
|
||||||
const ref = useRef(null);
|
const ref = useRef(null);
|
||||||
const url = useMemo(
|
const url = useMemo(
|
||||||
() => `${process.env.analyticsUrl}/share/${id}/${encodeURIComponent(name)}`,
|
() => `${process.env.analyticsUrl || location.origin}/share/${id}/${encodeURIComponent(name)}`,
|
||||||
[id, name],
|
[id, name],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ export default function WebsiteEditForm({ websiteId, data, onSave }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form ref={ref} onSubmit={handleSubmit} error={error} values={data}>
|
<Form ref={ref} onSubmit={handleSubmit} error={error} values={data} style={{ width: 600 }}>
|
||||||
<FormRow label="Website ID">
|
<FormRow label="Website ID">
|
||||||
<TextField value={websiteId} readOnly allowCopy />
|
<TextField value={websiteId} readOnly allowCopy />
|
||||||
</FormRow>
|
</FormRow>
|
||||||
|
@ -1,16 +1,29 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { Breadcrumbs, Item, Tabs, useToast, Button, Icon } from 'react-basics';
|
import { Breadcrumbs, Item, Tabs, useToast, Button, Text, Icon, Icons } from 'react-basics';
|
||||||
import useApi from 'hooks/useApi';
|
import { defineMessages, useIntl } from 'react-intl';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import Page from 'components/layout/Page';
|
import Page from 'components/layout/Page';
|
||||||
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
import WebsiteEditForm from 'components/pages/settings/websites/WebsiteEditForm';
|
import WebsiteEditForm from 'components/pages/settings/websites/WebsiteEditForm';
|
||||||
import WebsiteReset from 'components/pages/settings/websites/WebsiteReset';
|
import WebsiteReset from 'components/pages/settings/websites/WebsiteReset';
|
||||||
import PageHeader from 'components/layout/PageHeader';
|
|
||||||
import TrackingCode from 'components/pages/settings/websites/TrackingCode';
|
import TrackingCode from 'components/pages/settings/websites/TrackingCode';
|
||||||
import ShareUrl from 'components/pages/settings/websites/ShareUrl';
|
import ShareUrl from 'components/pages/settings/websites/ShareUrl';
|
||||||
import ExternalLink from 'assets/external-link.svg';
|
import useApi from 'hooks/useApi';
|
||||||
|
|
||||||
export default function WebsiteDetails({ websiteId }) {
|
const { External } = Icons;
|
||||||
|
|
||||||
|
const messages = defineMessages({
|
||||||
|
websites: { id: 'label.websites', defaultMessage: 'Websites' },
|
||||||
|
details: { id: 'label.details', defaultMessage: 'Details' },
|
||||||
|
trackingCode: { id: 'label.tracking-code', defaultMessage: 'Tracking code' },
|
||||||
|
shareUrl: { id: 'label.share-url', defaultMessage: 'Share URL' },
|
||||||
|
actions: { id: 'label.actions', defaultMessage: 'Actions' },
|
||||||
|
view: { id: 'label.view', defaultMessage: 'View' },
|
||||||
|
saved: { id: 'message.saved-successfully', defaultMessage: 'Save successfully.' },
|
||||||
|
});
|
||||||
|
|
||||||
|
export default function WebsiteSettings({ websiteId }) {
|
||||||
|
const { formatMessage } = useIntl();
|
||||||
const [values, setValues] = useState(null);
|
const [values, setValues] = useState(null);
|
||||||
const [tab, setTab] = useState('details');
|
const [tab, setTab] = useState('details');
|
||||||
const { get, useQuery } = useApi();
|
const { get, useQuery } = useApi();
|
||||||
@ -26,7 +39,7 @@ export default function WebsiteDetails({ websiteId }) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const handleSave = data => {
|
const handleSave = data => {
|
||||||
showToast({ message: 'Saved successfully.', variant: 'success' });
|
showToast({ message: formatMessage(messages.saved), variant: 'success' });
|
||||||
setValues(state => ({ ...state, ...data }));
|
setValues(state => ({ ...state, ...data }));
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -42,7 +55,7 @@ export default function WebsiteDetails({ websiteId }) {
|
|||||||
<PageHeader>
|
<PageHeader>
|
||||||
<Breadcrumbs>
|
<Breadcrumbs>
|
||||||
<Item>
|
<Item>
|
||||||
<Link href="/settings/websites">Websites</Link>
|
<Link href="/settings/websites">{formatMessage(messages.websites)}</Link>
|
||||||
</Item>
|
</Item>
|
||||||
<Item>{values?.name}</Item>
|
<Item>{values?.name}</Item>
|
||||||
</Breadcrumbs>
|
</Breadcrumbs>
|
||||||
@ -50,18 +63,18 @@ export default function WebsiteDetails({ websiteId }) {
|
|||||||
<a>
|
<a>
|
||||||
<Button variant="primary">
|
<Button variant="primary">
|
||||||
<Icon>
|
<Icon>
|
||||||
<ExternalLink />
|
<External />
|
||||||
</Icon>
|
</Icon>
|
||||||
View
|
<Text>{formatMessage(messages.view)}</Text>
|
||||||
</Button>
|
</Button>
|
||||||
</a>
|
</a>
|
||||||
</Link>
|
</Link>
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
<Tabs selectedKey={tab} onSelect={setTab} style={{ marginBottom: 30 }}>
|
<Tabs selectedKey={tab} onSelect={setTab} style={{ marginBottom: 30 }}>
|
||||||
<Item key="details">Details</Item>
|
<Item key="details">{formatMessage(messages.details)}</Item>
|
||||||
<Item key="tracking">Tracking code</Item>
|
<Item key="tracking">{formatMessage(messages.trackingCode)}</Item>
|
||||||
<Item key="share">Share URL</Item>
|
<Item key="share">{formatMessage(messages.shareUrl)}</Item>
|
||||||
<Item key="actions">Actions</Item>
|
<Item key="actions">{formatMessage(messages.actions)}</Item>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
{tab === 'details' && (
|
{tab === 'details' && (
|
||||||
<WebsiteEditForm websiteId={websiteId} data={values} onSave={handleSave} />
|
<WebsiteEditForm websiteId={websiteId} data={values} onSave={handleSave} />
|
@ -1,72 +1,70 @@
|
|||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { Button, Icon, Text, Modal, useToast, Icons } from 'react-basics';
|
import { Button, Icon, Text, Modal, useToast, Icons } from 'react-basics';
|
||||||
import useApi from 'hooks/useApi';
|
import { useIntl, defineMessages } from 'react-intl';
|
||||||
|
import Page from 'components/layout/Page';
|
||||||
|
import PageHeader from 'components/layout/PageHeader';
|
||||||
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
|
||||||
import WebsiteAddForm from 'components/pages/settings/websites/WebsiteAddForm';
|
import WebsiteAddForm from 'components/pages/settings/websites/WebsiteAddForm';
|
||||||
import PageHeader from 'components/layout/PageHeader';
|
|
||||||
import WebsitesTable from 'components/pages/settings/websites/WebsitesTable';
|
import WebsitesTable from 'components/pages/settings/websites/WebsitesTable';
|
||||||
import Page from 'components/layout/Page';
|
import useApi from 'hooks/useApi';
|
||||||
import useUser from 'hooks/useUser';
|
import useUser from 'hooks/useUser';
|
||||||
|
|
||||||
|
const messages = defineMessages({
|
||||||
|
saved: { id: 'messages.website-saved', defaultMessage: 'Website saved.' },
|
||||||
|
noWebsites: {
|
||||||
|
id: 'messages.no-websites',
|
||||||
|
defaultMessage: "You don't have any websites configured.",
|
||||||
|
},
|
||||||
|
websites: { id: 'label.websites', defaultMessage: 'Websites' },
|
||||||
|
addWebsite: { id: 'label.add-website', defaultMessage: 'Add website' },
|
||||||
|
});
|
||||||
|
|
||||||
const { Plus } = Icons;
|
const { Plus } = Icons;
|
||||||
|
|
||||||
export default function WebsitesList() {
|
export default function WebsitesList() {
|
||||||
const [edit, setEdit] = useState(false);
|
const [edit, setEdit] = useState(false);
|
||||||
const { get, useQuery } = useApi();
|
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
|
const { get, useQuery } = useApi();
|
||||||
const { data, isLoading, error, refetch } = useQuery(
|
const { data, isLoading, error, refetch } = useQuery(
|
||||||
['websites', user?.id],
|
['websites', user?.id],
|
||||||
() => get(`/users/${user?.id}/websites`),
|
() => get(`/users/${user?.id}/websites`),
|
||||||
{ enabled: !!user },
|
{ enabled: !!user },
|
||||||
);
|
);
|
||||||
const hasData = data && data.length !== 0;
|
|
||||||
const { toast, showToast } = useToast();
|
const { toast, showToast } = useToast();
|
||||||
|
const { formatMessage } = useIntl();
|
||||||
const columns = [
|
const hasData = data && data.length !== 0;
|
||||||
{ name: 'name', label: 'Name', style: { flex: 2 } },
|
|
||||||
{ name: 'domain', label: 'Domain' },
|
|
||||||
{ name: 'action', label: ' ' },
|
|
||||||
];
|
|
||||||
|
|
||||||
const handleAdd = () => {
|
|
||||||
setEdit(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleSave = async () => {
|
const handleSave = async () => {
|
||||||
await refetch();
|
await refetch();
|
||||||
setEdit(false);
|
setEdit(false);
|
||||||
showToast({ message: 'Website saved.', variant: 'success' });
|
showToast({ message: formatMessage(messages.saved), variant: 'success' });
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleClose = () => {
|
const handleAdd = () => setEdit(true);
|
||||||
setEdit(false);
|
|
||||||
};
|
const handleClose = () => setEdit(false);
|
||||||
|
|
||||||
|
const addButton = (
|
||||||
|
<Button variant="primary" onClick={handleAdd}>
|
||||||
|
<Icon>
|
||||||
|
<Plus />
|
||||||
|
</Icon>
|
||||||
|
<Text>{formatMessage(messages.addWebsite)}</Text>
|
||||||
|
</Button>
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page loading={isLoading} error={error}>
|
<Page loading={isLoading} error={error}>
|
||||||
{toast}
|
{toast}
|
||||||
<PageHeader title="Websites">
|
<PageHeader title={formatMessage(messages.websites)}>{addButton}</PageHeader>
|
||||||
<Button variant="primary" onClick={handleAdd}>
|
{hasData && <WebsitesTable data={data} />}
|
||||||
<Icon>
|
|
||||||
<Plus />
|
|
||||||
</Icon>
|
|
||||||
<Text>Add website</Text>
|
|
||||||
</Button>
|
|
||||||
</PageHeader>
|
|
||||||
|
|
||||||
{hasData && <WebsitesTable columns={columns} rows={data} />}
|
|
||||||
{!hasData && (
|
{!hasData && (
|
||||||
<EmptyPlaceholder message="You don't have any websites configured.">
|
<EmptyPlaceholder message={formatMessage(messages.noWebsites)}>
|
||||||
<Button variant="primary" onClick={handleAdd}>
|
{addButton}
|
||||||
<Icon>
|
|
||||||
<Plus />
|
|
||||||
</Icon>
|
|
||||||
<Text>Add website</Text>
|
|
||||||
</Button>
|
|
||||||
</EmptyPlaceholder>
|
</EmptyPlaceholder>
|
||||||
)}
|
)}
|
||||||
{edit && (
|
{edit && (
|
||||||
<Modal title="Add website" onClose={handleClose}>
|
<Modal title={formatMessage(messages.addWebsite)} onClose={handleClose}>
|
||||||
{close => <WebsiteAddForm onSave={handleSave} onClose={close} />}
|
{close => <WebsiteAddForm onSave={handleSave} onClose={close} />}
|
||||||
</Modal>
|
</Modal>
|
||||||
)}
|
)}
|
||||||
|
@ -14,9 +14,15 @@ import styles from './WebsitesTable.module.css';
|
|||||||
|
|
||||||
const { ArrowRight, External } = Icons;
|
const { ArrowRight, External } = Icons;
|
||||||
|
|
||||||
export default function WebsitesTable({ columns = [], rows = [] }) {
|
const columns = [
|
||||||
|
{ name: 'name', label: 'Name', style: { flex: 2 } },
|
||||||
|
{ name: 'domain', label: 'Domain' },
|
||||||
|
{ name: 'action', label: ' ' },
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function WebsitesTable({ data = [] }) {
|
||||||
return (
|
return (
|
||||||
<Table className={styles.table} columns={columns} rows={rows}>
|
<Table className={styles.table} columns={columns} rows={data}>
|
||||||
<TableHeader>
|
<TableHeader>
|
||||||
{(column, index) => {
|
{(column, index) => {
|
||||||
return (
|
return (
|
||||||
|
12
package.json
@ -59,9 +59,9 @@
|
|||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource/inter": "4.5.7",
|
"@fontsource/inter": "4.5.7",
|
||||||
"@prisma/client": "4.8.0",
|
"@prisma/client": "4.9.0",
|
||||||
"@tanstack/react-query": "^4.16.1",
|
"@tanstack/react-query": "^4.16.1",
|
||||||
"@umami/prisma-client": "^0.1.0",
|
"@umami/prisma-client": "^0.2.0",
|
||||||
"@umami/redis-client": "^0.1.0",
|
"@umami/redis-client": "^0.1.0",
|
||||||
"chalk": "^4.1.1",
|
"chalk": "^4.1.1",
|
||||||
"chart.js": "^2.9.4",
|
"chart.js": "^2.9.4",
|
||||||
@ -94,7 +94,7 @@
|
|||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-basics": "^0.50.0",
|
"react-basics": "^0.53.0",
|
||||||
"react-beautiful-dnd": "^13.1.0",
|
"react-beautiful-dnd": "^13.1.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-intl": "^5.24.7",
|
"react-intl": "^5.24.7",
|
||||||
@ -134,14 +134,14 @@
|
|||||||
"postcss-preset-env": "7.8.3",
|
"postcss-preset-env": "7.8.3",
|
||||||
"postcss-rtlcss": "^4.0.1",
|
"postcss-rtlcss": "^4.0.1",
|
||||||
"prettier": "^2.6.2",
|
"prettier": "^2.6.2",
|
||||||
"prisma": "4.8.0",
|
"prisma": "4.9.0",
|
||||||
"prompts": "2.4.2",
|
"prompts": "2.4.2",
|
||||||
"rollup": "^2.70.1",
|
"rollup": "^2.70.1",
|
||||||
"rollup-plugin-terser": "^7.0.2",
|
"rollup-plugin-terser": "^7.0.2",
|
||||||
"stylelint": "^14.5.3",
|
"stylelint": "^14.16.1",
|
||||||
"stylelint-config-css-modules": "^4.1.0",
|
"stylelint-config-css-modules": "^4.1.0",
|
||||||
"stylelint-config-prettier": "^9.0.3",
|
"stylelint-config-prettier": "^9.0.3",
|
||||||
"stylelint-config-recommended": "^7.0.0",
|
"stylelint-config-recommended": "^9.0.0",
|
||||||
"tar": "^6.1.2"
|
"tar": "^6.1.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
import WebsiteDetails from 'components/pages/settings/websites/WebsiteDetails';
|
import WebsiteSettings from 'components/pages/settings/websites/WebsiteSettings';
|
||||||
import useUser from 'hooks/useUser';
|
import useUser from 'hooks/useUser';
|
||||||
import AppLayout from 'components/layout/AppLayout';
|
import AppLayout from 'components/layout/AppLayout';
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ export default function WebsiteSettingsPage() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<AppLayout>
|
<AppLayout>
|
||||||
<WebsiteDetails websiteId={id} />
|
<WebsiteSettings websiteId={id} />
|
||||||
</AppLayout>
|
</AppLayout>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
514
yarn.lock
@ -1603,37 +1603,37 @@
|
|||||||
"@netlify/esbuild-windows-64" "0.14.39"
|
"@netlify/esbuild-windows-64" "0.14.39"
|
||||||
"@netlify/esbuild-windows-arm64" "0.14.39"
|
"@netlify/esbuild-windows-arm64" "0.14.39"
|
||||||
|
|
||||||
"@netlify/functions@^1.3.0":
|
"@netlify/functions@^1.4.0":
|
||||||
version "1.3.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.3.0.tgz#4305a3fb6b49caf56cd2be88d4b8534b1d5aff4f"
|
resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.4.0.tgz#027a2e5d54df5519ccbd14cf450231e97bbbf93a"
|
||||||
integrity sha512-hN/Fgpz8XIOBfsBPLYUMxVKBlCopgeqGB0popayicnmkFLnvKByTTMYgF01wcF9DBtBQdV0H2h1kPFpMl34I8w==
|
integrity sha512-gy7ULTIRroc2/jyFVGx1djCmmBMVisIwrvkqggq5B6iDcInRSy2Tpkm+V5C63hKJVkNRskKWtLQKm9ecCaQTjA==
|
||||||
dependencies:
|
dependencies:
|
||||||
is-promise "^4.0.0"
|
is-promise "^4.0.0"
|
||||||
|
|
||||||
"@netlify/ipx@^1.3.2":
|
"@netlify/ipx@^1.3.3":
|
||||||
version "1.3.2"
|
version "1.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/@netlify/ipx/-/ipx-1.3.2.tgz#7235999c19d50349a4407d9548a7d8037e33db2d"
|
resolved "https://registry.yarnpkg.com/@netlify/ipx/-/ipx-1.3.3.tgz#db28352ee1ed86d0b991cb8236f64a4dfbe70b8c"
|
||||||
integrity sha512-IozNE8IDJiMsWvNG0HqSfArJKl1HhgvvPPNfWGieg5AIQzLxu57L7ol10DYBARsrVZWGZstM3J7sTaP6fbhdQw==
|
integrity sha512-2rDdCGPDPW7cyJr57rwfvpouOJx34CLDgfa2yfqTKvPzqCMOqkCi1PN/rHGuvJ/k5trZ8rxmWnnZyEbeQaZcqA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@netlify/functions" "^1.3.0"
|
"@netlify/functions" "^1.4.0"
|
||||||
etag "^1.8.1"
|
etag "^1.8.1"
|
||||||
fs-extra "^10.0.0"
|
fs-extra "^11.0.0"
|
||||||
ipx "^0.9.11"
|
ipx "^0.9.11"
|
||||||
micromatch "^4.0.5"
|
micromatch "^4.0.5"
|
||||||
mkdirp "^1.0.4"
|
mkdirp "^1.0.4"
|
||||||
murmurhash "^2.0.0"
|
murmurhash "^2.0.0"
|
||||||
node-fetch "^2.0.0"
|
node-fetch "^2.0.0"
|
||||||
ufo "^1.0.0"
|
ufo "^1.0.0"
|
||||||
unstorage "^0.6.0"
|
unstorage "^1.0.0"
|
||||||
|
|
||||||
"@netlify/plugin-nextjs@^4.27.3":
|
"@netlify/plugin-nextjs@^4.27.3":
|
||||||
version "4.29.4"
|
version "4.30.0"
|
||||||
resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-4.29.4.tgz#5261aeed4d19fdc8e46e295a1097ae6b79acdf84"
|
resolved "https://registry.yarnpkg.com/@netlify/plugin-nextjs/-/plugin-nextjs-4.30.0.tgz#1e4330ff1094057fc337d3b3504cf4a87b1cdbab"
|
||||||
integrity sha512-tx1TSvtLa/tJUf1Z0XcToMONCYPXwPTJC1rEYJP5bh1qsBIqQxNYxKVgJOXjsBOgtmRD9l146UjbtF1a5Tockw==
|
integrity sha512-+MyfV6biKGVs/jQQUKGi2vN5aFFyRUTeEAItDiSvNhAUi0mOXEkEmu5JN7ZAQtL2oRIKKnxflsZDmtP3DdAahg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@netlify/esbuild" "0.14.39"
|
"@netlify/esbuild" "0.14.39"
|
||||||
"@netlify/functions" "^1.3.0"
|
"@netlify/functions" "^1.4.0"
|
||||||
"@netlify/ipx" "^1.3.2"
|
"@netlify/ipx" "^1.3.3"
|
||||||
"@vercel/node-bridge" "^2.1.0"
|
"@vercel/node-bridge" "^2.1.0"
|
||||||
chalk "^4.1.2"
|
chalk "^4.1.2"
|
||||||
destr "^1.1.1"
|
destr "^1.1.1"
|
||||||
@ -1752,22 +1752,22 @@
|
|||||||
"@nodelib/fs.scandir" "2.1.5"
|
"@nodelib/fs.scandir" "2.1.5"
|
||||||
fastq "^1.6.0"
|
fastq "^1.6.0"
|
||||||
|
|
||||||
"@prisma/client@4.8.0":
|
"@prisma/client@4.9.0":
|
||||||
version "4.8.0"
|
version "4.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.8.0.tgz#6ec7adaca6a2e233d7e41dbe7cc6d0fa6143a407"
|
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-4.9.0.tgz#4a4068f3540732ea5723c008d49ed684d20f9340"
|
||||||
integrity sha512-Y1riB0p2W52kh3zgssP/YAhln3RjBFcJy3uwEiyjmU+TQYh6QTZDRFBo3JtBWuq2FyMOl1Rye8jxzUP+n0l5Cg==
|
integrity sha512-bz6QARw54sWcbyR1lLnF2QHvRW5R/Jxnbbmwh3u+969vUKXtBkXgSgjDA85nji31ZBlf7+FrHDy5x+5ydGyQDg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@prisma/engines-version" "4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe"
|
"@prisma/engines-version" "4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5"
|
||||||
|
|
||||||
"@prisma/engines-version@4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe":
|
"@prisma/engines-version@4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5":
|
||||||
version "4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe"
|
version "4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5"
|
||||||
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.8.0-61.d6e67a83f971b175a593ccc12e15c4a757f93ffe.tgz#30401aba1029e7d32e3cb717e705a7c92ccc211e"
|
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5.tgz#9d817a5779fc05b107eb02f63d197ad296d60b3c"
|
||||||
integrity sha512-MHSOSexomRMom8QN4t7bu87wPPD+pa+hW9+71JnVcF3DqyyO/ycCLhRL1we3EojRpZxKvuyGho2REQsMCvxcJw==
|
integrity sha512-M16aibbxi/FhW7z1sJCX8u+0DriyQYY5AyeTH7plQm9MLnURoiyn3CZBqAyIoQ+Z1pS77usCIibYJWSgleBMBA==
|
||||||
|
|
||||||
"@prisma/engines@4.8.0":
|
"@prisma/engines@4.9.0":
|
||||||
version "4.8.0"
|
version "4.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.8.0.tgz#5123c67dc0d2caa008268fc63081ca2d68b2ed7e"
|
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-4.9.0.tgz#05a1411964e047c1bc43f777c7a1c69f86a2a26c"
|
||||||
integrity sha512-A1Asn2rxZMlLAj1HTyfaCv0VQrLUv034jVay05QlqZg1qiHPeA3/pGTfNMijbsMYCsGVxfWEJuaZZuNxXGMCrA==
|
integrity sha512-t1pt0Gsp+HcgPJrHFc+d/ZSAaKKWar2G/iakrE07yeKPNavDP3iVKPpfXP22OTCHZUWf7OelwKJxQgKAm5hkgw==
|
||||||
|
|
||||||
"@react-spring/animated@~9.5.5":
|
"@react-spring/animated@~9.5.5":
|
||||||
version "9.5.5"
|
version "9.5.5"
|
||||||
@ -2119,17 +2119,17 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
tslib "^2.4.0"
|
tslib "^2.4.0"
|
||||||
|
|
||||||
"@tanstack/query-core@4.20.4":
|
"@tanstack/query-core@4.22.0":
|
||||||
version "4.20.4"
|
version "4.22.0"
|
||||||
resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.20.4.tgz#1f7975a2db26a8bc2f382bad8a44cd422c846b17"
|
resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.22.0.tgz#7a786fcea64e229ed5d4308093dd644cdfaa895e"
|
||||||
integrity sha512-lhLtGVNJDsJ/DyZXrLzekDEywQqRVykgBqTmkv0La32a/RleILXy6JMLBb7UmS3QCatg/F/0N9/5b0i5j6IKcA==
|
integrity sha512-OeLyBKBQoT265f5G9biReijeP8mBxNFwY7ZUu1dKL+YzqpG5q5z7J/N1eT8aWyKuhyDTiUHuKm5l+oIVzbtrjw==
|
||||||
|
|
||||||
"@tanstack/react-query@^4.16.1":
|
"@tanstack/react-query@^4.16.1":
|
||||||
version "4.20.4"
|
version "4.22.0"
|
||||||
resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.20.4.tgz#562b34fb919adea884eccaba2b5be50e8ba7fb16"
|
resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.22.0.tgz#aaa4b41a6d306be6958018c74a8a3bb3e9f1924c"
|
||||||
integrity sha512-SJRxx13k/csb9lXAJfycgVA1N/yU/h3bvRNWP0+aHMfMjmbyX82FdoAcckDBbOdEyAupvb0byelNHNeypCFSyA==
|
integrity sha512-P9o+HjG42uB/xHR6dMsJaPhtZydSe4v0xdG5G/cEj1oHZAXelMlm67/rYJNQGKgBamKElKogj+HYGF+NY2yHYg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@tanstack/query-core" "4.20.4"
|
"@tanstack/query-core" "4.22.0"
|
||||||
use-sync-external-store "^1.2.0"
|
use-sync-external-store "^1.2.0"
|
||||||
|
|
||||||
"@trysound/sax@0.2.0":
|
"@trysound/sax@0.2.0":
|
||||||
@ -2336,10 +2336,10 @@
|
|||||||
"@typescript-eslint/types" "5.45.0"
|
"@typescript-eslint/types" "5.45.0"
|
||||||
eslint-visitor-keys "^3.3.0"
|
eslint-visitor-keys "^3.3.0"
|
||||||
|
|
||||||
"@umami/prisma-client@^0.1.0":
|
"@umami/prisma-client@^0.2.0":
|
||||||
version "0.1.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@umami/prisma-client/-/prisma-client-0.1.0.tgz#4ecc17b1998cb738b8f2027b80b003864beef6a4"
|
resolved "https://registry.yarnpkg.com/@umami/prisma-client/-/prisma-client-0.2.0.tgz#b9de1f28be67ccfb9e2544f23c69c392c5b26ea7"
|
||||||
integrity sha512-2qTXN0dtMUT+HVhz37eVC02lDSwz9TGUGHRRO0LPRHdfJPfSkUF0D8pgksX7ETy3IZoIQP1h45tiXsM0pKBMZA==
|
integrity sha512-+27dd4DLl8SvbbIYG1mdm6pIZd+UzQI7eZGNjQ9ONeWO0jr+/wiVnPIXUzd8w4R/OoM4ChpI3mBZPqcWa5MAOw==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
|
|
||||||
@ -2600,17 +2600,6 @@ array-find-index@^1.0.1:
|
|||||||
resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz"
|
resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz"
|
||||||
integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==
|
integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==
|
||||||
|
|
||||||
array-includes@^3.1.4:
|
|
||||||
version "3.1.5"
|
|
||||||
resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz"
|
|
||||||
integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==
|
|
||||||
dependencies:
|
|
||||||
call-bind "^1.0.2"
|
|
||||||
define-properties "^1.1.4"
|
|
||||||
es-abstract "^1.19.5"
|
|
||||||
get-intrinsic "^1.1.1"
|
|
||||||
is-string "^1.0.7"
|
|
||||||
|
|
||||||
array-includes@^3.1.5, array-includes@^3.1.6:
|
array-includes@^3.1.5, array-includes@^3.1.6:
|
||||||
version "3.1.6"
|
version "3.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f"
|
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f"
|
||||||
@ -2627,14 +2616,14 @@ array-union@^2.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
|
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
|
||||||
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
|
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
|
||||||
|
|
||||||
array.prototype.flat@^1.2.5:
|
array.prototype.flat@^1.3.1:
|
||||||
version "1.3.0"
|
version "1.3.1"
|
||||||
resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz"
|
resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2"
|
||||||
integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==
|
integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==
|
||||||
dependencies:
|
dependencies:
|
||||||
call-bind "^1.0.2"
|
call-bind "^1.0.2"
|
||||||
define-properties "^1.1.3"
|
define-properties "^1.1.4"
|
||||||
es-abstract "^1.19.2"
|
es-abstract "^1.20.4"
|
||||||
es-shim-unscopables "^1.0.0"
|
es-shim-unscopables "^1.0.0"
|
||||||
|
|
||||||
array.prototype.flatmap@^1.3.1:
|
array.prototype.flatmap@^1.3.1:
|
||||||
@ -2707,6 +2696,11 @@ autoprefixer@^10.4.13:
|
|||||||
picocolors "^1.0.0"
|
picocolors "^1.0.0"
|
||||||
postcss-value-parser "^4.2.0"
|
postcss-value-parser "^4.2.0"
|
||||||
|
|
||||||
|
available-typed-arrays@^1.0.5:
|
||||||
|
version "1.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
|
||||||
|
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
|
||||||
|
|
||||||
aws-sign2@~0.7.0:
|
aws-sign2@~0.7.0:
|
||||||
version "0.7.0"
|
version "0.7.0"
|
||||||
resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
|
resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
|
||||||
@ -3438,13 +3432,6 @@ debounce@^1.2.1:
|
|||||||
resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz"
|
resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz"
|
||||||
integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
|
integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
|
||||||
|
|
||||||
debug@^2.6.9:
|
|
||||||
version "2.6.9"
|
|
||||||
resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
|
|
||||||
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
|
||||||
dependencies:
|
|
||||||
ms "2.0.0"
|
|
||||||
|
|
||||||
debug@^3.2.7:
|
debug@^3.2.7:
|
||||||
version "3.2.7"
|
version "3.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
||||||
@ -3514,7 +3501,7 @@ define-properties@^1.1.3, define-properties@^1.1.4:
|
|||||||
has-property-descriptors "^1.0.0"
|
has-property-descriptors "^1.0.0"
|
||||||
object-keys "^1.1.1"
|
object-keys "^1.1.1"
|
||||||
|
|
||||||
defu@^6.0.0, defu@^6.1.0:
|
defu@^6.0.0, defu@^6.1.0, defu@^6.1.1:
|
||||||
version "6.1.1"
|
version "6.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.1.tgz#a12c712349197c545dc61d3cd3b607b4cc7ef0c1"
|
resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.1.tgz#a12c712349197c545dc61d3cd3b607b4cc7ef0c1"
|
||||||
integrity sha512-aA964RUCsBt0FGoNIlA3uFgo2hO+WWC0fiC6DBps/0SFzkKcYoM/3CzVLIa5xSsrFjdioMdYgAIbwo80qp2MoA==
|
integrity sha512-aA964RUCsBt0FGoNIlA3uFgo2hO+WWC0fiC6DBps/0SFzkKcYoM/3CzVLIa5xSsrFjdioMdYgAIbwo80qp2MoA==
|
||||||
@ -3543,7 +3530,7 @@ denque@^2.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1"
|
resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1"
|
||||||
integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
|
integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
|
||||||
|
|
||||||
destr@^1.1.1, destr@^1.2.0:
|
destr@^1.1.1, destr@^1.2.0, destr@^1.2.1, destr@^1.2.2:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/destr/-/destr-1.2.2.tgz#7ba9befcafb645a50e76b260449c63927b51e22f"
|
resolved "https://registry.yarnpkg.com/destr/-/destr-1.2.2.tgz#7ba9befcafb645a50e76b260449c63927b51e22f"
|
||||||
integrity sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==
|
integrity sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==
|
||||||
@ -3680,7 +3667,46 @@ error-ex@^1.3.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-arrayish "^0.2.1"
|
is-arrayish "^0.2.1"
|
||||||
|
|
||||||
es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.4:
|
es-abstract@^1.19.0, es-abstract@^1.20.4:
|
||||||
|
version "1.21.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6"
|
||||||
|
integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==
|
||||||
|
dependencies:
|
||||||
|
available-typed-arrays "^1.0.5"
|
||||||
|
call-bind "^1.0.2"
|
||||||
|
es-set-tostringtag "^2.0.1"
|
||||||
|
es-to-primitive "^1.2.1"
|
||||||
|
function-bind "^1.1.1"
|
||||||
|
function.prototype.name "^1.1.5"
|
||||||
|
get-intrinsic "^1.1.3"
|
||||||
|
get-symbol-description "^1.0.0"
|
||||||
|
globalthis "^1.0.3"
|
||||||
|
gopd "^1.0.1"
|
||||||
|
has "^1.0.3"
|
||||||
|
has-property-descriptors "^1.0.0"
|
||||||
|
has-proto "^1.0.1"
|
||||||
|
has-symbols "^1.0.3"
|
||||||
|
internal-slot "^1.0.4"
|
||||||
|
is-array-buffer "^3.0.1"
|
||||||
|
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.10"
|
||||||
|
is-weakref "^1.0.2"
|
||||||
|
object-inspect "^1.12.2"
|
||||||
|
object-keys "^1.1.1"
|
||||||
|
object.assign "^4.1.4"
|
||||||
|
regexp.prototype.flags "^1.4.3"
|
||||||
|
safe-regex-test "^1.0.0"
|
||||||
|
string.prototype.trimend "^1.0.6"
|
||||||
|
string.prototype.trimstart "^1.0.6"
|
||||||
|
typed-array-length "^1.0.4"
|
||||||
|
unbox-primitive "^1.0.2"
|
||||||
|
which-typed-array "^1.1.9"
|
||||||
|
|
||||||
|
es-abstract@^1.19.1:
|
||||||
version "1.20.4"
|
version "1.20.4"
|
||||||
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"
|
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"
|
||||||
integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==
|
integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==
|
||||||
@ -3710,6 +3736,15 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19
|
|||||||
string.prototype.trimstart "^1.0.5"
|
string.prototype.trimstart "^1.0.5"
|
||||||
unbox-primitive "^1.0.2"
|
unbox-primitive "^1.0.2"
|
||||||
|
|
||||||
|
es-set-tostringtag@^2.0.1:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8"
|
||||||
|
integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==
|
||||||
|
dependencies:
|
||||||
|
get-intrinsic "^1.1.3"
|
||||||
|
has "^1.0.3"
|
||||||
|
has-tostringtag "^1.0.0"
|
||||||
|
|
||||||
es-shim-unscopables@^1.0.0:
|
es-shim-unscopables@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241"
|
resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241"
|
||||||
@ -3757,22 +3792,23 @@ eslint-config-next@^12.2.4:
|
|||||||
eslint-plugin-react-hooks "^4.5.0"
|
eslint-plugin-react-hooks "^4.5.0"
|
||||||
|
|
||||||
eslint-config-prettier@^8.5.0:
|
eslint-config-prettier@^8.5.0:
|
||||||
version "8.5.0"
|
version "8.6.0"
|
||||||
resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz"
|
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207"
|
||||||
integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==
|
integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==
|
||||||
|
|
||||||
eslint-import-resolver-alias@^1.1.2:
|
eslint-import-resolver-alias@^1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.npmjs.org/eslint-import-resolver-alias/-/eslint-import-resolver-alias-1.1.2.tgz"
|
resolved "https://registry.npmjs.org/eslint-import-resolver-alias/-/eslint-import-resolver-alias-1.1.2.tgz"
|
||||||
integrity sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==
|
integrity sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==
|
||||||
|
|
||||||
eslint-import-resolver-node@^0.3.6:
|
eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7:
|
||||||
version "0.3.6"
|
version "0.3.7"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd"
|
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7"
|
||||||
integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==
|
integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^3.2.7"
|
debug "^3.2.7"
|
||||||
resolve "^1.20.0"
|
is-core-module "^2.11.0"
|
||||||
|
resolve "^1.22.1"
|
||||||
|
|
||||||
eslint-import-resolver-typescript@^2.7.1:
|
eslint-import-resolver-typescript@^2.7.1:
|
||||||
version "2.7.1"
|
version "2.7.1"
|
||||||
@ -3785,30 +3821,32 @@ eslint-import-resolver-typescript@^2.7.1:
|
|||||||
resolve "^1.22.0"
|
resolve "^1.22.0"
|
||||||
tsconfig-paths "^3.14.1"
|
tsconfig-paths "^3.14.1"
|
||||||
|
|
||||||
eslint-module-utils@^2.7.3:
|
eslint-module-utils@^2.7.4:
|
||||||
version "2.7.4"
|
version "2.7.4"
|
||||||
resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz"
|
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974"
|
||||||
integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==
|
integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^3.2.7"
|
debug "^3.2.7"
|
||||||
|
|
||||||
eslint-plugin-import@^2.26.0:
|
eslint-plugin-import@^2.26.0:
|
||||||
version "2.26.0"
|
version "2.27.5"
|
||||||
resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65"
|
||||||
integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==
|
integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==
|
||||||
dependencies:
|
dependencies:
|
||||||
array-includes "^3.1.4"
|
array-includes "^3.1.6"
|
||||||
array.prototype.flat "^1.2.5"
|
array.prototype.flat "^1.3.1"
|
||||||
debug "^2.6.9"
|
array.prototype.flatmap "^1.3.1"
|
||||||
|
debug "^3.2.7"
|
||||||
doctrine "^2.1.0"
|
doctrine "^2.1.0"
|
||||||
eslint-import-resolver-node "^0.3.6"
|
eslint-import-resolver-node "^0.3.7"
|
||||||
eslint-module-utils "^2.7.3"
|
eslint-module-utils "^2.7.4"
|
||||||
has "^1.0.3"
|
has "^1.0.3"
|
||||||
is-core-module "^2.8.1"
|
is-core-module "^2.11.0"
|
||||||
is-glob "^4.0.3"
|
is-glob "^4.0.3"
|
||||||
minimatch "^3.1.2"
|
minimatch "^3.1.2"
|
||||||
object.values "^1.1.5"
|
object.values "^1.1.6"
|
||||||
resolve "^1.22.0"
|
resolve "^1.22.1"
|
||||||
|
semver "^6.3.0"
|
||||||
tsconfig-paths "^3.14.1"
|
tsconfig-paths "^3.14.1"
|
||||||
|
|
||||||
eslint-plugin-jsx-a11y@^6.5.1:
|
eslint-plugin-jsx-a11y@^6.5.1:
|
||||||
@ -4106,9 +4144,9 @@ fastest-levenshtein@^1.0.16:
|
|||||||
integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
|
integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
|
||||||
|
|
||||||
fastq@^1.6.0:
|
fastq@^1.6.0:
|
||||||
version "1.14.0"
|
version "1.15.0"
|
||||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce"
|
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
|
||||||
integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==
|
integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
|
||||||
dependencies:
|
dependencies:
|
||||||
reusify "^1.0.4"
|
reusify "^1.0.4"
|
||||||
|
|
||||||
@ -4165,6 +4203,13 @@ follow-redirects@^1.15.2:
|
|||||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
|
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
|
||||||
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
|
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
|
||||||
|
|
||||||
|
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:
|
forever-agent@~0.6.1:
|
||||||
version "0.6.1"
|
version "0.6.1"
|
||||||
resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
|
resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
|
||||||
@ -4218,6 +4263,15 @@ fs-extra@10, fs-extra@^10.0.0, fs-extra@^10.0.1:
|
|||||||
jsonfile "^6.0.1"
|
jsonfile "^6.0.1"
|
||||||
universalify "^2.0.0"
|
universalify "^2.0.0"
|
||||||
|
|
||||||
|
fs-extra@^11.0.0:
|
||||||
|
version "11.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed"
|
||||||
|
integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==
|
||||||
|
dependencies:
|
||||||
|
graceful-fs "^4.2.0"
|
||||||
|
jsonfile "^6.0.1"
|
||||||
|
universalify "^2.0.0"
|
||||||
|
|
||||||
fs-extra@^9.0.0:
|
fs-extra@^9.0.0:
|
||||||
version "9.1.0"
|
version "9.1.0"
|
||||||
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz"
|
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz"
|
||||||
@ -4285,7 +4339,7 @@ gensync@^1.0.0-beta.2:
|
|||||||
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
||||||
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
||||||
|
|
||||||
get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
|
get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
|
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
|
||||||
integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
|
integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
|
||||||
@ -4390,6 +4444,13 @@ globals@^13.6.0, globals@^13.9.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
type-fest "^0.20.2"
|
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"
|
||||||
|
|
||||||
globalyzer@0.1.0:
|
globalyzer@0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465"
|
resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465"
|
||||||
@ -4417,6 +4478,13 @@ globrex@^0.1.2:
|
|||||||
resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
|
resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
|
||||||
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
|
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
graceful-fs@^4.1.15:
|
graceful-fs@^4.1.15:
|
||||||
version "4.2.9"
|
version "4.2.9"
|
||||||
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz"
|
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz"
|
||||||
@ -4427,15 +4495,15 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
|
|||||||
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
|
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
|
||||||
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
|
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
|
||||||
|
|
||||||
h3@^0.8.1:
|
h3@^1.0.1:
|
||||||
version "0.8.6"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/h3/-/h3-0.8.6.tgz#8095ef998fe14769b87170b7c8b68ba9c54973d5"
|
resolved "https://registry.yarnpkg.com/h3/-/h3-1.0.2.tgz#3a2992921a62de697bd4a3f449401f7600116df6"
|
||||||
integrity sha512-CSWNOKa3QGo67rFU2PhbFTp0uPJtilNji2Z0pMiSRQt3+OkIW0u3E1WMJqIycLqaTgb9JyFqH/S4mcTyyGtvyQ==
|
integrity sha512-25QqjQMz8pX1NI2rZ/ziNT9B8Aog7jmu2a0o8Qm9kKoH3zOhE+2icVs069h6DEp0g1Dst1+zKfRdRYcK0MogJA==
|
||||||
dependencies:
|
dependencies:
|
||||||
cookie-es "^0.5.0"
|
cookie-es "^0.5.0"
|
||||||
destr "^1.2.0"
|
destr "^1.2.2"
|
||||||
radix3 "^0.2.1"
|
radix3 "^1.0.0"
|
||||||
ufo "^0.8.6"
|
ufo "^1.0.1"
|
||||||
|
|
||||||
har-schema@^2.0.0:
|
har-schema@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
@ -4477,6 +4545,11 @@ has-property-descriptors@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
get-intrinsic "^1.1.1"
|
get-intrinsic "^1.1.1"
|
||||||
|
|
||||||
|
has-proto@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
|
||||||
|
integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
|
||||||
|
|
||||||
has-symbols@^1.0.2, has-symbols@^1.0.3:
|
has-symbols@^1.0.2, has-symbols@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
|
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
|
||||||
@ -4565,9 +4638,9 @@ image-meta@^0.1.1:
|
|||||||
integrity sha512-+oXiHwOEPr1IE5zY0tcBLED/CYcre15J4nwL50x3o0jxWqEkyjrusiKP3YSU+tr9fvJp33ZcP5Gpj2295g3aEw==
|
integrity sha512-+oXiHwOEPr1IE5zY0tcBLED/CYcre15J4nwL50x3o0jxWqEkyjrusiKP3YSU+tr9fvJp33ZcP5Gpj2295g3aEw==
|
||||||
|
|
||||||
immer@^9.0.12:
|
immer@^9.0.12:
|
||||||
version "9.0.16"
|
version "9.0.18"
|
||||||
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.16.tgz#8e7caab80118c2b54b37ad43e05758cdefad0198"
|
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.18.tgz#d2faee58fd0e34f017f329b98cdab37826fa31b8"
|
||||||
integrity sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==
|
integrity sha512-eAPNpsj7Ax1q6Y/3lm2PmlwRcFzpON7HSNQ3ru5WQH1/PSpnyed/HpNOELl2CxLKoj4r+bAHgdyKqW5gc2Se1A==
|
||||||
|
|
||||||
import-fresh@^3.0.0, import-fresh@^3.2.1:
|
import-fresh@^3.0.0, import-fresh@^3.2.1:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
@ -4610,12 +4683,12 @@ ini@^1.3.5, ini@~1.3.0:
|
|||||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
||||||
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
|
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
|
||||||
|
|
||||||
internal-slot@^1.0.3:
|
internal-slot@^1.0.3, internal-slot@^1.0.4:
|
||||||
version "1.0.3"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
|
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3"
|
||||||
integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
|
integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
get-intrinsic "^1.1.0"
|
get-intrinsic "^1.1.3"
|
||||||
has "^1.0.3"
|
has "^1.0.3"
|
||||||
side-channel "^1.0.4"
|
side-channel "^1.0.4"
|
||||||
|
|
||||||
@ -4649,10 +4722,10 @@ intl-messageformat@9.13.0:
|
|||||||
"@formatjs/icu-messageformat-parser" "2.1.0"
|
"@formatjs/icu-messageformat-parser" "2.1.0"
|
||||||
tslib "^2.1.0"
|
tslib "^2.1.0"
|
||||||
|
|
||||||
ioredis@^5.2.3:
|
ioredis@^5.2.4:
|
||||||
version "5.2.4"
|
version "5.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.2.4.tgz#9e262a668bc29bae98f2054c1e0d7efd86996b96"
|
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.2.5.tgz#c62dc3945ad2a8f0323fbb2765b934a84a68cde0"
|
||||||
integrity sha512-qIpuAEt32lZJQ0XyrloCRdlEdUUNGG9i0UOk6zgzK6igyudNWqEBxfH6OlbnOOoBBvr1WB02mm8fR55CnikRng==
|
integrity sha512-7HKo/ClM2DGLRXdFq8ruS3Uuadensz4A76wPOU0adqlOqd1qkhoLPDaBhmVhUhNGpB+J65/bhLmNB8DDY99HJQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ioredis/commands" "^1.1.1"
|
"@ioredis/commands" "^1.1.1"
|
||||||
cluster-key-slot "^1.1.0"
|
cluster-key-slot "^1.1.0"
|
||||||
@ -4691,6 +4764,15 @@ ipx@^0.9.11:
|
|||||||
ufo "^0.8.5"
|
ufo "^0.8.5"
|
||||||
xss "^1.0.14"
|
xss "^1.0.14"
|
||||||
|
|
||||||
|
is-array-buffer@^3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a"
|
||||||
|
integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==
|
||||||
|
dependencies:
|
||||||
|
call-bind "^1.0.2"
|
||||||
|
get-intrinsic "^1.1.3"
|
||||||
|
is-typed-array "^1.1.10"
|
||||||
|
|
||||||
is-arrayish@^0.2.1:
|
is-arrayish@^0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
||||||
@ -4723,7 +4805,7 @@ is-boolean-object@^1.1.0:
|
|||||||
call-bind "^1.0.2"
|
call-bind "^1.0.2"
|
||||||
has-tostringtag "^1.0.0"
|
has-tostringtag "^1.0.0"
|
||||||
|
|
||||||
is-callable@^1.1.4, is-callable@^1.2.7:
|
is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
|
||||||
version "1.2.7"
|
version "1.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
|
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
|
||||||
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
|
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
|
||||||
@ -4735,20 +4817,13 @@ is-ci@^3.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ci-info "^3.2.0"
|
ci-info "^3.2.0"
|
||||||
|
|
||||||
is-core-module@^2.5.0, is-core-module@^2.9.0:
|
is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0:
|
||||||
version "2.11.0"
|
version "2.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
|
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
|
||||||
integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
|
integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
|
||||||
dependencies:
|
dependencies:
|
||||||
has "^1.0.3"
|
has "^1.0.3"
|
||||||
|
|
||||||
is-core-module@^2.8.1:
|
|
||||||
version "2.10.0"
|
|
||||||
resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz"
|
|
||||||
integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==
|
|
||||||
dependencies:
|
|
||||||
has "^1.0.3"
|
|
||||||
|
|
||||||
is-date-object@^1.0.1:
|
is-date-object@^1.0.1:
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
|
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
|
||||||
@ -4879,6 +4954,17 @@ is-symbol@^1.0.2, is-symbol@^1.0.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
has-symbols "^1.0.2"
|
has-symbols "^1.0.2"
|
||||||
|
|
||||||
|
is-typed-array@^1.1.10, is-typed-array@^1.1.9:
|
||||||
|
version "1.1.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
|
||||||
|
integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
|
||||||
|
dependencies:
|
||||||
|
available-typed-arrays "^1.0.5"
|
||||||
|
call-bind "^1.0.2"
|
||||||
|
for-each "^0.3.3"
|
||||||
|
gopd "^1.0.1"
|
||||||
|
has-tostringtag "^1.0.0"
|
||||||
|
|
||||||
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
|
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
|
resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
|
||||||
@ -4993,9 +5079,9 @@ json-stringify-safe@~5.0.1:
|
|||||||
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
|
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
|
||||||
|
|
||||||
json5@^1.0.1:
|
json5@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
|
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
|
||||||
integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
|
integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
|
||||||
dependencies:
|
dependencies:
|
||||||
minimist "^1.2.0"
|
minimist "^1.2.0"
|
||||||
|
|
||||||
@ -5152,19 +5238,19 @@ listhen@^0.2.15:
|
|||||||
selfsigned "^2.0.1"
|
selfsigned "^2.0.1"
|
||||||
ufo "^0.8.5"
|
ufo "^0.8.5"
|
||||||
|
|
||||||
listhen@^0.3.4:
|
listhen@^1.0.0:
|
||||||
version "0.3.5"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.3.5.tgz#04a0f6dbdab5bbac711992004a37c8306fad3e4e"
|
resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.0.1.tgz#31054d08d850ad21473768085a50a8b34a635070"
|
||||||
integrity sha512-suyt79hNmCFeBIyftcLqLPfYiXeB795gSUWOJT7nspl2IvREY0Q9xvchLhekxvQ0KiOPvWoyALnc9Mxoelm0Pw==
|
integrity sha512-RBzBGHMCc5wP8J5Vf8WgF4CAJH8dWHi9LaKB7vfzZt54CiH/0dp01rudy2hFD9wCrTM+UfxFVnn5wTIiY+Qhiw==
|
||||||
dependencies:
|
dependencies:
|
||||||
clipboardy "^3.0.0"
|
clipboardy "^3.0.0"
|
||||||
colorette "^2.0.19"
|
colorette "^2.0.19"
|
||||||
defu "^6.1.0"
|
defu "^6.1.1"
|
||||||
get-port-please "^2.6.1"
|
get-port-please "^2.6.1"
|
||||||
http-shutdown "^1.2.2"
|
http-shutdown "^1.2.2"
|
||||||
ip-regex "^5.0.0"
|
ip-regex "^5.0.0"
|
||||||
node-forge "^1.3.1"
|
node-forge "^1.3.1"
|
||||||
ufo "^0.8.6"
|
ufo "^1.0.0"
|
||||||
|
|
||||||
listr2@^3.12.2:
|
listr2@^3.12.2:
|
||||||
version "3.14.0"
|
version "3.14.0"
|
||||||
@ -5525,9 +5611,9 @@ mmdb-lib@2.0.2:
|
|||||||
integrity sha512-shi1I+fCPQonhTi7qyb6hr7hi87R7YS69FlfJiMFuJ12+grx0JyL56gLNzGTYXPU7EhAPkMLliGeyHer0K+AVA==
|
integrity sha512-shi1I+fCPQonhTi7qyb6hr7hi87R7YS69FlfJiMFuJ12+grx0JyL56gLNzGTYXPU7EhAPkMLliGeyHer0K+AVA==
|
||||||
|
|
||||||
moize@^6.1.0:
|
moize@^6.1.0:
|
||||||
version "6.1.4"
|
version "6.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/moize/-/moize-6.1.4.tgz#8e79b62a4a0519229b013522ae27d1b00c0b0c2d"
|
resolved "https://registry.yarnpkg.com/moize/-/moize-6.1.5.tgz#e9a589685a3de4266eeb5f2bbfdfe1a173265f1a"
|
||||||
integrity sha512-Ga8V0iu7XHDz6GR50pAaGjc3hJ5CVmWUgQRyWFAn4pYrBzITx9dMlXOGhURP2qmO3WTeOC9Yu17MlFV6PY2m/g==
|
integrity sha512-Fu46qKV9F8DOi2vXimR3yRw/JAJfFRQEFZeclvOFnG92AEFERqwFtu4PIxETYFtCghHGlU1itKcvvNioKgWGIw==
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-equals "^3.0.1"
|
fast-equals "^3.0.1"
|
||||||
micro-memoize "^4.0.11"
|
micro-memoize "^4.0.11"
|
||||||
@ -5556,11 +5642,6 @@ mri@^1.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b"
|
resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b"
|
||||||
integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
|
integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
|
||||||
|
|
||||||
ms@2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
|
|
||||||
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
|
|
||||||
|
|
||||||
ms@2.1.2:
|
ms@2.1.2:
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||||
@ -5637,16 +5718,16 @@ nice-try@^1.0.4:
|
|||||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||||
|
|
||||||
node-abi@^3.3.0:
|
node-abi@^3.3.0:
|
||||||
version "3.30.0"
|
version "3.31.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.30.0.tgz#d84687ad5d24ca81cdfa912a36f2c5c19b137359"
|
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.31.0.tgz#dfb2ea3d01188eb80859f69bb4a4354090c1b355"
|
||||||
integrity sha512-qWO5l3SCqbwQavymOmtTVuCWZE23++S+rxyoHjXqUmPyzRcaoI4lA2gO55/drddGnedAyjA7sk76SfQ5lfUMnw==
|
integrity sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
semver "^7.3.5"
|
semver "^7.3.5"
|
||||||
|
|
||||||
node-addon-api@^5.0.0:
|
node-addon-api@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501"
|
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762"
|
||||||
integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==
|
integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==
|
||||||
|
|
||||||
node-domexception@^1.0.0:
|
node-domexception@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
@ -5658,10 +5739,15 @@ node-fetch-native@^0.1.8:
|
|||||||
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.8.tgz#19e2eaf6d86ac14e711ebd2612f40517c3468f2a"
|
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.8.tgz#19e2eaf6d86ac14e711ebd2612f40517c3468f2a"
|
||||||
integrity sha512-ZNaury9r0NxaT2oL65GvdGDy+5PlSaHTovT6JV5tOW07k1TQmgC0olZETa4C9KZg0+6zBr99ctTYa3Utqj9P/Q==
|
integrity sha512-ZNaury9r0NxaT2oL65GvdGDy+5PlSaHTovT6JV5tOW07k1TQmgC0olZETa4C9KZg0+6zBr99ctTYa3Utqj9P/Q==
|
||||||
|
|
||||||
|
node-fetch-native@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.0.1.tgz#1dfe78f57545d07e07016b7df4c0cb9d2ff416c7"
|
||||||
|
integrity sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==
|
||||||
|
|
||||||
node-fetch@^2.0.0, node-fetch@^2.6.6:
|
node-fetch@^2.0.0, node-fetch@^2.6.6:
|
||||||
version "2.6.7"
|
version "2.6.8"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e"
|
||||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==
|
||||||
dependencies:
|
dependencies:
|
||||||
whatwg-url "^5.0.0"
|
whatwg-url "^5.0.0"
|
||||||
|
|
||||||
@ -5759,9 +5845,9 @@ object-assign@^4, object-assign@^4.1.1:
|
|||||||
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
|
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
|
||||||
|
|
||||||
object-inspect@^1.12.2, object-inspect@^1.9.0:
|
object-inspect@^1.12.2, object-inspect@^1.9.0:
|
||||||
version "1.12.2"
|
version "1.12.3"
|
||||||
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
|
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
|
||||||
integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
|
integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
|
||||||
|
|
||||||
object-keys@^1.1.1:
|
object-keys@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
@ -5804,7 +5890,7 @@ object.hasown@^1.1.2:
|
|||||||
define-properties "^1.1.4"
|
define-properties "^1.1.4"
|
||||||
es-abstract "^1.20.4"
|
es-abstract "^1.20.4"
|
||||||
|
|
||||||
object.values@^1.1.5, object.values@^1.1.6:
|
object.values@^1.1.6:
|
||||||
version "1.1.6"
|
version "1.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d"
|
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d"
|
||||||
integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
|
integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
|
||||||
@ -5813,7 +5899,16 @@ object.values@^1.1.5, object.values@^1.1.6:
|
|||||||
define-properties "^1.1.4"
|
define-properties "^1.1.4"
|
||||||
es-abstract "^1.20.4"
|
es-abstract "^1.20.4"
|
||||||
|
|
||||||
ohmyfetch@^0.4.18, ohmyfetch@^0.4.19:
|
ofetch@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/ofetch/-/ofetch-1.0.0.tgz#5a2604cdcb33349900e4f73ffe44de449a61101a"
|
||||||
|
integrity sha512-d40aof8czZFSQKJa4+F7Ch3UC5D631cK1TTUoK+iNEut9NoiCL+u0vykl/puYVUS2df4tIQl5upQcolIcEzQjQ==
|
||||||
|
dependencies:
|
||||||
|
destr "^1.2.1"
|
||||||
|
node-fetch-native "^1.0.1"
|
||||||
|
ufo "^1.0.0"
|
||||||
|
|
||||||
|
ohmyfetch@^0.4.18:
|
||||||
version "0.4.21"
|
version "0.4.21"
|
||||||
resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.4.21.tgz#6850db751fc7bbf08153aa8b11ff1ef45fcfd963"
|
resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.4.21.tgz#6850db751fc7bbf08153aa8b11ff1ef45fcfd963"
|
||||||
integrity sha512-VG7f/JRvqvBOYvL0tHyEIEG7XHWm7OqIfAs6/HqwWwDfjiJ1g0huIpe5sFEmyb+7hpFa1EGNH2aERWR72tlClw==
|
integrity sha512-VG7f/JRvqvBOYvL0tHyEIEG7XHWm7OqIfAs6/HqwWwDfjiJ1g0huIpe5sFEmyb+7hpFa1EGNH2aERWR72tlClw==
|
||||||
@ -5863,7 +5958,7 @@ p-limit@^2.2.0:
|
|||||||
|
|
||||||
p-limit@^3.1.0:
|
p-limit@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
|
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
||||||
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
|
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
yocto-queue "^0.1.0"
|
yocto-queue "^0.1.0"
|
||||||
@ -6354,21 +6449,21 @@ prettier-linter-helpers@^1.0.0:
|
|||||||
fast-diff "^1.1.2"
|
fast-diff "^1.1.2"
|
||||||
|
|
||||||
prettier@^2.6.2:
|
prettier@^2.6.2:
|
||||||
version "2.8.1"
|
version "2.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc"
|
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632"
|
||||||
integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==
|
integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==
|
||||||
|
|
||||||
pretty-bytes@^5.6.0:
|
pretty-bytes@^5.6.0:
|
||||||
version "5.6.0"
|
version "5.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
|
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
|
||||||
integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
|
integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
|
||||||
|
|
||||||
prisma@4.8.0:
|
prisma@4.9.0:
|
||||||
version "4.8.0"
|
version "4.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.8.0.tgz#634dbbdc9d3f76c61604880251673d08ccb6f02b"
|
resolved "https://registry.yarnpkg.com/prisma/-/prisma-4.9.0.tgz#295954b2a89cd35a0e6bcf66b2b036dbf80c75ee"
|
||||||
integrity sha512-DWIhxvxt8f4h6MDd35mz7BJff+fu7HItW3WPDIEpCR3RzcOWyiHBbLQW5/DOgmf+pRLTjwXQob7kuTZVYUAw5w==
|
integrity sha512-bS96oZ5oDFXYgoF2l7PJ3Mp1wWWfLOo8B/jAfbA2Pn0Wm5Z/owBHzaMQKS3i1CzVBDWWPVnOohmbJmjvkcHS5w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@prisma/engines" "4.8.0"
|
"@prisma/engines" "4.9.0"
|
||||||
|
|
||||||
progress@^2.0.0:
|
progress@^2.0.0:
|
||||||
version "2.0.3"
|
version "2.0.3"
|
||||||
@ -6440,10 +6535,10 @@ quick-lru@^4.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
|
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
|
||||||
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
|
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
|
||||||
|
|
||||||
radix3@^0.2.1:
|
radix3@^1.0.0:
|
||||||
version "0.2.1"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/radix3/-/radix3-0.2.1.tgz#77e66a41c7ba5600a8bc137fd259ef661d314418"
|
resolved "https://registry.yarnpkg.com/radix3/-/radix3-1.0.0.tgz#d1c760b850206a6bd5dfd26820c25903cb20eccc"
|
||||||
integrity sha512-FnhArTl5Tq7dodiLeSPKrDUyCQuJqEncP8cKdyy399g8F/cz7GH6FmzA3Rkosu2IZMkpswFFwXfb2ERSiL06pg==
|
integrity sha512-6n3AEXth91ASapMVKiEh2wrbFJmI+NBilrWE0AbiGgfm0xet0QXC8+a3K19r1UVYjUjctUgB053c3V/J6V0kCQ==
|
||||||
|
|
||||||
raf-schd@^4.0.2:
|
raf-schd@^4.0.2:
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
@ -6467,10 +6562,10 @@ rc@^1.2.7:
|
|||||||
minimist "^1.2.0"
|
minimist "^1.2.0"
|
||||||
strip-json-comments "~2.0.1"
|
strip-json-comments "~2.0.1"
|
||||||
|
|
||||||
react-basics@^0.50.0:
|
react-basics@^0.53.0:
|
||||||
version "0.50.0"
|
version "0.53.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-basics/-/react-basics-0.50.0.tgz#1784ce05f0361dd208804a273954dd50b8ec8b6f"
|
resolved "https://registry.yarnpkg.com/react-basics/-/react-basics-0.53.0.tgz#2215ca47bca99a316cd129875682960d6519611f"
|
||||||
integrity sha512-hf9pbYuVSNqI7tlhO/5Ry1GfcWINKJgDkmDbFVCKSYYyiiycqDcsIyaXGn+pSxvWUj3Lk8YJep7INFeUMxA35A==
|
integrity sha512-XsG38JsumhHvqGaVnY7oRErs7Ub1Td1GjFE0VG4Uc7SlwRzK1idmtaZGW6dbPpHhmwkDNa7xnohRaKgRBmP2pg==
|
||||||
dependencies:
|
dependencies:
|
||||||
classnames "^2.3.1"
|
classnames "^2.3.1"
|
||||||
react "^18.2.0"
|
react "^18.2.0"
|
||||||
@ -6863,7 +6958,7 @@ resolve@^1.1.7:
|
|||||||
path-parse "^1.0.7"
|
path-parse "^1.0.7"
|
||||||
supports-preserve-symlinks-flag "^1.0.0"
|
supports-preserve-symlinks-flag "^1.0.0"
|
||||||
|
|
||||||
resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.0:
|
resolve@^1.10.0, resolve@^1.14.2, resolve@^1.22.0, resolve@^1.22.1:
|
||||||
version "1.22.1"
|
version "1.22.1"
|
||||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
|
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
|
||||||
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
|
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
|
||||||
@ -7274,7 +7369,7 @@ string.prototype.padend@^3.0.0:
|
|||||||
define-properties "^1.1.3"
|
define-properties "^1.1.3"
|
||||||
es-abstract "^1.19.1"
|
es-abstract "^1.19.1"
|
||||||
|
|
||||||
string.prototype.trimend@^1.0.5:
|
string.prototype.trimend@^1.0.5, string.prototype.trimend@^1.0.6:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533"
|
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533"
|
||||||
integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==
|
integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==
|
||||||
@ -7283,7 +7378,7 @@ string.prototype.trimend@^1.0.5:
|
|||||||
define-properties "^1.1.4"
|
define-properties "^1.1.4"
|
||||||
es-abstract "^1.20.4"
|
es-abstract "^1.20.4"
|
||||||
|
|
||||||
string.prototype.trimstart@^1.0.5:
|
string.prototype.trimstart@^1.0.5, string.prototype.trimstart@^1.0.6:
|
||||||
version "1.0.6"
|
version "1.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4"
|
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4"
|
||||||
integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==
|
integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==
|
||||||
@ -7369,10 +7464,10 @@ stylelint-config-prettier@^9.0.3:
|
|||||||
resolved "https://registry.yarnpkg.com/stylelint-config-prettier/-/stylelint-config-prettier-9.0.4.tgz#1b1dda614d5b3ef6c1f583fa6fa55f88245eb00b"
|
resolved "https://registry.yarnpkg.com/stylelint-config-prettier/-/stylelint-config-prettier-9.0.4.tgz#1b1dda614d5b3ef6c1f583fa6fa55f88245eb00b"
|
||||||
integrity sha512-38nIGTGpFOiK5LjJ8Ma1yUgpKENxoKSOhbDNSemY7Ep0VsJoXIW9Iq/2hSt699oB9tReynfWicTAoIHiq8Rvbg==
|
integrity sha512-38nIGTGpFOiK5LjJ8Ma1yUgpKENxoKSOhbDNSemY7Ep0VsJoXIW9Iq/2hSt699oB9tReynfWicTAoIHiq8Rvbg==
|
||||||
|
|
||||||
stylelint-config-recommended@^7.0.0:
|
stylelint-config-recommended@^9.0.0:
|
||||||
version "7.0.0"
|
version "9.0.0"
|
||||||
resolved "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz"
|
resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz#1c9e07536a8cd875405f8ecef7314916d94e7e40"
|
||||||
integrity sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==
|
integrity sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==
|
||||||
|
|
||||||
stylelint-scss@^4.2.0:
|
stylelint-scss@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
@ -7385,10 +7480,10 @@ stylelint-scss@^4.2.0:
|
|||||||
postcss-selector-parser "^6.0.6"
|
postcss-selector-parser "^6.0.6"
|
||||||
postcss-value-parser "^4.1.0"
|
postcss-value-parser "^4.1.0"
|
||||||
|
|
||||||
stylelint@^14.5.3:
|
stylelint@^14.16.1:
|
||||||
version "14.16.0"
|
version "14.16.1"
|
||||||
resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.16.0.tgz#8e1a424f4b9852e59089f95de306734d70e5048b"
|
resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.16.1.tgz#b911063530619a1bbe44c2b875fd8181ebdc742d"
|
||||||
integrity sha512-X6uTi9DcxjzLV8ZUAjit1vsRtSwcls0nl07c9rqOPzvpA8IvTX/xWEkBRowS0ffevRrqkHa/ThDEu86u73FQDg==
|
integrity sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@csstools/selector-specificity" "^2.0.2"
|
"@csstools/selector-specificity" "^2.0.2"
|
||||||
balanced-match "^2.0.0"
|
balanced-match "^2.0.0"
|
||||||
@ -7725,6 +7820,15 @@ type-fest@^0.8.1:
|
|||||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
|
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
|
||||||
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
|
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
|
||||||
|
|
||||||
|
typed-array-length@^1.0.4:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb"
|
||||||
|
integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==
|
||||||
|
dependencies:
|
||||||
|
call-bind "^1.0.2"
|
||||||
|
for-each "^0.3.3"
|
||||||
|
is-typed-array "^1.1.9"
|
||||||
|
|
||||||
typedarray-to-buffer@^3.1.5:
|
typedarray-to-buffer@^3.1.5:
|
||||||
version "3.1.5"
|
version "3.1.5"
|
||||||
resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"
|
resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz"
|
||||||
@ -7747,7 +7851,7 @@ ufo@^0.8.5, ufo@^0.8.6:
|
|||||||
resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.8.6.tgz#c0ec89bc0e0c9fa59a683680feb0f28b55ec323b"
|
resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.8.6.tgz#c0ec89bc0e0c9fa59a683680feb0f28b55ec323b"
|
||||||
integrity sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==
|
integrity sha512-fk6CmUgwKCfX79EzcDQQpSCMxrHstvbLswFChHS0Vump+kFkw7nJBfTZoC1j0bOGoY9I7R3n2DGek5ajbcYnOw==
|
||||||
|
|
||||||
ufo@^1.0.0:
|
ufo@^1.0.0, ufo@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.0.1.tgz#64ed43b530706bda2e4892f911f568cf4cf67d29"
|
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.0.1.tgz#64ed43b530706bda2e4892f911f568cf4cf67d29"
|
||||||
integrity sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==
|
integrity sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==
|
||||||
@ -7763,9 +7867,9 @@ unbox-primitive@^1.0.2:
|
|||||||
which-boxed-primitive "^1.0.2"
|
which-boxed-primitive "^1.0.2"
|
||||||
|
|
||||||
undici@^5.12.0:
|
undici@^5.12.0:
|
||||||
version "5.14.0"
|
version "5.15.1"
|
||||||
resolved "https://registry.yarnpkg.com/undici/-/undici-5.14.0.tgz#1169d0cdee06a4ffdd30810f6228d57998884d00"
|
resolved "https://registry.yarnpkg.com/undici/-/undici-5.15.1.tgz#5292454b1441da486a80c0f3ada1e88f1765ff8d"
|
||||||
integrity sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ==
|
integrity sha512-XLk8g0WAngdvFqTI+VKfBtM4YWXgdxkf1WezC771Es0Dd+Pm1KmNx8t93WTC+Hh9tnghmVxkclU1HN+j+CvIUA==
|
||||||
dependencies:
|
dependencies:
|
||||||
busboy "^1.6.0"
|
busboy "^1.6.0"
|
||||||
|
|
||||||
@ -7820,22 +7924,22 @@ universalify@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
|
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
|
||||||
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
|
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
|
||||||
|
|
||||||
unstorage@^0.6.0:
|
unstorage@^1.0.0:
|
||||||
version "0.6.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.6.0.tgz#9a70d770d08ed8dbb87f4aa5fbf7700baf4a641d"
|
resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.0.1.tgz#8cac09e435e727f68ac8ffdac10caa1a5b35883d"
|
||||||
integrity sha512-X05PIq28pVNA1BypX6Y00YNqAsHM25MGemvpjHeYvwJ8/wg936GoO1YD+VdWlqm3LmVX4fNJ5tlC7uhXsMPgeg==
|
integrity sha512-J1c4b8K2KeihHrQtdgl/ybIapArUbPaPb+TyJy/nGSauDwDYqciZsEKdkee568P3c8SSH4TIgnGRHDWMPGw+Lg==
|
||||||
dependencies:
|
dependencies:
|
||||||
anymatch "^3.1.2"
|
anymatch "^3.1.2"
|
||||||
chokidar "^3.5.3"
|
chokidar "^3.5.3"
|
||||||
destr "^1.1.1"
|
destr "^1.2.1"
|
||||||
h3 "^0.8.1"
|
h3 "^1.0.1"
|
||||||
ioredis "^5.2.3"
|
ioredis "^5.2.4"
|
||||||
listhen "^0.3.4"
|
listhen "^1.0.0"
|
||||||
mkdir "^0.0.2"
|
mkdir "^0.0.2"
|
||||||
mri "^1.2.0"
|
mri "^1.2.0"
|
||||||
ohmyfetch "^0.4.19"
|
ofetch "^1.0.0"
|
||||||
ufo "^0.8.6"
|
ufo "^1.0.0"
|
||||||
ws "^8.9.0"
|
ws "^8.11.0"
|
||||||
|
|
||||||
update-browserslist-db@^1.0.9:
|
update-browserslist-db@^1.0.9:
|
||||||
version "1.0.10"
|
version "1.0.10"
|
||||||
@ -7949,6 +8053,18 @@ which-boxed-primitive@^1.0.2:
|
|||||||
is-string "^1.0.5"
|
is-string "^1.0.5"
|
||||||
is-symbol "^1.0.3"
|
is-symbol "^1.0.3"
|
||||||
|
|
||||||
|
which-typed-array@^1.1.9:
|
||||||
|
version "1.1.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
|
||||||
|
integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
|
||||||
|
dependencies:
|
||||||
|
available-typed-arrays "^1.0.5"
|
||||||
|
call-bind "^1.0.2"
|
||||||
|
for-each "^0.3.3"
|
||||||
|
gopd "^1.0.1"
|
||||||
|
has-tostringtag "^1.0.0"
|
||||||
|
is-typed-array "^1.1.10"
|
||||||
|
|
||||||
which@^1.2.9, which@^1.3.1:
|
which@^1.2.9, which@^1.3.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
|
resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
|
||||||
@ -8021,10 +8137,10 @@ write-json-file@^4.3.0:
|
|||||||
sort-keys "^4.0.0"
|
sort-keys "^4.0.0"
|
||||||
write-file-atomic "^3.0.0"
|
write-file-atomic "^3.0.0"
|
||||||
|
|
||||||
ws@^8.9.0:
|
ws@^8.11.0:
|
||||||
version "8.11.0"
|
version "8.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
|
resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8"
|
||||||
integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
|
integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==
|
||||||
|
|
||||||
xss@^1.0.14:
|
xss@^1.0.14:
|
||||||
version "1.0.14"
|
version "1.0.14"
|
||||||
|