diff --git a/app/components/home/menu/index.jsx b/app/components/home/menu/index.jsx index 4655445..7cd0b4b 100644 --- a/app/components/home/menu/index.jsx +++ b/app/components/home/menu/index.jsx @@ -6,10 +6,7 @@ import { observer } from 'mobx-react-lite'; // import local files import Button from '../../ui/button'; - -// import icons -import FaPlus from '../../icons/faPlus'; -import FaReload from '../../icons/faReload'; +import { FaPlus, IoReload } from '../../icons'; import MenuLayoutDropdown from './layout'; import MenuStatusDropdown from './status'; import SearchBar from '../../ui/searchBar'; @@ -30,7 +27,7 @@ const HomeMenu = ({ handleReset, search, setSearch }) => {
+ {dropdownItems} diff --git a/app/components/home/menu/mobile.jsx b/app/components/home/menu/mobile.jsx index f378910..612425a 100644 --- a/app/components/home/menu/mobile.jsx +++ b/app/components/home/menu/mobile.jsx @@ -23,7 +23,7 @@ const HomeMenuMobile = ({ handleReset }) => { toggleDropdown={toggleDropdown} style={{ height: '45px' }} > - + , + icon: , }, { text: 'Up', id: 'up', - icon: , + icon: , }, { text: 'Down', id: 'down', - icon: , + icon: , }, ]; @@ -54,7 +50,11 @@ const MenuStatusDropdown = () => { id="home-menu-status" > - diff --git a/app/components/home/monitor/options.jsx b/app/components/home/monitor/options.jsx index f4b5b2c..0e1aa23 100644 --- a/app/components/home/monitor/options.jsx +++ b/app/components/home/monitor/options.jsx @@ -8,12 +8,10 @@ import { toast } from 'react-toastify'; import MonitorModal from '../../modal/monitor/delete'; import Dropdown from '../../ui/dropdown/index'; import useContextStore from '../../../context'; -import { createGetRequest } from '../../../services/axios'; - -// import icons -import FaEllipsisVertical from '../../icons/faEllipsisVertical'; import useDropdown from '../../../hooks/useDropdown'; +import { createGetRequest } from '../../../services/axios'; import MonitorConfigureModal from '../../modal/monitor/configure'; +import { FaEllipsisVertical } from '../../icons'; const MonitorOptions = ({ monitorId }) => { const { @@ -77,7 +75,7 @@ const MonitorOptions = ({ monitorId }) => { toggleDropdown={toggleDropdown} > - + Open diff --git a/app/components/icons/bsTable.jsx b/app/components/icons/bsTable.jsx deleted file mode 100644 index 40bb34e..0000000 --- a/app/components/icons/bsTable.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const BsTable = ({ width, height }) => ( - - - -); - -BsTable.displayName = 'BsTable'; - -BsTable.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default BsTable; diff --git a/app/components/icons/faCheck.jsx b/app/components/icons/faCheck.jsx deleted file mode 100644 index f3d24ff..0000000 --- a/app/components/icons/faCheck.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaCheck = ({ width = 25, height = 25 }) => ( - - - -); - -FaCheck.displayName = 'FaCheck'; - -FaCheck.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaCheck; diff --git a/app/components/icons/faChevronDown.jsx b/app/components/icons/faChevronDown.jsx deleted file mode 100644 index c641e7b..0000000 --- a/app/components/icons/faChevronDown.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaChevronDown = ({ width = 25, height = 25 }) => ( - - - -); - -FaChevronDown.displayName = 'FaChevronDown'; - -FaChevronDown.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaChevronDown; diff --git a/app/components/icons/faChevronLeft.jsx b/app/components/icons/faChevronLeft.jsx deleted file mode 100644 index 290bc7a..0000000 --- a/app/components/icons/faChevronLeft.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaChevronLeft = ({ width = 25, height = 25 }) => ( - - - -); - -FaChevronLeft.displayName = 'FaChevronLeft'; - -FaChevronLeft.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaChevronLeft; diff --git a/app/components/icons/faChevronRight.jsx b/app/components/icons/faChevronRight.jsx deleted file mode 100644 index 18bc3a9..0000000 --- a/app/components/icons/faChevronRight.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaChevronRight = ({ width = 25, height = 25 }) => ( - - - -); - -FaChevronRight.displayName = 'FaChevronRight'; - -FaChevronRight.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaChevronRight; diff --git a/app/components/icons/faChevronUp.jsx b/app/components/icons/faChevronUp.jsx deleted file mode 100644 index f21318a..0000000 --- a/app/components/icons/faChevronUp.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaChevronUp = ({ width = 25, height = 25 }) => ( - - - -); - -FaChevronUp.displayName = 'FaChevronUp'; - -FaChevronUp.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaChevronUp; diff --git a/app/components/icons/faCircleCheck.jsx b/app/components/icons/faCircleCheck.jsx deleted file mode 100644 index fb546b7..0000000 --- a/app/components/icons/faCircleCheck.jsx +++ /dev/null @@ -1,30 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaCircleCheck = ({ height, width, checkColor = 'white' }) => ( - - - - -); - -FaCircleCheck.displayName = 'FaCircleCheck'; - -FaCircleCheck.propTypes = { - width: PropTypes.number, - height: PropTypes.number, - checkColor: PropTypes.string, -}; - -export default FaCircleCheck; diff --git a/app/components/icons/faClose.jsx b/app/components/icons/faClose.jsx deleted file mode 100644 index 0c1b56f..0000000 --- a/app/components/icons/faClose.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaClose = ({ width = 25, height = 25 }) => ( - - - -); - -FaClose.displayName = 'FaClose'; - -FaClose.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaClose; diff --git a/app/components/icons/faCog.jsx b/app/components/icons/faCog.jsx deleted file mode 100644 index 5c04ede..0000000 --- a/app/components/icons/faCog.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaCog = ({ width = 25, height = 25 }) => ( - - - -); - -FaCog.displayName = 'FaCog'; - -FaCog.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaCog; diff --git a/app/components/icons/faEllipsisVertical.jsx b/app/components/icons/faEllipsisVertical.jsx deleted file mode 100644 index 93674d1..0000000 --- a/app/components/icons/faEllipsisVertical.jsx +++ /dev/null @@ -1,27 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaEllipsisVertical = ({ width = 25, height = 25 }) => { - return ( - - - - ); -}; - -FaEllipsisVertical.displayName = 'FaEllipsisVertical'; - -FaEllipsisVertical.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaEllipsisVertical; diff --git a/app/components/icons/faHome.jsx b/app/components/icons/faHome.jsx deleted file mode 100644 index 94352a6..0000000 --- a/app/components/icons/faHome.jsx +++ /dev/null @@ -1,27 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaHome = ({ width= 25, height= 25 }) => { - return ( - - - - ); -}; - -FaHome.displayName = 'FaHome'; - -FaHome.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaHome; diff --git a/app/components/icons/faPlus.jsx b/app/components/icons/faPlus.jsx deleted file mode 100644 index 29ee52d..0000000 --- a/app/components/icons/faPlus.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaPlus = ({ width = 25, height = 25 }) => ( - - - -); - -FaPlus.displayName = 'FaPlus'; - -FaPlus.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaPlus; diff --git a/app/components/icons/faReload.jsx b/app/components/icons/faReload.jsx deleted file mode 100644 index 8e57105..0000000 --- a/app/components/icons/faReload.jsx +++ /dev/null @@ -1,30 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaReload = ({ height = 25, width = 25 }) => ( - - - -); - -FaReload.displayName = 'FaReload'; - -FaReload.propTypes = { - height: PropTypes.number, - width: PropTypes.number, -}; - -export default FaReload; diff --git a/app/components/icons/faSignOutAlt.jsx b/app/components/icons/faSignOutAlt.jsx deleted file mode 100644 index e4f0160..0000000 --- a/app/components/icons/faSignOutAlt.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaSignOutAlt = ({ width = 25, height = 25 }) => ( - - - -); - -FaSignOutAlt.displayName = 'FaSignOutAlt'; - -FaSignOutAlt.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaSignOutAlt; diff --git a/app/components/icons/faTrash.jsx b/app/components/icons/faTrash.jsx deleted file mode 100644 index af6287f..0000000 --- a/app/components/icons/faTrash.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaTrash = ({ width = 25, height = 25 }) => ( - - - -); - -FaTrash.displayName = 'FaTrash'; - -FaTrash.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaTrash; diff --git a/app/components/icons/faUserCircle.jsx b/app/components/icons/faUserCircle.jsx deleted file mode 100644 index da54c56..0000000 --- a/app/components/icons/faUserCircle.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaUserCircle = ({ width = 25, height = 25 }) => ( - - - -); - -FaUserCircle.displayName = 'FaUserCircle'; - -FaUserCircle.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaUserCircle; diff --git a/app/components/icons/faUsers.jsx b/app/components/icons/faUsers.jsx deleted file mode 100644 index 7dead35..0000000 --- a/app/components/icons/faUsers.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FaUsers = ({ height = 25, width = 25 }) => ( - - - -); - -FaUsers.displayName = 'FaUsers'; - -FaUsers.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FaUsers; diff --git a/app/components/icons/fiLayout.jsx b/app/components/icons/fiLayout.jsx deleted file mode 100644 index 1c02152..0000000 --- a/app/components/icons/fiLayout.jsx +++ /dev/null @@ -1,29 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const FiLayout = ({ height = 20, width = 20 }) => ( - - - - - -); - -FiLayout.displayName = 'FiLayout'; - -FiLayout.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default FiLayout; diff --git a/app/components/icons/hiStatusOffline.jsx b/app/components/icons/hiStatusOffline.jsx deleted file mode 100644 index 0103eba..0000000 --- a/app/components/icons/hiStatusOffline.jsx +++ /dev/null @@ -1,30 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const HiStatusOffline = ({ height = 25, width = 25 }) => ( - -); - -HiStatusOffline.displayName = 'HiStatusOffline'; - -HiStatusOffline.propTypes = { - height: PropTypes.number, - width: PropTypes.number, -}; - -export default HiStatusOffline; diff --git a/app/components/icons/hiStatusOnline.jsx b/app/components/icons/hiStatusOnline.jsx deleted file mode 100644 index 5511b88..0000000 --- a/app/components/icons/hiStatusOnline.jsx +++ /dev/null @@ -1,30 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const HiStatusOnline = ({ height = 25, width = 25 }) => ( - -); - -HiStatusOnline.displayName = 'HiStatusOnline'; - -HiStatusOnline.propTypes = { - height: PropTypes.number, - width: PropTypes.number, -}; - -export default HiStatusOnline; diff --git a/app/components/icons/index.jsx b/app/components/icons/index.jsx index c2f6d61..0dd568e 100644 --- a/app/components/icons/index.jsx +++ b/app/components/icons/index.jsx @@ -1,63 +1,61 @@ -import BsTable from './bsTable'; -import FaCheck from './faCheck'; -import FaChevronDown from './faChevronDown'; -import FaChevronLeft from './faChevronLeft'; -import FaChevronRight from './faChevronRight'; -import FaChevronUp from './faChevronUp'; -import FaCircleCheck from './faCircleCheck'; -import FaUserCircle from './faUserCircle'; -import FaClose from './faClose'; -import FaCog from './faCog'; -import FaEllipsisVertical from './faEllipsisVertical'; -import FaHome from './faHome'; -import FaPlus from './faPlus'; -import FaReload from './faReload'; -import FaSignOutAlt from './faSignOutAlt'; -import FaTrash from './faTrash'; -import FiLayout from './fiLayout'; -import HiStatusOffline from './hiStatusOffline'; -import HiStatusOnline from './hiStatusOnline'; -import IoArrowBack from './ioArrowBack'; -import IoColorPalette from './ioColorPalette'; -import IoGrid from './ioGrid'; -import LiaSyncSolid from './liaSyncSolid'; -import MdEdit from './mdEdit'; -import MdErrorOutline from './mdErrorOutline'; -import MdEye from './mdEye'; -import MdEyeOff from './mdEyeOff'; -import MdHelpCircle from './mdHelpCircle'; -import PiListFill from './piListFill'; +import { BsTable } from 'react-icons/bs'; +import { + FaChevronDown, + FaChevronLeft, + FaChevronRight, + FaChevronUp, + FaUserCircle, + FaCog, + FaHome, + FaPlus, + FaSignOutAlt, + FaUsers, +} from 'react-icons/fa'; +import { FiLayout } from 'react-icons/fi'; +import { HiStatusOffline, HiStatusOnline } from 'react-icons/hi'; +import { IoMdEyeOff, IoMdEye, IoMdClose, IoMdHelpCircle } from 'react-icons/io'; +import { LiaSyncSolid } from 'react-icons/lia'; +import { MdEdit, MdErrorOutline } from 'react-icons/md'; +import { + FaCircleCheck, + FaEllipsisVertical, + FaCheck, + FaBars, + FaTrashCan, +} from 'react-icons/fa6'; +import { IoArrowBack, IoColorPalette, IoGrid, IoReload } from 'react-icons/io5'; import StatusLogo from './statusLogo'; export { BsTable, + FaBars, FaCheck, FaChevronDown, FaChevronLeft, FaChevronRight, - FaCircleCheck, FaChevronUp, - FaUserCircle, - FaClose, + FaCircleCheck, FaCog, FaEllipsisVertical, FaHome, FaPlus, - FaReload, FaSignOutAlt, - FaTrash, + FaTrashCan, + FaUserCircle, + FaUsers, FiLayout, HiStatusOffline, HiStatusOnline, IoArrowBack, IoColorPalette, IoGrid, + IoMdClose, + IoMdEye, + IoMdEyeOff, + IoMdHelpCircle, + IoReload, LiaSyncSolid, MdEdit, MdErrorOutline, - MdEye, - MdEyeOff, - MdHelpCircle, - PiListFill, StatusLogo, }; diff --git a/app/components/icons/ioArrowBack.jsx b/app/components/icons/ioArrowBack.jsx deleted file mode 100644 index f4e4196..0000000 --- a/app/components/icons/ioArrowBack.jsx +++ /dev/null @@ -1,31 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const IoArrowBack = ({ height = 25, width = 25 }) => ( - - - -); - -IoArrowBack.displayName = 'IoArrowBack'; - -IoArrowBack.propTypes = { - height: PropTypes.number, - width: PropTypes.number, -}; - -export default IoArrowBack; diff --git a/app/components/icons/ioColorPalette.jsx b/app/components/icons/ioColorPalette.jsx deleted file mode 100644 index bf65395..0000000 --- a/app/components/icons/ioColorPalette.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const IoColorPalette = ({ height = 25, width = 25 }) => ( - - - -); - -IoColorPalette.displayName = 'IoColorPalette'; - -IoColorPalette.propTypes = { - height: PropTypes.number, - width: PropTypes.number, -}; - -export default IoColorPalette; diff --git a/app/components/icons/ioGrid.jsx b/app/components/icons/ioGrid.jsx deleted file mode 100644 index f84a7ff..0000000 --- a/app/components/icons/ioGrid.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const IoGrid = ({ height, width }) => ( - - - -); - -IoGrid.displayName = 'IoGrid'; - -IoGrid.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default IoGrid; diff --git a/app/components/icons/liaSyncSolid.jsx b/app/components/icons/liaSyncSolid.jsx deleted file mode 100644 index 0703941..0000000 --- a/app/components/icons/liaSyncSolid.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const LiaSyncSolid = ({ height, width }) => ( - - - -); - -LiaSyncSolid.displayName = 'LiaSyncSolid'; - -LiaSyncSolid.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default LiaSyncSolid; diff --git a/app/components/icons/mdEdit.jsx b/app/components/icons/mdEdit.jsx deleted file mode 100644 index 86cab3a..0000000 --- a/app/components/icons/mdEdit.jsx +++ /dev/null @@ -1,26 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const MdEdit = ({ width = 25, height = 25 }) => ( - - - - -); - -MdEdit.displayName = 'MdEdit'; - -MdEdit.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default MdEdit; diff --git a/app/components/icons/mdErrorOutline.jsx b/app/components/icons/mdErrorOutline.jsx deleted file mode 100644 index 802f430..0000000 --- a/app/components/icons/mdErrorOutline.jsx +++ /dev/null @@ -1,26 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const MdErrorOutline = ({ width = 25, height = 25 }) => ( - - - - -); - -MdErrorOutline.displayName = 'MdErrorOutline'; - -MdErrorOutline.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default MdErrorOutline; diff --git a/app/components/icons/mdEye.jsx b/app/components/icons/mdEye.jsx deleted file mode 100644 index d62331f..0000000 --- a/app/components/icons/mdEye.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const MdEye = ({ width = 25, height = 25 }) => ( - - - -); - -MdEye.displayName = 'MdEye'; - -MdEye.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default MdEye; diff --git a/app/components/icons/mdEyeOff.jsx b/app/components/icons/mdEyeOff.jsx deleted file mode 100644 index e94def6..0000000 --- a/app/components/icons/mdEyeOff.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const MdEyeOff = ({ width = 25, height = 25 }) => ( - - - -); - -MdEyeOff.displayName = 'MdEyeOff'; - -MdEyeOff.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default MdEyeOff; diff --git a/app/components/icons/mdHelpCircle.jsx b/app/components/icons/mdHelpCircle.jsx deleted file mode 100644 index a3a46c4..0000000 --- a/app/components/icons/mdHelpCircle.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const MdHelpCircle = ({ width = 24, height = 24 }) => ( - - - -); - -MdHelpCircle.displayName = 'MdHelpCircle'; - -MdHelpCircle.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default MdHelpCircle; diff --git a/app/components/icons/piListFill.jsx b/app/components/icons/piListFill.jsx deleted file mode 100644 index 2ecc156..0000000 --- a/app/components/icons/piListFill.jsx +++ /dev/null @@ -1,25 +0,0 @@ -// import dependencies -import PropTypes from 'prop-types'; - -const PiListFill = ({ width, height }) => ( - - - -); - -PiListFill.displayName = 'PiListFill'; - -PiListFill.propTypes = { - width: PropTypes.number, - height: PropTypes.number, -}; - -export default PiListFill; diff --git a/app/components/modal/settings/account/password.jsx b/app/components/modal/settings/account/password.jsx index b4088f4..efe99d4 100644 --- a/app/components/modal/settings/account/password.jsx +++ b/app/components/modal/settings/account/password.jsx @@ -1,12 +1,12 @@ // import dependencies import PropTypes from 'prop-types'; +import { useState } from 'react'; // import local files import Modal from '../../../ui/modal'; import TextInput from '../../../ui/input'; import RegisterChecklist from '../../../register/checklist'; -import { useState } from 'react'; -import { MdEye, MdEyeOff } from '../../../icons'; +import { IoMdEye, IoMdEyeOff } from '../../../icons'; import handleChangePassword from '../../../../handlers/settings/account/password'; import validators from '../../../../../shared/validators'; @@ -75,7 +75,11 @@ const SettingsAccountPasswordModal = ({ modalTitle, id, closeModal }) => { handlePasswordChange('showPassword', !values.showPassword) } > - {values.showPassword ? : } + {values.showPassword ? ( + + ) : ( + + )}
} error={values.errors.current} @@ -93,7 +97,11 @@ const SettingsAccountPasswordModal = ({ modalTitle, id, closeModal }) => { handlePasswordChange('showNewPassword', !values.showNewPassword) } > - {values.showNewPassword ? : } + {values.showNewPassword ? ( + + ) : ( + + )} } error={values.errors.new} diff --git a/app/components/monitor/graph/graph.scss b/app/components/monitor/graph/graph.scss index a182cc2..5ecca74 100644 --- a/app/components/monitor/graph/graph.scss +++ b/app/components/monitor/graph/graph.scss @@ -3,6 +3,9 @@ .monitor-chart-container { background-color: var(--accent-900); border-radius: pxToRem(16); + gap: pxToRem(10); + display: flex; + flex-direction: column; } .monitor-chart-buttons-container { diff --git a/app/components/monitor/graph/index.jsx b/app/components/monitor/graph/index.jsx index 21f82ca..4bdfede 100644 --- a/app/components/monitor/graph/index.jsx +++ b/app/components/monitor/graph/index.jsx @@ -1,112 +1,85 @@ import './graph.scss'; // import dependencies -import PropTypes from 'prop-types'; -import 'chartjs-adapter-dayjs-3'; -import { - BarController, - BarElement, - Chart as ChartJs, - Filler, - LinearScale, - LineController, - LineElement, - PointElement, - TimeScale, - Tooltip, - CategoryScale, -} from 'chart.js'; -import { Chart } from 'react-chartjs-2'; +import dayjs from 'dayjs'; +import CanvasJSReact from '@canvasjs/react-charts'; // import local files -import useLocalStorageContext from '../../../hooks/useLocalstorage'; import GraphMenu from './menu'; import useGraphStatus from '../../../hooks/useGraphStatus'; +import useLocalStorageContext from '../../../hooks/useLocalstorage'; import { fullMonitorPropType } from '../../../../shared/utils/propTypes'; -ChartJs.register( - LineController, - BarController, - LineElement, - PointElement, - TimeScale, - BarElement, - LinearScale, - Tooltip, - Filler, - CategoryScale -); - -const MonitorGraph = ({ monitor, maxValue }) => { - const { dateformat, timeformat, theme } = useLocalStorageContext(); +const { CanvasJSChart } = CanvasJSReact; +const MonitorGraph = ({ monitor }) => { + const { + dateformat, + theme, + timeformat, + timezone: timeZone, + } = useLocalStorageContext(); const { statusType, statusHeartbeats, setStatusType } = useGraphStatus(monitor); - const labels = statusHeartbeats.map((heartbeat = {}) => heartbeat.date); - const data = statusHeartbeats.map((heartbeat = {}) => heartbeat.latency); - const gridColor = - theme.type === 'light' ? 'rgba(0,0,0,0.1)' : 'rgba(255,255,255,0.1)'; + const data = statusHeartbeats.map((heartbeat = {}) => { + const date = new Date( + new Date(heartbeat.date).toLocaleString('en-US', { timeZone }) + ); + return { + x: date, + y: heartbeat.latency, + toolTipContent: `
+
${dayjs(date).format(`${dateformat} ${timeformat}`)}
+
${heartbeat.latency}ms
+
`, + color: heartbeat.isDown ? '#b80a47' : '#13a452', + }; + }); + + const options = { + theme: theme.type === 'light' ? 'light2' : 'dark2', + animationEnabled: true, + zoomEnabled: true, + backgroundColor: 'transparent', + toolTip: { + enabled: true, + animationEnabled: true, + }, + axisX: { + lineColor: '#505b62', + tickColor: '#505b62', + tickLength: 5, + }, + axisY: { + title: 'respTime (ms)', + titleFontSize: 18, + gridColor: '#505b62', + lineColor: '#505b62', + tickColor: '#505b62', + minimum: 0, + }, + data: [ + { + type: 'splineArea', + lineThickness: 2, + // Render colors of chart based on user theme + color: '#10894466', + lineColor: '#13a452', + markerType: 'circle', + markerSize: 0, + xValueFormatString: 'MMM YYYY', + dataPoints: data, + }, + ], + }; return (
- { - if (window.innerWidth < 576) { - chart.canvas.style.height = '225px'; - } else if (window.innerWidth < 768) { - chart.canvas.style.height = '275px'; - } else if (window.innerWidth < 1200) { - chart.canvas.style.height = '300px'; - } else if (window.innerWidth < 1920) { - chart.canvas.style.height = '320px'; - } else { - chart.canvas.style.height = '400px'; - } - }, - layout: { padding: { left: 10, right: 30, top: 30, bottom: 10 } }, - elements: { point: { radius: 0, hitRadius: 100 } }, - scales: { - x: { - type: 'time', - time: { - minUnit: 'minute', - round: 'second', - tooltipFormat: `${dateformat} ${timeformat}`, - displayFormats: { minute: 'HH:mm', hour: 'MM-DD HH:mm' }, - }, - ticks: { maxRotation: 0, autoSkipPadding: 30 }, - grid: { color: gridColor, offset: false }, - }, - y: { - type: 'linear', - title: { display: true, text: 'respTime (ms)' }, - offset: true, - grid: { color: gridColor }, - min: 0, - max: maxValue, - }, - }, - }} - /> +
+ +
); }; @@ -115,7 +88,6 @@ MonitorGraph.displayName = 'MonitorGraph'; MonitorGraph.propTypes = { monitor: fullMonitorPropType.isRequired, - maxValue: PropTypes.number, }; export default MonitorGraph; diff --git a/app/components/monitor/graph/menu.jsx b/app/components/monitor/graph/menu.jsx index a210d7e..596a6ca 100644 --- a/app/components/monitor/graph/menu.jsx +++ b/app/components/monitor/graph/menu.jsx @@ -49,7 +49,7 @@ const GraphMenu = ({ statusType, setStatusType }) => { isOpen={dropdownIsOpen} toggleDropdown={toggleDropdown} > - + { const { @@ -66,18 +63,18 @@ const MonitorMenu = ({ name = 'Unknown', monitorId }) => {
{name}
- {/* */} - {/* */} + {/* */} + {/* */} + {Object.keys(timezonesList).map((timezone) => ( setTimezone(timezone)}> - {timezonesList[timezone]} + {timezone} (GMT{timezonesList[timezone]}) ))} diff --git a/app/components/settings/ui/menu/desktop.jsx b/app/components/settings/ui/menu/desktop.jsx index da1102a..470d38c 100644 --- a/app/components/settings/ui/menu/desktop.jsx +++ b/app/components/settings/ui/menu/desktop.jsx @@ -7,13 +7,13 @@ import SettingsAccount from '../../account'; import SettingsPersonalisation from '../../personalisation'; import ManageTeam from '../../manage'; import SettingsAbout from '../../about'; -import { FaClose } from '../../../icons'; +import { IoMdClose } from '../../../icons'; const SettingsDesktop = ({ tab, handleTabUpdate, handleKeydown }) => { return ( <>
handleKeydown(null, true)}> - +
{tab === 'Account' && } diff --git a/app/components/settings/ui/menu/mobile.jsx b/app/components/settings/ui/menu/mobile.jsx index 732d5e8..3a39b44 100644 --- a/app/components/settings/ui/menu/mobile.jsx +++ b/app/components/settings/ui/menu/mobile.jsx @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import { useState } from 'react'; // import local files -import IoArrowBack from '../../../icons/ioArrowBack'; +import { IoArrowBack } from '../../../icons'; import SettingsMobileTabs from '../tab/mobile'; import SettingsAccount from '../../account'; import SettingsPersonalisation from '../../personalisation'; @@ -27,7 +27,7 @@ const SettingsMobile = ({ handleKeydown }) => { setPage('homepage'); }} > - +
}, - { name: 'Appearance', icon: }, + { + name: 'Account', + icon: , + }, + { + name: 'Appearance', + icon: , + }, ], }, { title: 'Workspace Settings', items: [ - { name: 'Manage Team', icon: }, - { name: 'About', icon: }, + { + name: 'Manage Team', + icon: , + }, + { + name: 'About', + icon: , + }, ], }, ]; @@ -36,7 +48,7 @@ const SettingsMobileTabs = ({ handleTabChange }) => { > {item.icon}
{item.name}
- +
); }); diff --git a/app/components/ui/alert/error.jsx b/app/components/ui/alert/error.jsx index 8d47231..c590b7d 100644 --- a/app/components/ui/alert/error.jsx +++ b/app/components/ui/alert/error.jsx @@ -2,13 +2,13 @@ import PropTypes from 'prop-types'; // import local files -import MdErrorOutline from '../../icons/mdErrorOutline'; +import { MdErrorOutline } from '../../icons'; const AlertError = ({ title = 'Error', description }) => { return (
- +
{title}
diff --git a/app/components/ui/alert/info.jsx b/app/components/ui/alert/info.jsx index ecf1adf..ea22976 100644 --- a/app/components/ui/alert/info.jsx +++ b/app/components/ui/alert/info.jsx @@ -2,13 +2,13 @@ import PropTypes from 'prop-types'; // import local files -import MdErrorOutline from '../../icons/mdErrorOutline'; +import { MdErrorOutline } from '../../icons'; const AlertInfo = ({ title = 'Info', description }) => { return (
- +
{title}
diff --git a/app/components/ui/alert/success.jsx b/app/components/ui/alert/success.jsx index 742dda2..8f127bb 100644 --- a/app/components/ui/alert/success.jsx +++ b/app/components/ui/alert/success.jsx @@ -2,13 +2,13 @@ import PropTypes from 'prop-types'; // import local files -import MdErrorOutline from '../../icons/mdErrorOutline'; +import { MdErrorOutline } from '../../icons'; const AlertSuccess = ({ title = 'Success', description }) => { return (
- +
{title}
diff --git a/app/components/ui/alert/warning.jsx b/app/components/ui/alert/warning.jsx index 947a475..178a452 100644 --- a/app/components/ui/alert/warning.jsx +++ b/app/components/ui/alert/warning.jsx @@ -2,13 +2,13 @@ import PropTypes from 'prop-types'; // import local files -import MdErrorOutline from '../../icons/mdErrorOutline'; +import { MdErrorOutline } from '../../icons'; const AlertWarning = ({ title = 'Warning', description }) => { return (
- +
{title}
diff --git a/app/components/ui/dropdown/trigger.jsx b/app/components/ui/dropdown/trigger.jsx index cb2dd3e..ccff022 100644 --- a/app/components/ui/dropdown/trigger.jsx +++ b/app/components/ui/dropdown/trigger.jsx @@ -3,7 +3,7 @@ import classNames from 'classnames'; import PropTypes from 'prop-types'; // import local files -import FaChevronUp from '../../icons/faChevronUp'; +import { FaChevronUp } from '../../icons'; const Trigger = ({ asInput, @@ -33,7 +33,7 @@ const Trigger = ({ {children} {showIcon && (
- {icon || } + {icon || }
)}
diff --git a/app/components/ui/modal/container.jsx b/app/components/ui/modal/container.jsx index e53de44..8666587 100644 --- a/app/components/ui/modal/container.jsx +++ b/app/components/ui/modal/container.jsx @@ -5,7 +5,7 @@ import PropTypes from 'prop-types'; import classNames from 'classnames'; // import local files -import FaClose from '../../icons/faClose'; +import { IoMdClose } from '../../icons'; const Container = ({ children, glassmorph, closeButton, ...props }) => { const classes = classNames('modal-container', { @@ -18,7 +18,7 @@ const Container = ({ children, glassmorph, closeButton, ...props }) => {
{closeButton && (
- +
)} {children} diff --git a/app/components/ui/select/trigger.jsx b/app/components/ui/select/trigger.jsx index bfb73c3..91f5489 100644 --- a/app/components/ui/select/trigger.jsx +++ b/app/components/ui/select/trigger.jsx @@ -3,7 +3,7 @@ import classNames from 'classnames'; import PropTypes from 'prop-types'; // import local files -import FaChevronUp from '../../icons/faChevronUp'; +import { FaChevronUp } from '../../icons'; const Trigger = ({ asInput, @@ -27,7 +27,7 @@ const Trigger = ({ {children} {showIcon && (
- {icon || } + {icon || }
)}
diff --git a/app/constant/timezones.json b/app/constant/timezones.json index 4f9f0bc..a1ab99d 100644 --- a/app/constant/timezones.json +++ b/app/constant/timezones.json @@ -1,426 +1,426 @@ { - "Pacific/Midway": "Pacific/Midway (GMT-11:00)", - "Pacific/Niue": "Pacific/Niue (GMT-11:00)", - "Pacific/Pago_Pago": "Pacific/Pago_Pago (GMT-11:00)", - "America/Adak": "America/Adak (GMT-10:00)", - "Pacific/Honolulu": "Pacific/Honolulu (GMT-10:00)", - "Pacific/Rarotonga": "Pacific/Rarotonga (GMT-10:00)", - "Pacific/Tahiti": "Pacific/Tahiti (GMT-10:00)", - "Pacific/Marquesas": "Pacific/Marquesas (GMT-09:30)", - "America/Anchorage": "America/Anchorage (GMT-09:00)", - "America/Juneau": "America/Juneau (GMT-09:00)", - "America/Metlakatla": "America/Metlakatla (GMT-09:00)", - "America/Nome": "America/Nome (GMT-09:00)", - "America/Sitka": "America/Sitka (GMT-09:00)", - "America/Yakutat": "America/Yakutat (GMT-09:00)", - "Pacific/Gambier": "Pacific/Gambier (GMT-09:00)", - "America/Los_Angeles": "America/Los_Angeles (GMT-08:00)", - "America/Tijuana": "America/Tijuana (GMT-08:00)", - "America/Vancouver": "America/Vancouver (GMT-08:00)", - "Pacific/Pitcairn": "Pacific/Pitcairn (GMT-08:00)", - "America/Boise": "America/Boise (GMT-07:00)", - "America/Cambridge_Bay": "America/Cambridge_Bay (GMT-07:00)", - "America/Chihuahua": "America/Chihuahua (GMT-07:00)", - "America/Creston": "America/Creston (GMT-07:00)", - "America/Dawson": "America/Dawson (GMT-07:00)", - "America/Dawson_Creek": "America/Dawson_Creek (GMT-07:00)", - "America/Denver": "America/Denver (GMT-07:00)", - "America/Edmonton": "America/Edmonton (GMT-07:00)", - "America/Fort_Nelson": "America/Fort_Nelson (GMT-07:00)", - "America/Hermosillo": "America/Hermosillo (GMT-07:00)", - "America/Inuvik": "America/Inuvik (GMT-07:00)", - "America/Mazatlan": "America/Mazatlan (GMT-07:00)", - "America/Ojinaga": "America/Ojinaga (GMT-07:00)", - "America/Phoenix": "America/Phoenix (GMT-07:00)", - "America/Whitehorse": "America/Whitehorse (GMT-07:00)", - "America/Yellowknife": "America/Yellowknife (GMT-07:00)", - "America/Bahia_Banderas": "America/Bahia_Banderas (GMT-06:00)", - "America/Belize": "America/Belize (GMT-06:00)", - "America/Chicago": "America/Chicago (GMT-06:00)", - "America/Costa_Rica": "America/Costa_Rica (GMT-06:00)", - "America/El_Salvador": "America/El_Salvador (GMT-06:00)", - "America/Guatemala": "America/Guatemala (GMT-06:00)", - "America/Indiana/Knox": "America/Indiana/Knox (GMT-06:00)", - "America/Indiana/Tell_City": "America/Indiana/Tell_City (GMT-06:00)", - "America/Managua": "America/Managua (GMT-06:00)", - "America/Matamoros": "America/Matamoros (GMT-06:00)", - "America/Menominee": "America/Menominee (GMT-06:00)", - "America/Merida": "America/Merida (GMT-06:00)", - "America/Mexico_City": "America/Mexico_City (GMT-06:00)", - "America/Monterrey": "America/Monterrey (GMT-06:00)", - "America/North_Dakota/Beulah": "America/North_Dakota/Beulah (GMT-06:00)", - "America/North_Dakota/Center": "America/North_Dakota/Center (GMT-06:00)", - "America/North_Dakota/New_Salem": "America/North_Dakota/New_Salem (GMT-06:00)", - "America/Rainy_River": "America/Rainy_River (GMT-06:00)", - "America/Rankin_Inlet": "America/Rankin_Inlet (GMT-06:00)", - "America/Regina": "America/Regina (GMT-06:00)", - "America/Resolute": "America/Resolute (GMT-06:00)", - "America/Swift_Current": "America/Swift_Current (GMT-06:00)", - "America/Tegucigalpa": "America/Tegucigalpa (GMT-06:00)", - "America/Winnipeg": "America/Winnipeg (GMT-06:00)", - "Pacific/Easter": "Pacific/Easter (GMT-06:00)", - "Pacific/Galapagos": "Pacific/Galapagos (GMT-06:00)", - "America/Atikokan": "America/Atikokan (GMT-05:00)", - "America/Bogota": "America/Bogota (GMT-05:00)", - "America/Cancun": "America/Cancun (GMT-05:00)", - "America/Cayman": "America/Cayman (GMT-05:00)", - "America/Detroit": "America/Detroit (GMT-05:00)", - "America/Eirunepe": "America/Eirunepe (GMT-05:00)", - "America/Grand_Turk": "America/Grand_Turk (GMT-05:00)", - "America/Guayaquil": "America/Guayaquil (GMT-05:00)", - "America/Havana": "America/Havana (GMT-05:00)", - "America/Indiana/Indianapolis": "America/Indiana/Indianapolis (GMT-05:00)", - "America/Indiana/Marengo": "America/Indiana/Marengo (GMT-05:00)", - "America/Indiana/Petersburg": "America/Indiana/Petersburg (GMT-05:00)", - "America/Indiana/Vevay": "America/Indiana/Vevay (GMT-05:00)", - "America/Indiana/Vincennes": "America/Indiana/Vincennes (GMT-05:00)", - "America/Indiana/Winamac": "America/Indiana/Winamac (GMT-05:00)", - "America/Iqaluit": "America/Iqaluit (GMT-05:00)", - "America/Jamaica": "America/Jamaica (GMT-05:00)", - "America/Kentucky/Louisville": "America/Kentucky/Louisville (GMT-05:00)", - "America/Kentucky/Monticello": "America/Kentucky/Monticello (GMT-05:00)", - "America/Lima": "America/Lima (GMT-05:00)", - "America/Nassau": "America/Nassau (GMT-05:00)", - "America/New_York": "America/New_York (GMT-05:00)", - "America/Nipigon": "America/Nipigon (GMT-05:00)", - "America/Panama": "America/Panama (GMT-05:00)", - "America/Pangnirtung": "America/Pangnirtung (GMT-05:00)", - "America/Port-au-Prince": "America/Port-au-Prince (GMT-05:00)", - "America/Rio_Branco": "America/Rio_Branco (GMT-05:00)", - "America/Thunder_Bay": "America/Thunder_Bay (GMT-05:00)", - "America/Toronto": "America/Toronto (GMT-05:00)", - "America/Anguilla": "America/Anguilla (GMT-04:00)", - "America/Antigua": "America/Antigua (GMT-04:00)", - "America/Aruba": "America/Aruba (GMT-04:00)", - "America/Asuncion": "America/Asuncion (GMT-04:00)", - "America/Barbados": "America/Barbados (GMT-04:00)", - "America/Blanc-Sablon": "America/Blanc-Sablon (GMT-04:00)", - "America/Boa_Vista": "America/Boa_Vista (GMT-04:00)", - "America/Campo_Grande": "America/Campo_Grande (GMT-04:00)", - "America/Caracas": "America/Caracas (GMT-04:00)", - "America/Cuiaba": "America/Cuiaba (GMT-04:00)", - "America/Curacao": "America/Curacao (GMT-04:00)", - "America/Dominica": "America/Dominica (GMT-04:00)", - "America/Glace_Bay": "America/Glace_Bay (GMT-04:00)", - "America/Goose_Bay": "America/Goose_Bay (GMT-04:00)", - "America/Grenada": "America/Grenada (GMT-04:00)", - "America/Guadeloupe": "America/Guadeloupe (GMT-04:00)", - "America/Guyana": "America/Guyana (GMT-04:00)", - "America/Halifax": "America/Halifax (GMT-04:00)", - "America/Kralendijk": "America/Kralendijk (GMT-04:00)", - "America/La_Paz": "America/La_Paz (GMT-04:00)", - "America/Lower_Princes": "America/Lower_Princes (GMT-04:00)", - "America/Manaus": "America/Manaus (GMT-04:00)", - "America/Marigot": "America/Marigot (GMT-04:00)", - "America/Martinique": "America/Martinique (GMT-04:00)", - "America/Moncton": "America/Moncton (GMT-04:00)", - "America/Montserrat": "America/Montserrat (GMT-04:00)", - "America/Porto_Velho": "America/Porto_Velho (GMT-04:00)", - "America/Port_of_Spain": "America/Port_of_Spain (GMT-04:00)", - "America/Puerto_Rico": "America/Puerto_Rico (GMT-04:00)", - "America/Santiago": "America/Santiago (GMT-04:00)", - "America/Santo_Domingo": "America/Santo_Domingo (GMT-04:00)", - "America/St_Barthelemy": "America/St_Barthelemy (GMT-04:00)", - "America/St_Kitts": "America/St_Kitts (GMT-04:00)", - "America/St_Lucia": "America/St_Lucia (GMT-04:00)", - "America/St_Thomas": "America/St_Thomas (GMT-04:00)", - "America/St_Vincent": "America/St_Vincent (GMT-04:00)", - "America/Thule": "America/Thule (GMT-04:00)", - "America/Tortola": "America/Tortola (GMT-04:00)", - "Atlantic/Bermuda": "Atlantic/Bermuda (GMT-04:00)", - "America/St_Johns": "America/St_Johns (GMT-03:30)", - "America/Araguaina": "America/Araguaina (GMT-03:00)", - "America/Argentina/Buenos_Aires": "America/Argentina/Buenos_Aires (GMT-03:00)", - "America/Argentina/Catamarca": "America/Argentina/Catamarca (GMT-03:00)", - "America/Argentina/Cordoba": "America/Argentina/Cordoba (GMT-03:00)", - "America/Argentina/Jujuy": "America/Argentina/Jujuy (GMT-03:00)", - "America/Argentina/La_Rioja": "America/Argentina/La_Rioja (GMT-03:00)", - "America/Argentina/Mendoza": "America/Argentina/Mendoza (GMT-03:00)", - "America/Argentina/Rio_Gallegos": "America/Argentina/Rio_Gallegos (GMT-03:00)", - "America/Argentina/Salta": "America/Argentina/Salta (GMT-03:00)", - "America/Argentina/San_Juan": "America/Argentina/San_Juan (GMT-03:00)", - "America/Argentina/San_Luis": "America/Argentina/San_Luis (GMT-03:00)", - "America/Argentina/Tucuman": "America/Argentina/Tucuman (GMT-03:00)", - "America/Argentina/Ushuaia": "America/Argentina/Ushuaia (GMT-03:00)", - "America/Bahia": "America/Bahia (GMT-03:00)", - "America/Belem": "America/Belem (GMT-03:00)", - "America/Cayenne": "America/Cayenne (GMT-03:00)", - "America/Fortaleza": "America/Fortaleza (GMT-03:00)", - "America/Godthab": "America/Godthab (GMT-03:00)", - "America/Maceio": "America/Maceio (GMT-03:00)", - "America/Miquelon": "America/Miquelon (GMT-03:00)", - "America/Montevideo": "America/Montevideo (GMT-03:00)", - "America/Paramaribo": "America/Paramaribo (GMT-03:00)", - "America/Punta_Arenas": "America/Punta_Arenas (GMT-03:00)", - "America/Recife": "America/Recife (GMT-03:00)", - "America/Santarem": "America/Santarem (GMT-03:00)", - "America/Sao_Paulo": "America/Sao_Paulo (GMT-03:00)", - "Antarctica/Palmer": "Antarctica/Palmer (GMT-03:00)", - "Antarctica/Rothera": "Antarctica/Rothera (GMT-03:00)", - "Atlantic/Stanley": "Atlantic/Stanley (GMT-03:00)", - "America/Noronha": "America/Noronha (GMT-02:00)", - "Atlantic/South_Georgia": "Atlantic/South_Georgia (GMT-02:00)", - "America/Scoresbysund": "America/Scoresbysund (GMT-01:00)", - "Atlantic/Azores": "Atlantic/Azores (GMT-01:00)", - "Atlantic/Cape_Verde": "Atlantic/Cape_Verde (GMT-01:00)", - "Africa/Abidjan": "Africa/Abidjan (GMT+00:00)", - "Africa/Accra": "Africa/Accra (GMT+00:00)", - "Africa/Bamako": "Africa/Bamako (GMT+00:00)", - "Africa/Banjul": "Africa/Banjul (GMT+00:00)", - "Africa/Bissau": "Africa/Bissau (GMT+00:00)", - "Africa/Casablanca": "Africa/Casablanca (GMT+00:00)", - "Africa/Conakry": "Africa/Conakry (GMT+00:00)", - "Africa/Dakar": "Africa/Dakar (GMT+00:00)", - "Africa/El_Aaiun": "Africa/El_Aaiun (GMT+00:00)", - "Africa/Freetown": "Africa/Freetown (GMT+00:00)", - "Africa/Lome": "Africa/Lome (GMT+00:00)", - "Africa/Monrovia": "Africa/Monrovia (GMT+00:00)", - "Africa/Nouakchott": "Africa/Nouakchott (GMT+00:00)", - "Africa/Ouagadougou": "Africa/Ouagadougou (GMT+00:00)", - "Africa/Sao_Tome": "Africa/Sao_Tome (GMT+00:00)", - "America/Danmarkshavn": "America/Danmarkshavn (GMT+00:00)", - "Antarctica/Troll": "Antarctica/Troll (GMT+00:00)", - "Atlantic/Canary": "Atlantic/Canary (GMT+00:00)", - "Atlantic/Faroe": "Atlantic/Faroe (GMT+00:00)", - "Atlantic/Madeira": "Atlantic/Madeira (GMT+00:00)", - "Atlantic/Reykjavik": "Atlantic/Reykjavik (GMT+00:00)", - "Atlantic/St_Helena": "Atlantic/St_Helena (GMT+00:00)", - "Europe/Dublin": "Europe/Dublin (GMT+00:00)", - "Europe/Guernsey": "Europe/Guernsey (GMT+00:00)", - "Europe/Isle_of_Man": "Europe/Isle_of_Man (GMT+00:00)", - "Europe/Jersey": "Europe/Jersey (GMT+00:00)", - "Europe/Lisbon": "Europe/Lisbon (GMT+00:00)", - "Europe/London": "Europe/London (GMT+00:00)", - "Africa/Algiers": "Africa/Algiers (GMT+01:00)", - "Africa/Bangui": "Africa/Bangui (GMT+01:00)", - "Africa/Brazzaville": "Africa/Brazzaville (GMT+01:00)", - "Africa/Ceuta": "Africa/Ceuta (GMT+01:00)", - "Africa/Douala": "Africa/Douala (GMT+01:00)", - "Africa/Kinshasa": "Africa/Kinshasa (GMT+01:00)", - "Africa/Lagos": "Africa/Lagos (GMT+01:00)", - "Africa/Libreville": "Africa/Libreville (GMT+01:00)", - "Africa/Luanda": "Africa/Luanda (GMT+01:00)", - "Africa/Malabo": "Africa/Malabo (GMT+01:00)", - "Africa/Ndjamena": "Africa/Ndjamena (GMT+01:00)", - "Africa/Niamey": "Africa/Niamey (GMT+01:00)", - "Africa/Porto-Novo": "Africa/Porto-Novo (GMT+01:00)", - "Africa/Tunis": "Africa/Tunis (GMT+01:00)", - "Africa/Windhoek": "Africa/Windhoek (GMT+01:00)", - "Arctic/Longyearbyen": "Arctic/Longyearbyen (GMT+01:00)", - "Europe/Amsterdam": "Europe/Amsterdam (GMT+01:00)", - "Europe/Andorra": "Europe/Andorra (GMT+01:00)", - "Europe/Belgrade": "Europe/Belgrade (GMT+01:00)", - "Europe/Berlin": "Europe/Berlin (GMT+01:00)", - "Europe/Bratislava": "Europe/Bratislava (GMT+01:00)", - "Europe/Brussels": "Europe/Brussels (GMT+01:00)", - "Europe/Budapest": "Europe/Budapest (GMT+01:00)", - "Europe/Copenhagen": "Europe/Copenhagen (GMT+01:00)", - "Europe/Gibraltar": "Europe/Gibraltar (GMT+01:00)", - "Europe/Ljubljana": "Europe/Ljubljana (GMT+01:00)", - "Europe/Luxembourg": "Europe/Luxembourg (GMT+01:00)", - "Europe/Madrid": "Europe/Madrid (GMT+01:00)", - "Europe/Malta": "Europe/Malta (GMT+01:00)", - "Europe/Monaco": "Europe/Monaco (GMT+01:00)", - "Europe/Oslo": "Europe/Oslo (GMT+01:00)", - "Europe/Paris": "Europe/Paris (GMT+01:00)", - "Europe/Podgorica": "Europe/Podgorica (GMT+01:00)", - "Europe/Prague": "Europe/Prague (GMT+01:00)", - "Europe/Rome": "Europe/Rome (GMT+01:00)", - "Europe/San_Marino": "Europe/San_Marino (GMT+01:00)", - "Europe/Sarajevo": "Europe/Sarajevo (GMT+01:00)", - "Europe/Skopje": "Europe/Skopje (GMT+01:00)", - "Europe/Stockholm": "Europe/Stockholm (GMT+01:00)", - "Europe/Tirane": "Europe/Tirane (GMT+01:00)", - "Europe/Vaduz": "Europe/Vaduz (GMT+01:00)", - "Europe/Vatican": "Europe/Vatican (GMT+01:00)", - "Europe/Vienna": "Europe/Vienna (GMT+01:00)", - "Europe/Warsaw": "Europe/Warsaw (GMT+01:00)", - "Europe/Zagreb": "Europe/Zagreb (GMT+01:00)", - "Europe/Zurich": "Europe/Zurich (GMT+01:00)", - "Africa/Blantyre": "Africa/Blantyre (GMT+02:00)", - "Africa/Bujumbura": "Africa/Bujumbura (GMT+02:00)", - "Africa/Cairo": "Africa/Cairo (GMT+02:00)", - "Africa/Gaborone": "Africa/Gaborone (GMT+02:00)", - "Africa/Harare": "Africa/Harare (GMT+02:00)", - "Africa/Johannesburg": "Africa/Johannesburg (GMT+02:00)", - "Africa/Juba": "Africa/Juba (GMT+02:00)", - "Africa/Khartoum": "Africa/Khartoum (GMT+02:00)", - "Africa/Kigali": "Africa/Kigali (GMT+02:00)", - "Africa/Lubumbashi": "Africa/Lubumbashi (GMT+02:00)", - "Africa/Lusaka": "Africa/Lusaka (GMT+02:00)", - "Africa/Maputo": "Africa/Maputo (GMT+02:00)", - "Africa/Maseru": "Africa/Maseru (GMT+02:00)", - "Africa/Mbabane": "Africa/Mbabane (GMT+02:00)", - "Africa/Tripoli": "Africa/Tripoli (GMT+02:00)", - "Asia/Amman": "Asia/Amman (GMT+02:00)", - "Asia/Beirut": "Asia/Beirut (GMT+02:00)", - "Asia/Damascus": "Asia/Damascus (GMT+02:00)", - "Asia/Famagusta": "Asia/Famagusta (GMT+02:00)", - "Asia/Gaza": "Asia/Gaza (GMT+02:00)", - "Asia/Hebron": "Asia/Hebron (GMT+02:00)", - "Asia/Jerusalem": "Asia/Jerusalem (GMT+02:00)", - "Asia/Nicosia": "Asia/Nicosia (GMT+02:00)", - "Europe/Athens": "Europe/Athens (GMT+02:00)", - "Europe/Bucharest": "Europe/Bucharest (GMT+02:00)", - "Europe/Chisinau": "Europe/Chisinau (GMT+02:00)", - "Europe/Helsinki": "Europe/Helsinki (GMT+02:00)", - "Europe/Kaliningrad": "Europe/Kaliningrad (GMT+02:00)", - "Europe/Kyiv": "Europe/Kyiv (GMT+02:00)", - "Europe/Mariehamn": "Europe/Mariehamn (GMT+02:00)", - "Europe/Riga": "Europe/Riga (GMT+02:00)", - "Europe/Sofia": "Europe/Sofia (GMT+02:00)", - "Europe/Tallinn": "Europe/Tallinn (GMT+02:00)", - "Europe/Uzhgorod": "Europe/Uzhgorod (GMT+02:00)", - "Europe/Vilnius": "Europe/Vilnius (GMT+02:00)", - "Europe/Zaporozhye": "Europe/Zaporozhye (GMT+02:00)", - "Africa/Addis_Ababa": "Africa/Addis_Ababa (GMT+03:00)", - "Africa/Asmara": "Africa/Asmara (GMT+03:00)", - "Africa/Dar_es_Salaam": "Africa/Dar_es_Salaam (GMT+03:00)", - "Africa/Djibouti": "Africa/Djibouti (GMT+03:00)", - "Africa/Kampala": "Africa/Kampala (GMT+03:00)", - "Africa/Mogadishu": "Africa/Mogadishu (GMT+03:00)", - "Africa/Nairobi": "Africa/Nairobi (GMT+03:00)", - "Antarctica/Syowa": "Antarctica/Syowa (GMT+03:00)", - "Asia/Aden": "Asia/Aden (GMT+03:00)", - "Asia/Baghdad": "Asia/Baghdad (GMT+03:00)", - "Asia/Bahrain": "Asia/Bahrain (GMT+03:00)", - "Asia/Kuwait": "Asia/Kuwait (GMT+03:00)", - "Asia/Qatar": "Asia/Qatar (GMT+03:00)", - "Asia/Riyadh": "Asia/Riyadh (GMT+03:00)", - "Europe/Istanbul": "Europe/Istanbul (GMT+03:00)", - "Europe/Kirov": "Europe/Kirov (GMT+03:00)", - "Europe/Minsk": "Europe/Minsk (GMT+03:00)", - "Europe/Moscow": "Europe/Moscow (GMT+03:00)", - "Europe/Simferopol": "Europe/Simferopol (GMT+03:00)", - "Europe/Volgograd": "Europe/Volgograd (GMT+03:00)", - "Indian/Antananarivo": "Indian/Antananarivo (GMT+03:00)", - "Indian/Comoro": "Indian/Comoro (GMT+03:00)", - "Indian/Mayotte": "Indian/Mayotte (GMT+03:00)", - "Asia/Tehran": "Asia/Tehran (GMT+03:30)", - "Asia/Baku": "Asia/Baku (GMT+04:00)", - "Asia/Dubai": "Asia/Dubai (GMT+04:00)", - "Asia/Muscat": "Asia/Muscat (GMT+04:00)", - "Asia/Tbilisi": "Asia/Tbilisi (GMT+04:00)", - "Asia/Yerevan": "Asia/Yerevan (GMT+04:00)", - "Europe/Astrakhan": "Europe/Astrakhan (GMT+04:00)", - "Europe/Samara": "Europe/Samara (GMT+04:00)", - "Europe/Saratov": "Europe/Saratov (GMT+04:00)", - "Europe/Ulyanovsk": "Europe/Ulyanovsk (GMT+04:00)", - "Indian/Mahe": "Indian/Mahe (GMT+04:00)", - "Indian/Mauritius": "Indian/Mauritius (GMT+04:00)", - "Indian/Reunion": "Indian/Reunion (GMT+04:00)", - "Asia/Kabul": "Asia/Kabul (GMT+04:30)", - "Antarctica/Mawson": "Antarctica/Mawson (GMT+05:00)", - "Asia/Aqtau": "Asia/Aqtau (GMT+05:00)", - "Asia/Aqtobe": "Asia/Aqtobe (GMT+05:00)", - "Asia/Ashgabat": "Asia/Ashgabat (GMT+05:00)", - "Asia/Atyrau": "Asia/Atyrau (GMT+05:00)", - "Asia/Dushanbe": "Asia/Dushanbe (GMT+05:00)", - "Asia/Karachi": "Asia/Karachi (GMT+05:00)", - "Asia/Oral": "Asia/Oral (GMT+05:00)", - "Asia/Qyzylorda": "Asia/Qyzylorda (GMT+05:00)", - "Asia/Samarkand": "Asia/Samarkand (GMT+05:00)", - "Asia/Tashkent": "Asia/Tashkent (GMT+05:00)", - "Asia/Yekaterinburg": "Asia/Yekaterinburg (GMT+05:00)", - "Indian/Kerguelen": "Indian/Kerguelen (GMT+05:00)", - "Indian/Maldives": "Indian/Maldives (GMT+05:00)", - "Asia/Colombo": "Asia/Colombo (GMT+05:30)", - "Asia/Kolkata": "Asia/Kolkata (GMT+05:30)", - "Asia/Kathmandu": "Asia/Kathmandu (GMT+05:45)", - "Antarctica/Vostok": "Antarctica/Vostok (GMT+06:00)", - "Asia/Almaty": "Asia/Almaty (GMT+06:00)", - "Asia/Bishkek": "Asia/Bishkek (GMT+06:00)", - "Asia/Dhaka": "Asia/Dhaka (GMT+06:00)", - "Asia/Omsk": "Asia/Omsk (GMT+06:00)", - "Asia/Qostanay": "Asia/Qostanay (GMT+06:00)", - "Asia/Thimphu": "Asia/Thimphu (GMT+06:00)", - "Asia/Urumqi": "Asia/Urumqi (GMT+06:00)", - "Indian/Chagos": "Indian/Chagos (GMT+06:00)", - "Asia/Yangon": "Asia/Yangon (GMT+06:30)", - "Indian/Cocos": "Indian/Cocos (GMT+06:30)", - "Antarctica/Davis": "Antarctica/Davis (GMT+07:00)", - "Asia/Bangkok": "Asia/Bangkok (GMT+07:00)", - "Asia/Barnaul": "Asia/Barnaul (GMT+07:00)", - "Asia/Hovd": "Asia/Hovd (GMT+07:00)", - "Asia/Ho_Chi_Minh": "Asia/Ho_Chi_Minh (GMT+07:00)", - "Asia/Jakarta": "Asia/Jakarta (GMT+07:00)", - "Asia/Krasnoyarsk": "Asia/Krasnoyarsk (GMT+07:00)", - "Asia/Novokuznetsk": "Asia/Novokuznetsk (GMT+07:00)", - "Asia/Novosibirsk": "Asia/Novosibirsk (GMT+07:00)", - "Asia/Phnom_Penh": "Asia/Phnom_Penh (GMT+07:00)", - "Asia/Pontianak": "Asia/Pontianak (GMT+07:00)", - "Asia/Tomsk": "Asia/Tomsk (GMT+07:00)", - "Asia/Vientiane": "Asia/Vientiane (GMT+07:00)", - "Indian/Christmas": "Indian/Christmas (GMT+07:00)", - "Asia/Brunei": "Asia/Brunei (GMT+08:00)", - "Asia/Choibalsan": "Asia/Choibalsan (GMT+08:00)", - "Asia/Hong_Kong": "Asia/Hong_Kong (GMT+08:00)", - "Asia/Irkutsk": "Asia/Irkutsk (GMT+08:00)", - "Asia/Kuala_Lumpur": "Asia/Kuala_Lumpur (GMT+08:00)", - "Asia/Kuching": "Asia/Kuching (GMT+08:00)", - "Asia/Macau": "Asia/Macau (GMT+08:00)", - "Asia/Makassar": "Asia/Makassar (GMT+08:00)", - "Asia/Manila": "Asia/Manila (GMT+08:00)", - "Asia/Shanghai": "Asia/Shanghai (GMT+08:00)", - "Asia/Singapore": "Asia/Singapore (GMT+08:00)", - "Asia/Taipei": "Asia/Taipei (GMT+08:00)", - "Asia/Ulaanbaatar": "Asia/Ulaanbaatar (GMT+08:00)", - "Australia/Perth": "Australia/Perth (GMT+08:00)", - "Australia/Eucla": "Australia/Eucla (GMT+08:45)", - "Asia/Chita": "Asia/Chita (GMT+09:00)", - "Asia/Dili": "Asia/Dili (GMT+09:00)", - "Asia/Jayapura": "Asia/Jayapura (GMT+09:00)", - "Asia/Khandyga": "Asia/Khandyga (GMT+09:00)", - "Asia/Pyongyang": "Asia/Pyongyang (GMT+09:00)", - "Asia/Seoul": "Asia/Seoul (GMT+09:00)", - "Asia/Tokyo": "Asia/Tokyo (GMT+09:00)", - "Asia/Yakutsk": "Asia/Yakutsk (GMT+09:00)", - "Pacific/Palau": "Pacific/Palau (GMT+09:00)", - "Australia/Adelaide": "Australia/Adelaide (GMT+09:30)", - "Australia/Broken_Hill": "Australia/Broken_Hill (GMT+09:30)", - "Australia/Darwin": "Australia/Darwin (GMT+09:30)", - "Antarctica/DumontDUrville": "Antarctica/DumontDUrville (GMT+10:00)", - "Antarctica/Macquarie": "Antarctica/Macquarie (GMT+10:00)", - "Asia/Ust-Nera": "Asia/Ust-Nera (GMT+10:00)", - "Asia/Vladivostok": "Asia/Vladivostok (GMT+10:00)", - "Australia/Brisbane": "Australia/Brisbane (GMT+10:00)", - "Australia/Currie": "Australia/Currie (GMT+10:00)", - "Australia/Hobart": "Australia/Hobart (GMT+10:00)", - "Australia/Lindeman": "Australia/Lindeman (GMT+10:00)", - "Australia/Melbourne": "Australia/Melbourne (GMT+10:00)", - "Australia/Sydney": "Australia/Sydney (GMT+10:00)", - "Pacific/Chuuk": "Pacific/Chuuk (GMT+10:00)", - "Pacific/Guam": "Pacific/Guam (GMT+10:00)", - "Pacific/Port_Moresby": "Pacific/Port_Moresby (GMT+10:00)", - "Pacific/Saipan": "Pacific/Saipan (GMT+10:00)", - "Australia/Lord_Howe": "Australia/Lord_Howe (GMT+10:30)", - "Antarctica/Casey": "Antarctica/Casey (GMT+11:00)", - "Asia/Magadan": "Asia/Magadan (GMT+11:00)", - "Asia/Sakhalin": "Asia/Sakhalin (GMT+11:00)", - "Asia/Srednekolymsk": "Asia/Srednekolymsk (GMT+11:00)", - "Pacific/Bougainville": "Pacific/Bougainville (GMT+11:00)", - "Pacific/Efate": "Pacific/Efate (GMT+11:00)", - "Pacific/Guadalcanal": "Pacific/Guadalcanal (GMT+11:00)", - "Pacific/Kosrae": "Pacific/Kosrae (GMT+11:00)", - "Pacific/Norfolk": "Pacific/Norfolk (GMT+11:00)", - "Pacific/Noumea": "Pacific/Noumea (GMT+11:00)", - "Pacific/Pohnpei": "Pacific/Pohnpei (GMT+11:00)", - "Antarctica/McMurdo": "Antarctica/McMurdo (GMT+12:00)", - "Asia/Anadyr": "Asia/Anadyr (GMT+12:00)", - "Asia/Kamchatka": "Asia/Kamchatka (GMT+12:00)", - "Pacific/Auckland": "Pacific/Auckland (GMT+12:00)", - "Pacific/Fiji": "Pacific/Fiji (GMT+12:00)", - "Pacific/Funafuti": "Pacific/Funafuti (GMT+12:00)", - "Pacific/Kwajalein": "Pacific/Kwajalein (GMT+12:00)", - "Pacific/Majuro": "Pacific/Majuro (GMT+12:00)", - "Pacific/Nauru": "Pacific/Nauru (GMT+12:00)", - "Pacific/Tarawa": "Pacific/Tarawa (GMT+12:00)", - "Pacific/Wake": "Pacific/Wake (GMT+12:00)", - "Pacific/Wallis": "Pacific/Wallis (GMT+12:00)", - "Pacific/Chatham": "Pacific/Chatham (GMT+12:45)", - "Pacific/Apia": "Pacific/Apia (GMT+13:00)", - "Pacific/Enderbury": "Pacific/Enderbury (GMT+13:00)", - "Pacific/Fakaofo": "Pacific/Fakaofo (GMT+13:00)", - "Pacific/Tongatapu": "Pacific/Tongatapu (GMT+13:00)", - "Pacific/Kiritimati": "Pacific/Kiritimati (GMT+14:00)" + "Pacific/Midway": "-11:00", + "Pacific/Niue": "-11:00", + "Pacific/Pago_Pago": "-11:00", + "America/Adak": "-10:00", + "Pacific/Honolulu": "-10:00", + "Pacific/Rarotonga": "-10:00", + "Pacific/Tahiti": "-10:00", + "Pacific/Marquesas": "-09:30", + "America/Anchorage": "-09:00", + "America/Juneau": "-09:00", + "America/Metlakatla": "-09:00", + "America/Nome": "-09:00", + "America/Sitka": "-09:00", + "America/Yakutat": "-09:00", + "Pacific/Gambier": "-09:00", + "America/Los_Angeles": "-08:00", + "America/Tijuana": "-08:00", + "America/Vancouver": "-08:00", + "Pacific/Pitcairn": "-08:00", + "America/Boise": "-07:00", + "America/Cambridge_Bay": "-07:00", + "America/Chihuahua": "-07:00", + "America/Creston": "-07:00", + "America/Dawson": "-07:00", + "America/Dawson_Creek": "-07:00", + "America/Denver": "-07:00", + "America/Edmonton": "-07:00", + "America/Fort_Nelson": "-07:00", + "America/Hermosillo": "-07:00", + "America/Inuvik": "-07:00", + "America/Mazatlan": "-07:00", + "America/Ojinaga": "-07:00", + "America/Phoenix": "-07:00", + "America/Whitehorse": "-07:00", + "America/Yellowknife": "-07:00", + "America/Bahia_Banderas": "-06:00", + "America/Belize": "-06:00", + "America/Chicago": "-06:00", + "America/Costa_Rica": "-06:00", + "America/El_Salvador": "-06:00", + "America/Guatemala": "-06:00", + "America/Indiana/Knox": "-06:00", + "America/Indiana/Tell_City": "-06:00", + "America/Managua": "-06:00", + "America/Matamoros": "-06:00", + "America/Menominee": "-06:00", + "America/Merida": "-06:00", + "America/Mexico_City": "-06:00", + "America/Monterrey": "-06:00", + "America/North_Dakota/Beulah": "-06:00", + "America/North_Dakota/Center": "-06:00", + "America/North_Dakota/New_Salem": "-06:00", + "America/Rainy_River": "-06:00", + "America/Rankin_Inlet": "-06:00", + "America/Regina": "-06:00", + "America/Resolute": "-06:00", + "America/Swift_Current": "-06:00", + "America/Tegucigalpa": "-06:00", + "America/Winnipeg": "-06:00", + "Pacific/Easter": "-06:00", + "Pacific/Galapagos": "-06:00", + "America/Atikokan": "-05:00", + "America/Bogota": "-05:00", + "America/Cancun": "-05:00", + "America/Cayman": "-05:00", + "America/Detroit": "-05:00", + "America/Eirunepe": "-05:00", + "America/Grand_Turk": "-05:00", + "America/Guayaquil": "-05:00", + "America/Havana": "-05:00", + "America/Indiana/Indianapolis": "-05:00", + "America/Indiana/Marengo": "-05:00", + "America/Indiana/Petersburg": "-05:00", + "America/Indiana/Vevay": "-05:00", + "America/Indiana/Vincennes": "-05:00", + "America/Indiana/Winamac": "-05:00", + "America/Iqaluit": "-05:00", + "America/Jamaica": "-05:00", + "America/Kentucky/Louisville": "-05:00", + "America/Kentucky/Monticello": "-05:00", + "America/Lima": "-05:00", + "America/Nassau": "-05:00", + "America/New_York": "-05:00", + "America/Nipigon": "-05:00", + "America/Panama": "-05:00", + "America/Pangnirtung": "-05:00", + "America/Port-au-Prince": "-05:00", + "America/Rio_Branco": "-05:00", + "America/Thunder_Bay": "-05:00", + "America/Toronto": "-05:00", + "America/Anguilla": "-04:00", + "America/Antigua": "-04:00", + "America/Aruba": "-04:00", + "America/Asuncion": "-04:00", + "America/Barbados": "-04:00", + "America/Blanc-Sablon": "-04:00", + "America/Boa_Vista": "-04:00", + "America/Campo_Grande": "-04:00", + "America/Caracas": "-04:00", + "America/Cuiaba": "-04:00", + "America/Curacao": "-04:00", + "America/Dominica": "-04:00", + "America/Glace_Bay": "-04:00", + "America/Goose_Bay": "-04:00", + "America/Grenada": "-04:00", + "America/Guadeloupe": "-04:00", + "America/Guyana": "-04:00", + "America/Halifax": "-04:00", + "America/Kralendijk": "-04:00", + "America/La_Paz": "-04:00", + "America/Lower_Princes": "-04:00", + "America/Manaus": "-04:00", + "America/Marigot": "-04:00", + "America/Martinique": "-04:00", + "America/Moncton": "-04:00", + "America/Montserrat": "-04:00", + "America/Porto_Velho": "-04:00", + "America/Port_of_Spain": "-04:00", + "America/Puerto_Rico": "-04:00", + "America/Santiago": "-04:00", + "America/Santo_Domingo": "-04:00", + "America/St_Barthelemy": "-04:00", + "America/St_Kitts": "-04:00", + "America/St_Lucia": "-04:00", + "America/St_Thomas": "-04:00", + "America/St_Vincent": "-04:00", + "America/Thule": "-04:00", + "America/Tortola": "-04:00", + "Atlantic/Bermuda": "-04:00", + "America/St_Johns": "-03:30", + "America/Araguaina": "-03:00", + "America/Argentina/Buenos_Aires": "-03:00", + "America/Argentina/Catamarca": "-03:00", + "America/Argentina/Cordoba": "-03:00", + "America/Argentina/Jujuy": "-03:00", + "America/Argentina/La_Rioja": "-03:00", + "America/Argentina/Mendoza": "-03:00", + "America/Argentina/Rio_Gallegos": "-03:00", + "America/Argentina/Salta": "-03:00", + "America/Argentina/San_Juan": "-03:00", + "America/Argentina/San_Luis": "-03:00", + "America/Argentina/Tucuman": "-03:00", + "America/Argentina/Ushuaia": "-03:00", + "America/Bahia": "-03:00", + "America/Belem": "-03:00", + "America/Cayenne": "-03:00", + "America/Fortaleza": "-03:00", + "America/Godthab": "-03:00", + "America/Maceio": "-03:00", + "America/Miquelon": "-03:00", + "America/Montevideo": "-03:00", + "America/Paramaribo": "-03:00", + "America/Punta_Arenas": "-03:00", + "America/Recife": "-03:00", + "America/Santarem": "-03:00", + "America/Sao_Paulo": "-03:00", + "Antarctica/Palmer": "-03:00", + "Antarctica/Rothera": "-03:00", + "Atlantic/Stanley": "-03:00", + "America/Noronha": "-02:00", + "Atlantic/South_Georgia": "-02:00", + "America/Scoresbysund": "-01:00", + "Atlantic/Azores": "-01:00", + "Atlantic/Cape_Verde": "-01:00", + "Africa/Abidjan": "+00:00", + "Africa/Accra": "+00:00", + "Africa/Bamako": "+00:00", + "Africa/Banjul": "+00:00", + "Africa/Bissau": "+00:00", + "Africa/Casablanca": "+00:00", + "Africa/Conakry": "+00:00", + "Africa/Dakar": "+00:00", + "Africa/El_Aaiun": "+00:00", + "Africa/Freetown": "+00:00", + "Africa/Lome": "+00:00", + "Africa/Monrovia": "+00:00", + "Africa/Nouakchott": "+00:00", + "Africa/Ouagadougou": "+00:00", + "Africa/Sao_Tome": "+00:00", + "America/Danmarkshavn": "+00:00", + "Antarctica/Troll": "+00:00", + "Atlantic/Canary": "+00:00", + "Atlantic/Faroe": "+00:00", + "Atlantic/Madeira": "+00:00", + "Atlantic/Reykjavik": "+00:00", + "Atlantic/St_Helena": "+00:00", + "Europe/Dublin": "+00:00", + "Europe/Guernsey": "+00:00", + "Europe/Isle_of_Man": "+00:00", + "Europe/Jersey": "+00:00", + "Europe/Lisbon": "+00:00", + "Europe/London": "+00:00", + "Africa/Algiers": "+01:00", + "Africa/Bangui": "+01:00", + "Africa/Brazzaville": "+01:00", + "Africa/Ceuta": "+01:00", + "Africa/Douala": "+01:00", + "Africa/Kinshasa": "+01:00", + "Africa/Lagos": "+01:00", + "Africa/Libreville": "+01:00", + "Africa/Luanda": "+01:00", + "Africa/Malabo": "+01:00", + "Africa/Ndjamena": "+01:00", + "Africa/Niamey": "+01:00", + "Africa/Porto-Novo": "+01:00", + "Africa/Tunis": "+01:00", + "Africa/Windhoek": "+01:00", + "Arctic/Longyearbyen": "+01:00", + "Europe/Amsterdam": "+01:00", + "Europe/Andorra": "+01:00", + "Europe/Belgrade": "+01:00", + "Europe/Berlin": "+01:00", + "Europe/Bratislava": "+01:00", + "Europe/Brussels": "+01:00", + "Europe/Budapest": "+01:00", + "Europe/Copenhagen": "+01:00", + "Europe/Gibraltar": "+01:00", + "Europe/Ljubljana": "+01:00", + "Europe/Luxembourg": "+01:00", + "Europe/Madrid": "+01:00", + "Europe/Malta": "+01:00", + "Europe/Monaco": "+01:00", + "Europe/Oslo": "+01:00", + "Europe/Paris": "+01:00", + "Europe/Podgorica": "+01:00", + "Europe/Prague": "+01:00", + "Europe/Rome": "+01:00", + "Europe/San_Marino": "+01:00", + "Europe/Sarajevo": "+01:00", + "Europe/Skopje": "+01:00", + "Europe/Stockholm": "+01:00", + "Europe/Tirane": "+01:00", + "Europe/Vaduz": "+01:00", + "Europe/Vatican": "+01:00", + "Europe/Vienna": "+01:00", + "Europe/Warsaw": "+01:00", + "Europe/Zagreb": "+01:00", + "Europe/Zurich": "+01:00", + "Africa/Blantyre": "+02:00", + "Africa/Bujumbura": "+02:00", + "Africa/Cairo": "+02:00", + "Africa/Gaborone": "+02:00", + "Africa/Harare": "+02:00", + "Africa/Johannesburg": "+02:00", + "Africa/Juba": "+02:00", + "Africa/Khartoum": "+02:00", + "Africa/Kigali": "+02:00", + "Africa/Lubumbashi": "+02:00", + "Africa/Lusaka": "+02:00", + "Africa/Maputo": "+02:00", + "Africa/Maseru": "+02:00", + "Africa/Mbabane": "+02:00", + "Africa/Tripoli": "+02:00", + "Asia/Amman": "+02:00", + "Asia/Beirut": "+02:00", + "Asia/Damascus": "+02:00", + "Asia/Famagusta": "+02:00", + "Asia/Gaza": "+02:00", + "Asia/Hebron": "+02:00", + "Asia/Jerusalem": "+02:00", + "Asia/Nicosia": "+02:00", + "Europe/Athens": "+02:00", + "Europe/Bucharest": "+02:00", + "Europe/Chisinau": "+02:00", + "Europe/Helsinki": "+02:00", + "Europe/Kaliningrad": "+02:00", + "Europe/Kyiv": "+02:00", + "Europe/Mariehamn": "+02:00", + "Europe/Riga": "+02:00", + "Europe/Sofia": "+02:00", + "Europe/Tallinn": "+02:00", + "Europe/Uzhgorod": "+02:00", + "Europe/Vilnius": "+02:00", + "Europe/Zaporozhye": "+02:00", + "Africa/Addis_Ababa": "+03:00", + "Africa/Asmara": "+03:00", + "Africa/Dar_es_Salaam": "+03:00", + "Africa/Djibouti": "+03:00", + "Africa/Kampala": "+03:00", + "Africa/Mogadishu": "+03:00", + "Africa/Nairobi": "+03:00", + "Antarctica/Syowa": "+03:00", + "Asia/Aden": "+03:00", + "Asia/Baghdad": "+03:00", + "Asia/Bahrain": "+03:00", + "Asia/Kuwait": "+03:00", + "Asia/Qatar": "+03:00", + "Asia/Riyadh": "+03:00", + "Europe/Istanbul": "+03:00", + "Europe/Kirov": "+03:00", + "Europe/Minsk": "+03:00", + "Europe/Moscow": "+03:00", + "Europe/Simferopol": "+03:00", + "Europe/Volgograd": "+03:00", + "Indian/Antananarivo": "+03:00", + "Indian/Comoro": "+03:00", + "Indian/Mayotte": "+03:00", + "Asia/Tehran": "+03:30", + "Asia/Baku": "+04:00", + "Asia/Dubai": "+04:00", + "Asia/Muscat": "+04:00", + "Asia/Tbilisi": "+04:00", + "Asia/Yerevan": "+04:00", + "Europe/Astrakhan": "+04:00", + "Europe/Samara": "+04:00", + "Europe/Saratov": "+04:00", + "Europe/Ulyanovsk": "+04:00", + "Indian/Mahe": "+04:00", + "Indian/Mauritius": "+04:00", + "Indian/Reunion": "+04:00", + "Asia/Kabul": "+04:30", + "Antarctica/Mawson": "+05:00", + "Asia/Aqtau": "+05:00", + "Asia/Aqtobe": "+05:00", + "Asia/Ashgabat": "+05:00", + "Asia/Atyrau": "+05:00", + "Asia/Dushanbe": "+05:00", + "Asia/Karachi": "+05:00", + "Asia/Oral": "+05:00", + "Asia/Qyzylorda": "+05:00", + "Asia/Samarkand": "+05:00", + "Asia/Tashkent": "+05:00", + "Asia/Yekaterinburg": "+05:00", + "Indian/Kerguelen": "+05:00", + "Indian/Maldives": "+05:00", + "Asia/Colombo": "+05:30", + "Asia/Kolkata": "+05:30", + "Asia/Kathmandu": "+05:45", + "Antarctica/Vostok": "+06:00", + "Asia/Almaty": "+06:00", + "Asia/Bishkek": "+06:00", + "Asia/Dhaka": "+06:00", + "Asia/Omsk": "+06:00", + "Asia/Qostanay": "+06:00", + "Asia/Thimphu": "+06:00", + "Asia/Urumqi": "+06:00", + "Indian/Chagos": "+06:00", + "Asia/Yangon": "+06:30", + "Indian/Cocos": "+06:30", + "Antarctica/Davis": "+07:00", + "Asia/Bangkok": "+07:00", + "Asia/Barnaul": "+07:00", + "Asia/Hovd": "+07:00", + "Asia/Ho_Chi_Minh": "+07:00", + "Asia/Jakarta": "+07:00", + "Asia/Krasnoyarsk": "+07:00", + "Asia/Novokuznetsk": "+07:00", + "Asia/Novosibirsk": "+07:00", + "Asia/Phnom_Penh": "+07:00", + "Asia/Pontianak": "+07:00", + "Asia/Tomsk": "+07:00", + "Asia/Vientiane": "+07:00", + "Indian/Christmas": "+07:00", + "Asia/Brunei": "+08:00", + "Asia/Choibalsan": "+08:00", + "Asia/Hong_Kong": "+08:00", + "Asia/Irkutsk": "+08:00", + "Asia/Kuala_Lumpur": "+08:00", + "Asia/Kuching": "+08:00", + "Asia/Macau": "+08:00", + "Asia/Makassar": "+08:00", + "Asia/Manila": "+08:00", + "Asia/Shanghai": "+08:00", + "Asia/Singapore": "+08:00", + "Asia/Taipei": "+08:00", + "Asia/Ulaanbaatar": "+08:00", + "Australia/Perth": "+08:00", + "Australia/Eucla": "+08:45", + "Asia/Chita": "+09:00", + "Asia/Dili": "+09:00", + "Asia/Jayapura": "+09:00", + "Asia/Khandyga": "+09:00", + "Asia/Pyongyang": "+09:00", + "Asia/Seoul": "+09:00", + "Asia/Tokyo": "+09:00", + "Asia/Yakutsk": "+09:00", + "Pacific/Palau": "+09:00", + "Australia/Adelaide": "+09:30", + "Australia/Broken_Hill": "+09:30", + "Australia/Darwin": "+09:30", + "Antarctica/DumontDUrville": "+10:00", + "Antarctica/Macquarie": "+10:00", + "Asia/Ust-Nera": "+10:00", + "Asia/Vladivostok": "+10:00", + "Australia/Brisbane": "+10:00", + "Australia/Currie": "+10:00", + "Australia/Hobart": "+10:00", + "Australia/Lindeman": "+10:00", + "Australia/Melbourne": "+10:00", + "Australia/Sydney": "+10:00", + "Pacific/Chuuk": "+10:00", + "Pacific/Guam": "+10:00", + "Pacific/Port_Moresby": "+10:00", + "Pacific/Saipan": "+10:00", + "Australia/Lord_Howe": "+10:30", + "Antarctica/Casey": "+11:00", + "Asia/Magadan": "+11:00", + "Asia/Sakhalin": "+11:00", + "Asia/Srednekolymsk": "+11:00", + "Pacific/Bougainville": "+11:00", + "Pacific/Efate": "+11:00", + "Pacific/Guadalcanal": "+11:00", + "Pacific/Kosrae": "+11:00", + "Pacific/Norfolk": "+11:00", + "Pacific/Noumea": "+11:00", + "Pacific/Pohnpei": "+11:00", + "Antarctica/McMurdo": "+12:00", + "Asia/Anadyr": "+12:00", + "Asia/Kamchatka": "+12:00", + "Pacific/Auckland": "+12:00", + "Pacific/Fiji": "+12:00", + "Pacific/Funafuti": "+12:00", + "Pacific/Kwajalein": "+12:00", + "Pacific/Majuro": "+12:00", + "Pacific/Nauru": "+12:00", + "Pacific/Tarawa": "+12:00", + "Pacific/Wake": "+12:00", + "Pacific/Wallis": "+12:00", + "Pacific/Chatham": "+12:45", + "Pacific/Apia": "+13:00", + "Pacific/Enderbury": "+13:00", + "Pacific/Fakaofo": "+13:00", + "Pacific/Tongatapu": "+13:00", + "Pacific/Kiritimati": "+14:00" } diff --git a/app/main.jsx b/app/main.jsx index e43d425..115dac9 100644 --- a/app/main.jsx +++ b/app/main.jsx @@ -1,3 +1,5 @@ +// import styles +import './styles/styles.scss'; import 'react-toastify/dist/ReactToastify.css'; // import dependencies @@ -15,9 +17,6 @@ import Monitor from './pages/monitor'; import GlobalLayout from './layout/global'; import Setttings from './pages/settings'; import Verify from './pages/verify'; - -// import styles -import './styles/styles.scss'; import ErrorPage from './pages/error'; ReactDOM.createRoot(document.getElementById('root')).render( diff --git a/app/pages/login.jsx b/app/pages/login.jsx index c2144d2..4e5e91d 100644 --- a/app/pages/login.jsx +++ b/app/pages/login.jsx @@ -7,7 +7,7 @@ import { useNavigate } from 'react-router-dom'; import TextInput from '../components/ui/input'; import useLogin from '../hooks/useLogin'; import handleLogin from '../handlers/login'; -import { MdEye, MdEyeOff } from '../components/icons'; +import { IoMdEye, IoMdEyeOff } from '../components/icons'; import { useState } from 'react'; const Login = () => { @@ -48,7 +48,11 @@ const Login = () => { onClick={() => setShowPassword(!showPassword)} className="auth-see-password" > - {showPassword ? : } + {showPassword ? ( + + ) : ( + + )}
} /> diff --git a/app/pages/verify.jsx b/app/pages/verify.jsx index cc35f83..c6474be 100644 --- a/app/pages/verify.jsx +++ b/app/pages/verify.jsx @@ -1,12 +1,12 @@ import './verify.scss'; -import Logo from '../components/icons/statusLogo'; +import { StatusLogo } from '../components/icons'; const Verify = () => { return (
- +
Please contact the owner/admins of this dashboard to verify your diff --git a/docs/internals/changelog.md b/docs/internals/changelog.md index afac1a3..8abaf7c 100644 --- a/docs/internals/changelog.md +++ b/docs/internals/changelog.md @@ -1,5 +1,21 @@ # Previous updates +## v0.5.4 + +### Cleaning up and moving to canvasjs + +### Summary + +Originally I was planning on customising some of the icon components depending on user preferences, but for now I've decided to move away from that and just use react-icons library. The idea of custom icons may comeback in the future, but right now I want to focus on the core functionality of Lunalytics. Along with that I've also moved away from using `chart.js` and instead using `canvasjs` for the graphs. This allows a lot more customisation and features for the graphs. + +### New Features + +- Removed icons +- Added `react-icons` +- Graphs now use `canvasjs` instead of `chart.js` +- You can now zoom in/out on the graphs +- Reduced bundle size from 1.5MB to 410KB + ## v0.5.3 ### Moving away from moment and compressing images diff --git a/package-lock.json b/package-lock.json index 17ba68c..b8495d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,10 @@ "version": "0.5.3", "license": "SEE LICENSE IN LICENSE", "dependencies": { + "@canvasjs/react-charts": "^1.0.2", "axios": "^1.6.2", "bcrypt": "^5.1.1", "better-sqlite3": "^9.4.1", - "chart.js": "^4.4.1", - "chartjs-adapter-dayjs-3": "^1.2.3", "classnames": "^2.5.1", "cookie": "^0.6.0", "cookie-parser": "^1.4.6", @@ -27,14 +26,14 @@ "mobx-react-lite": "^4.0.5", "prop-types": "^15.8.1", "react": "^18.2.0", - "react-chartjs-2": "^5.2.0", "react-dom": "^18.2.0", + "react-icons": "^5.2.1", "react-router-dom": "^6.19.0", "react-toastify": "^10.0.5", "uuid": "^9.0.1" }, "devDependencies": { - "@vitejs/plugin-react": "^4.2.1", + "@vitejs/plugin-react-swc": "^3.7.0", "@vitest/coverage-v8": "^1.6.0", "concurrently": "^8.2.2", "cross-env": "^7.0.3", @@ -45,7 +44,6 @@ "eslint-plugin-react-refresh": "^0.4.4", "husky": "^8.0.3", "inquirer": "^8.0.0", - "lightningcss": "^1.24.0", "lint-staged": "^15.1.0", "node-mocks-http": "^1.14.1", "nodemon": "^3.0.1", @@ -293,730 +291,590 @@ "node": ">=6.0.0" } }, - "node_modules/@ampproject/remapping/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@ampproject/remapping/node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ampproject/remapping/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "node_modules/@babel/parser": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/types": "^7.25.2" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@babel/runtime": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@babel/types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, "license": "MIT" }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" + "node_modules/@canvasjs/charts": { + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@canvasjs/charts/-/charts-3.10.2.tgz", + "integrity": "sha512-8SFmT2uaSF1C37HP1oBrp25rcWeh0niALKPUG3st1s+2kxKXV0iPr4AfL9hefeFqsuAqosTGMwE4tlHiaNrvmw==", + "peer": true + }, + "node_modules/@canvasjs/react-charts": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@canvasjs/react-charts/-/react-charts-1.0.2.tgz", + "integrity": "sha512-PZgJlDbGdMF4AN/KvrvGY9X50EByJMZ7MHfQB/U0aky9Onn9mt0CpsvwudBsBe+DofaV3SHR4SHn/Wfo/pubDw==", + "peerDependencies": { + "@canvasjs/charts": "^3.7.5", + "react": ">=16.0.0" } }, - "node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, + "optional": true, "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=0.1.90" } }, - "node_modules/@babel/core/node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">= 6" } }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.12" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "node_modules/@cypress/request/node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@cypress/request/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "license": "ISC", + "license": "MIT", "bin": { - "semver": "bin/semver.js" + "uuid": "dist/bin/uuid" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6.9.0" + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" + "ms": "^2.1.1" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/@docsearch/css": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", + "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } + "license": "MIT" }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "node_modules/@docsearch/js": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.6.0.tgz", + "integrity": "sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" + "@docsearch/react": "3.6.0", + "preact": "^10.0.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "node_modules/@docsearch/react": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", + "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.6.0", + "algoliasearch": "^4.19.1" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", - "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "node": ">=12" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", - "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", - "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/template": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", - "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/traverse": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "MIT", "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.1.90" + "node": ">=12" } }, - "node_modules/@cypress/request": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", - "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "performance-now": "^2.1.0", - "qs": "6.10.4", - "safe-buffer": "^5.1.2", - "tough-cookie": "^4.1.3", - "tunnel-agent": "^0.6.0", - "uuid": "^8.3.2" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 6" + "node": ">=12" } }, - "node_modules/@cypress/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/@cypress/request/node_modules/qs": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@cypress/request/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "node": ">=12" } }, - "node_modules/@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@cypress/xvfb/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@docsearch/css": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", - "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/@docsearch/js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.6.0.tgz", - "integrity": "sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@docsearch/react": "3.6.0", - "preact": "^10.0.0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@docsearch/react": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", - "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-core": "1.9.3", - "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.6.0", - "algoliasearch": "^4.19.1" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0", - "search-insights": ">= 1 < 3" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "search-insights": { - "optional": true - } + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@esbuild/linux-x64": { + "node_modules/@esbuild/win32-x64": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ - "linux" + "win32" ], "engines": { "node": ">=12" @@ -1142,15 +1000,14 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -1167,15 +1024,26 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -1184,22 +1052,15 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@kurkle/color": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", - "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", - "license": "MIT" - }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", @@ -1264,135 +1125,303 @@ "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", "dev": true, "optional": true, - "peer": true - }, - "node_modules/@remix-run/router": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.1.tgz", - "integrity": "sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==", - "license": "MIT", + "peer": true + }, + "node_modules/@remix-run/router": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.1.tgz", + "integrity": "sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz", + "integrity": "sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz", + "integrity": "sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@shikijs/core": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.3.0.tgz", + "integrity": "sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@shikijs/transformers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.3.0.tgz", + "integrity": "sha512-3mlpg2I9CjhjE96dEWQOGeCWoPcyTov3s4aAsHmgvnTHa8MBknEnCQy8/xivJPSpD+olqOqIEoHnLfbNJK29AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shiki": "1.3.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@swc/core": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.6.tgz", + "integrity": "sha512-FZxyao9eQks1MRmUshgsZTmlg/HB2oXK5fghkoWJm/1CU2q2kaJlVDll2as5j+rmWiwkp0Gidlq8wlXcEEAO+g==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.12" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.7.6", + "@swc/core-darwin-x64": "1.7.6", + "@swc/core-linux-arm-gnueabihf": "1.7.6", + "@swc/core-linux-arm64-gnu": "1.7.6", + "@swc/core-linux-arm64-musl": "1.7.6", + "@swc/core-linux-x64-gnu": "1.7.6", + "@swc/core-linux-x64-musl": "1.7.6", + "@swc/core-win32-arm64-msvc": "1.7.6", + "@swc/core-win32-ia32-msvc": "1.7.6", + "@swc/core-win32-x64-msvc": "1.7.6" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.6.tgz", + "integrity": "sha512-6lYHey84ZzsdtC7UuPheM4Rm0Inzxm6Sb8U6dmKc4eCx8JL0LfWG4LC5RsdsrTxnjTsbriWlnhZBffh8ijUHIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.6.tgz", + "integrity": "sha512-Fyl+8aH9O5rpx4O7r2KnsPpoi32iWoKOYKiipeTbGjQ/E95tNPxbmsz4yqE8Ovldcga60IPJ5OKQA3HWRiuzdw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.6.tgz", + "integrity": "sha512-2WxYTqFaOx48GKC2cbO1/IntA+w+kfCFy436Ij7qRqqtV/WAvTM9TC1OmiFbqq436rSot52qYmX8fkwdB5UcLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.6.tgz", + "integrity": "sha512-TBEGMSe0LhvPe4S7E68c7VzgT3OMu4VTmBLS7B2aHv4v8uZO92Khpp7L0WqgYU1y5eMjk+XLDLi4kokiNHv/Hg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.0.0" + "node": ">=10" } }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.6.tgz", + "integrity": "sha512-QI8QGL0HGT42tj7F1A+YAzhGkJjUcvvTfI1e2m704W0Enl2/UIK9v5D1zvQzYwusRyKuaQfbeBRYDh0NcLOGLg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=10" } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz", - "integrity": "sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==", + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.6.tgz", + "integrity": "sha512-61AYVzhjuNQAVIKKWOJu3H0/pFD28RYJGxnGg3YMhvRLRyuWNyY5Nyyj2WkKcz/ON+g38Arlz00NT1LDIViRLg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": ">=10" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz", - "integrity": "sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==", + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.6.tgz", + "integrity": "sha512-hQFznpfLK8XajfAAN9Cjs0w/aVmO7iu9VZvInyrTCRcPqxV5O+rvrhRxKvC1LRMZXr5M6JRSRtepp5w+TK4kAw==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@shikijs/core": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.3.0.tgz", - "integrity": "sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@shikijs/transformers": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.3.0.tgz", - "integrity": "sha512-3mlpg2I9CjhjE96dEWQOGeCWoPcyTov3s4aAsHmgvnTHa8MBknEnCQy8/xivJPSpD+olqOqIEoHnLfbNJK29AA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shiki": "1.3.0" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.6.tgz", + "integrity": "sha512-Aqsd9afykVMuekzjm4X4TDqwxmG4CrzoOSFe0hZrn9SMio72l5eAPnMtYoe5LsIqtjV8MNprLfXaNbjHjTegmA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.6.tgz", + "integrity": "sha512-9h0hYnOeRVNeQgHQTvD1Im67faNSSzBZ7Adtxyu9urNLfBTJilMllFd2QuGHlKW5+uaT6ZH7ZWDb+c/enx7Lcg==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.6.tgz", + "integrity": "sha512-izeoB8glCSe6IIDQmrVm6bvR9muk9TeKgmtY7b6l1BwL4BFnTUk4dMmpbntT90bEVQn3JPCaPtUG4HfL8VuyuA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "node_modules/@swc/types": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", + "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "@swc/counter": "^0.1.3" } }, "node_modules/@types/body-parser": { @@ -1580,24 +1609,16 @@ "dev": true, "license": "ISC" }, - "node_modules/@vitejs/plugin-react": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", - "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/core": "^7.23.5", - "@babel/plugin-transform-react-jsx-self": "^7.23.3", - "@babel/plugin-transform-react-jsx-source": "^7.23.3", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" + "@swc/core": "^1.5.7" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4 || ^5" } }, "node_modules/@vitejs/plugin-vue": { @@ -1763,19 +1784,6 @@ "source-map-js": "^1.2.0" } }, - "node_modules/@vue/compiler-core/node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@vue/compiler-dom": { "version": "3.4.24", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.24.tgz", @@ -1805,19 +1813,6 @@ "source-map-js": "^1.2.0" } }, - "node_modules/@vue/compiler-sfc/node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@vue/compiler-ssr": { "version": "3.4.24", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.24.tgz", @@ -2632,13 +2627,12 @@ "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "license": "MIT", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -2646,7 +2640,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -2659,7 +2653,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -2667,8 +2660,7 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -2681,13 +2673,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -2703,39 +2694,6 @@ "pako": "~0.2.0" } }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -2787,7 +2745,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -2841,27 +2798,6 @@ "node": ">=6" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001589", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", - "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -2925,31 +2861,6 @@ "dev": true, "license": "MIT" }, - "node_modules/chart.js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.1.tgz", - "integrity": "sha512-C74QN1bxwV1v2PEujhmKjOZ7iUM4w6BWs23Md/6aOZZSlwMzeCIDGuZay++rBgChYru7/+QFeoQW0fQoP534Dg==", - "license": "MIT", - "dependencies": { - "@kurkle/color": "^0.3.0" - }, - "engines": { - "pnpm": ">=7" - } - }, - "node_modules/chartjs-adapter-dayjs-3": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/chartjs-adapter-dayjs-3/-/chartjs-adapter-dayjs-3-1.2.3.tgz", - "integrity": "sha512-H8m1c2cFi9zdiJ0IfY7txUSSZusnS671sUuE6dbmvcaHmSFTMNoWH5lJvNj+oM1hLRsiP5pSTiB7InAMDJP+rQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "chart.js": ">=2.8.0", - "dayjs": "^1.9.7" - } - }, "node_modules/check-error": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", @@ -3316,18 +3227,10 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, "node_modules/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", @@ -3948,13 +3851,6 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "license": "MIT" }, - "node_modules/electron-to-chromium": { - "version": "1.4.681", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.681.tgz", - "integrity": "sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==", - "dev": true, - "license": "ISC" - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4192,6 +4088,22 @@ "@esbuild/win32-x64": "0.20.2" } }, + "node_modules/esbuild/node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -4598,17 +4510,16 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "license": "MIT", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -4639,15 +4550,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -4853,11 +4755,10 @@ "license": "MIT" }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4948,16 +4849,15 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT", "engines": { "node": ">=4.0" }, @@ -5059,6 +4959,20 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -5117,16 +5031,6 @@ "node": ">=10" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -6021,7 +5925,6 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -6308,20 +6211,9 @@ "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + }, + "engines": { + "node": ">=10" } }, "node_modules/istanbul-reports": { @@ -6378,19 +6270,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -6426,19 +6305,6 @@ "dev": true, "license": "ISC" }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -6628,11 +6494,12 @@ } }, "node_modules/lightningcss": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.24.0.tgz", - "integrity": "sha512-y36QEEDVx4IM7/yIZNsZJMRREIu26WzTsauIysf5s76YeCmlSbRZS7aC97IGPuoFRnyZ5Wx43OBsQBFB5Ne7ng==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.25.1.tgz", + "integrity": "sha512-V0RMVZzK1+rCHpymRv4URK2lNhIRyO8g7U7zOFwVAhJuat74HtkjIQpQRKNCwFEYkRGpafOpmXXLoaoBcyVtBg==", "dev": true, - "license": "MPL-2.0", + "optional": true, + "peer": true, "dependencies": { "detect-libc": "^1.0.3" }, @@ -6644,30 +6511,156 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.24.0", - "lightningcss-darwin-x64": "1.24.0", - "lightningcss-freebsd-x64": "1.24.0", - "lightningcss-linux-arm-gnueabihf": "1.24.0", - "lightningcss-linux-arm64-gnu": "1.24.0", - "lightningcss-linux-arm64-musl": "1.24.0", - "lightningcss-linux-x64-gnu": "1.24.0", - "lightningcss-linux-x64-musl": "1.24.0", - "lightningcss-win32-x64-msvc": "1.24.0" + "lightningcss-darwin-arm64": "1.25.1", + "lightningcss-darwin-x64": "1.25.1", + "lightningcss-freebsd-x64": "1.25.1", + "lightningcss-linux-arm-gnueabihf": "1.25.1", + "lightningcss-linux-arm64-gnu": "1.25.1", + "lightningcss-linux-arm64-musl": "1.25.1", + "lightningcss-linux-x64-gnu": "1.25.1", + "lightningcss-linux-x64-musl": "1.25.1", + "lightningcss-win32-x64-msvc": "1.25.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.25.1.tgz", + "integrity": "sha512-G4Dcvv85bs5NLENcu/s1f7ehzE3D5ThnlWSDwE190tWXRQCQaqwcuHe+MGSVI/slm0XrxnaayXY+cNl3cSricw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.25.1.tgz", + "integrity": "sha512-dYWuCzzfqRueDSmto6YU5SoGHvZTMU1Em9xvhcdROpmtOQLorurUZz8+xFxZ51lCO2LnYbfdjZ/gCqWEkwixNg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.25.1.tgz", + "integrity": "sha512-hXoy2s9A3KVNAIoKz+Fp6bNeY+h9c3tkcx1J3+pS48CqAt+5bI/R/YY4hxGL57fWAIquRjGKW50arltD6iRt/w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.25.1.tgz", + "integrity": "sha512-tWyMgHFlHlp1e5iW3EpqvH5MvsgoN7ZkylBbG2R2LWxnvH3FuWCJOhtGcYx9Ks0Kv0eZOBud789odkYLhyf1ng==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.25.1.tgz", + "integrity": "sha512-Xjxsx286OT9/XSnVLIsFEDyDipqe4BcLeB4pXQ/FEA5+2uWCCuAEarUNQumRucnj7k6ftkAHUEph5r821KBccQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.25.1.tgz", + "integrity": "sha512-IhxVFJoTW8wq6yLvxdPvyHv4NjzcpN1B7gjxrY3uaykQNXPHNIpChLB52+wfH+yS58zm1PL4LemUp8u9Cfp6Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.24.0.tgz", - "integrity": "sha512-3j5MdTh+LSDF3o6uDwRjRUgw4J+IfDCVtdkUrJvKxL79qBLUujXY7CTe5X3IQDDLKEe/3wu49r8JKgxr0MfjbQ==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.25.1.tgz", + "integrity": "sha512-RXIaru79KrREPEd6WLXfKfIp4QzoppZvD3x7vuTKkDA64PwTzKJ2jaC43RZHRt8BmyIkRRlmywNhTRMbmkPYpA==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -6677,18 +6670,39 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.24.0.tgz", - "integrity": "sha512-HI+rNnvaLz0o36z6Ki0gyG5igVGrJmzczxA5fznr6eFTj3cHORoR/j2q8ivMzNFR4UKJDkTWUH5LMhacwOHWBA==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.25.1.tgz", + "integrity": "sha512-TdcNqFsAENEEFr8fJWg0Y4fZ/nwuqTRsIr7W7t2wmDUlA8eSXVepeeONYcb+gtTj1RaXn/WgNLB45SFkz+XBZA==", "cpu": [ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.25.1.tgz", + "integrity": "sha512-9KZZkmmy9oGDSrnyHuxP6iMhbsgChUiu/NSgOx+U1I/wTngBStDf2i2aGRCHvFqj19HqqBEI4WuGVQBa2V6e0A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -6703,6 +6717,8 @@ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, "license": "Apache-2.0", + "optional": true, + "peer": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -7233,54 +7249,6 @@ "source-map-js": "^1.2.0" } }, - "node_modules/magicast/node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/magicast/node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/magicast/node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/magicast/node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -7696,13 +7664,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true, - "license": "MIT" - }, "node_modules/nodemon": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz", @@ -8228,11 +8189,10 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "license": "ISC" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -8293,9 +8253,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "funding": [ { @@ -8311,10 +8271,9 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -8525,7 +8484,6 @@ "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -8581,10 +8539,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "license": "MIT", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -8637,16 +8594,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-chartjs-2": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz", - "integrity": "sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA==", - "license": "MIT", - "peerDependencies": { - "chart.js": "^4.1.1", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-dom": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", @@ -8660,22 +8607,20 @@ "react": "^18.2.0" } }, + "node_modules/react-icons": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.2.1.tgz", + "integrity": "sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, - "node_modules/react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react-router": { "version": "6.22.1", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.1.tgz", @@ -9296,12 +9241,11 @@ } }, "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", - "license": "MIT", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" @@ -9435,6 +9379,29 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/spawn-command": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", @@ -9724,10 +9691,9 @@ "license": "MIT" }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "license": "ISC", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -9807,6 +9773,34 @@ "node": ">=8.0.0" } }, + "node_modules/terser": { + "version": "5.31.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.4.tgz", + "integrity": "sha512-3OU03GgblDgu0g+sdnsVzhBPxnjV+WJuMmocN1qBBZDQ3ia7jZQSAkePeKbPlYAejGXUTYe1CmSaUeV51mvaIw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -9958,7 +9952,6 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -10264,37 +10257,6 @@ "node": ">=8" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index d96aeb6..3086122 100644 --- a/package.json +++ b/package.json @@ -34,11 +34,10 @@ "docs:preview": "vitepress preview docs" }, "dependencies": { + "@canvasjs/react-charts": "^1.0.2", "axios": "^1.6.2", "bcrypt": "^5.1.1", "better-sqlite3": "^9.4.1", - "chart.js": "^4.4.1", - "chartjs-adapter-dayjs-3": "^1.2.3", "classnames": "^2.5.1", "cookie": "^0.6.0", "cookie-parser": "^1.4.6", @@ -52,14 +51,14 @@ "mobx-react-lite": "^4.0.5", "prop-types": "^15.8.1", "react": "^18.2.0", - "react-chartjs-2": "^5.2.0", "react-dom": "^18.2.0", + "react-icons": "^5.2.1", "react-router-dom": "^6.19.0", "react-toastify": "^10.0.5", "uuid": "^9.0.1" }, "devDependencies": { - "@vitejs/plugin-react": "^4.2.1", + "@vitejs/plugin-react-swc": "^3.7.0", "@vitest/coverage-v8": "^1.6.0", "concurrently": "^8.2.2", "cross-env": "^7.0.3", @@ -70,7 +69,6 @@ "eslint-plugin-react-refresh": "^0.4.4", "husky": "^8.0.3", "inquirer": "^8.0.0", - "lightningcss": "^1.24.0", "lint-staged": "^15.1.0", "node-mocks-http": "^1.14.1", "nodemon": "^3.0.1", diff --git a/scripts/loadEnv.js b/scripts/loadEnv.js index 3d95360..8ca26cc 100644 --- a/scripts/loadEnv.js +++ b/scripts/loadEnv.js @@ -15,7 +15,6 @@ if (!existsSync(configPath)) { const config = JSON.parse(readFileSync(configPath, 'utf-8')); -process.env.VITE_REACT_APP_VERSION = config.version; process.env.PORT = config.port; process.env.JWT_SECRET = config.jwtSecret; process.env.IS_DEMO = config.isDemo ? 'enabled' : 'disabled'; diff --git a/vite.config.js b/vite.config.js index 04873dc..456b982 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,5 +1,5 @@ import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; +import react from '@vitejs/plugin-react-swc'; import { visualizer } from 'rollup-plugin-visualizer'; import viteCompression from 'vite-plugin-compression2'; @@ -18,4 +18,10 @@ export default defineConfig({ filter: /\.(js|mjs|json|css|svg|html)$/i, }), ], + build: { + commonjsOptions: { transformMixedEsModules: true }, + }, + define: { + __APP_VERSION__: JSON.stringify(process.env.npm_package_version), + }, });