From 927cf00cc6f85f8ed3fc95c6a8b5417ff367e603 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 9 Sep 2023 00:41:45 +0200 Subject: [PATCH 001/205] remove duplicate --- src/components/utilities/CippFuzzySearch.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/utilities/CippFuzzySearch.js b/src/components/utilities/CippFuzzySearch.js index a97625dcd818..43021b80014e 100644 --- a/src/components/utilities/CippFuzzySearch.js +++ b/src/components/utilities/CippFuzzySearch.js @@ -13,7 +13,6 @@ function CippfuzzySearch(options) { useExtendedSearch: true, includeMatches: true, includeScore: true, - useExtendedSearch: true, }) return function (value) { if (!value.length) { From f529c982149ec35e0271b7f63f1709e4462b733a Mon Sep 17 00:00:00 2001 From: lwhitelock <79275328+lwhitelock@users.noreply.github.com> Date: Sat, 9 Sep 2023 10:07:17 +0100 Subject: [PATCH 002/205] Refactor to support new extensions in the future This refactors the frontend code to allow support for additional extension mappings in the future. --- src/views/cipp/CIPPSettings.js | 37 ++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 09d06f708953..9f72a84401e9 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -1576,12 +1576,12 @@ const ExtensionsTab = () => { } const MappingsTab = () => { - const [listBackend, listBackendResult] = useLazyGenericGetRequestQuery() - const [setExtensionconfig, extensionConfigResult] = useLazyGenericPostRequestQuery() + const [listHaloBackend, listBackendHaloResult] = useLazyGenericGetRequestQuery() + const [setHaloExtensionconfig, extensionHaloConfigResult] = useLazyGenericPostRequestQuery() - const onSubmit = (values) => { - setExtensionconfig({ - path: 'api/ExecExtensionMapping?AddMapping=true', + const onHaloSubmit = (values) => { + setHaloExtensionconfig({ + path: 'api/ExecExtensionMapping?AddMapping=Halo', values: { mappings: values }, }) } @@ -1590,44 +1590,47 @@ const MappingsTab = () => { {listBackendResult.isUninitialized && listBackend({ path: 'api/ExecExtensionMapping?List=true' })} <> - + HaloPSA Mapping Table - {listBackendResult.isFetching ? ( + {listBackendHaloResult.isFetching ? ( ) : (
{ return ( Use the table below to map your client to the correct PSA client - {listBackendResult.isSuccess && - listBackendResult.data.Tenants.map((tenant) => ( + {listBackendHaloResult.isSuccess && + listBackendHaloResult.data.Tenants.map((tenant) => ( ))} - {extensionConfigResult.isFetching && ( + {extensionHaloConfigResult.isFetching && ( )} Set Mappings - {(extensionConfigResult.isSuccess || extensionConfigResult.isError) && ( - - {extensionConfigResult.isSuccess - ? extensionConfigResult.data.Results + {(extensionHaloConfigResult.isSuccess || + extensionHaloConfigResult.isError) && ( + + {extensionHaloConfigResult.isSuccess + ? extensionHaloConfigResult.data.Results : 'Error'} )} From 2812f32d6cb317d31949b63268bcf0a5b194bf17 Mon Sep 17 00:00:00 2001 From: rvdwegen Date: Tue, 12 Sep 2023 23:48:26 +0200 Subject: [PATCH 003/205] Make user count cards on dashboard interactable --- src/views/home/Home.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/views/home/Home.js b/src/views/home/Home.js index e3025e587fda..10cf1a03c502 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -143,6 +143,10 @@ const Home = () => { +
{issuccessUserCounts && !isFetchingUserCount ? dashboard?.Users : }
@@ -150,6 +154,14 @@ const Home = () => {
+
{issuccessUserCounts && !isFetchingUserCount ? dashboard?.LicUsers : }
@@ -157,6 +169,15 @@ const Home = () => {
+
{issuccessUserCounts && !isFetchingUserCount ? dashboard?.Gas : }
@@ -164,6 +185,14 @@ const Home = () => {
+
{issuccessUserCounts && !isFetchingUserCount ? dashboard?.Guests : }
From 53c9fd2ca068de94fbe0da92d48045256f3cea5e Mon Sep 17 00:00:00 2001 From: lwhitelock <79275328+lwhitelock@users.noreply.github.com> Date: Thu, 14 Sep 2023 08:06:55 +0100 Subject: [PATCH 004/205] Fix load Halo Backend Result Fixed renaming a function that was missed. --- src/views/cipp/CIPPSettings.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 9f72a84401e9..fe54e4805cc2 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -1587,8 +1587,8 @@ const MappingsTab = () => { } return (
- {listBackendResult.isUninitialized && - listBackend({ path: 'api/ExecExtensionMapping?List=true' })} + {listBackendHaloResult.isUninitialized && + listHaloBackend({ path: 'api/ExecExtensionMapping?List=Halo' })} <> From 2c19f8cab209e755a9feee8571e87bde6d6ba5d2 Mon Sep 17 00:00:00 2001 From: BNWEIN Date: Wed, 20 Sep 2023 12:42:30 +0100 Subject: [PATCH 005/205] Added Username to top of the BEC page BEC Page did not show what user it was running on. Added that information --- src/views/identity/administration/Users.js | 2 +- src/views/identity/administration/ViewBEC.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/views/identity/administration/Users.js b/src/views/identity/administration/Users.js index 4f64168fa419..928853445e6a 100644 --- a/src/views/identity/administration/Users.js +++ b/src/views/identity/administration/Users.js @@ -77,7 +77,7 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { }, { label: 'Research Compromised Account', - link: `/identity/administration/ViewBec?userId=${row.id}&tenantDomain=${tenant.defaultDomainName}`, + link: `/identity/administration/ViewBec?userId=${row.id}&tenantDomain=${tenant.defaultDomainName}&ID=${row.userPrincipalName}`, color: 'info', }, { diff --git a/src/views/identity/administration/ViewBEC.js b/src/views/identity/administration/ViewBEC.js index d97e5639ae5a..bfe147e850cb 100644 --- a/src/views/identity/administration/ViewBEC.js +++ b/src/views/identity/administration/ViewBEC.js @@ -1,5 +1,5 @@ import React, { useEffect } from 'react' -import { CButton, CCallout, CLink } from '@coreui/react' +import { CButton, CCallout, CLink, CCardTitle } from '@coreui/react' import { CCardBody, CSpinner } from '@coreui/react' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { @@ -27,6 +27,7 @@ import useConfirmModal from 'src/hooks/useConfirmModal' const ViewBec = () => { let query = useQuery() const userId = query.get('userId') + const userName = query.get('ID') const tenantDomain = query.get('tenantDomain') const [execBecRemediate, execRemediateResults] = useLazyGenericPostRequestQuery() const [execBecView, results] = useLazyExecBecCheckQuery() @@ -232,7 +233,7 @@ const ViewBec = () => { Business Email Compromise Overview - {userName}} button={ Date: Thu, 21 Sep 2023 20:38:57 +0200 Subject: [PATCH 006/205] Fixed action menu API calls --- src/views/identity/administration/Groups.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/views/identity/administration/Groups.js b/src/views/identity/administration/Groups.js index 49400c7206d9..5f29ef909853 100644 --- a/src/views/identity/administration/Groups.js +++ b/src/views/identity/administration/Groups.js @@ -161,7 +161,7 @@ const Groups = () => { label: 'Hide from Global Address List', color: 'info', modal: true, - modalUrl: `/api/ExecGroupsHideFromGAL?TenantFilter=${tenant.defaultDomainName}&ID=!mail&GroupType=!calculatedGroupType&HidefromGAL=true`, + modalUrl: `/api/ExecGroupsHideFromGAL?TenantFilter=${tenant.defaultDomainName}&ID=!id&GroupType=!calculatedGroupType&HidefromGAL=true`, modalMessage: 'Are you sure you want to hide this mailbox from the global address list? Remember this will not work if the group is AD Synched.', }, @@ -169,7 +169,7 @@ const Groups = () => { label: 'Unhide from Global Address List', color: 'info', modal: true, - modalUrl: `/api/ExecGroupsHideFromGAL?TenantFilter=${tenant.defaultDomainName}&ID=!mail&GroupType=!calculatedGroupType`, + modalUrl: `/api/ExecGroupsHideFromGAL?TenantFilter=${tenant.defaultDomainName}&ID=!id&GroupType=!calculatedGroupType`, modalMessage: 'Are you sure you want to unhide this mailbox from the global address list? Remember this will not work if the group is AD Synched.', }, @@ -177,7 +177,7 @@ const Groups = () => { label: 'Only allow messages from people inside the organisation', color: 'info', modal: true, - modalUrl: `/api/ExecGroupsDeliveryManagement?TenantFilter=${tenant.defaultDomainName}&ID=!mail&GroupType=!calculatedGroupType&OnlyAllowInternal=true`, + modalUrl: `/api/ExecGroupsDeliveryManagement?TenantFilter=${tenant.defaultDomainName}&ID=!id&GroupType=!calculatedGroupType&OnlyAllowInternal=true`, modalMessage: 'Are you sure you want to only allow messages from people inside the organisation? Remember this will not work if the group is AD Synched.', }, @@ -185,7 +185,7 @@ const Groups = () => { label: 'Allow messages from people inside and outside the organisation', color: 'info', modal: true, - modalUrl: `/api/ExecGroupsDeliveryManagement?TenantFilter=${tenant.defaultDomainName}&ID=!mail&GroupType=!calculatedGroupType`, + modalUrl: `/api/ExecGroupsDeliveryManagement?TenantFilter=${tenant.defaultDomainName}&ID=!id&GroupType=!calculatedGroupType`, modalMessage: 'Are you sure you want to allow messages from people inside and outside the organisation? Remember this will not work if the group is AD Synched.', }, @@ -193,7 +193,7 @@ const Groups = () => { label: 'Delete Group', color: 'warning', modal: true, - modalUrl: `/api/ExecGroupsDelete?TenantFilter=${tenant.defaultDomainName}&ID=!mail&GroupType=!calculatedGroupType&DisplayName=!displayName`, + modalUrl: `/api/ExecGroupsDelete?TenantFilter=${tenant.defaultDomainName}&ID=!id&GroupType=!calculatedGroupType&DisplayName=!displayName`, modalMessage: 'Are you sure you want to delete this group.', }, ], From e3c8737a53ddd746a674650d01f1730d4d442d3b Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 21 Sep 2023 20:51:49 +0200 Subject: [PATCH 007/205] added automatic help to each page --- src/components/layout/AppHeader.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/components/layout/AppHeader.js b/src/components/layout/AppHeader.js index bfda84ceee1b..0bc158732883 100644 --- a/src/components/layout/AppHeader.js +++ b/src/components/layout/AppHeader.js @@ -11,6 +11,7 @@ import { CHeaderToggler, CImage, CSidebarBrand, + CButton, } from '@coreui/react' import { AppHeaderDropdown, AppHeaderSearch } from 'src/components/header' import { TenantSelector } from '../utilities' @@ -22,8 +23,12 @@ import { faCaretSquareLeft, faCaretSquareRight } from '@fortawesome/free-solid-s import { toggleSidebarShow } from 'src/store/features/app' import { useMediaPredicate } from 'react-media-hook' import { useLoadAlertsDashQuery } from 'src/store/api/app' +import { Link } from 'react-router-dom' +import { useLocation } from 'react-router-dom' + const AppHeader = () => { const dispatch = useDispatch() + const location = useLocation() const sidebarShow = useSelector((state) => state.app.sidebarShow) const currentTheme = useSelector((state) => state.app.currentTheme) const preferredTheme = useMediaPredicate('(prefers-color-scheme: dark)') ? 'impact' : 'cyberdrain' @@ -57,6 +62,16 @@ const AppHeader = () => { + + + + + + + From 1aa388b8c649bc6ecf2f269fbe9bba05c73685e5 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 21 Sep 2023 22:52:56 +0200 Subject: [PATCH 008/205] fixed mailbox permissions overview --- .../administration/EditMailboxPermissions.js | 952 +++++++++--------- 1 file changed, 459 insertions(+), 493 deletions(-) diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.js b/src/views/email-exchange/administration/EditMailboxPermissions.js index 2841cf1c4d41..b0649954994b 100644 --- a/src/views/email-exchange/administration/EditMailboxPermissions.js +++ b/src/views/email-exchange/administration/EditMailboxPermissions.js @@ -16,7 +16,6 @@ import { CSpinner, } from '@coreui/react' import useQuery from 'src/hooks/useQuery' -import { CippPage, CippPageList, CippMasonry, CippMasonryItem } from 'src/components/layout' import { useDispatch } from 'react-redux' import { Form, Field } from 'react-final-form' import { RFFSelectSearch, RFFCFormSelect, RFFCFormCheck, RFFCFormInput } from 'src/components/forms' @@ -38,38 +37,131 @@ const formatter = (cell, warning = false, reverse = false, colourless = false) = CellBoolean({ cell, warning, reverse, colourless }) const MailboxSettings = () => { + const dispatch = useDispatch() + let query = useQuery() + const userId = query.get('userId') + const tenantDomain = query.get('tenantDomain') const [active, setActive] = useState(1) + const { + data: usercal = {}, + isFetching: usercalIsFetching, + error: usercalError, + } = useListCalendarPermissionsQuery({ tenantDomain, userId }) + const columnsCal = [ + { + name: 'User', + selector: (row) => row['User'], + sortable: true, + wrap: true, + cell: (row) => row['User'], + exportSelector: 'User', + maxWidth: '150px', + }, + { + name: 'AccessRights', + selector: (row) => row['AccessRights'], + sortable: true, + wrap: true, + cell: (row) => row['AccessRights'], + exportSelector: 'AccessRights', + maxWidth: '150px', + }, + { + name: 'Identity', + selector: (row) => row['Identity'], + sortable: true, + wrap: true, + cell: (row) => row['Identity'], + exportSelector: 'Identity', + maxWidth: '150px', + }, + ] + const columns = [ + { + name: 'User', + selector: (row) => row.User, + sortable: true, + wrap: true, + exportSelector: 'User', + }, + { + name: 'Permissions', + selector: (row) => row['Permissions'], + sortable: true, + wrap: true, + exportSelector: 'Permissions', + }, + ] + + const { + data: user = {}, + isFetching: userIsFetching, + error: userError, + } = useListMailboxPermissionsQuery({ tenantDomain, userId }) + return ( - - - - - setActive(1)} href="#"> - Mailbox Permissions - - setActive(2)} href="#"> - Calendar Permissions - - setActive(3)} href="#"> - Mailbox Forwarding - - - - - - - - - - - - - - - - - - + + + + + + setActive(1)} href="#"> + Mailbox Permissions + + setActive(2)} href="#"> + Calendar Permissions + + setActive(3)} href="#"> + Mailbox Forwarding + + + + + + + + + + + + + + + + + + + + + + Account Information - {userId} + + + {active === 1 && ( + <> + {userIsFetching && } + {!userIsFetching && ( + + )} + + )} + {active === 2 && ( + <> + {usercalIsFetching && } + {!usercalIsFetching && ( + + )} + + )} + {active === 3 && ( + <> + + + )} + + + + ) } @@ -86,13 +178,6 @@ const MailboxPermissions = () => { //const [EditMailboxPermission, { error: EditMailboxPermissionError, isFetching: EditMailboxPermissionIsFetching }] = useEditMailboxPermissionMutation() const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() - const { - data: user = {}, - isFetching: userIsFetching, - error: userError, - refetch: refetchPermissions, - } = useListMailboxPermissionsQuery({ tenantDomain, userId }) - const { data: users = [], isFetching: usersIsFetching, @@ -100,9 +185,6 @@ const MailboxPermissions = () => { } = useListUsersQuery({ tenantDomain }) useEffect(() => { - if (postResults.isSuccess) { - refetchPermissions() - } if (!userId || !tenantDomain) { ModalService.open({ body: 'Error invalid request, could not load requested user.', @@ -112,7 +194,7 @@ const MailboxPermissions = () => { } else { setQueryError(false) } - }, [userId, tenantDomain, dispatch, postResults, refetchPermissions]) + }, [userId, tenantDomain, dispatch, postResults]) const onSubmit = (values) => { const shippedValues = { userid: userId, @@ -128,36 +210,16 @@ const MailboxPermissions = () => { //window.alert(JSON.stringify(shippedValues)) genericPostRequest({ path: '/api/ExecEditMailboxPermissions', values: shippedValues }) } - const initialState = { - ...user, - } - - const columns = [ - { - name: 'User', - selector: (row) => row.User, - sortable: true, - wrap: true, - exportSelector: 'User', - }, - { - name: 'Permissions', - selector: (row) => row['Permissions'], - sortable: true, - wrap: true, - exportSelector: 'Permissions', - }, - ] const formDisabled = queryError === true return ( - + <> {!queryError && ( <> {queryError && ( - + {/* @todo add more descriptive help message here */} Failed to load user @@ -166,203 +228,147 @@ const MailboxPermissions = () => { )} - - - - Account Details - {userId} - - - {usersIsFetching && } - {userError && Error loading user} - {!usersIsFetching && ( - { - return ( - - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="RemoveFullAccess" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AddFullAccess" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AddFullAccessNoAutoMap" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AddSendAs" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="RemoveSendAs" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AddSendOnBehalf" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="RemoveSendOnBehalf" - /> - {usersError && Failed to load list of users} - - - - - - Edit User Permissions - {postResults.isFetching && ( - - )} - - - - {postResults.isSuccess && ( - - {postResults.data.Results.map((result, idx) => ( -
  • {result}
  • - ))} -
    + {usersIsFetching && } + {!usersIsFetching && ( + { + return ( + + + + ({ + value: user.mail, + name: `${user.displayName} - ${user.mail} `, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="RemoveFullAccess" + /> + {usersError && Failed to load list of users} + + + ({ + value: user.mail, + name: `${user.displayName} - ${user.mail} `, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="AddFullAccess" + /> + {usersError && Failed to load list of users} + + + ({ + value: user.mail, + name: `${user.displayName} - ${user.mail} `, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="AddFullAccessNoAutoMap" + /> + {usersError && Failed to load list of users} + + + ({ + value: user.mail, + name: `${user.displayName} - ${user.mail} `, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="AddSendAs" + /> + {usersError && Failed to load list of users} + + + ({ + value: user.mail, + name: `${user.displayName} - ${user.mail} `, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="RemoveSendAs" + /> + {usersError && Failed to load list of users} + + + ({ + value: user.mail, + name: `${user.displayName} - ${user.mail} `, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="AddSendOnBehalf" + /> + {usersError && Failed to load list of users} + + + ({ + value: user.mail, + name: `${user.displayName} - ${user.mail} `, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="RemoveSendOnBehalf" + /> + {usersError && Failed to load list of users} + + + + + + Edit User Permissions + {postResults.isFetching && ( + )} - - ) - }} - /> - )} -
    -
    -
    - - - - Account Information - - - {userIsFetching && } - {!userIsFetching && ( - <> - - - )} - - - +
    + + + {postResults.isSuccess && ( + + {postResults.data.Results.map((result, idx) => ( +
  • {result}
  • + ))} +
    + )} + + ) + }} + /> + )} )} -
    + ) } -const columns = [ - { - name: 'User', - selector: (row) => row['User'], - sortable: true, - wrap: true, - cell: (row) => row['User'], - exportSelector: 'User', - maxWidth: '150px', - }, - { - name: 'AccessRights', - selector: (row) => row['AccessRights'], - sortable: true, - wrap: true, - cell: (row) => row['AccessRights'], - exportSelector: 'AccessRights', - maxWidth: '150px', - }, - { - name: 'Identity', - selector: (row) => row['Identity'], - sortable: true, - wrap: true, - cell: (row) => row['Identity'], - exportSelector: 'Identity', - maxWidth: '150px', - }, -] - const CalendarPermissions = () => { const dispatch = useDispatch() let query = useQuery() @@ -419,7 +425,7 @@ const CalendarPermissions = () => { UsersMapped.unshift({ value: 'Default', name: 'Default' }) return ( - + <> {!queryError && ( <> {postResults.isSuccess && ( @@ -436,109 +442,85 @@ const CalendarPermissions = () => { )} - - - - Account Details - - - {userIsFetching && } - {userError && Error loading user} - {!userIsFetching && ( - { - return ( - - - - - {usersError && Failed to load list of users} - - - - {usersError && Failed to load list of users} - - - + {userIsFetching && } + {userError && Error loading user} + {!userIsFetching && ( + { + return ( + + + + + {usersError && Failed to load list of users} + + + + {usersError && Failed to load list of users} + + + + {usersError && Failed to load list of users} + + + + + + Edit Permissions + {postResults.isFetching && ( + - {usersError && Failed to load list of users} - - - - - - Edit Permissions - {postResults.isFetching && ( - - )} - - - - {postResults.isSuccess && ( - {postResults.data?.Results} - )} - - ) - }} - /> - )} - - - - - - - Current Permissions - - - {userIsFetching && } - {!userIsFetching && ( - <> - {user.length > 0 && ( - - )} - - )} - - + )} + + + + {postResults.isSuccess && ( + {postResults.data?.Results} + )} + + ) + }} + /> + )} )} - + ) } @@ -557,7 +539,6 @@ const MailboxForwarding = () => { data: user = {}, isFetching: userIsFetching, error: userError, - refetch: refetchPermissions, } = useListMailboxPermissionsQuery({ tenantDomain, userId }) const { @@ -568,7 +549,6 @@ const MailboxForwarding = () => { useEffect(() => { if (postResults.isSuccess) { - refetchPermissions() } if (!userId || !tenantDomain) { ModalService.open({ @@ -579,7 +559,7 @@ const MailboxForwarding = () => { } else { setQueryError(false) } - }, [userId, tenantDomain, dispatch, postResults, refetchPermissions]) + }, [userId, tenantDomain, dispatch, postResults]) const onSubmit = (values) => { const shippedValues = { userid: userId, @@ -616,7 +596,7 @@ const MailboxForwarding = () => { const formDisabled = queryError === true return ( - + <> {!queryError && ( <> {queryError && ( @@ -630,139 +610,122 @@ const MailboxForwarding = () => { )} - - - - Account Details - {userId} - - - {usersIsFetching && } - {userError && Error loading user} - {!usersIsFetching && ( - { - return ( - - - -
    - -
    - {values.forwardOption === 'internalAddress' && ( - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="ForwardInternal" - /> - )} - {usersError && Failed to load list of users} -
    -
    - - -
    - -
    - {values.forwardOption === 'ExternalAddress' && ( - - )} -
    -
    - - -
    - -
    -
    -
    - - - - - Edit Forwarding - {postResults.isFetching && ( - - )} - - - - {postResults.isSuccess && ( - - {postResults.data.Results.map((result, idx) => ( -
  • {result}
  • - ))} -
    + + {usersIsFetching && } + {userError && Error loading user} + {!usersIsFetching && ( + { + return ( + + + +
    + +
    + {values.forwardOption === 'internalAddress' && ( + ({ + value: user.mail, + name: `${user.displayName} - ${user.mail} `, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="ForwardInternal" + /> )} -
    - ) - }} - /> - )} -
    -
    -
    - - - - Account Details - {userId} - - - - - + {usersError && Failed to load list of users} + +
    + + +
    + +
    + {values.forwardOption === 'ExternalAddress' && ( + + )} +
    +
    + + +
    + +
    +
    +
    + + + + + Edit Forwarding + {postResults.isFetching && ( + + )} + + + + {postResults.isSuccess && ( + + {postResults.data.Results.map((result, idx) => ( +
  • {result}
  • + ))} +
    + )} + + ) + }} + /> + )} )} -
    + ) } @@ -784,14 +747,17 @@ const ForwardingSettings = () => { return ( - - {content.map((item, index) => ( -
    -
    {item.heading}
    -

    {item.body}

    -
    - ))} -
    + {isFetching && } + {!isFetching && ( + + {content.map((item, index) => ( +
    +
    {item.heading}
    +

    {item.body}

    +
    + ))} +
    + )}
    ) } From 8849b22cc83a8253a5b120dc1f6613ff8682a2b3 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Thu, 21 Sep 2023 17:23:19 -0400 Subject: [PATCH 009/205] Webhooks - Add Service Principal operations --- src/views/tenant/administration/AlertWizard.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/views/tenant/administration/AlertWizard.js b/src/views/tenant/administration/AlertWizard.js index b0d8a9dbdfbf..28bf204948d5 100644 --- a/src/views/tenant/administration/AlertWizard.js +++ b/src/views/tenant/administration/AlertWizard.js @@ -222,6 +222,14 @@ const AlertWizard = () => { value: 'UserLoggedIn', name: 'A user has logged in from any location', }, + { + value: 'Add service principal.', + name: 'Enterprise App Added', + }, + { + value: 'Remove service principal.', + name: 'Enterprise App Removed', + }, ]} /> From 8032a4b42f2144cd6033d0e0e2c53af0addc52a8 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 22 Sep 2023 13:35:25 +0200 Subject: [PATCH 010/205] added "see more" to home --- src/views/home/Home.js | 62 ++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/src/views/home/Home.js b/src/views/home/Home.js index e3025e587fda..5429c137e258 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useState } from 'react' import { faBook, faCog, @@ -16,7 +16,7 @@ import { faUsers, faServer, } from '@fortawesome/free-solid-svg-icons' -import { CCol, CRow } from '@coreui/react' +import { CButton, CCol, CCollapse, CRow } from '@coreui/react' import { useGenericGetRequestQuery } from 'src/store/api/app' import { CippContentCard } from 'src/components/layout' import Skeleton from 'react-loading-skeleton' @@ -30,6 +30,8 @@ import Portals from 'src/data/portals' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' const Home = () => { + const [visible, setVisible] = useState(false) + const currentTenant = useSelector((state) => state.app.currentTenant) const { data: organization, @@ -62,7 +64,7 @@ const Home = () => { }) const { - data: standards, + data: standards = [], isLoading: isLoadingStandards, isSuccess: issuccessStandards, isFetching: isFetchingStandards, @@ -124,6 +126,21 @@ const Home = () => { icon: faUserFriends, }, ] + + const filteredStandards = standards + .filter( + (p) => p.displayName === 'AllTenants' || p.displayName === currentTenant.defaultDomainName, + ) + .flatMap((tenant) => { + return Object.keys(tenant.standards).map((standard) => { + const standardDisplayname = allStandardsList.filter((p) => p.name.includes(standard)) + return ( +
  • + {standardDisplayname[0]?.label} ({tenant.displayName}) +
  • + ) + }) + }) return ( <> @@ -261,26 +278,25 @@ const Home = () => {

    Applied Standards

    {(isLoadingStandards || isFetchingStandards) && } - {issuccessStandards && - !isFetchingStandards && - standards - .filter( - (p) => - p.displayName == 'AllTenants' || - p.displayName == currentTenant.defaultDomainName, - ) - .flatMap((tenant) => { - return Object.keys(tenant.standards).map((standard) => { - const standardDisplayname = allStandardsList.filter((p) => - p.name.includes(standard), - ) - return ( -
  • - {standardDisplayname[0]?.label} ({tenant.displayName}) -
  • - ) - }) - })} + + {issuccessStandards && !isFetchingStandards && ( + <> + {filteredStandards.slice(0, 5)} + + {filteredStandards.length > 5 && ( + <> + {filteredStandards.slice(5)} + setVisible(!visible)} + > + {visible ? 'See less' : 'See more...'} + + + )} + + )}

    Partner Relationships

    From b4e18a8cba0ae559980b07f3e1b761d8d398e6a0 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 23 Sep 2023 23:12:44 +0200 Subject: [PATCH 011/205] Fixed refresh issue --- src/views/cipp/CIPPSettings.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index fe54e4805cc2..00deb2d85098 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -1069,6 +1069,7 @@ const NotificationsSettings = () => { true} initialValues={{ ...notificationListResult.data, logsToInclude: notificationListResult.data?.logsToInclude?.map((m) => ({ From 53100dbaf5d3b28cee798120ab700e548cbfe621 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 23 Sep 2023 23:12:57 +0200 Subject: [PATCH 012/205] add unix time handle --- src/components/tables/CellDate.js | 51 ++++++++++++++----------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/src/components/tables/CellDate.js b/src/components/tables/CellDate.js index 9806f137c290..04f7bf9c5f3d 100644 --- a/src/components/tables/CellDate.js +++ b/src/components/tables/CellDate.js @@ -4,13 +4,6 @@ import PropTypes from 'prop-types' import { CTooltip } from '@coreui/react' import ReactTimeAgo from 'react-time-ago' -/** - * - * @param format ['short', 'long', 'relative'] - * @param value - * @returns {JSX.Element} - * @constructor - */ export const CellDate = ({ format = 'short', showTime = true, showDate = true, cell }) => { if (!cell || (!showTime && !showDate)) { return
    @@ -21,25 +14,29 @@ export const CellDate = ({ format = 'short', showTime = true, showDate = true, c locale = navigator.language } - // cheatsheet - // https://devhints.io/wip/intl-datetime - const dateTimeArgs = [ - [locale, 'default'], // add fallback option if locale doesn't load properly - ] + // Convert cell value to a number and check if it's a Unix timestamp + const possibleUnixTimestamp = Number(cell) + const isUnixTimestamp = !isNaN(possibleUnixTimestamp) && possibleUnixTimestamp > 1000000000 + let dateObject + + if (isUnixTimestamp) { + dateObject = moment.unix(possibleUnixTimestamp).toDate() + } else { + dateObject = moment(cell).toDate() + } + + const dateTimeArgs = [[locale, 'default']] const dateTimeFormatOptions = {} - if (format == 'relative') { + + if (format === 'relative') { try { - return ( - - - - ) + return } catch (error) { - console.error('Error formatting date, fallback to string value', { date: cell, error }) + console.error('Error formatting date, fallback to string value', { date: dateObject, error }) return ( - -
    {String(cell)}
    + +
    {String(dateObject)}
    ) } @@ -56,16 +53,14 @@ export const CellDate = ({ format = 'short', showTime = true, showDate = true, c let formatted try { - // lots of dates returned are unreliably parsable (e.g. non ISO8601 format) - // fallback using moment to parse into date object - formatted = new Intl.DateTimeFormat(...dateTimeArgs).format(moment(cell).toDate()) + formatted = new Intl.DateTimeFormat(...dateTimeArgs).format(dateObject) } catch (error) { - console.error('Error formatting date, fallback to string value', { date: cell, error }) - formatted = cell + console.error('Error formatting date, fallback to string value', { date: dateObject, error }) + formatted = dateObject.toString() } return ( - +
    {String(formatted)}
    ) @@ -74,7 +69,7 @@ export const CellDate = ({ format = 'short', showTime = true, showDate = true, c CellDate.propTypes = { format: PropTypes.oneOf(['short', 'medium', 'long', 'full', 'relative']), - cell: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)]), + cell: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.instanceOf(Date)]), showTime: PropTypes.bool, showDate: PropTypes.bool, } From 4fcc8380e30f8e7b90af4927763ca4d169757284 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 23 Sep 2023 23:13:12 +0200 Subject: [PATCH 013/205] add text cases for badges --- src/components/tables/CellBadge.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/components/tables/CellBadge.js b/src/components/tables/CellBadge.js index 5234f65e2fca..26759c874f60 100644 --- a/src/components/tables/CellBadge.js +++ b/src/components/tables/CellBadge.js @@ -3,6 +3,24 @@ import React from 'react' import { CBadge } from '@coreui/react' export const CellBadge = ({ label = '', color = '', children, ...rest }) => { + //Create a case select, and return the color based on the label + switch (label.toLowerCase()) { + case 'planned': + color = 'info' + break + case 'failed': + color = 'danger' + break + case 'completed': + color = 'success' + break + case 'Banned': + color = 'danger' + break + default: + color = 'primary' + } + return ( {label} From 067057dbb9d4b1251097eea4c3e9e8acb1a96434 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 23 Sep 2023 23:14:20 +0200 Subject: [PATCH 014/205] fix stuff --- src/components/tables/CellBadge.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/tables/CellBadge.js b/src/components/tables/CellBadge.js index 26759c874f60..ae6b948ce83f 100644 --- a/src/components/tables/CellBadge.js +++ b/src/components/tables/CellBadge.js @@ -14,10 +14,10 @@ export const CellBadge = ({ label = '', color = '', children, ...rest }) => { case 'completed': color = 'success' break - case 'Banned': + case 'banned': color = 'danger' break - default: + case 'running': color = 'primary' } From 6ef5addd9713554e8424804cba41ef42f94e5193 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 23 Sep 2023 23:16:43 +0200 Subject: [PATCH 015/205] added scheduler --- src/_nav.js | 5 + src/adminRoutes.js | 3 + src/components/utilities/CippCodeOffcanvas.js | 37 +- src/views/cipp/Scheduler.js | 337 ++++++++++++++++++ 4 files changed, 368 insertions(+), 14 deletions(-) create mode 100644 src/views/cipp/Scheduler.js diff --git a/src/_nav.js b/src/_nav.js index 2f8d05e25f85..c243b18c4e12 100644 --- a/src/_nav.js +++ b/src/_nav.js @@ -663,6 +663,11 @@ const _nav = [ name: 'Settings', to: '/cipp/settings', }, + { + component: CNavItem, + name: 'Scheduler', + to: '/cipp/scheduler', + }, { component: CNavItem, name: 'SAM Setup Wizard', diff --git a/src/adminRoutes.js b/src/adminRoutes.js index b57360064384..8b10173655ab 100644 --- a/src/adminRoutes.js +++ b/src/adminRoutes.js @@ -11,12 +11,15 @@ const GDAPRelationships = React.lazy(() => import('./views/tenant/administration/ListGDAPRelationships'), ) const appapproval = React.lazy(() => import('src/views/cipp/AppApproval')) +const Scheduler = React.lazy(() => import('src/views/cipp/Scheduler')) const adminRoutes = [ { path: '/cipp', name: 'CIPP' }, { path: '/cipp/cipp', name: 'CIPP' }, { path: '/cipp/settings', name: 'Settings', component: CIPPSettings }, { path: '/cipp/setup', name: 'Setup', component: Setup }, + { path: '/cipp/scheduler', name: 'Scheduler', component: Scheduler }, + { path: '/tenant/administration/gdap', name: 'GDAP Wizard', component: GDAP }, { path: '/tenant/administration/gdap-invite', name: 'GDAP Invite Wizard', component: GDAPInvite }, { diff --git a/src/components/utilities/CippCodeOffcanvas.js b/src/components/utilities/CippCodeOffcanvas.js index c8cdbf175d35..38a23b81663f 100644 --- a/src/components/utilities/CippCodeOffcanvas.js +++ b/src/components/utilities/CippCodeOffcanvas.js @@ -6,7 +6,14 @@ import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 's import { Editor } from '@monaco-editor/react' import { useSelector } from 'react-redux' -function CippCodeOffCanvas({ row, state, hideFunction, type }) { +function CippCodeOffCanvas({ + row, + state, + hideFunction, + type, + title = 'Template JSON', + hideButton = false, +}) { const [SaveTemplate, templateDetails] = useLazyGenericPostRequestQuery() const currentTheme = useSelector((state) => state.app.currentTheme) const [templateData, setFormData] = useState(row) @@ -23,7 +30,7 @@ function CippCodeOffCanvas({ row, state, hideFunction, type }) { return ( <> - - SaveTemplate({ - path: `/api/ExecEditTemplate?type=${type}`, - method: 'POST', - values: templateData, - }) - } - > - Save changes {templateDetails.isFetching && } - + {!hideButton && ( + + SaveTemplate({ + path: `/api/ExecEditTemplate?type=${type}`, + method: 'POST', + values: templateData, + }) + } + > + Save changes {templateDetails.isFetching && } + + )} {templateDetails.isSuccess && !templateDetails.isFetching && ( diff --git a/src/views/cipp/Scheduler.js b/src/views/cipp/Scheduler.js new file mode 100644 index 000000000000..e0af97bcb8c8 --- /dev/null +++ b/src/views/cipp/Scheduler.js @@ -0,0 +1,337 @@ +import React, { useEffect, useState } from 'react' +import { CButton, CCallout, CCol, CForm, CFormLabel, CRow, CSpinner, CTooltip } from '@coreui/react' +import useQuery from 'src/hooks/useQuery' +import { useDispatch, useSelector } from 'react-redux' +import { Field, Form } from 'react-final-form' +import { + Condition, + RFFCFormCheck, + RFFCFormInput, + RFFCFormSwitch, + RFFCFormTextarea, + RFFSelectSearch, +} from 'src/components/forms' +import countryList from 'src/data/countryList' + +import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faCircleNotch, faEdit, faEye } from '@fortawesome/free-solid-svg-icons' +import { CippContentCard, CippPage, CippPageList } from 'src/components/layout' +import { password } from 'src/validators' +import { + CellDate, + CellDelegatedPrivilege, + cellBadgeFormatter, + cellBooleanFormatter, + cellDateFormatter, +} from 'src/components/tables' +import { CellTip, cellGenericFormatter } from 'src/components/tables/CellGenericFormat' +import DatePicker from 'react-datepicker' +import 'react-datepicker/dist/react-datepicker.css' +import TenantListSelector from 'src/components/utilities/TenantListSelector' +import { ModalService, TenantSelector } from 'src/components/utilities' +import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas' + +const Offcanvas = (row, rowIndex, formatExtraData) => { + const [ExecuteGetRequest, getResults] = useLazyGenericGetRequestQuery() + const [ocVisible, setOCVisible] = useState(false) + + const handleDeleteSchedule = (apiurl, message) => { + ModalService.confirm({ + title: 'Confirm', + body:
    {message}
    , + onConfirm: () => ExecuteGetRequest({ path: apiurl }), + confirmLabel: 'Continue', + cancelLabel: 'Cancel', + }) + } + let jsonResults + try { + jsonResults = JSON.parse(row.Results) + } catch (error) { + jsonResults = row.Results + } + + return ( + <> + + setOCVisible(true)}> + + + + + + handleDeleteSchedule( + `/api/RemoveScheduledItem?&ID=${row.RowKey}`, + 'Do you want to delete this job?', + ) + } + size="sm" + variant="ghost" + color="danger" + > + + + + setOCVisible(false)} + /> + + ) +} + +const Scheduler = () => { + const currentDate = new Date() + const [startDate, setStartDate] = useState(currentDate) + const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) + const [refreshState, setRefreshState] = useState(false) + const taskName = `Scheduled Task ${currentDate.toLocaleString()}` + + const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() + const onSubmit = (values) => { + const unixTime = Math.floor(startDate.getTime() / 1000) + const shippedValues = { + TenantFilter: tenantDomain, + Name: values.taskName, + Command: values.command, + Parameters: values.parameters, + ScheduledTime: unixTime, + Recurrence: values.Recurrence, + PostExecution: { + Webhook: values.webhook, + Email: values.email, + PSA: values.psa, + }, + } + genericPostRequest({ path: '/api/AddScheduledItem', values: shippedValues }).then((res) => { + setRefreshState(res.requestId) + console.log(res.requestId) + }) + } + + const columns = [ + { + name: 'Name', + selector: (row) => row['Name'], + sortable: true, + cell: (row) => CellTip(row['Name']), + exportSelector: 'Name', + }, + { + name: 'Tenant', + selector: (row) => row['Tenant'], + sortable: true, + cell: (row) => CellTip(row['Tenant']), + exportSelector: 'Tenant', + }, + { + name: 'Task State', + selector: (row) => row['TaskState'], + sortable: true, + cell: cellBadgeFormatter(), + exportSelector: 'TaskState', + }, + { + name: 'Command', + selector: (row) => row['Command'], + sortable: true, + cell: (row) => CellTip(row['Command']), + exportSelector: 'Command', + }, + { + name: 'Parameters', + selector: (row) => row['Parameters'], + sortable: true, + cell: (row) => CellTip(row['Parameters']), + exportSelector: 'Parameters', + }, + { + name: 'Scheduled Time', + selector: (row) => row['ScheduledTime'], + sortable: true, + cell: cellDateFormatter({ format: 'relative' }), + exportSelector: 'ScheduledTime', + }, + { + name: 'Last executed time', + selector: (row) => row['ExecutedTime'], + sortable: true, + cell: cellDateFormatter({ format: 'relative' }), + exportSelector: 'ExecutedTime', + }, + { + name: 'Recurrence', + selector: (row) => row['Recurrence'], + sortable: true, + cell: (row) => CellTip(row['Recurrence']), + exportSelector: 'Recurrence', + }, + { + name: 'Sending to', + selector: (row) => row['PostExecution'], + sortable: true, + cell: (row) => CellTip(row['PostExecution']), + exportSelector: 'PostExecution', + }, + { + name: 'Actions', + cell: Offcanvas, + maxWidth: '80px', + }, + ] + return ( + + <> + + + + true} + render={({ handleSubmit, submitting, values }) => { + return ( + + + + + {(props) => } + + + + + + + + + + + setStartDate(date)} + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Add Schedule + {postResults.isFetching && ( + + )} + + + + {postResults.isSuccess && ( + +
  • {postResults.data.Results}
  • +
    + )} +
    + ) + }} + /> +
    +
    + + + +
    + +
    + ) +} + +export default Scheduler From 5ea3937738e255c9872c5758893be18630efb57d Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sun, 24 Sep 2023 02:50:26 +0200 Subject: [PATCH 016/205] added allow initial value for checkboxes so we always send what we need. --- src/components/forms/RFFComponents.js | 3 +- src/views/cipp/Scheduler.js | 73 ++++++++++++++++++++++----- 2 files changed, 61 insertions(+), 15 deletions(-) diff --git a/src/components/forms/RFFComponents.js b/src/components/forms/RFFComponents.js index a360ec2fc49e..9aef7ca81c35 100644 --- a/src/components/forms/RFFComponents.js +++ b/src/components/forms/RFFComponents.js @@ -88,9 +88,10 @@ export const RFFCFormSwitch = ({ className = 'mb-3', validate, disabled = false, + initialValue, }) => { return ( - + {({ meta, input }) => ( { const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) const [refreshState, setRefreshState] = useState(false) const taskName = `Scheduled Task ${currentDate.toLocaleString()}` - + const { data: availableCommands = [], isLoading: isLoadingcmd } = useGenericGetRequestQuery({ + path: 'api/ListFunctionParameters?Module=CIPPCore', + }) const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const onSubmit = (values) => { const unixTime = Math.floor(startDate.getTime() / 1000) @@ -111,7 +118,6 @@ const Scheduler = () => { } genericPostRequest({ path: '/api/AddScheduledItem', values: shippedValues }).then((res) => { setRefreshState(res.requestId) - console.log(res.requestId) }) } @@ -247,22 +253,61 @@ const Scheduler = () => { ({ + value: cmd.Function, + name: cmd.Function, + }))} name="command" - placeholder="Select a command or report to execute." + placeholder={ + isLoadingcmd ? ( + + ) : ( + 'Select a command or report to execute.' + ) + } label="Command to execute" /> - - - + + {(props) => { + const selectedCommand = availableCommands.find( + (cmd) => cmd.Function === props.values.command?.value, + ) + let paramblock = null + if (selectedCommand) { + //if the command parameter type is boolean we use else . + const parameters = selectedCommand.Parameters + if (parameters.length > 0) { + paramblock = parameters.map((param, idx) => ( + + + {param.Type === 'System.Boolean' ? ( + <> + + + + ) : ( + + )} + + + )) + } + } + return paramblock + }} + From d9be03c6642a082013f92496325cdc99b889ede7 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sun, 24 Sep 2023 17:53:04 +0200 Subject: [PATCH 017/205] add advanced filtering. --- src/components/tables/CippTable.js | 59 ++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.js index fa11d257ea78..949bfb167989 100644 --- a/src/components/tables/CippTable.js +++ b/src/components/tables/CippTable.js @@ -199,11 +199,64 @@ export default function CippTable({ } } const [resetPaginationToggle, setResetPaginationToggle] = React.useState(false) - const filteredItems = Array.isArray(data) - ? data.filter( + // Helper function to escape special characters in a string for regex + function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + } + + const filterData = (data, filterText) => { + if (filterText.startsWith('Complex:')) { + const conditions = filterText.slice(9).split(';') + + return conditions.reduce((filteredData, condition) => { + const match = condition.trim().match(/(\w+)\s*(eq|ne|like|notlike|gt|lt)\s*(.+)/) + + if (!match) { + return filteredData // Keep the current filtered data as is + } + + let [property, operator, value] = match.slice(1) + value = escapeRegExp(value) // Escape special characters + + return filteredData.filter((item) => { + // Find the actual key in the item that matches the property (case insensitive) + const actualKey = Object.keys(item).find( + (key) => key.toLowerCase() === property.toLowerCase(), + ) + + if (!actualKey) { + //set the error message so the user understands the key is not found. + console.error(`FilterError: Property "${property}" not found.`) + return false // Keep the item if the property is not found + } else { + } + + switch (operator) { + case 'eq': + return String(item[actualKey]).toLowerCase() === value.toLowerCase() + case 'ne': + return String(item[actualKey]).toLowerCase() !== value.toLowerCase() + case 'like': + return String(item[actualKey]).toLowerCase().includes(value.toLowerCase()) + case 'notlike': + return !String(item[actualKey]).toLowerCase().includes(value.toLowerCase()) + case 'gt': + return parseFloat(item[actualKey]) > parseFloat(value) + case 'lt': + return parseFloat(item[actualKey]) < parseFloat(value) + default: + return true + } + }) + }, data) + } else { + return data.filter( (item) => JSON.stringify(item).toLowerCase().indexOf(filterText.toLowerCase()) !== -1, ) - : [] + } + } + + const filteredItems = Array.isArray(data) ? filterData(data, filterText) : [] const applyFilter = (e) => { setFilterText(e.target.value) From 56bdd1580c014009f3f513976122163f922dcda4 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sun, 24 Sep 2023 22:20:57 +0200 Subject: [PATCH 018/205] added exclude onmicrosoft --- src/views/tenant/standards/DomainsAnalyser.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/views/tenant/standards/DomainsAnalyser.js b/src/views/tenant/standards/DomainsAnalyser.js index 6b8bd505d756..a92501851bec 100644 --- a/src/views/tenant/standards/DomainsAnalyser.js +++ b/src/views/tenant/standards/DomainsAnalyser.js @@ -274,6 +274,12 @@ const DomainsAnalyser = () => { tenantSelector={true} showAllTenantSelector={true} datatable={{ + filterlist: [ + { + filterName: 'Exclude onmicrosoft domains', + filter: 'Complex: domain notlike onmicrosoft', + }, + ], path: `/api/DomainAnalyser_List`, params: { tenantFilter: currentTenant.defaultDomainName }, columns, From 303c3b77a493a1244e3d159682647857b63d6cef Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sun, 24 Sep 2023 18:25:16 -0400 Subject: [PATCH 019/205] Scheduler: Update text and filters --- src/views/cipp/Scheduler.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/views/cipp/Scheduler.js b/src/views/cipp/Scheduler.js index 6b209b06d58d..8483c2c477b2 100644 --- a/src/views/cipp/Scheduler.js +++ b/src/views/cipp/Scheduler.js @@ -358,17 +358,19 @@ const Scheduler = () => { label: 'Delete task', modal: true, modalUrl: `/api/RemoveScheduledItem?&ID=!RowKey`, - modalMessage: 'Are you sure you want to exclude these tenants?', + modalMessage: 'Do you want to delete this job?', }, ], }, filterlist: [ - { filterName: 'Excluded Tenants', filter: '"Excluded":true' }, - { filterName: 'Included Tenants', filter: '"Excluded":false' }, + { filterName: 'Planned Jobs', filter: 'Complex: TaskState eq Planned' }, + { filterName: 'Completed Jobs', filter: 'Complex: TaskState eq Completed' }, + { filterName: 'Recurring Jobs', filter: 'Complex: Recurrence gt 0' }, + { filterName: 'One-time Jobs', filter: 'Complex: Recurrence eq 0' }, ], keyField: 'id', columns, - reportName: `Tenants-List`, + reportName: `Scheduled-Jobs`, path: `/api/ListScheduledItems?RefreshGuid=${refreshState}`, }} /> From 6924f35956162140f8d19c80187958052ccbba13 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sun, 24 Sep 2023 22:25:37 -0400 Subject: [PATCH 020/205] CippTable - Graph filter rewrite - Remove graphFilter property from filter lists - Add debounce handler for delayed input changes - Update preset graph filters to new format - Move errors to CCallout and continue to render table --- src/components/tables/CippTable.js | 173 ++++++++---------- src/views/identity/administration/Users.js | 6 +- .../administration/ListEnterpriseApps.js | 8 +- .../administration/ListGDAPRelationships.js | 2 +- 4 files changed, 84 insertions(+), 105 deletions(-) diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.js index 949bfb167989..3bc66a7a0547 100644 --- a/src/components/tables/CippTable.js +++ b/src/components/tables/CippTable.js @@ -1,4 +1,4 @@ -import React, { useRef } from 'react' +import React, { useRef, useMemo, useState } from 'react' import { useSelector } from 'react-redux' import { ExportCsvButton, ExportPDFButton } from 'src/components/buttons' import { @@ -25,16 +25,9 @@ import { cellGenericFormatter } from './CellGenericFormat' import { ModalService } from '../utilities' import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app' import { ConfirmModal } from '../utilities/SharedModal' -import { useState } from 'react' +import { debounce } from 'lodash' -const FilterComponent = ({ - filterText, - onFilter, - onClear, - filterlist, - onFilterPreset, - onFilterGraph, -}) => ( +const FilterComponent = ({ filterText, onFilter, onClear, filterlist, onFilterPreset }) => ( <> @@ -50,26 +43,17 @@ const FilterComponent = ({ { onFilterPreset('') - onFilterGraph('') }} > Clear Filter {filterlist && filterlist.map((item, idx) => { - if (item.hasOwnProperty('graphFilter') && item.graphFilter == true) { - return ( - onFilterGraph(item.filter)}> - {item.filterName} - - ) - } else { - return ( - onFilterPreset(item.filter)}> - {item.filterName} - - ) - } + return ( + onFilterPreset(item.filter)}> + {item.filterName} + + ) })} @@ -93,7 +77,6 @@ FilterComponent.propTypes = { onClear: PropTypes.func, filterlist: PropTypes.arrayOf(PropTypes.object), onFilterPreset: PropTypes.func, - onFilterGraph: PropTypes.func, } const customSort = (rows, selector, direction) => { @@ -204,8 +187,23 @@ export default function CippTable({ return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') } + const setGraphFilter = (e) => { + if (graphFilterFunction) { + graphFilterFunction(e) + console.log(e) + } + } + + const debounceSetGraphFilter = useMemo(() => { + return debounce(setGraphFilter, 1000) + }, []) + const filterData = (data, filterText) => { - if (filterText.startsWith('Complex:')) { + if (filterText.startsWith('Graph:')) { + var query = filterText.slice(6).trim() + debounceSetGraphFilter(query) + return data + } else if (filterText.startsWith('Complex:')) { const conditions = filterText.slice(9).split(';') return conditions.reduce((filteredData, condition) => { @@ -262,12 +260,6 @@ export default function CippTable({ setFilterText(e.target.value) } - const setGraphFilter = (e) => { - if (graphFilterFunction) { - graphFilterFunction(e) - } - } - useEffect(() => { if (columns !== updatedColumns) { setUpdatedColumns(columns) @@ -592,11 +584,6 @@ export default function CippTable({ onFilter={(e) => setFilterText(e.target.value)} onFilterPreset={(e) => { setFilterText(e) - setGraphFilter('') - }} - onFilterGraph={(e) => { - setFilterText('') - setGraphFilter(e) }} onClear={handleClear} filterText={filterText} @@ -620,65 +607,61 @@ export default function CippTable({ const tablePageSize = useSelector((state) => state.app.tablePageSize) return (
    - {!isFetching && error && Error loading data} - {!error && ( -
    - {(columns.length === updatedColumns.length || !dynamicColumns) && ( - <> - {(massResults.length >= 1 || loopRunning) && ( - - {massResults.map((message, idx) => { - const results = message.data?.Results - const displayResults = Array.isArray(results) ? results.join(', ') : results + {!isFetching && error && Error loading data} +
    + {(columns.length === updatedColumns.length || !dynamicColumns) && ( + <> + {(massResults.length >= 1 || loopRunning) && ( + + {massResults.map((message, idx) => { + const results = message.data?.Results + const displayResults = Array.isArray(results) ? results.join(', ') : results - return
  • {displayResults}
  • - })} - {loopRunning && ( -
  • - -
  • - )} -
    - )} - } - paginationRowsPerPageOptions={[25, 50, 100, 200, 500]} - {...rest} - /> - {selectedRows.length >= 1 && ( - Selected {selectedRows.length} items - )} - - )} -
    - )} + return
  • {displayResults}
  • + })} + {loopRunning && ( +
  • + +
  • + )} +
    + )} + } + paginationRowsPerPageOptions={[25, 50, 100, 200, 500]} + {...rest} + /> + {selectedRows.length >= 1 && Selected {selectedRows.length} items} + + )} +
    ) } diff --git a/src/views/identity/administration/Users.js b/src/views/identity/administration/Users.js index 928853445e6a..bd3df44d1aa4 100644 --- a/src/views/identity/administration/Users.js +++ b/src/views/identity/administration/Users.js @@ -356,13 +356,11 @@ const Users = (row) => { { filterName: 'Users without a license', filter: '"assignedLicenses":[]' }, { filterName: 'Users with a license (Graph)', - filter: 'assignedLicenses/$count ne 0', - graphFilter: true, + filter: 'Graph: assignedLicenses/$count ne 0', }, { filterName: 'Users with a license & Enabled (Graph)', - filter: 'assignedLicenses/$count ne 0 and accountEnabled eq true', - graphFilter: true, + filter: 'Graph: assignedLicenses/$count ne 0 and accountEnabled eq true', }, ], columns, diff --git a/src/views/tenant/administration/ListEnterpriseApps.js b/src/views/tenant/administration/ListEnterpriseApps.js index 8e1a3bfa9b01..d6ae08d59059 100644 --- a/src/views/tenant/administration/ListEnterpriseApps.js +++ b/src/views/tenant/administration/ListEnterpriseApps.js @@ -75,7 +75,6 @@ const EnterpriseApplications = () => { selector: (row) => row.homepage, sortable: true, exportSelector: 'homepage', - cell: cellDateFormatter({ format: 'short' }), }, ] return ( @@ -88,13 +87,12 @@ const EnterpriseApplications = () => { filterlist: [ { filterName: 'All Enterprise Apps', - filter: "tags/any(t:t eq 'WindowsAzureActiveDirectoryIntegratedApp')", - graphFilter: true, + filter: "Graph: tags/any(t:t eq 'WindowsAzureActiveDirectoryIntegratedApp')", }, { filterName: 'Enterprise Apps (SAML)', - filter: "tags/any(t:t eq 'WindowsAzureActiveDirectoryGalleryApplicationPrimaryV1')", - graphFilter: true, + filter: + "Graph: tags/any(t:t eq 'WindowsAzureActiveDirectoryGalleryApplicationPrimaryV1')", }, ], tableProps: { diff --git a/src/views/tenant/administration/ListGDAPRelationships.js b/src/views/tenant/administration/ListGDAPRelationships.js index 8efe4f6795ee..a5703bd84b22 100644 --- a/src/views/tenant/administration/ListGDAPRelationships.js +++ b/src/views/tenant/administration/ListGDAPRelationships.js @@ -68,7 +68,7 @@ const Actions = (row, rowIndex, formatExtraData) => { }) const tenant = useSelector((state) => state.app.currentTenant) - row?.accessDetails.unifiedRoles.map((role) => { + row?.accessDetails?.unifiedRoles?.map((role) => { for (var x = 0; x < GDAPRoles.length; x++) { if (GDAPRoles[x].ObjectId == role.roleDefinitionId) { extendedInfo.push({ From 8fd42f373d638c909f703fdd1ad3ec77aa7900b9 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 25 Sep 2023 12:31:19 +0200 Subject: [PATCH 021/205] text fix --- src/views/email-exchange/spamfilter/DeploySpamfilter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/email-exchange/spamfilter/DeploySpamfilter.js b/src/views/email-exchange/spamfilter/DeploySpamfilter.js index 8c3a470efb20..f798ebf48003 100644 --- a/src/views/email-exchange/spamfilter/DeploySpamfilter.js +++ b/src/views/email-exchange/spamfilter/DeploySpamfilter.js @@ -140,7 +140,7 @@ const SpamFilterAdd = () => { Date: Mon, 25 Sep 2023 13:34:19 +0200 Subject: [PATCH 022/205] added TableFilter option via url --- src/components/tables/CippTable.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.js index 3bc66a7a0547..fc09031e33be 100644 --- a/src/components/tables/CippTable.js +++ b/src/components/tables/CippTable.js @@ -1,4 +1,4 @@ -import React, { useRef, useMemo, useState } from 'react' +import React, { useRef, useMemo, useState, useCallback } from 'react' import { useSelector } from 'react-redux' import { ExportCsvButton, ExportPDFButton } from 'src/components/buttons' import { @@ -26,6 +26,7 @@ import { ModalService } from '../utilities' import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app' import { ConfirmModal } from '../utilities/SharedModal' import { debounce } from 'lodash' +import { useSearchParams } from 'react-router-dom' const FilterComponent = ({ filterText, onFilter, onClear, filterlist, onFilterPreset }) => ( <> @@ -137,12 +138,20 @@ export default function CippTable({ const [loopRunning, setLoopRunning] = React.useState(false) const [massResults, setMassResults] = React.useState([]) const [filterText, setFilterText] = React.useState('') + const [filterviaURL, setFilterviaURL] = React.useState(false) const [updatedColumns, setUpdatedColumns] = React.useState(columns) const [selectedRows, setSelectedRows] = React.useState(false) const [genericGetRequest, getResults] = useLazyGenericGetRequestQuery() const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const [getDrowndownInfo, dropDownInfo] = useLazyGenericGetRequestQuery() const [modalContent, setModalContent] = useState(null) + //get the search params called "tableFilter" and set the filter to that. + const [searchParams, setSearchParams] = useSearchParams() + if (searchParams.get('tableFilter') && !filterviaURL) { + setFilterText(searchParams.get('tableFilter')) + setFilterviaURL(true) + } + useEffect(() => { if (dropDownInfo.isFetching) { handleModal( @@ -198,7 +207,20 @@ export default function CippTable({ return debounce(setGraphFilter, 1000) }, []) + const debounceSetSearchParams = useCallback(() => { + const currentUrl = new URL(window.location.href) + if (filterText !== '') { + currentUrl.searchParams.set('tableFilter', filterText) + window.history.replaceState({}, '', currentUrl.toString()) + } else { + currentUrl.searchParams.delete('tableFilter') + window.history.replaceState({}, '', currentUrl.toString()) + } + }, [filterText]) + const filterData = (data, filterText) => { + const debouncedSetSearchParams = debounce(debounceSetSearchParams, 1000) + debouncedSetSearchParams() if (filterText.startsWith('Graph:')) { var query = filterText.slice(6).trim() debounceSetGraphFilter(query) From 48b9ab63f1fe76a26b17ebf5df4939e98c1915bb Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 25 Sep 2023 13:41:22 +0200 Subject: [PATCH 023/205] added tableFilter Urls --- src/views/home/Home.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/home/Home.js b/src/views/home/Home.js index d1334e1372c9..04fdd9d5cefa 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -175,7 +175,7 @@ const Home = () => { href={ '/identity/administration/users?customerId=' + currentTenant.customerId + - '&filterName=Users with a license' + '&tableFilter=Graph%3A+assignedLicenses%2F%24count+ne+0' } class="stretched-link" > @@ -206,7 +206,7 @@ const Home = () => { href={ '/identity/administration/users?customerId=' + currentTenant.customerId + - '&filterName=Guest users' + '&tableFilter=Graph%3A+usertype+eq+%27guest%27' } class="stretched-link" > From d7c7c545544389ec19b8f96dfaf8fd840b260a90 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 25 Sep 2023 14:01:00 +0200 Subject: [PATCH 024/205] use links instead of a's for internal routing --- src/views/home/Home.js | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/views/home/Home.js b/src/views/home/Home.js index 04fdd9d5cefa..1473119811aa 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -28,6 +28,7 @@ import ReactTimeAgo from 'react-time-ago' import { CellDelegatedPrivilege } from 'src/components/tables/CellDelegatedPrivilege' import Portals from 'src/data/portals' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { Link } from 'react-router-dom' const Home = () => { const [visible, setVisible] = useState(false) @@ -160,10 +161,10 @@ const Home = () => { - +
    {issuccessUserCounts && !isFetchingUserCount ? dashboard?.Users : }
    @@ -171,14 +172,14 @@ const Home = () => {
    - + className="stretched-link" + />
    {issuccessUserCounts && !isFetchingUserCount ? dashboard?.LicUsers : }
    @@ -186,15 +187,15 @@ const Home = () => {
    - + />
    {issuccessUserCounts && !isFetchingUserCount ? dashboard?.Gas : }
    @@ -202,14 +203,14 @@ const Home = () => {
    - + className="stretched-link" + />
    {issuccessUserCounts && !isFetchingUserCount ? dashboard?.Guests : }
    From e93d8159643d8daaed3fa2a6ff97d9eef5b65ae1 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 25 Sep 2023 15:50:33 +0200 Subject: [PATCH 025/205] version up --- public/version_latest.txt | 2 +- version_latest.txt | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 version_latest.txt diff --git a/public/version_latest.txt b/public/version_latest.txt index d87edbfc1069..81911389142b 100644 --- a/public/version_latest.txt +++ b/public/version_latest.txt @@ -1 +1 @@ -4.2.1 \ No newline at end of file +4.3.0 \ No newline at end of file diff --git a/version_latest.txt b/version_latest.txt deleted file mode 100644 index d87edbfc1069..000000000000 --- a/version_latest.txt +++ /dev/null @@ -1 +0,0 @@ -4.2.1 \ No newline at end of file From 0997ef73177cb05bdd544da0a4b93d58c1c85642 Mon Sep 17 00:00:00 2001 From: Roel van der Wegen Date: Mon, 25 Sep 2023 16:11:22 +0100 Subject: [PATCH 026/205] Wording --- src/data/Extensions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/Extensions.json b/src/data/Extensions.json index cb15aa1043e8..3c1a1e7f1cd8 100644 --- a/src/data/Extensions.json +++ b/src/data/Extensions.json @@ -4,7 +4,7 @@ "type": "CIPP-API", "cat": "API", "forceSyncButton": false, - "helpText": "This integration allows you to use to enable API access outside of CIPP usage. Requires Global Administrator permissions inside your tenant for activation of the API. These credentials will only be shown once.", + "helpText": "This integration allows you to enable CIPP-API access outside of CIPP. Requires Global Administrator permissions inside your tenant for activation of the API. The API credentials will only be shown once.", "SettingOptions": [ { "type": "checkbox", From ff7450360418717a490987cb794e47cf94cded1b Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Tue, 26 Sep 2023 02:00:16 +0200 Subject: [PATCH 027/205] fixed issue with mass deletes webhooks --- src/views/tenant/administration/ListAlertsQueue.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/tenant/administration/ListAlertsQueue.js b/src/views/tenant/administration/ListAlertsQueue.js index d1da4bb53479..720e55a2fcc3 100644 --- a/src/views/tenant/administration/ListAlertsQueue.js +++ b/src/views/tenant/administration/ListAlertsQueue.js @@ -286,7 +286,7 @@ const ListAlertsQueue = () => { label: 'Delete webhook', color: 'info', modal: true, - modalUrl: `/api/RemoveWebhookAlert?CIPPID=!CIPPID&tenantfilter=!tenantName`, + modalUrl: `/api/RemoveWebhookAlert?CIPPID=!RowKey&tenantfilter=!PartitionKey`, modalMessage: 'Are you sure you want to delete this webhook alert?', }, ], From dc29bfcdac246b10f3583349bfe6b4132c82d4f1 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Mon, 25 Sep 2023 22:10:43 -0400 Subject: [PATCH 028/205] Prevent table re-render on queued results --- src/components/tables/CippDatatable.js | 31 ++++++++------------------ 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/src/components/tables/CippDatatable.js b/src/components/tables/CippDatatable.js index d41dc8e342ed..3c75376985f5 100644 --- a/src/components/tables/CippDatatable.js +++ b/src/components/tables/CippDatatable.js @@ -15,28 +15,15 @@ export default function CippDatatable({ path, params, ...rest }) { } = useListDatatableQuery({ path, params: { refreshGuid, $filter: graphFilter, ...params } }) return ( <> - {data[0]?.Queued ? ( - <> - {data[0]?.QueueMessage} - - - ) : ( - - )} + {data[0]?.Queued && {data[0]?.QueueMessage}} + ) } From e40eea1b8f054ae3142089d70c5346143c005420 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Mon, 25 Sep 2023 23:55:05 -0400 Subject: [PATCH 029/205] CippTable tweaks - Add defaultFilterText - Set initial graph filter from CippDatatable to default filter text - Add isModal - disable search param update --- src/components/tables/CippDatatable.js | 7 +++++++ src/components/tables/CippTable.js | 12 ++++++++---- src/components/utilities/SharedModal.js | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/components/tables/CippDatatable.js b/src/components/tables/CippDatatable.js index 3c75376985f5..335af6f33541 100644 --- a/src/components/tables/CippDatatable.js +++ b/src/components/tables/CippDatatable.js @@ -13,6 +13,12 @@ export default function CippDatatable({ path, params, ...rest }) { isFetching, error, } = useListDatatableQuery({ path, params: { refreshGuid, $filter: graphFilter, ...params } }) + + var defaultFilterText = '' + if (params?.Parameters?.$filter) { + defaultFilterText = 'Graph: ' + params?.Parameters?.$filter + console.log(defaultFilterText) + } return ( <> {data[0]?.Queued && {data[0]?.QueueMessage}} @@ -21,6 +27,7 @@ export default function CippDatatable({ path, params, ...rest }) { data={data[0]?.Queued ? [] : data} isFetching={isFetching} error={error} + defaultFilterText={defaultFilterText} refreshFunction={setRefreshGuid} graphFilterFunction={setGraphFilter} /> diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.js index fc09031e33be..288685f43f1a 100644 --- a/src/components/tables/CippTable.js +++ b/src/components/tables/CippTable.js @@ -111,6 +111,8 @@ export default function CippTable({ graphFilterFunction = null, columns = [], dynamicColumns = true, + defaultFilterText = '', + isModal = false, filterlist, tableProps: { keyField = 'id', @@ -137,7 +139,7 @@ export default function CippTable({ const inputRef = useRef('') const [loopRunning, setLoopRunning] = React.useState(false) const [massResults, setMassResults] = React.useState([]) - const [filterText, setFilterText] = React.useState('') + const [filterText, setFilterText] = React.useState(defaultFilterText) const [filterviaURL, setFilterviaURL] = React.useState(false) const [updatedColumns, setUpdatedColumns] = React.useState(columns) const [selectedRows, setSelectedRows] = React.useState(false) @@ -147,7 +149,7 @@ export default function CippTable({ const [modalContent, setModalContent] = useState(null) //get the search params called "tableFilter" and set the filter to that. const [searchParams, setSearchParams] = useSearchParams() - if (searchParams.get('tableFilter') && !filterviaURL) { + if (searchParams.get('tableFilter') && !filterviaURL && !isModal) { setFilterText(searchParams.get('tableFilter')) setFilterviaURL(true) } @@ -219,8 +221,10 @@ export default function CippTable({ }, [filterText]) const filterData = (data, filterText) => { - const debouncedSetSearchParams = debounce(debounceSetSearchParams, 1000) - debouncedSetSearchParams() + if (!isModal) { + const debouncedSetSearchParams = debounce(debounceSetSearchParams, 1000) + debouncedSetSearchParams() + } if (filterText.startsWith('Graph:')) { var query = filterText.slice(6).trim() debounceSetGraphFilter(query) diff --git a/src/components/utilities/SharedModal.js b/src/components/utilities/SharedModal.js index 47fb57f2f547..4975c0cc17f6 100644 --- a/src/components/utilities/SharedModal.js +++ b/src/components/utilities/SharedModal.js @@ -13,7 +13,7 @@ import { CippTable } from 'src/components/tables' function mapBodyComponent({ componentType, data, componentProps }) { switch (componentType) { case 'table': - return + return case 'list': return
    {Array.isArray(data) && data.map((el, idx) =>
    {el}
    )}
    case 'text': From 3d053b13a84d131a0b612dc565230dd7502467af Mon Sep 17 00:00:00 2001 From: John Duprey Date: Mon, 25 Sep 2023 23:56:20 -0400 Subject: [PATCH 030/205] Update CippDatatable.js --- src/components/tables/CippDatatable.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/tables/CippDatatable.js b/src/components/tables/CippDatatable.js index 335af6f33541..e36befb3dea3 100644 --- a/src/components/tables/CippDatatable.js +++ b/src/components/tables/CippDatatable.js @@ -17,7 +17,6 @@ export default function CippDatatable({ path, params, ...rest }) { var defaultFilterText = '' if (params?.Parameters?.$filter) { defaultFilterText = 'Graph: ' + params?.Parameters?.$filter - console.log(defaultFilterText) } return ( <> From ab8bb402f0230b00e28438df1f8dc920244c286d Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Tue, 26 Sep 2023 13:07:51 +0200 Subject: [PATCH 031/205] hotfix --- public/version_latest.txt | 2 +- version_latest.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 version_latest.txt diff --git a/public/version_latest.txt b/public/version_latest.txt index 81911389142b..ecedc98d1d5a 100644 --- a/public/version_latest.txt +++ b/public/version_latest.txt @@ -1 +1 @@ -4.3.0 \ No newline at end of file +4.3.1 \ No newline at end of file diff --git a/version_latest.txt b/version_latest.txt new file mode 100644 index 000000000000..ecedc98d1d5a --- /dev/null +++ b/version_latest.txt @@ -0,0 +1 @@ +4.3.1 \ No newline at end of file From a28bc053a994bf1986c46ce6d7e52add2d332da1 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Tue, 26 Sep 2023 18:16:59 +0200 Subject: [PATCH 032/205] fixes data not available bug --- src/views/cipp/CIPPSettings.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 00deb2d85098..7ba3cb285ad7 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -1577,8 +1577,8 @@ const ExtensionsTab = () => { } const MappingsTab = () => { - const [listHaloBackend, listBackendHaloResult] = useLazyGenericGetRequestQuery() - const [setHaloExtensionconfig, extensionHaloConfigResult] = useLazyGenericPostRequestQuery() + const [listHaloBackend, listBackendHaloResult = []] = useLazyGenericGetRequestQuery() + const [setHaloExtensionconfig, extensionHaloConfigResult = []] = useLazyGenericPostRequestQuery() const onHaloSubmit = (values) => { setHaloExtensionconfig({ @@ -1608,7 +1608,7 @@ const MappingsTab = () => { Use the table below to map your client to the correct PSA client {listBackendHaloResult.isSuccess && - listBackendHaloResult.data.Tenants.map((tenant) => ( + listBackendHaloResult.data.Tenants?.map((tenant) => ( Date: Tue, 26 Sep 2023 18:24:02 +0200 Subject: [PATCH 033/205] add refresh to groups --- src/views/identity/administration/EditGroup.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/views/identity/administration/EditGroup.js b/src/views/identity/administration/EditGroup.js index 9ea8160b396a..1c9e2d44d187 100644 --- a/src/views/identity/administration/EditGroup.js +++ b/src/views/identity/administration/EditGroup.js @@ -32,9 +32,8 @@ const EditGroup = () => { let query = useQuery() const groupId = query.get('groupId') const tenantDomain = query.get('tenantDomain') - const [queryError, setQueryError] = useState(false) - + const [refreshToken, setRefresh] = useState('') const { data: group = {}, isFetching, @@ -47,14 +46,14 @@ const EditGroup = () => { isFetching: membersisFetching, error: membersError, isSuccess: membersIsSuccess, - } = useListGroupMembersQuery({ tenantDomain, groupId }) + } = useListGroupMembersQuery({ tenantDomain, groupId, refreshToken }) const { data: owners = [], isFetching: ownersisFetching, error: ownersError, isSuccess: ownersIsSuccess, - } = useListGroupOwnersQuery({ tenantDomain, groupId }) + } = useListGroupOwnersQuery({ tenantDomain, groupId, refreshToken }) const { data: users = [], isFetching: usersIsFetching, @@ -66,6 +65,7 @@ const EditGroup = () => { isFetching: contactsIsFetching, error: contactsError, } = useListContactsQuery({ tenantDomain }) + const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const [roleInfo, setroleInfo] = React.useState([]) useEffect(() => { @@ -86,7 +86,7 @@ const EditGroup = () => { }) setroleInfo(ownerWithRole.concat(memberwithRole)) } - }, [owners, members, ownersIsSuccess, membersIsSuccess]) + }, [owners, members, ownersIsSuccess, membersIsSuccess, postResults]) useEffect(() => { if (!groupId || !tenantDomain) { @@ -97,7 +97,6 @@ const EditGroup = () => { setQueryError(true) } }, [groupId, tenantDomain, dispatch]) - const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const onSubmit = (values) => { const shippedValues = { tenantID: tenantDomain, @@ -114,7 +113,9 @@ const EditGroup = () => { mail: group[0].mail, } //window.alert(JSON.stringify(shippedValues)) - genericPostRequest({ path: '/api/EditGroup', values: shippedValues }) + genericPostRequest({ path: '/api/EditGroup', values: shippedValues }).then((res) => { + setRefresh(postResults.requestId) + }) } const tableColumns = [ { From 72be80f363dd0260366df1edbefe576d8729285d Mon Sep 17 00:00:00 2001 From: Jr7468 <126574444+Jr7468@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:50:33 +0100 Subject: [PATCH 034/205] Shipped groupName --- src/views/identity/administration/EditGroup.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/identity/administration/EditGroup.js b/src/views/identity/administration/EditGroup.js index 1c9e2d44d187..928962af5b83 100644 --- a/src/views/identity/administration/EditGroup.js +++ b/src/views/identity/administration/EditGroup.js @@ -111,6 +111,7 @@ const EditGroup = () => { allowExternal: values.allowExternal, sendCopies: values.sendCopies, mail: group[0].mail, + groupName: group[0].DisplayName, } //window.alert(JSON.stringify(shippedValues)) genericPostRequest({ path: '/api/EditGroup', values: shippedValues }).then((res) => { From 8ad810204032521eb27ca9419dbdda62189ddf0d Mon Sep 17 00:00:00 2001 From: Jr7468 Date: Wed, 27 Sep 2023 18:25:03 +0100 Subject: [PATCH 035/205] Changed MFARergister OC to point to the Entra page --- src/views/identity/administration/Users.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/views/identity/administration/Users.js b/src/views/identity/administration/Users.js index bd3df44d1aa4..60262c606bd6 100644 --- a/src/views/identity/administration/Users.js +++ b/src/views/identity/administration/Users.js @@ -17,6 +17,7 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { const viewLink = `/identity/administration/users/view?userId=${row.id}&tenantDomain=${tenant.defaultDomainName}&userEmail=${row.userPrincipalName}` const editLink = `/identity/administration/users/edit?userId=${row.id}&tenantDomain=${tenant.defaultDomainName}` const OffboardLink = `/identity/administration/offboarding-wizard?userId=${row.id}&tenantDomain=${tenant.defaultDomainName}` + const userEntraLink = `https://entra.microsoft.com/${tenant.defaultDomainName}/#view/Microsoft_AAD_UsersAndTenants/UserProfileMenuBlade/~/overview/userId/${row.id}//hidePreviewBanner~/true` let licenses = [] row.assignedLicenses?.map((licenseAssignment, idx) => { @@ -94,10 +95,8 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { }, { label: 'Rerequire MFA registration', - color: 'info', - modal: true, - modalUrl: `/api/ExecResetMFA?TenantFilter=${tenant.defaultDomainName}&ID=${row.id}`, - modalMessage: 'Are you sure you want to enable MFA for this user?', + link: userEntraLink, + color: `info`, }, { label: 'Send MFA Push', From f876f70ba7c52689d86d55556460a4ce88e13e4f Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 28 Sep 2023 01:12:33 +0200 Subject: [PATCH 036/205] new profile --- src/_nav.js | 17 +- src/components/layout/AppHeader.js | 40 +++- src/components/utilities/CippProfile.js | 1 - src/components/utilities/PageSizeSwitcher.js | 11 +- src/components/utilities/ReportImage.js | 34 ++-- .../utilities/TenantListSelector.js | 14 +- src/components/utilities/ThemeSwitcher.js | 11 +- src/components/utilities/UsageLocation.js | 8 +- src/routes.js | 4 + src/scss/_custom.scss | 12 ++ src/views/cipp/UserSettings.js | 177 ++++++++++++++++++ 11 files changed, 282 insertions(+), 47 deletions(-) create mode 100644 src/views/cipp/UserSettings.js diff --git a/src/_nav.js b/src/_nav.js index c243b18c4e12..683cd830fdaa 100644 --- a/src/_nav.js +++ b/src/_nav.js @@ -660,9 +660,14 @@ const _nav = [ items: [ { component: CNavItem, - name: 'Settings', + name: 'Application Settings', to: '/cipp/settings', }, + { + component: CNavItem, + name: 'User Settings', + to: '/cipp/user-settings', + }, { component: CNavItem, name: 'Scheduler', @@ -670,14 +675,14 @@ const _nav = [ }, { component: CNavItem, - name: 'SAM Setup Wizard', - to: '/cipp/setup', + name: 'Logbook', + to: '/cipp/logs', }, + { component: CNavItem, - name: 'Documentation', - href: 'https://cipp.app', - target: '_blank', + name: 'SAM Setup Wizard', + to: '/cipp/setup', }, ], }, diff --git a/src/components/layout/AppHeader.js b/src/components/layout/AppHeader.js index 0bc158732883..10f0ea74dc3c 100644 --- a/src/components/layout/AppHeader.js +++ b/src/components/layout/AppHeader.js @@ -12,6 +12,7 @@ import { CImage, CSidebarBrand, CButton, + CFormSwitch, } from '@coreui/react' import { AppHeaderDropdown, AppHeaderSearch } from 'src/components/header' import { TenantSelector } from '../utilities' @@ -20,11 +21,12 @@ import cyberdrainlogodark from 'src/assets/images/CIPP_Dark.png' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faCaretSquareLeft, faCaretSquareRight } from '@fortawesome/free-solid-svg-icons' -import { toggleSidebarShow } from 'src/store/features/app' +import { setCurrentTheme, toggleSidebarShow } from 'src/store/features/app' import { useMediaPredicate } from 'react-media-hook' import { useLoadAlertsDashQuery } from 'src/store/api/app' import { Link } from 'react-router-dom' import { useLocation } from 'react-router-dom' +import { RFFCFormCheck } from '../forms' const AppHeader = () => { const dispatch = useDispatch() @@ -33,6 +35,19 @@ const AppHeader = () => { const currentTheme = useSelector((state) => state.app.currentTheme) const preferredTheme = useMediaPredicate('(prefers-color-scheme: dark)') ? 'impact' : 'cyberdrain' const { data: dashboard } = useLoadAlertsDashQuery() + const SwitchTheme = () => { + let targetTheme = preferredTheme + if (currentTheme === 'impact') { + targetTheme = 'cyberdrain' + } else { + targetTheme = 'impact' + } + document.body.classList = [] + document.body.classList.add(`theme-${targetTheme}`) + document.body.dataset.theme = targetTheme + + dispatch(setCurrentTheme({ theme: targetTheme })) + } return ( <> @@ -76,7 +91,28 @@ const AppHeader = () => { - +
    + + {currentTheme === 'impact' ? ( + + ) : ( + + )} +
    diff --git a/src/components/utilities/CippProfile.js b/src/components/utilities/CippProfile.js index e033bc568df9..7b559bc08289 100644 --- a/src/components/utilities/CippProfile.js +++ b/src/components/utilities/CippProfile.js @@ -16,7 +16,6 @@ import TenantListSelector from './TenantListSelector' const CippProfile = () => { const { data: profile, isFetching, isLoading } = useLoadClientPrincipalQuery() - return ( <> diff --git a/src/components/utilities/PageSizeSwitcher.js b/src/components/utilities/PageSizeSwitcher.js index f3d10641e81b..acef59d16ab6 100644 --- a/src/components/utilities/PageSizeSwitcher.js +++ b/src/components/utilities/PageSizeSwitcher.js @@ -13,21 +13,22 @@ const PageSizeSwitcher = () => { } return ( - - Select Default Page Size + <> +

    + Default page size +

    {pageSizes.map((tablePageSize, index) => ( SwitchPageSize(tablePageSize)} - active={tablePageSize === currentTablePageSize ? true : false} - color="secondary" + color={tablePageSize === currentTablePageSize ? 'primary' : 'secondary'} key={index} > {tablePageSize} ))} -
    + ) } diff --git a/src/components/utilities/ReportImage.js b/src/components/utilities/ReportImage.js index d5aead2b9069..800110e22930 100644 --- a/src/components/utilities/ReportImage.js +++ b/src/components/utilities/ReportImage.js @@ -19,9 +19,8 @@ const ReportImage = () => { } return ( - - Upload a default report image - +
    +
    { id="contained-button-file" onChange={(e) => Switchusage(e)} /> -
    - Suggested image size: 120x100. This is a per user setting.

    - inputRef.current.click()} - className="me-2" - > - Upload File - -

    - -
    - - +

    Select a report image. This image has a size of 120x100 and can be up to 64KB.

    + inputRef.current.click()} + className="me-2" + > + Upload new image + +
    +
    + +
    +
    ) } diff --git a/src/components/utilities/TenantListSelector.js b/src/components/utilities/TenantListSelector.js index 94eba4c0bfdc..d5a247ea1b7d 100644 --- a/src/components/utilities/TenantListSelector.js +++ b/src/components/utilities/TenantListSelector.js @@ -12,25 +12,25 @@ const TenantListSelector = () => { } return ( - - Select default Tenant List + <> +

    + Tenant overview page +

    SwitchPageSize(true)} - active={TenantListSelector ? true : false} - color="secondary" + color={TenantListSelector ? 'primary' : 'secondary'} > Compressed SwitchPageSize(false)} - active={TenantListSelector ? false : true} - color="secondary" + color={TenantListSelector ? 'secondary' : 'primary'} > Full list -
    + ) } diff --git a/src/components/utilities/ThemeSwitcher.js b/src/components/utilities/ThemeSwitcher.js index baf69b76c362..012694f0ed8a 100644 --- a/src/components/utilities/ThemeSwitcher.js +++ b/src/components/utilities/ThemeSwitcher.js @@ -43,14 +43,15 @@ const ThemeSwitcher = () => { } return ( - - Select Theme + <> +

    + Theme +

    {themes.map((theme, index) => ( SwitchTheme(theme)} - active={theme === currentTheme ? true : false} - color="secondary" + color={theme === currentTheme ? 'primary' : 'secondary'} key={index} title={themeInfo(theme).description} > @@ -58,7 +59,7 @@ const ThemeSwitcher = () => { ))} -
    + ) } diff --git a/src/components/utilities/UsageLocation.js b/src/components/utilities/UsageLocation.js index 10ac692681ec..7996611baea1 100644 --- a/src/components/utilities/UsageLocation.js +++ b/src/components/utilities/UsageLocation.js @@ -13,8 +13,10 @@ const UsageLocation = () => { } return ( - - Select default usage location + <> +

    + Default Usage Location +

    { id="contained-button-file" onChange={(e) => Switchusage(e)} /> -

    Select a report image. This image has a size of 120x100 and can be up to 64KB.

    - inputRef.current.click()} - className="me-2" - > - Upload new image - -
    -
    -
    ) diff --git a/src/components/utilities/TenantListSelector.js b/src/components/utilities/TenantListSelector.js index d5a247ea1b7d..5fc6e4f088e8 100644 --- a/src/components/utilities/TenantListSelector.js +++ b/src/components/utilities/TenantListSelector.js @@ -14,7 +14,7 @@ const TenantListSelector = () => { return ( <>

    - Tenant overview page +

    Tenant overview page

    { return ( <>

    - Theme +

    Theme

    {themes.map((theme, index) => ( diff --git a/src/components/utilities/UsageLocation.js b/src/components/utilities/UsageLocation.js index 7996611baea1..c3f4e9947a13 100644 --- a/src/components/utilities/UsageLocation.js +++ b/src/components/utilities/UsageLocation.js @@ -15,7 +15,7 @@ const UsageLocation = () => { return ( <>

    - Default Usage Location +

    Default Usage Location

    Switchusage(e)} - /> - - + <> + + + + + + + inputRef.current.click()}> + Report +
    +
    Click to Change
    +
    + Switchusage(e)} + /> +
    +
    + ) } diff --git a/src/components/utilities/TenantListSelector.js b/src/components/utilities/TenantListSelector.js index 5fc6e4f088e8..f9c23e1a0330 100644 --- a/src/components/utilities/TenantListSelector.js +++ b/src/components/utilities/TenantListSelector.js @@ -1,5 +1,5 @@ import React from 'react' -import { CButtonGroup, CButton, CCard, CCardHeader } from '@coreui/react' +import { CFormSwitch, CRow, CCol } from '@coreui/react' import { useDispatch, useSelector } from 'react-redux' import { setTenantList } from 'src/store/features/app' @@ -12,25 +12,16 @@ const TenantListSelector = () => { } return ( - <> -

    -

    Tenant overview page
    -

    - - SwitchPageSize(true)} - color={TenantListSelector ? 'primary' : 'secondary'} - > - Compressed - - SwitchPageSize(false)} - color={TenantListSelector ? 'secondary' : 'primary'} - > - Full list - - - + + + SwitchPageSize(e.target.checked)} + initialValue={TenantListSelector} + name="TenantListSelector" + label="Show compressed tenant list" + /> + + ) } diff --git a/src/components/utilities/ThemeSwitcher.js b/src/components/utilities/ThemeSwitcher.js index 62953550c701..13071b9f77b6 100644 --- a/src/components/utilities/ThemeSwitcher.js +++ b/src/components/utilities/ThemeSwitcher.js @@ -1,20 +1,21 @@ import React from 'react' -import { CButtonGroup, CButton, CCard, CCardHeader } from '@coreui/react' +import { CButton, CCol, CRow } from '@coreui/react' import { useDispatch, useSelector } from 'react-redux' import { setCurrentTheme } from 'src/store/features/app' import { useMediaPredicate } from 'react-media-hook' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' function themeInfo(theme) { switch (theme) { case 'impact': return { name: 'Impact', - description: "Impact is CIPP's dark theme.", + description: 'Dark Theme', } case 'cyberdrain': return { name: 'CyberDrain', - description: "CyberDrain is CIPP's light theme.", + description: 'Light Theme', } default: return { @@ -29,6 +30,7 @@ const ThemeSwitcher = () => { const currentTheme = useSelector((state) => state.app.currentTheme) const themes = useSelector((state) => state.app.themes) const preferredTheme = useMediaPredicate('(prefers-color-scheme: dark)') ? 'impact' : 'cyberdrain' + const SwitchTheme = (inputTheme) => { var targetTheme if (inputTheme === 'default') { @@ -44,21 +46,25 @@ const ThemeSwitcher = () => { return ( <> -

    -

    Theme
    -

    - - {themes.map((theme, index) => ( - SwitchTheme(theme)} - color={theme === currentTheme ? 'primary' : 'secondary'} - key={index} - title={themeInfo(theme).description} - > - {themeInfo(theme).name} - - ))} - + + + + + + {themes.map((theme, index) => ( + SwitchTheme(theme)} + className={`circular-button ${theme} ${theme === currentTheme ? 'round-focus' : ''}`} + key={index} + title={themeInfo(theme).description} + > + {theme === 'default' && 'D'} + {theme === 'cyberdrain' && } + {theme === 'impact' && } + + ))} + + ) } diff --git a/src/scss/_custom.scss b/src/scss/_custom.scss index f3d67afc5e08..8fccbc31607b 100644 --- a/src/scss/_custom.scss +++ b/src/scss/_custom.scss @@ -3,6 +3,92 @@ position: relative; display: inline-block; } +.image-upload-container { + position: relative; + width: 100px; /* Adjusted to match the image */ + height: 120px; /* Adjusted to match the image */ + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; +} + +.upload-image { + width: 100%; + height: 100%; + border-radius: 8px; + object-fit: cover; /* Ensures the image covers the area without stretching */ +} + +.image-upload-overlay { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + opacity: 0; + transition: 0.5s ease; + background-color: var(--cyberdrain-secondary); + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + z-index: 2; +} + +.image-upload-container:hover .image-upload-overlay { + opacity: 0.8; +} + +.overlay-text { + color: white; + font-size: 20px; +} + +.circular-button { + border-radius: 50% !important; + width: 35px; + height: 35px; + display: inline-flex; + align-items: center; + justify-content: center; + font-weight: bold; + margin-right: 1rem; +} + +.round-focus { + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 21, 0.075), + 0 0 0 0.25rem var(--cui-btn-shadow); +} + +.circular-button.active { + background-color: #4caf50; + color: #ffffff; +} +.circular-button.default { + background-color: var(--cui-primary); + color: var(--text-primary); +} + +.circular-button.cyberdrain { + background-color: var(--cyberdrain-accent-beige); + color: var(--text-primary); +} + +.circular-button.impact { + background-color: var(--cyberdrain-secondary); + color: var(--text-primary); +} + +h3.underline:after { + background: none repeat scroll 0 0 var(--cipp-table-context-bg); + bottom: -13px; + content: ''; + display: block; + height: 5px; + position: relative; + width: 2.5rem; +} .switch-icon { position: absolute; diff --git a/src/store/features/app.js b/src/store/features/app.js index 8fcfea652c71..285ef9623269 100644 --- a/src/store/features/app.js +++ b/src/store/features/app.js @@ -44,6 +44,15 @@ export const appSlice = createSlice({ setTenantList: (state, action) => { state.TenantListSelector = action.payload?.TenantListSelector }, + setOffboardingDefaults: (state, action) => { + state.offboardingDefaults = action.payload?.offboardingDefaults + }, + setUserSettings: (state, action) => { + //foreach key in the userSettings, set the state key to the value of that setting + Object.keys(action.payload?.userSettings).forEach((key) => { + state[key] = action.payload?.userSettings[key] + }) + }, }, }) @@ -57,6 +66,8 @@ export const { setSidebarVisible, setDefaultusageLocation, setReportImage, + setOffboardingDefaults, + setUserSettings, } = appSlice.actions export default persistReducer( diff --git a/src/views/cipp/UserSettings.js b/src/views/cipp/UserSettings.js index 63a766a35da6..01ad712a1c75 100644 --- a/src/views/cipp/UserSettings.js +++ b/src/views/cipp/UserSettings.js @@ -8,10 +8,15 @@ import { CCardHeader, CCardTitle, CCol, + CDropdown, + CDropdownItem, + CDropdownMenu, + CDropdownToggle, CForm, CFormLabel, CListGroup, CListGroupItem, + CProgress, CRow, CSpinner, CTooltip, @@ -60,6 +65,7 @@ import { import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas' import ReportImage from 'src/components/utilities/ReportImage' import { useLoadClientPrincipalQuery } from 'src/store/api/auth' +import { setOffboardingDefaults } from 'src/store/features/app' const Offcanvas = (row, rowIndex, formatExtraData) => { const [ExecuteGetRequest, getResults] = useLazyGenericGetRequestQuery() @@ -118,9 +124,17 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { const UserSettings = () => { const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const { data: profile, isFetching, isLoading } = useLoadClientPrincipalQuery() + const dispatch = useDispatch() + const currentSettings = useSelector((state) => state.app) const onSubmit = (values) => { - genericPostRequest({ path: '/api/AddScheduledItem', values: shippedValues }).then((res) => {}) + dispatch(setOffboardingDefaults({ offboardingDefaults: values })) + const shippedvalues = { + user: values.user, + currentSettings: currentSettings, + } + + genericPostRequest({ path: '/api/ExecUserSettings', values: shippedvalues }).then((res) => {}) } return ( @@ -129,47 +143,98 @@ const UserSettings = () => { - User Settings + + User Settings - {profile.clientPrincipal.userDetails} -{' '} + {profile.clientPrincipal.userRoles + .filter((role) => role !== 'anonymous' && role !== 'authenticated') + .join(', ')} + - - -
    -
    Username
    -
    - - {profile.clientPrincipal.userDetails} - -
    - -
    -
    Roles
    -
    - {profile.clientPrincipal.userRoles - .filter((role) => role !== 'anonymous' && role !== 'authenticated') - .map((r, index) => ( - - {r} - - ))} -
    - - - - - - - - - - - - + { + return ( + +

    General

    + + + + + + + +

    Appearance

    + + + + + + + +
    + +

    Offboarding Defaults

    + + + + + + + + + + + + - - - -
    + +
    +
    + + + { + form.change('user', profile.clientPrincipal.userDetails) + }} + className="me-3" + name="singleuser" + type="submit" + > + Save Settings {submitting && } + + { + //if the role contains admin, show the all user button. // + profile.clientPrincipal.userRoles.includes('admin') && ( + { + form.change('user', 'allUsers') + }} + className="me-3" + name="allUsers" + type="submit" + > + Save for all users + {submitting && } + + ) + } + + +
    + ) + }} + /> diff --git a/src/views/identity/administration/OffboardingWizard.js b/src/views/identity/administration/OffboardingWizard.js index 58c425a52b2d..a5bf2288504a 100644 --- a/src/views/identity/administration/OffboardingWizard.js +++ b/src/views/identity/administration/OffboardingWizard.js @@ -37,7 +37,7 @@ const OffboardingWizard = () => { isFetching: usersIsFetching, error: usersError, } = useListUsersQuery({ tenantDomain }) - + const currentSettings = useSelector((state) => state.app) const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const handleSubmit = async (values) => { @@ -67,11 +67,16 @@ const OffboardingWizard = () => { } return ( - + + {console.log(currentSettings.offboardingDefaults)}

    Step 1

    Choose a tenant
    @@ -103,90 +108,90 @@ const OffboardingWizard = () => {
    - +

    Step 3

    Choose offboarding options

    - - - - - - - - - - - - - - x.mail) - .map((user) => ({ - value: user.mail, - name: `${user.displayName} <${user.mail}>`, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AccessNoAutomap" - /> - - - x.mail) - .map((user) => ({ - value: user.mail, - name: `${user.displayName} <${user.mail}>`, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AccessAutomap" - /> - - - x.mail) - .map((user) => ({ - value: user.mail, - name: `${user.displayName} <${user.mail}>`, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="OnedriveAccess" - /> - - - x.mail) - .map((user) => ({ - value: user.mail, - name: `${user.displayName} <${user.mail}>`, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="forward" - /> - - - + + + + + + + + + + + + + + + + x.mail) + .map((user) => ({ + value: user.mail, + name: `${user.displayName} <${user.mail}>`, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="AccessNoAutomap" + /> + x.mail) + .map((user) => ({ + value: user.mail, + name: `${user.displayName} <${user.mail}>`, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="AccessAutomap" + /> + x.mail) + .map((user) => ({ + value: user.mail, + name: `${user.displayName} <${user.mail}>`, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="OnedriveAccess" + /> + x.mail) + .map((user) => ({ + value: user.mail, + name: `${user.displayName} <${user.mail}>`, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="forward" + /> + + +

    From 5a1387cfe68ccdf2a2cfd8ab72708f9568894b2d Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 9 Oct 2023 00:19:29 +0200 Subject: [PATCH 045/205] fixes #1792 --- src/adminRoutes.js | 2 -- src/routes.js | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/adminRoutes.js b/src/adminRoutes.js index 8b10173655ab..ceabcd1b7e57 100644 --- a/src/adminRoutes.js +++ b/src/adminRoutes.js @@ -11,14 +11,12 @@ const GDAPRelationships = React.lazy(() => import('./views/tenant/administration/ListGDAPRelationships'), ) const appapproval = React.lazy(() => import('src/views/cipp/AppApproval')) -const Scheduler = React.lazy(() => import('src/views/cipp/Scheduler')) const adminRoutes = [ { path: '/cipp', name: 'CIPP' }, { path: '/cipp/cipp', name: 'CIPP' }, { path: '/cipp/settings', name: 'Settings', component: CIPPSettings }, { path: '/cipp/setup', name: 'Setup', component: Setup }, - { path: '/cipp/scheduler', name: 'Scheduler', component: Scheduler }, { path: '/tenant/administration/gdap', name: 'GDAP Wizard', component: GDAP }, { path: '/tenant/administration/gdap-invite', name: 'GDAP Invite Wizard', component: GDAPInvite }, diff --git a/src/routes.js b/src/routes.js index e2813a3f363d..d305063a4109 100644 --- a/src/routes.js +++ b/src/routes.js @@ -2,6 +2,7 @@ import React from 'react' const Home = React.lazy(() => import('src/views/home/Home')) const Logs = React.lazy(() => import('src/views/cipp/Logs')) +const Scheduler = React.lazy(() => import('src/views/cipp/Scheduler')) const Users = React.lazy(() => import('src/views/identity/administration/Users')) const DeletedItems = React.lazy(() => import('src/views/identity/administration/Deleted')) const ViewBEC = React.lazy(() => import('src/views/identity/administration/ViewBEC')) @@ -229,6 +230,7 @@ const routes = [ // { path: '/', exact: true, name: 'Home' }, { path: '/home', name: 'Home', component: Home }, { path: '/cipp/logs', name: 'Logs', component: Logs }, + { path: '/cipp/scheduler', name: 'Scheduler', component: Scheduler }, { path: '/cipp/404', name: 'Error', component: Page404 }, { path: '/cipp/403', name: 'Error', component: Page403 }, From ce9d35323150be223d235b97ec7e257364e7f1fe Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 9 Oct 2023 01:21:12 +0200 Subject: [PATCH 046/205] add new tenant functionality --- src/views/tenant/administration/AlertWizard.js | 1 + src/views/tenant/administration/ListAlertsQueue.js | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/views/tenant/administration/AlertWizard.js b/src/views/tenant/administration/AlertWizard.js index 28bf204948d5..8e02a21f6bd0 100644 --- a/src/views/tenant/administration/AlertWizard.js +++ b/src/views/tenant/administration/AlertWizard.js @@ -148,6 +148,7 @@ const AlertWizard = () => { name="SecDefaultsUpsell" label="Alert on Security Defaults automatic enablement" /> + diff --git a/src/views/tenant/administration/ListAlertsQueue.js b/src/views/tenant/administration/ListAlertsQueue.js index 720e55a2fcc3..469128e37247 100644 --- a/src/views/tenant/administration/ListAlertsQueue.js +++ b/src/views/tenant/administration/ListAlertsQueue.js @@ -217,6 +217,13 @@ const ListAlertsQueue = () => { exportSelector: 'SharepointQuota', cell: cellBooleanFormatter(), }, + { + name: 'New Tenant', + selector: (row) => row['NewTenant'], + sortable: true, + exportSelector: 'NewTenant', + cell: cellBooleanFormatter(), + }, { name: 'Expiring Licenses', selector: (row) => row['ExpiringLicenses'], From c9a322d270963f2d0791630f2303325544dae9c5 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 9 Oct 2023 01:29:41 +0200 Subject: [PATCH 047/205] better adding of new alert --- src/views/cipp/CIPPSettings.js | 1 + src/views/tenant/administration/ListAlertsQueue.js | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 7ba3cb285ad7..7e73bb45bd07 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -1128,6 +1128,7 @@ const NotificationsSettings = () => { { value: 'AddMSPApp', name: 'Adding an MSP app' }, { value: 'AddUser', name: 'Adding a user' }, { value: 'AddGroup', name: 'Adding a group' }, + { value: 'NewTenant', name: 'Adding a tenant' }, { value: 'ExecOffboardUser', name: 'Executing the offboard wizard' }, ]} /> diff --git a/src/views/tenant/administration/ListAlertsQueue.js b/src/views/tenant/administration/ListAlertsQueue.js index 469128e37247..720e55a2fcc3 100644 --- a/src/views/tenant/administration/ListAlertsQueue.js +++ b/src/views/tenant/administration/ListAlertsQueue.js @@ -217,13 +217,6 @@ const ListAlertsQueue = () => { exportSelector: 'SharepointQuota', cell: cellBooleanFormatter(), }, - { - name: 'New Tenant', - selector: (row) => row['NewTenant'], - sortable: true, - exportSelector: 'NewTenant', - cell: cellBooleanFormatter(), - }, { name: 'Expiring Licenses', selector: (row) => row['ExpiringLicenses'], From b54b8d24fd4747449c93e17f5dc68e84abb1edbc Mon Sep 17 00:00:00 2001 From: Yoshify Date: Mon, 9 Oct 2023 09:58:56 +1000 Subject: [PATCH 048/205] Add switch to optionally enable tenantId inclusion in Alerts --- src/store/api/app.js | 2 ++ src/views/cipp/CIPPSettings.js | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/src/store/api/app.js b/src/store/api/app.js index 06089d3113bd..3eaa06328f84 100644 --- a/src/store/api/app.js +++ b/src/store/api/app.js @@ -55,6 +55,7 @@ export const appApi = baseApi.injectEndpoints({ addChocoApp, onePerTenant, sendtoIntegration, + includeTenantId, logsToInclude, Severity, }) => ({ @@ -73,6 +74,7 @@ export const appApi = baseApi.injectEndpoints({ logsToInclude: logsToInclude, Severity: Severity, sendtoIntegration: sendtoIntegration, + includeTenantId: includeTenantId, }, method: 'post', }), diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 7e73bb45bd07..1716df3abee3 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -1161,6 +1161,13 @@ const NotificationsSettings = () => { value={false} /> + + + Set Notification Settings From 6e3aa3ac088c36395fde138b1ae9deee18b37455 Mon Sep 17 00:00:00 2001 From: Yoshify Date: Mon, 9 Oct 2023 09:59:18 +1000 Subject: [PATCH 049/205] Add TenantID column in Logbook with handling for null values. --- src/views/cipp/Logs.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/views/cipp/Logs.js b/src/views/cipp/Logs.js index b1e93e85d8c8..dc128d9a9721 100644 --- a/src/views/cipp/Logs.js +++ b/src/views/cipp/Logs.js @@ -55,6 +55,15 @@ const columns = [ minWidth: '145px', maxWidth: '145px', }, + { + name: 'Tenant ID', + selector: (row) => row['TenantID'], + sortable: true, + cell: (row) => CellTip(row['TenantID'] ?? 'None'), + exportSelector: 'TenantID', + minWidth: '145px', + maxWidth: '145px', + }, { name: 'User', selector: (row) => row['User'], From d0a3ac952f1d680dfc6916bacdd9780696ed5e65 Mon Sep 17 00:00:00 2001 From: BNWEIN Date: Mon, 9 Oct 2023 13:08:43 +0100 Subject: [PATCH 050/205] Create azure-static-web-apps-proud-smoke-0849e8603.yml --- ...-static-web-apps-proud-smoke-0849e8603.yml | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .github/workflows/azure-static-web-apps-proud-smoke-0849e8603.yml diff --git a/.github/workflows/azure-static-web-apps-proud-smoke-0849e8603.yml b/.github/workflows/azure-static-web-apps-proud-smoke-0849e8603.yml new file mode 100644 index 000000000000..dbcc4eb90308 --- /dev/null +++ b/.github/workflows/azure-static-web-apps-proud-smoke-0849e8603.yml @@ -0,0 +1,46 @@ +name: Azure Static Web Apps CI/CD + +on: + push: + branches: + - dev + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - dev + +jobs: + build_and_deploy_job: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v3 + with: + submodules: true + lfs: false + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_SMOKE_0849E8603 }} + repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) + action: "upload" + ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### + # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig + app_location: "/" # App source code path + api_location: "" # Api source code path - optional + output_location: "" # Built app content directory - optional + ###### End of Repository/Build Configurations ###### + + close_pull_request_job: + if: github.event_name == 'pull_request' && github.event.action == 'closed' + runs-on: ubuntu-latest + name: Close Pull Request Job + steps: + - name: Close Pull Request + id: closepullrequest + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_SMOKE_0849E8603 }} + action: "close" From d20311929d8892e6e35ae3524266e02f5f4e144a Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Tue, 10 Oct 2023 01:18:40 +0200 Subject: [PATCH 051/205] Permissions and app approval base --- public/PermissionsList.json | 7973 +++++++++++++++++++++++++++++++++ src/views/cipp/AppApproval.js | 387 +- 2 files changed, 8170 insertions(+), 190 deletions(-) create mode 100644 public/PermissionsList.json diff --git a/public/PermissionsList.json b/public/PermissionsList.json new file mode 100644 index 000000000000..c91c29126036 --- /dev/null +++ b/public/PermissionsList.json @@ -0,0 +1,7973 @@ +[ + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read access reviews, reviewers, decisions and settings in the organization, without a signed-in user.", + "displayName": "Read all access reviews", + "id": "d07a8cc0-3d51-4b77-b3b0-32704d1f69fa", + "isEnabled": true, + "origin": "Application", + "value": "AccessReview.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings in the organization, without a signed-in user.", + "displayName": "Manage all access reviews", + "id": "ef5f7d5c-338f-44b0-86c3-351f46c8bb5f", + "isEnabled": true, + "origin": "Application", + "value": "AccessReview.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings in the organization for group and app memberships, without a signed-in user.", + "displayName": "Manage access reviews for group and app memberships", + "id": "18228521-a591-40f1-b215-5fad4488c117", + "isEnabled": true, + "origin": "Application", + "value": "AccessReview.ReadWrite.Membership" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read all acronyms without a signed-in user.", + "displayName": "Read all acronyms", + "id": "8c0aed2c-0c61-433d-b63c-6370ddc73248", + "isEnabled": true, + "origin": "Application", + "value": "Acronym.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read administrative units and administrative unit membership without a signed-in user.", + "displayName": "Read all administrative units", + "id": "134fd756-38ce-4afd-ba33-e9623dbe66c2", + "isEnabled": true, + "origin": "Application", + "value": "AdministrativeUnit.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update, and delete administrative units and manage administrative unit membership without a signed-in user.", + "displayName": "Read and write all administrative units", + "id": "5eb59dd3-1da2-4329-8733-9dabdc435916", + "isEnabled": true, + "origin": "Application", + "value": "AdministrativeUnit.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read terms of use agreements, without a signed in user.", + "displayName": "Read all terms of use agreements", + "id": "2f3e6f8c-093b-4c57-a58b-ba5ce494a169", + "isEnabled": true, + "origin": "Application", + "value": "Agreement.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write terms of use agreements, without a signed in user.", + "displayName": "Read and write all terms of use agreements", + "id": "c9090d00-6101-42f0-a729-c41074260d47", + "isEnabled": true, + "origin": "Application", + "value": "Agreement.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read terms of use acceptance statuses, without a signed in user.", + "displayName": "Read all terms of use acceptance statuses", + "id": "d8e4ec18-f6c0-4620-8122-c8b1f2bf400e", + "isEnabled": true, + "origin": "Application", + "value": "AgreementAcceptance.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the API connectors used in user authentication flows, without a signed-in user.", + "displayName": "Read API connectors for authentication flows", + "id": "b86848a7-d5b1-41eb-a9b4-54a4e6306e97", + "isEnabled": true, + "origin": "Application", + "value": "APIConnectors.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, create and manage the API connectors used in user authentication flows, without a signed-in user.", + "displayName": "Read and write API connectors for authentication flows", + "id": "1dfe531a-24a6-4f1b-80f4-7a0dc5a0a171", + "isEnabled": true, + "origin": "Application", + "value": "APIConnectors.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read apps in the app catalogs without a signed-in user.", + "displayName": "Read all app catalogs", + "id": "e12dae10-5a57-4817-b79d-dfbec5348930", + "isEnabled": true, + "origin": "Application", + "value": "AppCatalog.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update, and delete apps in the app catalogs without a signed-in user.", + "displayName": "Read and write to all app catalogs", + "id": "dc149144-f292-421e-b185-5953f2e98d7f", + "isEnabled": true, + "origin": "Application", + "value": "AppCatalog.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the remote desktop security configuration for all apps in your organization, without a signed-in user.", + "displayName": "Read and write the remote desktop security configuration for all apps", + "id": "3be0012a-cc4e-426b-895b-f9c836bf6381", + "isEnabled": true, + "origin": "Application", + "value": "Application-RemoteDesktopConfig.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all applications and service principals without a signed-in user.", + "displayName": "Read all applications", + "id": "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30", + "isEnabled": true, + "origin": "Application", + "value": "Application.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update and delete applications and service principals without a signed-in user. Does not allow management of consent grants.", + "displayName": "Read and write all applications", + "id": "1bfefb4e-e0b5-418b-a88f-73c46d2cc8e9", + "isEnabled": true, + "origin": "Application", + "value": "Application.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create other applications, and fully manage those applications (read, update, update application secrets and delete), without a signed-in user.  It cannot update any apps that it is not an owner of.", + "displayName": "Manage apps that this app creates or owns", + "id": "18a4783c-866b-4cc7-a460-3d5e5662c884", + "isEnabled": true, + "origin": "Application", + "value": "Application.ReadWrite.OwnedBy" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, without a signed-in user.", + "displayName": "Manage app permission grants and app role assignments", + "id": "06b708a9-e830-4db3-a914-8e69da51d44f", + "isEnabled": true, + "origin": "Application", + "value": "AppRoleAssignment.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read attack simulation and training data for an organization without a signed-in user.", + "displayName": "Read attack simulation data of an organization", + "id": "93283d0a-6322-4fa8-966b-8c121624760d", + "isEnabled": true, + "origin": "Application", + "value": "AttackSimulation.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, create, and update attack simulation and training data for an organization without a signed-in user.", + "displayName": "Read, create, and update all attack simulation data of an organization", + "id": "e125258e-8c8a-42a8-8f55-ab502afa52f3", + "isEnabled": true, + "origin": "Application", + "value": "AttackSimulation.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and query your audit log activities, without a signed-in user.", + "displayName": "Read all audit log data", + "id": "b0afded3-3588-46d8-8b3d-9842eff778da", + "isEnabled": true, + "origin": "Application", + "value": "AuditLog.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the authentication context information in your organization without a signed-in user.", + "displayName": "Read all authentication context information", + "id": "381f742f-e1f8-4309-b4ab-e3d91ae4c5c1", + "isEnabled": true, + "origin": "Application", + "value": "AuthenticationContext.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and update the authentication context information in your organization without a signed-in user.", + "displayName": "Read and write all authentication context information", + "id": "a88eef72-fed0-4bf7-a2a9-f19df33f8b83", + "isEnabled": true, + "origin": "Application", + "value": "AuthenticationContext.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the billing configuration on all applications without a signed-in user. ", + "displayName": "Read and write application billing configuration", + "id": "9e8be751-7eee-4c09-bcfd-d64f6b087fd8", + "isEnabled": true, + "origin": "Application", + "value": "BillingConfiguration.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read Bookings appointments, businesses, customers, services, and staff without a signed-in user. ", + "displayName": "Read all Bookings related resources.", + "id": "6e98f277-b046-4193-a4f2-6bf6a78cd491", + "isEnabled": true, + "origin": "Application", + "value": "Bookings.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read and write Bookings appointments and customers, and additionally allows reading businesses, services, and staff without a signed-in user. ", + "displayName": "Read and write all Bookings related resources.", + "id": "9769393e-5a9f-4302-9e3d-7e018ecb64a7", + "isEnabled": true, + "origin": "Application", + "value": "BookingsAppointment.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read all bookmarks without a signed-in user.", + "displayName": "Read all bookmarks", + "id": "be95e614-8ef3-49eb-8464-1c9503433b86", + "isEnabled": true, + "origin": "Application", + "value": "Bookmark.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read all browser site lists configured for your organization, without a signed-in user.", + "displayName": "Read all browser site lists for your organization", + "id": "c5ee1f21-fc7f-4937-9af0-c91648ff9597", + "isEnabled": true, + "origin": "Application", + "value": "BrowserSiteLists.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read and write all browser site lists configured for your organization, without a signed-in user.", + "displayName": "Read and write all browser site lists for your organization", + "id": "8349ca94-3061-44d5-9bfb-33774ea5e4f9", + "isEnabled": true, + "origin": "Application", + "value": "BrowserSiteLists.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the configurations of business scenarios it owns, without a signed-in user.", + "displayName": "Read all business scenario configurations this app creates or owns", + "id": "acc0fc4d-2cd6-4194-8700-1768d8423d86", + "isEnabled": true, + "origin": "Application", + "value": "BusinessScenarioConfig.Read.OwnedBy" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create new business scenarios and fully manage the configurations of scenarios it owns, without a signed-in user.", + "displayName": "Read and write all business scenario configurations this app creates or owns", + "id": "bbea195a-4c47-4a4f-bff2-cba399e11698", + "isEnabled": true, + "origin": "Application", + "value": "BusinessScenarioConfig.ReadWrite.OwnedBy" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the data associated with the business scenarios it owns, without a signed-in user.", + "displayName": "Read data for all business scenarios this app creates or owns", + "id": "6c0257fd-cffe-415b-8239-2d0d70fdaa9c", + "isEnabled": true, + "origin": "Application", + "value": "BusinessScenarioData.Read.OwnedBy" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to fully manage the data associated with the business scenarios it owns, without a signed-in user.", + "displayName": "Read and write data for all business scenarios this app creates or owns", + "id": "f2d21f22-5d80-499e-91cc-0a8a4ce16f54", + "isEnabled": true, + "origin": "Application", + "value": "BusinessScenarioData.ReadWrite.OwnedBy" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read events of all calendars without a signed-in user.", + "displayName": "Read calendars in all mailboxes", + "id": "798ee544-9d2d-430c-a058-570e29e34338", + "isEnabled": true, + "origin": "Application", + "value": "Calendars.Read" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read events of all calendars, except for properties such as body, attachments, and extensions, without a signed-in user.", + "displayName": "Read basic details of calendars in all mailboxes ", + "id": "8ba4a692-bc31-4128-9094-475872af8a53", + "isEnabled": true, + "origin": "Application", + "value": "Calendars.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update, and delete events of all calendars without a signed-in user.", + "displayName": "Read and write calendars in all mailboxes", + "id": "ef54d2bf-783f-4e0f-bca1-3210c0444d99", + "isEnabled": true, + "origin": "Application", + "value": "Calendars.ReadWrite" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read call event information for all users in your organizatio, without a signed-in user.", + "displayName": "Read all call events", + "id": "1abb026f-7572-49f6-9ddd-ad61cbba181e", + "isEnabled": true, + "origin": "Application", + "value": "CallEvents.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all PSTN and direct routing call log data without a signed-in user.", + "displayName": "Read PSTN and direct routing call log data", + "id": "a2611786-80b3-417e-adaa-707d4261a5f0", + "isEnabled": true, + "origin": "Application", + "value": "CallRecord-PstnCalls.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read call records for all calls and online meetings without a signed-in user.", + "displayName": "Read all call records", + "id": "45bbb07e-7321-4fd7-a8f6-3ff27e6a81c8", + "isEnabled": true, + "origin": "Application", + "value": "CallRecords.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to get direct access to media streams in a call, without a signed-in user.", + "displayName": "Access media streams in a call as an app", + "id": "a7a681dc-756e-4909-b988-f160edc6655f", + "isEnabled": true, + "origin": "Application", + "value": "Calls.AccessMedia.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to place outbound calls to a single user and transfer calls to users in your organization’s directory, without a signed-in user.", + "displayName": "Initiate outgoing 1 to 1 calls from the app", + "id": "284383ee-7f6e-4e40-a2a8-e85dcb029101", + "isEnabled": true, + "origin": "Application", + "value": "Calls.Initiate.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to place outbound calls to multiple users and add participants to meetings in your organization, without a signed-in user.", + "displayName": "Initiate outgoing group calls from the app", + "id": "4c277553-8a09-487b-8023-29ee378d8324", + "isEnabled": true, + "origin": "Application", + "value": "Calls.InitiateGroupCall.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to join group calls and scheduled meetings in your organization, without a signed-in user.  The app will be joined with the privileges of a directory user to meetings in your organization.", + "displayName": "Join group calls and meetings as an app", + "id": "f6b49018-60ab-4f81-83bd-22caeabfed2d", + "isEnabled": true, + "origin": "Application", + "value": "Calls.JoinGroupCall.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to anonymously join group calls and scheduled meetings in your organization, without a signed-in user.  The app will be joined as a guest to meetings in your organization.", + "displayName": "Join group calls and meetings as a guest", + "id": "fd7ccf6b-3d28-418b-9701-cd10f5cd2fd4", + "isEnabled": true, + "origin": "Application", + "value": "Calls.JoinGroupCallAsGuest.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Create channels in any team, without a signed-in user.", + "displayName": "Create channels", + "id": "f3a65bd4-b703-46df-8f7e-0174fea562aa", + "isEnabled": true, + "origin": "Application", + "value": "Channel.Create" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Delete channels in any team, without a signed-in user.", + "displayName": "Delete channels", + "id": "6a118a39-1227-45d4-af0c-ea7b40d210bc", + "isEnabled": true, + "origin": "Application", + "value": "Channel.Delete.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read all channel names and channel descriptions, without a signed-in user.", + "displayName": "Read the names and descriptions of all channels", + "id": "59a6b24b-4225-4393-8165-ebaec5f55d7a", + "isEnabled": true, + "origin": "Application", + "value": "Channel.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read the members of all channels, without a signed-in user.", + "displayName": "Read the members of all channels", + "id": "3b55498e-47ec-484f-8136-9013221c06a9", + "isEnabled": true, + "origin": "Application", + "value": "ChannelMember.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Add and remove members from all channels, without a signed-in user. Also allows changing a member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from all channels", + "id": "35930dcf-aceb-4bd1-b99a-8ffed403c974", + "isEnabled": true, + "origin": "Application", + "value": "ChannelMember.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all channel messages in Microsoft Teams", + "displayName": "Read all channel messages", + "id": "7b2449af-6ccd-4f4d-9f78-e550c193f0d1", + "isEnabled": true, + "origin": "Application", + "value": "ChannelMessage.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to update Microsoft Teams channel messages by patching a set of Data Loss Prevention (DLP) policy violation properties to handle the output of DLP processing.", + "displayName": "Flag channel messages for violating policy", + "id": "4d02b0cc-d90b-441f-8d82-4fb55c34d6bb", + "isEnabled": true, + "origin": "Application", + "value": "ChannelMessage.UpdatePolicyViolation.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read all channel names, channel descriptions, and channel settings, without a signed-in user.", + "displayName": "Read the names, descriptions, and settings of all channels", + "id": "c97b873f-f59f-49aa-8a0e-52b32d762124", + "isEnabled": true, + "origin": "Application", + "value": "ChannelSettings.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read and write the names, descriptions, and settings of all channels, without a signed-in user.", + "displayName": "Read and write the names, descriptions, and settings of all channels", + "id": "243cded2-bd16-4fd6-a953-ff8177894c3d", + "isEnabled": true, + "origin": "Application", + "value": "ChannelSettings.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create chats without a signed-in user. ", + "displayName": "Create chats", + "id": "d9c48af6-9ad9-47ad-82c3-63757137b9af", + "isEnabled": true, + "origin": "Application", + "value": "Chat.Create" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to delete and recover deleted chats, without a signed-in user.", + "displayName": "Delete and recover deleted chats", + "id": "9c7abde0-eacd-4319-bf9e-35994b1a1717", + "isEnabled": true, + "origin": "Application", + "value": "Chat.ManageDeletion.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all 1-to-1 or group chat messages in Microsoft Teams.", + "displayName": "Read all chat messages", + "id": "6b7d71aa-70aa-4810-a8d9-5d9fb2830017", + "isEnabled": true, + "origin": "Application", + "value": "Chat.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all one-to-one or group chat messages in Microsoft Teams for chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read all chat messages for chats where the associated Teams application is installed.", + "id": "1c1b4c8e-3cc7-4c58-8470-9b92c9d5848b", + "isEnabled": true, + "origin": "Application", + "value": "Chat.Read.WhereInstalled" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read names and members of all one-to-one and group chats in Microsoft Teams, without a signed-in user.", + "displayName": "Read names and members of all chat threads", + "id": "b2e060da-3baf-4687-9611-f4ebc0f0cbde", + "isEnabled": true, + "origin": "Application", + "value": "Chat.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read names and members of all one-to-one and group chats in Microsoft Teams where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read names and members of all chat threads where the associated Teams application is installed.", + "id": "818ba5bd-5b3e-4fe0-bbe6-aa4686669073", + "isEnabled": true, + "origin": "Application", + "value": "Chat.ReadBasic.WhereInstalled" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read and write all chat messages in Microsoft Teams, without a signed-in user.", + "displayName": "Read and write all chat messages", + "id": "294ce7c9-31ba-490a-ad7d-97a7d075e4ed", + "isEnabled": true, + "origin": "Application", + "value": "Chat.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all chat messages in Microsoft Teams for chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read and write all chat messages for chats where the associated Teams application is installed.", + "id": "ad73ce80-f3cd-40ce-b325-df12c33df713", + "isEnabled": true, + "origin": "Application", + "value": "Chat.ReadWrite.WhereInstalled" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to update Microsoft Teams 1-to-1 or group chat messages by patching a set of Data Loss Prevention (DLP) policy violation properties to handle the output of DLP processing.", + "displayName": "Flag chat messages for violating policy", + "id": "7e847308-e030-4183-9899-5235d7270f58", + "isEnabled": true, + "origin": "Application", + "value": "Chat.UpdatePolicyViolation.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read the members of all chats, without a signed-in user.", + "displayName": "Read the members of all chats", + "id": "a3410be2-8e48-4f32-8454-c29a7465209d", + "isEnabled": true, + "origin": "Application", + "value": "ChatMember.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the members of all chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Read the members of all chats where the associated Teams application is installed.", + "id": "93e7c9e4-54c5-4a41-b796-f2a5adaacda7", + "isEnabled": true, + "origin": "Application", + "value": "ChatMember.Read.WhereInstalled" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Add and remove members from all chats, without a signed-in user.", + "displayName": "Add and remove members from all chats", + "id": "57257249-34ce-4810-a8a2-a03adf0c5693", + "isEnabled": true, + "origin": "Application", + "value": "ChatMember.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to add and remove members from all chats where the associated Teams application is installed, without a signed-in user.", + "displayName": "Add and remove members from all chats where the associated Teams application is installed.", + "id": "e32c2cd9-0124-4e44-88fc-772cd98afbdb", + "isEnabled": true, + "origin": "Application", + "value": "ChatMember.ReadWrite.WhereInstalled" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all one-to-one and group chats messages in Microsoft Teams, without a signed-in user.", + "displayName": "Read all chat messages", + "id": "b9bb2381-47a4-46cd-aafb-00cb12f68504", + "isEnabled": true, + "origin": "Application", + "value": "ChatMessage.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all details of discovered cloud apps in the organization, without a signed-in user.", + "displayName": "Read all discovered cloud applications data", + "id": "64a59178-dad3-4673-89db-84fdcd622fec", + "isEnabled": true, + "origin": "Application", + "value": "CloudApp-Discovery.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the properties of Cloud PCs, without a signed-in user.", + "displayName": "Read Cloud PCs", + "id": "a9e09520-8ed4-4cde-838e-4fdea192c227", + "isEnabled": true, + "origin": "Application", + "value": "CloudPC.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the properties of Cloud PCs, without a signed-in user.", + "displayName": "Read and write Cloud PCs", + "id": "3b4349e1-8cf5-45a3-95b7-69d1751d3e6a", + "isEnabled": true, + "origin": "Application", + "value": "CloudPC.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read consent requests and approvals without a signed-in user.", + "displayName": "Read all consent requests", + "id": "1260ad83-98fb-4785-abbb-d6cc1806fd41", + "isEnabled": true, + "origin": "Application", + "value": "ConsentRequest.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read app consent requests and approvals, and deny or approve those requests without a signed-in user.", + "displayName": "Read and write all consent requests", + "id": "9f1b81a7-0223-4428-bfa4-0bcb5535f27d", + "isEnabled": true, + "origin": "Application", + "value": "ConsentRequest.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all contacts in all mailboxes without a signed-in user.", + "displayName": "Read contacts in all mailboxes", + "id": "089fe4d0-434a-44c5-8827-41ba8a0b17f5", + "isEnabled": true, + "origin": "Application", + "value": "Contacts.Read" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update, and delete all contacts in all mailboxes without a signed-in user.", + "displayName": "Read and write contacts in all mailboxes", + "id": "6918b873-d17a-4dc1-b314-35f528134491", + "isEnabled": true, + "origin": "Application", + "value": "Contacts.ReadWrite" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem without a signed-in user.", + "displayName": "Read cross-tenant basic information", + "id": "cac88765-0581-4025-9725-5ebc13f729ee", + "isEnabled": true, + "origin": "Application", + "value": "CrossTenantInformation.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to list and query any shared user profile information associated with the current tenant without a signed-in user.  It also permits the application to export external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant without a signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export their data", + "id": "8b919d44-6192-4f3d-8a3b-f86f8069ae3c", + "isEnabled": true, + "origin": "Application", + "value": "CrossTenantUserProfileSharing.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to list and query any shared user profile information associated with the current tenant without a signed-in user.  It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant without a signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export or delete their data", + "id": "306785c5-c09b-4ba0-a4ee-023f3da165cb", + "isEnabled": true, + "origin": "Application", + "value": "CrossTenantUserProfileSharing.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's custom authentication extensions without a signed-in user.", + "displayName": "Read all custom authentication extensions", + "id": "88bb2658-5d9e-454f-aacd-a3933e079526", + "isEnabled": true, + "origin": "Application", + "value": "CustomAuthenticationExtension.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read or write your organization's custom authentication extensions without a signed-in user.", + "displayName": "Read and write all custom authentication extensions", + "id": "c2667967-7050-4e7e-b059-4cbbb3811d03", + "isEnabled": true, + "origin": "Application", + "value": "CustomAuthenticationExtension.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows custom authentication extensions associated with the app to receive HTTP requests triggered by an authentication event. The request can include information about a user, client and resource service principals, and other information about the authentication.", + "displayName": "Receive custom authentication extension HTTP requests", + "id": "214e810f-fda8-4fd7-a475-29461495eb00", + "isEnabled": true, + "origin": "Application", + "value": "CustomAuthenticationExtension.Receive.Payload" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read custom security attribute assignments for all principals in the tenant without a signed in user.", + "displayName": "Read custom security attribute assignments", + "id": "3b37c5a4-1226-493d-bec3-5d6c6b866f3f", + "isEnabled": true, + "origin": "Application", + "value": "CustomSecAttributeAssignment.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write custom security attribute assignments for all principals in the tenant without a signed in user.", + "displayName": "Read and write custom security attribute assignments", + "id": "de89b5e4-5b8f-48eb-8925-29c2b33bd8bd", + "isEnabled": true, + "origin": "Application", + "value": "CustomSecAttributeAssignment.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all audit logs for events that contain information about custom security attributes, without a signed-in user.", + "displayName": "Read all custom security attribute audit logs", + "id": "2a4f026d-e829-4e84-bdbf-d981a2703059", + "isEnabled": true, + "origin": "Application", + "value": "CustomSecAttributeAuditLogs.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read custom security attribute definitions for the tenant without a signed in user.", + "displayName": "Read custom security attribute definitions", + "id": "b185aa14-d8d2-42c1-a685-0f5596613624", + "isEnabled": true, + "origin": "Application", + "value": "CustomSecAttributeDefinition.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write custom security attribute definitions for the tenant without a signed in user.", + "displayName": "Read and write custom security attribute definitions", + "id": "12338004-21f4-4896-bf5e-b75dfaf1016d", + "isEnabled": true, + "origin": "Application", + "value": "CustomSecAttributeDefinition.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read details of delegated admin relationships with customers like access details (that includes roles) and the duration as well as specific role assignments to security groups without a signed-in user.", + "displayName": "Read Delegated Admin relationships with customers", + "id": "f6e9e124-4586-492f-adc0-c6f96e4823fd", + "isEnabled": true, + "origin": "Application", + "value": "DelegatedAdminRelationship.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers and role assignments to security groups for active Delegated Admin relationships without a signed-in user.", + "displayName": "Manage Delegated Admin relationships with customers", + "id": "cc13eba4-8cd8-44c6-b4d4-f93237adce58", + "isEnabled": true, + "origin": "Application", + "value": "DelegatedAdminRelationship.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all delegated permission grants, without a signed-in user.", + "displayName": "Read all delegated permission grants", + "id": "81b4724a-58aa-41c1-8a55-84ef97466587", + "isEnabled": true, + "origin": "Application", + "value": "DelegatedPermissionGrant.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), without a signed-in user.", + "displayName": "Manage all delegated permission grants", + "id": "8e8e4742-1d95-4f68-9d56-6ee75648c72a", + "isEnabled": true, + "origin": "Application", + "value": "DelegatedPermissionGrant.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's devices' configuration information without a signed-in user.", + "displayName": "Read all devices", + "id": "7438b122-aefc-4978-80ed-43db9fcc7715", + "isEnabled": true, + "origin": "Application", + "value": "Device.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all device properties without a signed in user. Does not allow device creation, device deletion or update of device alternative security identifiers.", + "displayName": "Read and write devices", + "id": "1138cb37-bd11-4084-a2b7-9f71582aeddb", + "isEnabled": true, + "origin": "Application", + "value": "Device.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read device local credential properties including passwords, without a signed-in user.", + "displayName": "Read device local credential passwords", + "id": "884b599e-4d48-43a5-ba94-15c414d00588", + "isEnabled": true, + "origin": "Application", + "value": "DeviceLocalCredential.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read device local credential properties excluding passwords, without a signed-in user.", + "displayName": "Read device local credential properties", + "id": "db51be59-e728-414b-b800-e0f010df1a79", + "isEnabled": true, + "origin": "Application", + "value": "DeviceLocalCredential.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune, without a signed-in user.", + "displayName": "Read Microsoft Intune apps", + "id": "7a6ee1e7-141e-4cec-ae74-d9db155731ff", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementApps.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune, without a signed-in user.", + "displayName": "Read and write Microsoft Intune apps", + "id": "78145de6-330d-4800-a6ce-494ff2d33d07", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementApps.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups, without a signed-in user.", + "displayName": "Read Microsoft Intune device configuration and policies", + "id": "dc377aa6-52d8-4e23-b271-2a7ae04cedf3", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementConfiguration.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups, without a signed-in user.", + "displayName": "Read and write Microsoft Intune device configuration and policies", + "id": "9241abd9-d0e6-425a-bd4f-47ba86e767a4", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementConfiguration.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune, without a signed-in user.", + "displayName": "Perform user-impacting remote actions on Microsoft Intune devices", + "id": "5b07b0dd-2377-4e44-a38d-703f09a0dc3c", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementManagedDevices.PrivilegedOperations.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the properties of devices managed by Microsoft Intune, without a signed-in user.", + "displayName": "Read Microsoft Intune devices", + "id": "2f51be20-0bb4-4fed-bf7b-db946066c75e", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementManagedDevices.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the properties of devices managed by Microsoft Intune, without a signed-in user. Does not allow high impact operations such as remote wipe and password reset on the device’s owner", + "displayName": "Read and write Microsoft Intune devices", + "id": "243333ab-4d21-40cb-a475-36241daa0842", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementManagedDevices.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user.", + "displayName": "Read Microsoft Intune RBAC settings", + "id": "58ca0d9a-1575-47e1-a3cb-007ef2e4583b", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementRBAC.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings, without a signed-in user.", + "displayName": "Read and write Microsoft Intune RBAC settings", + "id": "e330c4f0-4170-414e-a55a-2f022ec2b57b", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementRBAC.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user.", + "displayName": "Read Microsoft Intune configuration", + "id": "06a5fe6d-c49d-46a7-b082-56b1b14103c7", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementServiceConfig.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration, without a signed-in user.", + "displayName": "Read and write Microsoft Intune configuration", + "id": "5ac13192-7ace-4fcf-b828-1a26f28068ee", + "isEnabled": true, + "origin": "Application", + "value": "DeviceManagementServiceConfig.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read data in your organization's directory, such as users, groups and apps, without a signed-in user.", + "displayName": "Read directory data", + "id": "7ab1d382-f21e-4acd-a863-ba3e13f7da61", + "isEnabled": true, + "origin": "Application", + "value": "Directory.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write data in your organization's directory, such as users, and groups, without a signed-in user. Does not allow user or group deletion.", + "displayName": "Read and write directory data", + "id": "19dbc75e-c2e2-444c-a770-ec69d8559fc7", + "isEnabled": true, + "origin": "Application", + "value": "Directory.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to manage restricted resources based on the other permissions granted to the app, without a signed-in user.", + "displayName": "Manage restricted resources in the directory", + "id": "f20584af-9290-4153-9280-ff8bb2c0ea7f", + "isEnabled": true, + "origin": "Application", + "value": "Directory.Write.Restricted" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all Azure AD recommendations, without a signed-in user. ", + "displayName": "Read all Azure AD recommendations", + "id": "ae73097b-cb2a-4447-b064-5d80f6093921", + "isEnabled": true, + "origin": "Application", + "value": "DirectoryRecommendations.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and update all Azure AD recommendations, without a signed-in user. ", + "displayName": "Read and update all Azure AD recommendations", + "id": "0e9eea12-4f01-45f6-9b8d-3ea4c8144158", + "isEnabled": true, + "origin": "Application", + "value": "DirectoryRecommendations.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all domain properties without a signed-in user.", + "displayName": "Read domains", + "id": "dbb9058a-0e50-45d7-ae91-66909b5d4664", + "isEnabled": true, + "origin": "Application", + "value": "Domain.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all domain properties without a signed in user.  Also allows the app to add,  verify and remove domains.", + "displayName": "Read and write domains", + "id": "7e05723c-0bb0-42da-be95-ae9f08a6e53c", + "isEnabled": true, + "origin": "Application", + "value": "Domain.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read eDiscovery objects such as cases, custodians, review sets and other related objects without a signed-in user.", + "displayName": "Read all eDiscovery objects", + "id": "50180013-6191-4d1e-a373-e590ff4e66af", + "isEnabled": true, + "origin": "Application", + "value": "eDiscovery.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write eDiscovery objects such as cases, custodians, review sets and other related objects without a signed-in user.", + "displayName": "Read and write all eDiscovery objects", + "id": "b2620db1-3bf7-4c5b-9cb9-576d29eac736", + "isEnabled": true, + "origin": "Application", + "value": "eDiscovery.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read the state and settings of all Microsoft education apps.", + "displayName": "Read Education app settings", + "id": "7c9db06a-ec2d-4e7b-a592-5a1e30992566", + "isEnabled": true, + "origin": "Application", + "value": "EduAdministration.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Manage the state and settings of all Microsoft education apps.", + "displayName": "Manage education app settings", + "id": "9bc431c3-b8bc-4a8d-a219-40f10f92eff6", + "isEnabled": true, + "origin": "Application", + "value": "EduAdministration.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all class assignments with grades for all users without a signed-in user.", + "displayName": "Read all class assignments with grades", + "id": "4c37e1b6-35a1-43bf-926a-6f30f2cdf585", + "isEnabled": true, + "origin": "Application", + "value": "EduAssignments.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all class assignments without grades for all users without a signed-in user.", + "displayName": "Read all class assignments without grades", + "id": "6e0a958b-b7fc-4348-b7c4-a6ab9fd3dd0e", + "isEnabled": true, + "origin": "Application", + "value": "EduAssignments.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update and delete all class assignments with grades for all users without a signed-in user.", + "displayName": "Create, read, update and delete all class assignments with grades", + "id": "0d22204b-6cad-4dd0-8362-3e3f2ae699d9", + "isEnabled": true, + "origin": "Application", + "value": "EduAssignments.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update and delete all class assignments without grades for all users without a signed-in user.", + "displayName": "Create, read, update and delete all class assignments without grades", + "id": "f431cc63-a2de-48c4-8054-a34bc093af84", + "isEnabled": true, + "origin": "Application", + "value": "EduAssignments.ReadWriteBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all modules and resources, without a signed-in user.", + "displayName": "Read all class modules and resources", + "id": "6cdb464c-3a03-40f8-900b-4cb7ea1da9c0", + "isEnabled": true, + "origin": "Application", + "value": "EduCurricula.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all modules and resources, without a signed-in user.", + "displayName": "Read and write all class modules and resources", + "id": "6a0c2318-d59d-4c7d-bf2e-5f3902dc2593", + "isEnabled": true, + "origin": "Application", + "value": "EduCurricula.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the structure of schools and classes in the organization's roster and education-specific information about all users to be read.", + "displayName": "Read the organization's roster", + "id": "e0ac9e1b-cb65-4fc5-87c5-1a8bc181f648", + "isEnabled": true, + "origin": "Application", + "value": "EduRoster.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read a limited subset of properties from both the structure of schools and classes in the organization's roster and education-specific information about all users. Includes name, status, role, email address and photo.", + "displayName": "Read a limited subset of the organization's roster", + "id": "0d412a8c-a06c-439f-b3ec-8abcf54d2f96", + "isEnabled": true, + "origin": "Application", + "value": "EduRoster.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the structure of schools and classes in the organization's roster and education-specific information about all users to be read and written.", + "displayName": "Read and write the organization's roster", + "id": "d1808e82-ce13-47af-ae0d-f9b254e6d58a", + "isEnabled": true, + "origin": "Application", + "value": "EduRoster.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read access packages and related entitlement management resources without a signed-in user.", + "displayName": "Read all entitlement management resources", + "id": "c74fd47d-ed3c-45c3-9a9e-b8676de685d2", + "isEnabled": true, + "origin": "Application", + "value": "EntitlementManagement.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write access packages and related entitlement management resources without a signed-in user.", + "displayName": "Read and write all entitlement management resources", + "id": "9acd699f-1e81-4958-b001-93b1d2506e19", + "isEnabled": true, + "origin": "Application", + "value": "EntitlementManagement.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's authentication event listeners without a signed-in user.", + "displayName": "Read all authentication event listeners", + "id": "b7f6385c-6ce6-4639-a480-e23c42ed9784", + "isEnabled": true, + "origin": "Application", + "value": "EventListener.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read or write your organization's authentication event listeners without a signed-in user.", + "displayName": "Read and write all authentication event listeners", + "id": "0edf5e9e-4ce8-468a-8432-d08631d18c43", + "isEnabled": true, + "origin": "Application", + "value": "EventListener.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all external connections without a signed-in user.", + "displayName": "Read all external connections", + "id": "1914711b-a1cb-4793-b019-c2ce0ed21b8c", + "isEnabled": true, + "origin": "Application", + "value": "ExternalConnection.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all external connections without a signed-in user.", + "displayName": "Read and write all external connections", + "id": "34c37bc0-2b40-4d5e-85e1-2365cd256d79", + "isEnabled": true, + "origin": "Application", + "value": "ExternalConnection.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write external connections without a signed-in user. The app can only read and write external connections that it is authorized to, or it can create new external connections. ", + "displayName": "Read and write external connections", + "id": "f431331c-49a6-499f-be1c-62af19c34a9d", + "isEnabled": true, + "origin": "Application", + "value": "ExternalConnection.ReadWrite.OwnedBy" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all external items without a signed-in user.", + "displayName": "Read all external items", + "id": "7a7cffad-37d2-4f48-afa4-c6ab129adcc2", + "isEnabled": true, + "origin": "Application", + "value": "ExternalItem.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allow the app to read or write items in all external datasets that the app is authorized to access", + "displayName": "Read and write items in external datasets", + "id": "38c3d6ee-69ee-422f-b954-e17819665354", + "isEnabled": true, + "origin": "Application", + "value": "ExternalItem.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write external items without a signed-in user. The app can only read external items of the connection that it is authorized to.", + "displayName": "Read and write external items", + "id": "8116ae0f-55c2-452d-9944-d18420f5b2c8", + "isEnabled": true, + "origin": "Application", + "value": "ExternalItem.ReadWrite.OwnedBy" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all files in all site collections without a signed in user.", + "displayName": "Read files in all site collections", + "id": "01d4889c-1287-42c6-ac1f-5d1e02578ef6", + "isEnabled": true, + "origin": "Application", + "value": "Files.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, create, update and delete all files in all site collections without a signed in user. ", + "displayName": "Read and write files in all site collections", + "id": "75359482-378d-4052-8f01-80520e7db3cd", + "isEnabled": true, + "origin": "Application", + "value": "Files.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create groups without a signed-in user.", + "displayName": "Create groups", + "id": "bf7b1a76-6e77-406b-b258-bf5c7720e98f", + "isEnabled": true, + "origin": "Application", + "value": "Group.Create" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read group properties and memberships, and read conversations for all groups, without a signed-in user.", + "displayName": "Read all groups", + "id": "5b567255-7703-4780-807c-7be8301ae99b", + "isEnabled": true, + "origin": "Application", + "value": "Group.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create groups, read all group properties and memberships, update group properties and memberships, and delete groups. Also allows the app to read and write conversations. All of these operations can be performed by the app without a signed-in user.", + "displayName": "Read and write all groups", + "id": "62a82d76-70ea-41e2-9197-370581804d09", + "isEnabled": true, + "origin": "Application", + "value": "Group.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read memberships and basic group properties for all groups without a signed-in user.", + "displayName": "Read all group memberships", + "id": "98830695-27a2-44f7-8c18-0c3ebc9698f6", + "isEnabled": true, + "origin": "Application", + "value": "GroupMember.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to list groups, read basic properties, read and update the membership of the groups this app has access to without a signed-in user. Group properties and owners cannot be updated and groups cannot be deleted.", + "displayName": "Read and write all group memberships", + "id": "dbaae8cf-10b5-4b86-a4a1-f871c94c6695", + "isEnabled": true, + "origin": "Application", + "value": "GroupMember.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization’s identity (authentication) providers’ properties without a signed in user.", + "displayName": "Read identity providers", + "id": "e321f0bb-e7f7-481e-bb28-e3b0b32d4bd0", + "isEnabled": true, + "origin": "Application", + "value": "IdentityProvider.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization’s identity (authentication) providers’ properties without a signed in user.", + "displayName": "Read and write identity providers", + "id": "90db2b9a-d928-4d33-a4dd-8442ae3d41e4", + "isEnabled": true, + "origin": "Application", + "value": "IdentityProvider.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the identity risk event information for your organization without a signed in user.", + "displayName": "Read all identity risk event information", + "id": "6e472fd1-ad78-48da-a0f0-97ab2c6b769e", + "isEnabled": true, + "origin": "Application", + "value": "IdentityRiskEvent.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and update identity risk detection information for your organization without a signed-in user. Update operations include confirming risk event detections. ", + "displayName": "Read and write all risk detection information", + "id": "db06fb33-1953-4b7b-a2ac-f1e2c854f7ae", + "isEnabled": true, + "origin": "Application", + "value": "IdentityRiskEvent.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all risky service principal information for your organization, without a signed-in user.", + "displayName": "Read all identity risky service principal information", + "id": "607c7344-0eed-41e5-823a-9695ebe1b7b0", + "isEnabled": true, + "origin": "Application", + "value": "IdentityRiskyServicePrincipal.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and update identity risky service principal for your organization, without a signed-in user.", + "displayName": "Read and write all identity risky service principal information", + "id": "cb8d6980-6bcb-4507-afec-ed6de3a2d798", + "isEnabled": true, + "origin": "Application", + "value": "IdentityRiskyServicePrincipal.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the identity risky user information for your organization without a signed in user.", + "displayName": "Read all identity risky user information", + "id": "dc5007c0-2d7d-4c42-879c-2dab87571379", + "isEnabled": true, + "origin": "Application", + "value": "IdentityRiskyUser.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and update identity risky user information for your organization without a signed-in user.  Update operations include dismissing risky users.", + "displayName": "Read and write all risky user information", + "id": "656f6061-f9fe-4807-9708-6a2e0934df76", + "isEnabled": true, + "origin": "Application", + "value": "IdentityRiskyUser.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's user flows, without a signed-in user.", + "displayName": "Read all identity user flows", + "id": "1b0c317f-dd31-4305-9932-259a8b6e8099", + "isEnabled": true, + "origin": "Application", + "value": "IdentityUserFlow.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read or write your organization's user flows, without a signed-in user.", + "displayName": "Read and write all identity user flows", + "id": "65319a09-a2be-469d-8782-f6b07debf789", + "isEnabled": true, + "origin": "Application", + "value": "IdentityUserFlow.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read data connectors without a signed-in user.", + "displayName": "View data connector definitions", + "id": "7ab52c2f-a2ee-4d98-9ebc-725e3934aae2", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-DataConnector.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write data connectors without a signed-in user.", + "displayName": "Manage data connector definitions", + "id": "eda0971c-482e-4345-b28f-69c309cb8a34", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-DataConnector.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to upload data files to a data connector without a signed-in user.", + "displayName": "Upload files to a data connector", + "id": "9334c44b-a7c6-4350-8036-6bf8e02b4c1f", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-DataConnector.Upload" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read inbound data flows without a signed-in user.", + "displayName": "View inbound flow definitions", + "id": "305f6ba2-049a-4b1b-88bb-fe7e08758a00", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-InboundFlow.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write inbound data flows without a signed-in user.", + "displayName": "Manage inbound flow definitions", + "id": "e688c61f-d4c6-4d64-a197-3bcf6ba1d6ad", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-InboundFlow.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read reference definitions without a signed-in user.", + "displayName": "View reference definitions", + "id": "6ee891c3-74a4-4148-8463-0c834375dfaf", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-ReferenceDefinition.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read current and previous IndustryData runs without a signed-in user.", + "displayName": "View current and previous runs", + "id": "f6f5d10b-3024-4d1d-b674-aae4df4a1a73", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-Run.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read source system definitions without a signed-in user.", + "displayName": "View source system definitions", + "id": "bc167a60-39fe-4865-8b44-78400fc6ed03", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-SourceSystem.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write source system definitions without a signed-in user.", + "displayName": "Manage source system definitions", + "id": "7d866958-e06e-4dd6-91c6-a086b3f5cfeb", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-SourceSystem.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read time period definitions without a signed-in user.", + "displayName": "Read time period definitions", + "id": "7c55c952-b095-4c23-a522-022bce4cc1e3", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-TimePeriod.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write time period definitions without a signed-in user.", + "displayName": "Manage time period definitions", + "id": "7afa7744-a782-4a32-b8c2-e3db637e8de7", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData-TimePeriod.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read basic service and resource information without a signed-in user.", + "displayName": "View basic service and resource information", + "id": "4f5ac95f-62fd-472c-b60f-125d24ca0bc5", + "isEnabled": true, + "origin": "Application", + "value": "IndustryData.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all configurations applicable to users for protecting organizational data, without a signed-in user.", + "displayName": "Read all configurations for protecting organizational data applicable to users", + "id": "14f49b9f-4bf2-4d24-b80e-b27ec58409bd", + "isEnabled": true, + "origin": "Application", + "value": "InformationProtectionConfig.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to sign digests for data without a signed-in user.", + "displayName": "Sign digests for data", + "id": "cbe6c7e4-09aa-4b8d-b3c3-2dbb59af4b54", + "isEnabled": true, + "origin": "Application", + "value": "InformationProtectionContent.Sign.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create protected content without a signed-in user. ", + "displayName": "Create protected content", + "id": "287bd98c-e865-4e8c-bade-1a85523195b9", + "isEnabled": true, + "origin": "Application", + "value": "InformationProtectionContent.Write.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read published sensitivity labels and label policy settings for the entire organization or a specific user, without a signed in user.", + "displayName": "Read all published labels and label policies for an organization.", + "id": "19da66cb-0fb0-4390-b071-ebc76a349482", + "isEnabled": true, + "origin": "Application", + "value": "InformationProtectionPolicy.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all insights related to guest activity, without a signed-in user.", + "displayName": "Read all insights related to guest activity", + "id": "e93bd8c0-c267-45ea-9722-9d3376a7e302", + "isEnabled": true, + "origin": "Application", + "value": "Insights-GuestActivity.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all insights related to guest activity, without a signed-in user.", + "displayName": "Read and write all insights related to guest activity", + "id": "681ded65-ad9c-4d3d-8f7d-962f84cc13d8", + "isEnabled": true, + "origin": "Application", + "value": "Insights-GuestActivity.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read data for all assignments in the organization's directory, without a signed-in user.", + "displayName": "Read all assignments", + "id": "535e6066-2894-49ef-ab33-e2c6d064bb81", + "isEnabled": true, + "origin": "Application", + "value": "LearningAssignedCourse.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, update, read and delete all assignments in the organization's directory, without a signed-in user.", + "displayName": "Read and write all assignments", + "id": "236c1cbd-1187-427f-b0f5-b1852454973b", + "isEnabled": true, + "origin": "Application", + "value": "LearningAssignedCourse.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all learning content in the organization's directory, without a signed-in user.", + "displayName": "Read all learning content", + "id": "8740813e-d8aa-4204-860e-2a0f8f84dbc8", + "isEnabled": true, + "origin": "Application", + "value": "LearningContent.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to manage all learning content in the organization's directory, without a signed-in user.", + "displayName": "Manage all learning content", + "id": "444d6fcb-b738-41e5-b103-ac4f2a2628a3", + "isEnabled": true, + "origin": "Application", + "value": "LearningContent.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read data for all self-initiated courses in the organization's directory, without a signed-in user.", + "displayName": "Read all self-initiated courses", + "id": "467524fc-ed22-4356-a910-af61191e3503", + "isEnabled": true, + "origin": "Application", + "value": "LearningSelfInitiatedCourse.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, update, read and delete all self-initiated courses in the organization's directory, without a signed-in user.", + "displayName": "Read and write all self-initiated courses", + "id": "7654ed61-8965-4025-846a-0856ec02b5b0", + "isEnabled": true, + "origin": "Application", + "value": "LearningSelfInitiatedCourse.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to manage license assignments for users and groups, without a signed-in user.", + "displayName": "Manage all license assignments", + "id": "5facf0c1-8979-4e95-abcf-ff3d079771c0", + "isEnabled": true, + "origin": "Application", + "value": "LicenseAssignment.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to list and read all workflows, tasks and related lifecycle workflows resources without a signed-in user.", + "displayName": "Read all lifecycle workflows resources", + "id": "7c67316a-232a-4b84-be22-cea2c0906404", + "isEnabled": true, + "origin": "Application", + "value": "LifecycleWorkflows.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, update, list, read and delete all workflows, tasks and related lifecycle workflows resources without a signed-in user.", + "displayName": "Read and write all lifecycle workflows resources", + "id": "5c505cf4-8424-4b8e-aa14-ee06e3bb23e3", + "isEnabled": true, + "origin": "Application", + "value": "LifecycleWorkflows.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read mail in all mailboxes without a signed-in user.", + "displayName": "Read mail in all mailboxes", + "id": "810c84a8-4a9e-49e6-bf7d-12d183f40d01", + "isEnabled": true, + "origin": "Application", + "value": "Mail.Read" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read basic mail properties in all mailboxes without a signed-in user. Includes all properties except body, previewBody, attachments and any extended properties.", + "displayName": "Read basic mail in all mailboxes", + "id": "6be147d2-ea4f-4b5a-a3fa-3eab6f3c140a", + "isEnabled": true, + "origin": "Application", + "value": "Mail.ReadBasic" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read basic mail properties in all mailboxes without a signed-in user. Includes all properties except body, previewBody, attachments and any extended properties.", + "displayName": "Read basic mail in all mailboxes", + "id": "693c5e45-0940-467d-9b8a-1022fb9d42ef", + "isEnabled": true, + "origin": "Application", + "value": "Mail.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update, and delete mail in all mailboxes without a signed-in user. Does not include permission to send mail.", + "displayName": "Read and write mail in all mailboxes", + "id": "e2a3a72e-5f79-4c64-b1b1-878b674786c9", + "isEnabled": true, + "origin": "Application", + "value": "Mail.ReadWrite" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to send mail as any user without a signed-in user.", + "displayName": "Send mail as any user", + "id": "b633e1c5-b582-4048-a93e-9f11b44c7e96", + "isEnabled": true, + "origin": "Application", + "value": "Mail.Send" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read user's mailbox settings without a signed-in user. Does not include permission to send mail.", + "displayName": "Read all user mailbox settings", + "id": "40f97065-369a-49f4-947c-6a255697ae91", + "isEnabled": true, + "origin": "Application", + "value": "MailboxSettings.Read" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update, and delete user's mailbox settings without a signed-in user. Does not include permission to send mail.", + "displayName": "Read and write all user mailbox settings", + "id": "6931bccd-447a-43d1-b442-00a195474933", + "isEnabled": true, + "origin": "Application", + "value": "MailboxSettings.ReadWrite" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the memberships of hidden groups and administrative units without a signed-in user.", + "displayName": "Read all hidden memberships", + "id": "658aa5d8-239f-45c4-aa12-864f4fc7e490", + "isEnabled": true, + "origin": "Application", + "value": "Member.Read.Hidden" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all multi-tenant organization details and tenants, without a signed-in user.", + "displayName": "Read all multi-tenant organization details and tenants", + "id": "4f994bc0-31bb-44bb-b480-7a7c1be8c02e", + "isEnabled": true, + "origin": "Application", + "value": "MultiTenantOrganization.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read multi-tenant organization basic details and active tenants, without a signed-in user.", + "displayName": "Read multi-tenant organization basic details and active tenants", + "id": "f9c2b2a7-3895-4b2e-80f6-c924b456e50b", + "isEnabled": true, + "origin": "Application", + "value": "MultiTenantOrganization.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all multi-tenant organization details and tenants, without a signed-in user.", + "displayName": "Read and write all multi-tenant organization details and tenants", + "id": "920def01-ca61-4d2d-b3df-105b46046a70", + "isEnabled": true, + "origin": "Application", + "value": "MultiTenantOrganization.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's network access braches, without a signed-in user.", + "displayName": "Read properties of all branches for network access", + "id": "39ae4a24-1ef0-49e8-9d63-2a66f5c39edd", + "isEnabled": true, + "origin": "Application", + "value": "NetworkAccessBranch.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's network access braches, without a signed-in user.", + "displayName": "Read and write properties of all branches for network access", + "id": "8137102d-ec16-4191-aaf8-7aeda8026183", + "isEnabled": true, + "origin": "Application", + "value": "NetworkAccessBranch.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's network access policies, without a signed-in user.", + "displayName": "Read all security and routing policies for network access", + "id": "8a3d36bf-cb46-4bcc-bec9-8d92829dab84", + "isEnabled": true, + "origin": "Application", + "value": "NetworkAccessPolicy.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's network access policies, without a signed-in user.", + "displayName": "Read and write all security and routing policies for network access", + "id": "f0c341be-8348-4989-8e43-660324294538", + "isEnabled": true, + "origin": "Application", + "value": "NetworkAccessPolicy.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all the OneNote notebooks in your organization, without a signed-in user.", + "displayName": "Read all OneNote notebooks", + "id": "3aeca27b-ee3a-4c2b-8ded-80376e2134a4", + "isEnabled": true, + "origin": "Application", + "value": "Notes.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all the OneNote notebooks in your organization, without a signed-in user.", + "displayName": "Read and write all OneNote notebooks", + "id": "0c458cef-11f3-48c2-a568-c66751c238c0", + "isEnabled": true, + "origin": "Application", + "value": "Notes.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read online meeting artifacts in your organization, without a signed-in user.", + "displayName": "Read online meeting artifacts", + "id": "df01ed3b-eb61-4eca-9965-6b3d789751b2", + "isEnabled": true, + "origin": "Application", + "value": "OnlineMeetingArtifact.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all recordings of all online meetings, without a signed-in user.", + "displayName": "Read all recordings of online meetings.", + "id": "a4a08342-c95d-476b-b943-97e100569c8d", + "isEnabled": true, + "origin": "Application", + "value": "OnlineMeetingRecording.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read online meeting details in your organization, without a signed-in user.", + "displayName": "Read online meeting details", + "id": "c1684f21-1984-47fa-9d61-2dc8c296bb70", + "isEnabled": true, + "origin": "Application", + "value": "OnlineMeetings.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and create online meetings as an application in your organization.", + "displayName": "Read and create online meetings", + "id": "b8bb2037-6e08-44ac-a4ea-4674e010e2a4", + "isEnabled": true, + "origin": "Application", + "value": "OnlineMeetings.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all transcripts of all online meetings, without a signed-in user.", + "displayName": "Read all transcripts of online meetings.", + "id": "a4a80d8d-d283-4bd8-8504-555ec3870630", + "isEnabled": true, + "origin": "Application", + "value": "OnlineMeetingTranscript.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all on-premises directory synchronization information for the organization, without a signed-in user.", + "displayName": "Read all on-premises directory synchronization information", + "id": "bb70e231-92dc-4729-aff5-697b3f04be95", + "isEnabled": true, + "origin": "Application", + "value": "OnPremDirectorySynchronization.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all on-premises directory synchronization information for the organization, without a signed-in user.", + "displayName": "Read and write all on-premises directory synchronization information", + "id": "c22a92cc-79bf-4bb1-8b6c-e0a05d3d80ce", + "isEnabled": true, + "origin": "Application", + "value": "OnPremDirectorySynchronization.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, view, update and delete on-premises published resources, on-premises agents and agent groups, as part of a hybrid identity configuration, without a signed in user.", + "displayName": "Manage on-premises published resources", + "id": "0b57845e-aa49-4e6f-8109-ce654fffa618", + "isEnabled": true, + "origin": "Application", + "value": "OnPremisesPublishingProfiles.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the organization and related resources, without a signed-in user. Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read organization information", + "id": "498476ce-e0fe-48b0-b801-37ba7e2685c6", + "isEnabled": true, + "origin": "Application", + "value": "Organization.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the organization and related resources, without a signed-in user. Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read and write organization information", + "id": "292d869f-3427-49a8-9dab-8c70152b74e9", + "isEnabled": true, + "origin": "Application", + "value": "Organization.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all organizational contacts without a signed-in user. These contacts are managed by the organization and are different from a user's personal contacts.", + "displayName": "Read organizational contacts", + "id": "e1a88a34-94c4-4418-be12-c87b00e26bea", + "isEnabled": true, + "origin": "Application", + "value": "OrgContact.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read organization-wide apps and services settings, without a signed-in user.", + "displayName": "Read organization-wide apps and services settings", + "id": "56c84fa9-ea1f-4a15-90f2-90ef41ece2c9", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-AppsAndServices.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write organization-wide apps and services settings, without a signed-in user.", + "displayName": "Read and write organization-wide apps and services settings", + "id": "4a8e4191-c1c8-45f8-b801-f9a1a5ee6ad3", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-AppsAndServices.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read organization-wide Dynamics customer voice settings, without a signed-in user.", + "displayName": "Read organization-wide Dynamics customer voice settings", + "id": "c18ae2dc-d9f3-4495-a93f-18980a0e159f", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-DynamicsVoice.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write organization-wide Dynamics customer voice settings, without a signed-in user.", + "displayName": "Read and write organization-wide Dynamics customer voice settings", + "id": "c3f1cc32-8bbd-4ab6-bd33-f270e0d9e041", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-DynamicsVoice.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read organization-wide Microsoft Forms settings, without a signed-in user.", + "displayName": "Read organization-wide Microsoft Forms settings", + "id": "434d7c66-07c6-4b1f-ab21-417cf2cdaaca", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-Forms.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write organization-wide Microsoft Forms settings, without a signed-in user.", + "displayName": "Read and write organization-wide Microsoft Forms settings", + "id": "2cb92fee-97a3-4034-8702-24a6f5d0d1e9", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-Forms.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read organization-wide Microsoft 365 apps installation settings, without a signed-in user.", + "displayName": "Read organization-wide Microsoft 365 apps installation settings", + "id": "6cdf1fb1-b46f-424f-9493-07247caa22e2", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-Microsoft365Install.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write organization-wide Microsoft 365 apps installation settings, without a signed-in user. ", + "displayName": "Read and write organization-wide Microsoft 365 apps installation settings", + "id": "83f7232f-763c-47b2-a097-e35d2cbe1da5", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-Microsoft365Install.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read organization-wide Microsoft To Do settings, without a signed-in user.", + "displayName": "Read organization-wide Microsoft To Do settings", + "id": "e4d9cd09-d858-4363-9410-abb96737f0cf", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-Todo.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write organization-wide Microsoft To Do settings, without a signed-in user.", + "displayName": "Read and write organization-wide Microsoft To Do settings", + "id": "5febc9da-e0d0-4576-bd13-ae70b2179a39", + "isEnabled": true, + "origin": "Application", + "value": "OrgSettings-Todo.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read any user's scored list of relevant people, without a signed-in user. The list can include local contacts, contacts from social networking, your organization's directory, and people from recent communications (such as email and Skype).", + "displayName": "Read all users' relevant people lists", + "id": "b528084d-ad10-4598-8b93-929746b4d7d6", + "isEnabled": true, + "origin": "Application", + "value": "People.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read tenant-wide people settings without a signed-in user.", + "displayName": "Read all tenant-wide people settings", + "id": "ef02f2e7-e22d-4c77-8614-8f765683b86e", + "isEnabled": true, + "origin": "Application", + "value": "PeopleSettings.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read and write tenant-wide people settings without a signed-in user.", + "displayName": "Read and write all tenant-wide people settings", + "id": "b6890674-9dd5-4e42-bb15-5af07f541ae1", + "isEnabled": true, + "origin": "Application", + "value": "PeopleSettings.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read company places (conference rooms and room lists) for calendar events and other applications, without a signed-in user.", + "displayName": "Read all company places", + "id": "913b9306-0ce1-42b8-9137-6a7df690a760", + "isEnabled": true, + "origin": "Application", + "value": "Place.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all your organization's policies without a signed in user.", + "displayName": "Read your organization's policies", + "id": "246dd0d5-5bd0-4def-940b-0421030a5b68", + "isEnabled": true, + "origin": "Application", + "value": "Policy.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's conditional access policies, without a signed-in user.", + "displayName": "Read your organization's conditional access policies", + "id": "37730810-e9ba-4e46-b07e-8ca78d182097", + "isEnabled": true, + "origin": "Application", + "value": "Policy.Read.ConditionalAccess" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization’s identity protection policy without a signed-in user. ", + "displayName": "Read your organization’s identity protection policy", + "id": "b21b72f6-4e6a-4533-9112-47eea9f97b28", + "isEnabled": true, + "origin": "Application", + "value": "Policy.Read.IdentityProtection" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read policies related to consent and permission grants for applications, without a signed-in user.", + "displayName": "Read consent and permission grant policies", + "id": "9e640839-a198-48fb-8b9a-013fd6f6cbcd", + "isEnabled": true, + "origin": "Application", + "value": "Policy.Read.PermissionGrant" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's directory access review default policy without a signed-in user.", + "displayName": "Read and write your organization's directory access review default policy", + "id": "77c863fd-06c0-47ce-a7eb-49773e89d319", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.AccessReview" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's application configuration policies, without a signed-in user. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy.", + "displayName": "Read and write your organization's application configuration policies", + "id": "be74164b-cff1-491c-8741-e671cb536e13", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.ApplicationConfiguration" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all authentication flow policies for the tenant, without a signed-in user.", + "displayName": "Read and write authentication flow policies", + "id": "25f85f3c-f66c-4205-8cd5-de92dd7f0cec", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.AuthenticationFlows" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all authentication method policies for the tenant, without a signed-in user. ", + "displayName": "Read and write all authentication method policies ", + "id": "29c18626-4985-4dcd-85c0-193eef327366", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.AuthenticationMethod" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's authorization policy without a signed in user. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default.", + "displayName": "Read and write your organization's authorization policy", + "id": "fb221be6-99f2-473f-bd32-01c6a0e9ca3b", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.Authorization" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's conditional access policies, without a signed-in user.", + "displayName": "Read and write your organization's conditional access policies", + "id": "01c0a623-fc9b-48e9-b794-0756f8e8f067", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.ConditionalAccess" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's consent requests policy without a signed-in user.", + "displayName": "Read and write your organization's consent request policy", + "id": "999f8c63-0a38-4f1b-91fd-ed1947bdd1a9", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.ConsentRequest" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's cross tenant access policies without a signed-in user.", + "displayName": "Read and write your organization's cross tenant access policies", + "id": "338163d7-f101-4c92-94ba-ca46fe52447c", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.CrossTenantAccess" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read and update the organization's external identities policy without a signed-in user. For example, external identities policy controls if users invited to access resources in your organization via B2B collaboration or B2B direct connect are allowed to self-service leave.", + "displayName": "Read and write your organization's external identities policy", + "id": "03cc4f92-788e-4ede-b93f-199424d144a5", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.ExternalIdentities" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write feature rollout policies without a signed-in user. Includes abilities to assign and remove users and groups to rollout of a specific feature.", + "displayName": "Read and write feature rollout policies", + "id": "2044e4f1-e56c-435b-925c-44cd8f6ba89a", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.FeatureRollout" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization’s identity protection policy without a signed-in user.", + "displayName": "Read and write your organization’s identity protection policy ", + "id": "2dcf8603-09eb-4078-b1ec-d30a1a76b873", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.IdentityProtection" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to manage policies related to consent and permission grants for applications, without a signed-in user.", + "displayName": "Manage consent and permission grant policies", + "id": "a402ca1c-2696-4531-972d-6e5ee4aa11ea", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.PermissionGrant" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's security defaults policy, without a signed-in user.", + "displayName": "Read and write your organization's security defaults policy", + "id": "1c6e93a6-28e2-4cbb-9f64-1a46a821124d", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.SecurityDefaults" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write your organization's trust framework policies without a signed in user.", + "displayName": "Read and write your organization's trust framework policies", + "id": "79a677f7-b79d-40d0-a36a-3e6f8688dd7a", + "isEnabled": true, + "origin": "Application", + "value": "Policy.ReadWrite.TrustFramework" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all presence information and write activity and availability of all users in the directory without a signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, time zone and location.", + "displayName": "Read and write presence information for all users", + "id": "83cded22-8297-4ff6-a7fa-e97e9545a259", + "isEnabled": true, + "origin": "Application", + "value": "Presence.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read printers without a signed-in user. ", + "displayName": "Read printers", + "id": "9709bb33-4549-49d4-8ed9-a8f65e45bb0f", + "isEnabled": true, + "origin": "Application", + "value": "Printer.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read and update printers without a signed-in user. Does not allow creating (registering) or deleting (unregistering) printers.", + "displayName": "Read and update printers", + "id": "f5b3f73d-6247-44df-a74c-866173fddab0", + "isEnabled": true, + "origin": "Application", + "value": "Printer.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to perform advanced operations like redirecting a print job to another printer without a signed-in user. Also allows the application to read and update the metadata of print jobs.", + "displayName": "Perform advanced operations on print jobs", + "id": "58a52f47-9e36-4b17-9ebe-ce4ef7f3e6c8", + "isEnabled": true, + "origin": "Application", + "value": "PrintJob.Manage.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read the metadata and document content of print jobs without a signed-in user. ", + "displayName": "Read print jobs", + "id": "ac6f956c-edea-44e4-bd06-64b1b4b9aec9", + "isEnabled": true, + "origin": "Application", + "value": "PrintJob.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read the metadata of print jobs without a signed-in user. Does not allow access to print job document content.", + "displayName": "Read basic information for print jobs", + "id": "fbf67eee-e074-4ef7-b965-ab5ce1c1f689", + "isEnabled": true, + "origin": "Application", + "value": "PrintJob.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read and update the metadata and document content of print jobs without a signed-in user.", + "displayName": "Read and write print jobs", + "id": "5114b07b-2898-4de7-a541-53b0004e2e13", + "isEnabled": true, + "origin": "Application", + "value": "PrintJob.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read and update the metadata of print jobs without a signed-in user. Does not allow access to print job document content.", + "displayName": "Read and write basic information for print jobs", + "id": "57878358-37f4-4d3a-8c20-4816e0d457b1", + "isEnabled": true, + "origin": "Application", + "value": "PrintJob.ReadWriteBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read tenant-wide print settings without a signed-in user.", + "displayName": "Read tenant-wide print settings", + "id": "b5991872-94cf-4652-9765-29535087c6d8", + "isEnabled": true, + "origin": "Application", + "value": "PrintSettings.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read and update print task definitions without a signed-in user. ", + "displayName": "Read, write and update print task definitions", + "id": "456b71a7-0ee0-4588-9842-c123fcc8f664", + "isEnabled": true, + "origin": "Application", + "value": "PrintTaskDefinition.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles in your organization, without a signed-in user.", + "displayName": "Read privileged access to Azure AD roles", + "id": "4cdc2547-9148-4295-8d11-be0db1391d6b", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedAccess.Read.AzureAD" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups in your organization, without a signed-in user.", + "displayName": "Read privileged access to Azure AD groups", + "id": "01e37dc9-c035-40bd-b438-b2879c4870a6", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedAccess.Read.AzureADGroup" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read time-based assignment and just-in-time elevation of user privileges to audit Azure resources in your organization, without a signed-in user.", + "displayName": "Read privileged access to Azure resources", + "id": "5df6fe86-1be0-44eb-b916-7bd443a71236", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedAccess.Read.AzureResources" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles in your organization, without a signed-in user.", + "displayName": "Read and write privileged access to Azure AD roles", + "id": "854d9ab1-6657-4ec8-be45-823027bcd009", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedAccess.ReadWrite.AzureAD" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups in your organization, without a signed-in user.", + "displayName": "Read and write privileged access to Azure AD groups", + "id": "2f6817f8-7b12-4f0f-bc18-eeaf60705a9e", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedAccess.ReadWrite.AzureADGroup" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) in your organization, without a signed-in user.", + "displayName": "Read and write privileged access to Azure resources", + "id": "6f9d5abc-2db6-400b-a267-7de22a40fb87", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedAccess.ReadWrite.AzureResources" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read time-based assignment schedules for access to Azure AD groups, without a signed-in user.", + "displayName": "Read assignment schedules for access to Azure AD groups", + "id": "cd4161cb-f098-48f8-a884-1eda9a42434c", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedAssignmentSchedule.Read.AzureADGroup" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, create, and delete time-based assignment schedules for access to Azure AD groups, without a signed-in user.", + "displayName": "Read, create, and delete assignment schedules for access to Azure AD groups", + "id": "41202f2c-f7ab-45be-b001-85c9728b9d69", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read time-based eligibility schedules for access to Azure AD groups, without a signed-in user.", + "displayName": "Read eligibility schedules for access to Azure AD groups", + "id": "edb419d6-7edc-42a3-9345-509bfdf5d87c", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedEligibilitySchedule.Read.AzureADGroup" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, create, and delete time-based eligibility schedules for access to Azure AD groups, without a signed-in user.", + "displayName": "Read, create, and delete eligibility schedules for access to Azure AD groups", + "id": "618b6020-bca8-4de6-99f6-ef445fa4d857", + "isEnabled": true, + "origin": "Application", + "value": "PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read programs and program controls in the organization, without a signed-in user.", + "displayName": "Read all programs", + "id": "eedb7fdd-7539-4345-a38b-4839e4a84cbd", + "isEnabled": true, + "origin": "Application", + "value": "ProgramControl.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, update, delete and perform actions on programs and program controls in the organization, without a signed-in user.", + "displayName": "Manage all programs", + "id": "60a901ed-09f7-4aa5-a16e-7dd3d6f9de36", + "isEnabled": true, + "origin": "Application", + "value": "ProgramControl.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read all question and answers, without a signed-in user.", + "displayName": "Read all Question and Answers ", + "id": "ee49e170-1dd1-4030-b44c-61ad6e98f743", + "isEnabled": true, + "origin": "Application", + "value": "QnA.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read any data from Records Management, such as configuration, labels, and policies without the signed in user.", + "displayName": "Read Records Management configuration, labels and policies", + "id": "ac3a2b8e-03a3-4da9-9ce0-cbe28bf1accd", + "isEnabled": true, + "origin": "Application", + "value": "RecordsManagement.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allow the application to create, update and delete any data from Records Management, such as configuration, labels, and policies without the signed in user.", + "displayName": "Read and write Records Management configuration, labels and policies", + "id": "eb158f57-df43-4751-8b21-b8932adb3d34", + "isEnabled": true, + "origin": "Application", + "value": "RecordsManagement.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read all service usage reports without a signed-in user. Services that provide usage reports include Office 365 and Azure Active Directory.", + "displayName": "Read all usage reports", + "id": "230c1aed-a721-4c5d-9cb4-a90514e508ef", + "isEnabled": true, + "origin": "Application", + "value": "Reports.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all admin report settings, such as whether to display concealed information in reports, without a signed-in user.", + "displayName": "Read all admin report settings", + "id": "ee353f83-55ef-4b78-82da-555bfa2b4b95", + "isEnabled": true, + "origin": "Application", + "value": "ReportSettings.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and update all admin report settings, such as whether to display concealed information in reports, without a signed-in user.", + "displayName": "Read and write all admin report settings", + "id": "2a60023f-3219-47ad-baa4-40e17cd02a1d", + "isEnabled": true, + "origin": "Application", + "value": "ReportSettings.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all resource specific permissions granted on user accounts, without a signed-in user.", + "displayName": "Read all resource specific permissions granted on user accounts", + "id": "acfca4d5-f49f-40ed-9648-84068b474c73", + "isEnabled": true, + "origin": "Application", + "value": "ResourceSpecificPermissionGrant.ReadForUser.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the active role-based access control (RBAC) assignments and schedules for your company's directory, without a signed-in user. This includes reading directory role templates, and directory roles.", + "displayName": "Read all active role assignments and role schedules for your company's directory", + "id": "d5fe8ce8-684c-4c83-a52c-46e882ce4be1", + "isEnabled": true, + "origin": "Application", + "value": "RoleAssignmentSchedule.Read.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, update, and delete policies for privileged role-based access control (RBAC) assignments of your company's directory, without a signed-in user.", + "displayName": "Read, update, and delete all policies for privileged role assignments of your company's directory", + "id": "dd199f4a-f148-40a4-a2ec-f0069cc799ec", + "isEnabled": true, + "origin": "Application", + "value": "RoleAssignmentSchedule.ReadWrite.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the eligible role-based access control (RBAC) assignments and schedules for your company's directory, without a signed-in user. This includes reading directory role templates, and directory roles.", + "displayName": "Read all eligible role assignments and role schedules for your company's directory", + "id": "ff278e11-4a33-4d0c-83d2-d01dc58929a5", + "isEnabled": true, + "origin": "Application", + "value": "RoleEligibilitySchedule.Read.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and manage the eligible role-based access control (RBAC) assignments and schedules for your company's directory, without a signed-in user. This includes managing eligible directory role membership, and reading directory role templates, directory roles and eligible memberships.", + "displayName": "Read, update, and delete all eligible role assignments and schedules for your company's directory", + "id": "fee28b28-e1f3-4841-818e-2704dc62245f", + "isEnabled": true, + "origin": "Application", + "value": "RoleEligibilitySchedule.ReadWrite.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read role-based access control (RBAC) settings for all RBAC providers without a signed-in user. This includes reading role definitions and role assignments.", + "displayName": "Read role management data for all RBAC providers", + "id": "c7fbd983-d9aa-4fa7-84b8-17382c103bc4", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagement.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the Cloud PC role-based access control (RBAC) settings, without a signed-in user.", + "displayName": "Read Cloud PC RBAC settings", + "id": "031a549a-bb80-49b6-8032-2068448c6a3c", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagement.Read.CloudPC" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the role-based access control (RBAC) settings for your company's directory, without a signed-in user. This includes reading directory role templates, directory roles and memberships.", + "displayName": "Read all directory RBAC settings", + "id": "483bed4a-2ad3-4361-a73b-c83ccdbdc53c", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagement.Read.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the role-based access control (RBAC) configuration for your organization's Exchange Online service, without a signed-in user. This includes reading Exchange management role definitions, role groups, role group membership, role assignments, management scopes, and role assignment policies.", + "displayName": "Read Exchange Online RBAC configuration", + "id": "c769435f-f061-4d0b-8ff1-3d39870e5f85", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagement.Read.Exchange" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and manage the Cloud PC role-based access control (RBAC) settings, without a signed-in user. This includes reading and managing Cloud PC role definitions and memberships.", + "displayName": "Read and write all Cloud PC RBAC settings", + "id": "274d0592-d1b6-44bd-af1d-26d259bcb43a", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagement.ReadWrite.CloudPC" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, without a signed-in user. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships.", + "displayName": "Read and write all directory RBAC settings", + "id": "9e3f62cf-ca93-4989-b6ce-bf83c28f9fe8", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagement.ReadWrite.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and manage the role-based access control (RBAC) settings for your organization's Exchange Online service, without a signed-in user. This includes reading, creating, updating, and deleting Exchange management role definitions, role groups, role group membership, role assignments, management scopes, and role assignment policies.", + "displayName": "Read and write Exchange Online RBAC configuration", + "id": "025d3225-3f02-4882-b4c0-cd5b541a4e80", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagement.ReadWrite.Exchange" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all role-based access control (RBAC) alerts for your company's directory, without a signed-in user. This includes reading alert statuses, alert definitions, alert configurations and incidents that lead to an alert.", + "displayName": "Read all alert data for your company's directory", + "id": "ef31918f-2d50-4755-8943-b8638c0a077e", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagementAlert.Read.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and manage all role-based access control (RBAC) alerts for your company's directory, without a signed-in user. This includes managing alert settings, initiating alert scans, dimissing alerts, remediating alert incidents, and reading alert statuses, alert definitions, alert configurations and incidents that lead to an alert.", + "displayName": "Read all alert data, configure alerts, and take actions on all alerts for your company's directory", + "id": "11059518-d6a6-4851-98ed-509268489c4a", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagementAlert.ReadWrite.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read policies in Privileged Identity Management for Groups, without a signed-in user.", + "displayName": "Read all policies in PIM for Groups", + "id": "69e67828-780e-47fd-b28c-7b27d14864e6", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagementPolicy.Read.AzureADGroup" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read policies for privileged role-based access control (RBAC) assignments of your company's directory, without a signed-in user.", + "displayName": "Read all policies for privileged role assignments of your company's directory", + "id": "fdc4c997-9942-4479-bfcb-75a36d1138df", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagementPolicy.Read.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, update, and delete policies in Privileged Identity Management for Groups, without a signed-in user.", + "displayName": "Read, update, and delete all policies in PIM for Groups", + "id": "b38dcc4d-a239-4ed6-aa84-6c65b284f97c", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagementPolicy.ReadWrite.AzureADGroup" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, update, and delete policies for privileged role-based access control (RBAC) assignments of your company's directory, without a signed-in user.", + "displayName": "Read, update, and delete all policies for privileged role assignments of your company's directory", + "id": "31e08e0a-d3f7-4ca2-ac39-7343fb83e8ad", + "isEnabled": true, + "origin": "Application", + "value": "RoleManagementPolicy.ReadWrite.Directory" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user.", + "displayName": "Read all schedule items", + "id": "7b2ebf90-d836-437f-b90d-7b62722c4456", + "isEnabled": true, + "origin": "Application", + "value": "Schedule.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to manage all schedules, schedule groups, shifts and associated entities in the Teams or Shifts application without a signed-in user.", + "displayName": "Read and write all schedule items", + "id": "b7760610-0545-4e8a-9ec3-cce9e63db01c", + "isEnabled": true, + "origin": "Application", + "value": "Schedule.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read search configurations, without a signed-in user.", + "displayName": "Read your organization's search configuration", + "id": "ada977a5-b8b1-493b-9a91-66c206d76ecf", + "isEnabled": true, + "origin": "Application", + "value": "SearchConfiguration.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write search configurations, without a signed-in user.", + "displayName": "Read and write your organization's search configuration", + "id": "0e778b85-fefa-466d-9eec-750569d92122", + "isEnabled": true, + "origin": "Application", + "value": "SearchConfiguration.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read security actions, without a signed-in user.", + "displayName": "Read your organization's security actions", + "id": "5e0edab9-c148-49d0-b423-ac253e121825", + "isEnabled": true, + "origin": "Application", + "value": "SecurityActions.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read or update security actions, without a signed-in user.", + "displayName": "Read and update your organization's security actions", + "id": "f2bf083f-0179-402a-bedb-b2784de8a49b", + "isEnabled": true, + "origin": "Application", + "value": "SecurityActions.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all security alerts, without a signed-in user.", + "displayName": "Read all security alerts", + "id": "472e4a4d-bb4a-4026-98d1-0b0d74cb74a5", + "isEnabled": true, + "origin": "Application", + "value": "SecurityAlert.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write to all security alerts, without a signed-in user.", + "displayName": "Read and write to all security alerts", + "id": "ed4fca05-be46-441f-9803-1873825f8fdb", + "isEnabled": true, + "origin": "Application", + "value": "SecurityAlert.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read email metadata and security detection details, without a signed-in user. ", + "displayName": "Read metadata and detection details for all emails in your organization", + "id": "b48f7ac2-044d-4281-b02f-75db744d6f5f", + "isEnabled": true, + "origin": "Application", + "value": "SecurityAnalyzedMessage.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read email metadata and security detection details, and execute remediation actions like deleting an email, without a signed-in user.", + "displayName": "Read metadata, detection details, and execute remediation actions on all emails in your organization", + "id": "04c55753-2244-4c25-87fc-704ab82a4f69", + "isEnabled": true, + "origin": "Application", + "value": "SecurityAnalyzedMessage.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization’s security events without a signed-in user.", + "displayName": "Read your organization’s security events", + "id": "bf394140-e372-4bf9-a898-299cfc7564e5", + "isEnabled": true, + "origin": "Application", + "value": "SecurityEvents.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization’s security events without a signed-in user. Also allows the app to update editable properties in security events.", + "displayName": "Read and update your organization’s security events", + "id": "d903a879-88e0-4c09-b0c9-82f6a1333f84", + "isEnabled": true, + "origin": "Application", + "value": "SecurityEvents.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all security incidents, without a signed-in user.", + "displayName": "Read all security incidents", + "id": "45cc0394-e837-488b-a098-1918f48d186c", + "isEnabled": true, + "origin": "Application", + "value": "SecurityIncident.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write to all security incidents, without a signed-in user.", + "displayName": "Read and write to all security incidents", + "id": "34bf0e97-1971-4929-b999-9e2442d941d7", + "isEnabled": true, + "origin": "Application", + "value": "SecurityIncident.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your tenant's service health information, without a signed-in user. Health information may include service issues or service health overviews.", + "displayName": "Read service health", + "id": "79c261e0-fe76-4144-aad5-bdc68fbe4037", + "isEnabled": true, + "origin": "Application", + "value": "ServiceHealth.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your tenant's service announcement messages, without a signed-in user. Messages may include information about new or changed features.", + "displayName": "Read service messages", + "id": "1b620472-6534-4fe6-9df2-4680e8aa28ec", + "isEnabled": true, + "origin": "Application", + "value": "ServiceMessage.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read service principal endpoints", + "displayName": "Read service principal endpoints", + "id": "5256681e-b7f6-40c0-8447-2d9db68797a0", + "isEnabled": true, + "origin": "Application", + "value": "ServicePrincipalEndpoint.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to update service principal endpoints", + "displayName": "Read and update service principal endpoints", + "id": "89c8469c-83ad-45f7-8ff2-6e3d4285709e", + "isEnabled": true, + "origin": "Application", + "value": "ServicePrincipalEndpoint.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read the tenant-level settings of SharePoint and OneDrive, without a signed-in user.", + "displayName": "Read SharePoint and OneDrive tenant settings", + "id": "83d4163d-a2d8-4d3b-9695-4ae3ca98f888", + "isEnabled": true, + "origin": "Application", + "value": "SharePointTenantSettings.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive, without a signed-in user.", + "displayName": "Read and change SharePoint and OneDrive tenant settings", + "id": "19b94e34-907c-4f43-bde9-38b1909ed408", + "isEnabled": true, + "origin": "Application", + "value": "SharePointTenantSettings.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all the short notes without a signed-in user.", + "displayName": "Read all users' short notes", + "id": "0c7d31ec-31ca-4f58-b6ec-9950b6b0de69", + "isEnabled": true, + "origin": "Application", + "value": "ShortNotes.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, create, edit, and delete all the short notes without a signed-in user.", + "displayName": "Read, create, edit, and delete all users' short notes", + "id": "842c284c-763d-4a97-838d-79787d129bab", + "isEnabled": true, + "origin": "Application", + "value": "ShortNotes.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to have full control of all site collections without a signed in user.", + "displayName": "Have full control of all site collections", + "id": "a82116e5-55eb-4c41-a434-62fe8a61c773", + "isEnabled": true, + "origin": "Application", + "value": "Sites.FullControl.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create or delete document libraries and lists in all site collections without a signed in user.", + "displayName": "Create, edit, and delete items and lists in all site collections", + "id": "0c0bf378-bf22-4481-8f81-9e89a9b4960a", + "isEnabled": true, + "origin": "Application", + "value": "Sites.Manage.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read documents and list items in all site collections without a signed in user.", + "displayName": "Read items in all site collections ", + "id": "332a536c-c7ef-4017-ab91-336970924f0d", + "isEnabled": true, + "origin": "Application", + "value": "Sites.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update, and delete documents and list items in all site collections without a signed in user.", + "displayName": "Read and write items in all site collections", + "id": "9492366f-7969-46a4-8d15-ed1a20078fff", + "isEnabled": true, + "origin": "Application", + "value": "Sites.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allow the application to access a subset of site collections without a signed in user.  The specific site collections and the permissions granted will be configured in SharePoint Online.", + "displayName": "Access selected site collections", + "id": "883ea226-0bf2-4a8f-9f9d-92c9162a727d", + "isEnabled": true, + "origin": "Application", + "value": "Sites.Selected" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read subject rights requests without a signed-in user.", + "displayName": "Read all subject rights requests", + "id": "ee1460f0-368b-4153-870a-4e1ca7e72c42", + "isEnabled": true, + "origin": "Application", + "value": "SubjectRightsRequest.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write subject rights requests without a signed in user.", + "displayName": "Read and write all subject rights requests", + "id": "8387eaa4-1a3c-41f5-b261-f888138e6041", + "isEnabled": true, + "origin": "Application", + "value": "SubjectRightsRequest.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read Azure AD synchronization information, without a signed-in user.", + "displayName": "Read all Azure AD synchronization data. ", + "id": "5ba43d2f-fa88-4db2-bd1c-a67c5f0fb1ce", + "isEnabled": true, + "origin": "Application", + "value": "Synchronization.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to configure the Azure AD synchronization service, without a signed-in user.", + "displayName": "Read and write all Azure AD synchronization data. ", + "id": "9b50c33d-700f-43b1-b2eb-87e89b703581", + "isEnabled": true, + "origin": "Application", + "value": "Synchronization.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to upload bulk user data to the identity synchronization service, without a signed-in user.", + "displayName": "Upload user data to the identity synchronization service", + "id": "db31e92a-b9ea-4d87-bf6a-75a37a9ca35a", + "isEnabled": true, + "origin": "Application", + "value": "SynchronizationData-User.Upload" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all users’ tasks and task lists in your organization, without a signed-in user.", + "displayName": "Read all users’ tasks and tasklist", + "id": "f10e1f91-74ed-437f-a6fd-d6ae88e26c1f", + "isEnabled": true, + "origin": "Application", + "value": "Tasks.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create, read, update and delete all users’ tasks and task lists in your organization, without a signed-in user", + "displayName": "Read and write all users’ tasks and tasklists", + "id": "44e666d1-d276-445b-a5fc-8815eeb81d55", + "isEnabled": true, + "origin": "Application", + "value": "Tasks.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create teams without a signed-in user. ", + "displayName": "Create teams", + "id": "23fc2474-f741-46ce-8465-674744c5c361", + "isEnabled": true, + "origin": "Application", + "value": "Team.Create" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Get a list of all teams, without a signed-in user.", + "displayName": "Get a list of all teams", + "id": "2280dda6-0bfd-44ee-a2f4-cb867cfc4c1e", + "isEnabled": true, + "origin": "Application", + "value": "Team.ReadBasic.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read the members of all teams, without a signed-in user.", + "displayName": "Read the members of all teams", + "id": "660b7406-55f1-41ca-a0ed-0b035e182f3e", + "isEnabled": true, + "origin": "Application", + "value": "TeamMember.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Add and remove members from all teams, without a signed-in user. Also allows changing a team member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from all teams", + "id": "0121dc95-1b9f-4aed-8bac-58c5ac466691", + "isEnabled": true, + "origin": "Application", + "value": "TeamMember.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Add and remove members from all teams, without a signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.", + "displayName": "Add and remove members with non-owner role for all teams", + "id": "4437522e-9a86-4a41-a7da-e380edd4a97d", + "isEnabled": true, + "origin": "Application", + "value": "TeamMember.ReadWriteNonOwnerRole.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all users' teamwork activity feed, without a signed-in user.", + "displayName": "Read all users' teamwork activity feed", + "id": "70dec828-f620-4914-aa83-a29117306807", + "isEnabled": true, + "origin": "Application", + "value": "TeamsActivity.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create new notifications in users' teamwork activity feeds without a signed in user. These notifications may not be discoverable or be held or governed by compliance policies.", + "displayName": "Send a teamwork activity to any user", + "id": "a267235f-af13-44dc-8385-c1dc93023186", + "isEnabled": true, + "origin": "Application", + "value": "TeamsActivity.Send" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the Teams apps that are installed in any chat, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps for all chats", + "id": "cc7e7635-2586-41d6-adaa-a8d3bcad5ee5", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadForChat.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the Teams apps that are installed in any team, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps for all teams", + "id": "1f615aea-6bf9-4b05-84bd-46388e138537", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadForTeam.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the Teams apps that are installed for any user, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps for all users", + "id": "9ce09611-f4f7-4abd-a629-a05450422a97", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadForUser.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in any chat, without a signed-in user. Gives the ability to manage permission grants for accessing those specific chats' data.", + "displayName": "Manage installation and permission grants of Teams apps for all chats", + "id": "6e74eff9-4a21-45d6-bc03-3a20f61f8281", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteAndConsentForChat.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in any team, without a signed-in user. Gives the ability to manage permission grants for accessing those specific teams' data.", + "displayName": "Manage installation and permission grants of Teams apps for all teams", + "id": "b0c13be0-8e20-4bc5-8c55-963c23a39ce9", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteAndConsentForTeam.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in any user account, without a signed-in user. Gives the ability to manage permission grants for accessing those specific users' data.", + "displayName": "Manage installation and permission grants of Teams apps in a user account", + "id": "32ca478f-f89e-41d0-aaf8-101deb7da510", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteAndConsentForUser.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself for any chat, without a signed-in user, and manage its permission grants for accessing those specific chats' data.", + "displayName": "Allow the Teams app to manage itself and its permission grants for all chats", + "id": "ba1ba90b-2d8f-487e-9f16-80728d85bb5c", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteAndConsentSelfForChat.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself for any team, without a signed-in user, and manage its permission grants for accessing those specific teams' data.", + "displayName": "Allow the Teams app to manage itself and its permission grants for all teams", + "id": "1e4be56c-312e-42b8-a2c9-009600d732c0", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteAndConsentSelfForTeam.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself for any user account, without a signed-in user, and manage its permission grants for accessing those specific users' data.", + "displayName": "Allow the Teams app to manage itself and its permission grants in all user accounts", + "id": "a87076cf-6abd-4e56-8559-4dbdf41bef96", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteAndConsentSelfForUser.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in any chat, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage Teams apps for all chats", + "id": "9e19bae1-2623-4c4f-ab6e-2664615ff9a0", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteForChat.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in any team, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage Teams apps for all teams", + "id": "5dad17ba-f6cc-4954-a5a2-a0dcc95154f0", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteForTeam.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps for any user, without a signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage Teams apps for all users", + "id": "74ef0291-ca83-4d02-8c7e-d2391e6a444f", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteForUser.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself for any chat, without a signed-in user.", + "displayName": "Allow the Teams app to manage itself for all chats", + "id": "73a45059-f39c-4baf-9182-4954ac0e55cf", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteSelfForChat.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself in any team, without a signed-in user.", + "displayName": "Allow the Teams app to manage itself for all teams", + "id": "9f67436c-5415-4e7f-8ac1-3014a7132630", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteSelfForTeam.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself to any user, without a signed-in user.", + "displayName": "Allow the app to manage itself for all users", + "id": "908de74d-f8b2-4d6b-a9ed-2a17b3b78179", + "isEnabled": true, + "origin": "Application", + "value": "TeamsAppInstallation.ReadWriteSelfForUser.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read all team's settings, without a signed-in user.", + "displayName": "Read all teams' settings", + "id": "242607bd-1d2c-432c-82eb-bdb27baa23ab", + "isEnabled": true, + "origin": "Application", + "value": "TeamSettings.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read and change all teams' settings, without a signed-in user.", + "displayName": "Read and change all teams' settings", + "id": "bdd80a03-d9bc-451d-b7c4-ce7c63fe3c8f", + "isEnabled": true, + "origin": "Application", + "value": "TeamSettings.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create tabs in any team in Microsoft Teams, without a signed-in user. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs.", + "displayName": "Create tabs in Microsoft Teams.", + "id": "49981c42-fd7b-4530-be03-e77b21aed25e", + "isEnabled": true, + "origin": "Application", + "value": "TeamsTab.Create" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read the names and settings of tabs inside any team in Microsoft Teams, without a signed-in user. This does not give access to the content inside the tabs. ", + "displayName": "Read tabs in Microsoft Teams.", + "id": "46890524-499a-4bb2-ad64-1476b4f3e1cf", + "isEnabled": true, + "origin": "Application", + "value": "TeamsTab.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Read and write tabs in any team in Microsoft Teams, without a signed-in user. This does not give access to the content inside the tabs.", + "displayName": "Read and write tabs in Microsoft Teams.", + "id": "a96d855f-016b-47d7-b51c-1218a98d791c", + "isEnabled": true, + "origin": "Application", + "value": "TeamsTab.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for any chat, without a signed-in user.", + "displayName": "Allow the Teams app to manage all tabs for all chats", + "id": "fd9ce730-a250-40dc-bd44-8dc8d20f39ea", + "isEnabled": true, + "origin": "Application", + "value": "TeamsTab.ReadWriteForChat.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs in any team, without a signed-in user.", + "displayName": "Allow the Teams app to manage all tabs for all teams", + "id": "6163d4f4-fbf8-43da-a7b4-060fe85ed148", + "isEnabled": true, + "origin": "Application", + "value": "TeamsTab.ReadWriteForTeam.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for any user, without a signed-in user.", + "displayName": "Allow the app to manage all tabs for all users", + "id": "425b4b59-d5af-45c8-832f-bb0b7402348a", + "isEnabled": true, + "origin": "Application", + "value": "TeamsTab.ReadWriteForUser.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for any chat, without a signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for all chats", + "id": "9f62e4a2-a2d6-4350-b28b-d244728c4f86", + "isEnabled": true, + "origin": "Application", + "value": "TeamsTab.ReadWriteSelfForChat.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs in any team, without a signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for all teams", + "id": "91c32b81-0ef0-453f-a5c7-4ce2e562f449", + "isEnabled": true, + "origin": "Application", + "value": "TeamsTab.ReadWriteSelfForTeam.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for any user, without a signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for all users", + "id": "3c42dec6-49e8-4a0a-b469-36cff0d9da93", + "isEnabled": true, + "origin": "Application", + "value": "TeamsTab.ReadWriteSelfForUser.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all available Teams Templates, without a signed-user.", + "displayName": "Read all available Teams Templates", + "id": "6323133e-1f6e-46d4-9372-ac33a0870636", + "isEnabled": true, + "origin": "Application", + "value": "TeamTemplates.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create chat and channel messages, without a signed in user. The app specifies which user appears as the sender, and can backdate the message to appear as if it was sent long ago. The messages can be sent to any chat or channel in the organization.", + "displayName": "Create chat and channel messages with anyone's identity and with any timestamp", + "id": "dfb0dd15-61de-45b2-be36-d6a69fba3c79", + "isEnabled": true, + "origin": "Application", + "value": "Teamwork.Migrate.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the Teams app settings without a signed-in user.", + "displayName": "Read Teams app settings", + "id": "475ebe88-f071-4bd7-af2b-642952bd4986", + "isEnabled": true, + "origin": "Application", + "value": "TeamworkAppSettings.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the Teams app settings without a signed-in user.", + "displayName": "Read and write Teams app settings", + "id": "ab5b445e-8f10-45f4-9c79-dd3f8062cc4e", + "isEnabled": true, + "origin": "Application", + "value": "TeamworkAppSettings.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allow the app to read the management data for Teams devices, without a signed-in user.", + "displayName": "Read Teams devices", + "id": "0591bafd-7c1c-4c30-a2a5-2b9aacb1dfe8", + "isEnabled": true, + "origin": "Application", + "value": "TeamworkDevice.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allow the app to read and write the management data for Teams devices, without a signed-in user.", + "displayName": "Read and write Teams devices", + "id": "79c02f5b-bd4f-4713-bc2c-a8a4a66e127b", + "isEnabled": true, + "origin": "Application", + "value": "TeamworkDevice.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read tags in Teams without a signed-in user.", + "displayName": "Read tags in Teams", + "id": "b74fd6c4-4bde-488e-9695-eeb100e4907f", + "isEnabled": true, + "origin": "Application", + "value": "TeamworkTag.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write tags in Teams without a signed-in user.", + "displayName": "Read and write tags in Teams", + "id": "a3371ca5-911d-46d6-901c-42c8c7a937d8", + "isEnabled": true, + "origin": "Application", + "value": "TeamworkTag.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all term store data, without a signed-in user. This includes all sets, groups and terms in the term store.", + "displayName": "Read all term store data", + "id": "ea047cc2-df29-4f3e-83a3-205de61501ca", + "isEnabled": true, + "origin": "Application", + "value": "TermStore.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, edit or write all term store data, without a signed-in user. This includes all sets, groups and terms in the term store.", + "displayName": "Read and write all term store data", + "id": "f12eb8d6-28e3-46e6-b2c0-b7e4dc69fc95", + "isEnabled": true, + "origin": "Application", + "value": "TermStore.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows an app to read your organization's threat assessment requests, without a signed-in user.", + "displayName": "Read threat assessment requests", + "id": "f8f035bb-2cce-47fb-8bf5-7baf3ecbee48", + "isEnabled": true, + "origin": "Application", + "value": "ThreatAssessment.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to run hunting queries, without a signed-in user.", + "displayName": "Run hunting queries", + "id": "dd98c7f5-2d42-42d3-a0e4-633161547251", + "isEnabled": true, + "origin": "Application", + "value": "ThreatHunting.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all the indicators for your organization, without a signed-in user.", + "displayName": "Read all threat indicators", + "id": "197ee4e9-b993-4066-898f-d6aecc55125b", + "isEnabled": true, + "origin": "Application", + "value": "ThreatIndicators.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to create threat indicators, and fully manage those threat indicators (read, update and delete), without a signed-in user.  It cannot update any threat indicators it does not own.", + "displayName": "Manage threat indicators this app creates or owns", + "id": "21792b6c-c986-4ffc-85de-df9da54b52fa", + "isEnabled": true, + "origin": "Application", + "value": "ThreatIndicators.ReadWrite.OwnedBy" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read threat intellgence information, such as indicators, observations, and and articles, without a signed in user.", + "displayName": "Read all Threat Intelligence Information", + "id": "e0b77adb-e790-44a3-b0a0-257d06303687", + "isEnabled": true, + "origin": "Application", + "value": "ThreatIntelligence.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's threat submissions and to view threat submission policies without a signed-in user.", + "displayName": "Read all of the organization's threat submissions", + "id": "86632667-cd15-4845-ad89-48a88e8412e1", + "isEnabled": true, + "origin": "Application", + "value": "ThreatSubmission.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's threat submissions and threat submission policies without a signed-in user. Also allows the app to create new threat submissions without a signed-in user.", + "displayName": "Read and write all of the organization's threat submissions", + "id": "d72bdbf4-a59b-405c-8b04-5995895819ac", + "isEnabled": true, + "origin": "Application", + "value": "ThreatSubmission.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read your organization's threat submission policies without a signed-in user. Also allows the app to create new threat submission polices without a signed-in user.", + "displayName": "Read and write all of the organization's threat submission policies", + "id": "926a6798-b100-4a20-a22f-a4918f13951d", + "isEnabled": true, + "origin": "Application", + "value": "ThreatSubmissionPolicy.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read trust framework key set properties without a signed-in user.", + "displayName": "Read trust framework key sets", + "id": "fff194f1-7dce-4428-8301-1badb5518201", + "isEnabled": true, + "origin": "Application", + "value": "TrustFrameworkKeySet.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write trust framework key set properties without a signed-in user.", + "displayName": "Read and write trust framework key sets", + "id": "4a771c9a-1cf2-4609-b88e-3d3e02d539cd", + "isEnabled": true, + "origin": "Application", + "value": "TrustFrameworkKeySet.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read the lifecycle information like employeeLeaveDateTime of users in your organization, without a signed-in user.", + "displayName": "Read all users' lifecycle information", + "id": "8556a004-db57-4d7a-8b82-97a13428e96f", + "isEnabled": true, + "origin": "Application", + "value": "User-LifeCycleInfo.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write the lifecycle information like employeeLeaveDateTime of users in your organization, without a signed-in user.", + "displayName": "Read and write all users' lifecycle information", + "id": "925f1248-0f97-47b9-8ec8-538c54e01325", + "isEnabled": true, + "origin": "Application", + "value": "User-LifeCycleInfo.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to enable and disable users' accounts, without a signed-in user.", + "displayName": "Enable and disable user accounts", + "id": "3011c876-62b7-4ada-afa2-506cbbecc68c", + "isEnabled": true, + "origin": "Application", + "value": "User.EnableDisableAccount.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to export data (e.g. customer content or system-generated logs), associated with any user in your company, when the app is used by a privileged user (e.g. a Company Administrator).", + "displayName": "Export user's data", + "id": "405a51b5-8d8d-430b-9842-8be4b0e9f324", + "isEnabled": true, + "origin": "Application", + "value": "User.Export.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to invite guest users to the organization, without a signed-in user.", + "displayName": "Invite guest users to the organization", + "id": "09850681-111b-4a89-9bed-3f2cae46d706", + "isEnabled": true, + "origin": "Application", + "value": "User.Invite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read, update and delete identities that are associated with a user's account, without a signed in user. This controls the identities users can sign-in with.", + "displayName": "Manage all users' identities", + "id": "c529cfca-c91b-489c-af2b-d92990b66ce6", + "isEnabled": true, + "origin": "Application", + "value": "User.ManageIdentities.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read user profiles without a signed in user.", + "displayName": "Read all users' full profiles", + "id": "df021288-bdef-4463-88db-98f22de89214", + "isEnabled": true, + "origin": "Application", + "value": "User.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and update user profiles without a signed in user.", + "displayName": "Read and write all users' full profiles", + "id": "741f803b-c850-494e-b5df-cde7c675a1ca", + "isEnabled": true, + "origin": "Application", + "value": "User.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": " Allows the app to read authentication methods of all users in your organization, without a signed-in user. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "displayName": " Read all users' authentication methods", + "id": "38d9df27-64da-44fd-b7c5-a6fbac20248f", + "isEnabled": true, + "origin": "Application", + "value": "UserAuthenticationMethod.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read and write authentication methods of all users in your organization, without a signed-in user. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods", + "displayName": "Read and write all users' authentication methods ", + "id": "50483e42-d915-4231-9639-7fdb7fd190e5", + "isEnabled": true, + "origin": "Application", + "value": "UserAuthenticationMethod.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to send, read, update and delete user’s notifications, without a signed-in user.", + "displayName": "Deliver and manage all user's notifications", + "id": "4e774092-a092-48d1-90bd-baad67c7eb47", + "isEnabled": true, + "origin": "Application", + "value": "UserNotification.ReadWrite.CreatedByApp" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all users' shift schedule preferences without a signed-in user.", + "displayName": "Read all user shift preferences", + "id": "de023814-96df-4f53-9376-1e2891ef5a18", + "isEnabled": true, + "origin": "Application", + "value": "UserShiftPreferences.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to manage all users' shift schedule preferences without a signed-in user.", + "displayName": "Read and write all user shift preferences", + "id": "d1eec298-80f3-49b0-9efb-d90e224798ac", + "isEnabled": true, + "origin": "Application", + "value": "UserShiftPreferences.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read virtual appointments for all users, without a signed-in user. The app must also be authorized to access an individual user’s data by the online meetings application access policy.", + "displayName": "Read all virtual appointments for users, as authorized by online meetings application access policy", + "id": "d4f67ec2-59b5-4bdc-b4af-d78f6f9c1954", + "isEnabled": true, + "origin": "Application", + "value": "VirtualAppointment.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the application to read and write virtual appointments for all users, without a signed-in user. The app must also be authorized to access an individual user’s data by the online meetings application access policy.", + "displayName": "Read-write all virtual appointments for users, as authorized by online meetings app access policy", + "id": "bf46a256-f47d-448f-ab78-f226fff08d40", + "isEnabled": true, + "origin": "Application", + "value": "VirtualAppointment.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read all virtual events without a signed-in user.", + "displayName": "Read all users' virtual events", + "id": "1dccb351-c4e4-4e09-a8d1-7a9ecbf027cc", + "isEnabled": true, + "origin": "Application", + "value": "VirtualEvent.Read.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to read and write all Windows update deployment settings for the organization without a signed-in user.", + "displayName": "Read and write all Windows update deployment settings", + "id": "7dd1be58-6e76-4401-bf8d-31d1e8180d5b", + "isEnabled": true, + "origin": "Application", + "value": "WindowsUpdates.ReadWrite.All" + }, + { + "allowedMemberTypes": ["Application"], + "description": "Allows the app to manage workforce integrations to synchronize data from Microsoft Teams Shifts, without a signed-in user.", + "displayName": "Read and write workforce integrations", + "id": "202bf709-e8e6-478e-bcfd-5d63c50b68e3", + "isEnabled": true, + "origin": "Application", + "value": "WorkforceIntegration.ReadWrite.All" + }, + { + "description": "Allows the app to read access reviews, reviewers, decisions and settings that the signed-in user has access to in the organization.", + "displayName": "Read all access reviews that user can access", + "id": "ebfcd32b-babb-40f4-a14b-42706e83bd28", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read information on access reviews, reviewers, decisions and settings that you have access to.", + "userConsentDisplayName": "Read access reviews that you can access", + "value": "AccessReview.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings that the signed-in user has access to in the organization.", + "displayName": "Manage all access reviews that user can access", + "id": "e4aa47b9-9a69-4109-82ed-36ec70d85ff1", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and perform action on access reviews, reviewers, decisions and settings that you have access to.", + "userConsentDisplayName": "Manage access reviews that you can access", + "value": "AccessReview.ReadWrite.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on access reviews, reviewers, decisions and settings for group and app memberships that the signed-in user has access to in the organization.", + "displayName": "Manage access reviews for group and app memberships", + "id": "5af8c3f5-baca-439a-97b0-ea58a435e269", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and perform action on access reviews, reviewers, decisions and settings that you have access to.", + "userConsentDisplayName": "Manage access reviews for group and app memberships", + "value": "AccessReview.ReadWrite.Membership" + }, + { + "description": "Allows an app to read all acronyms that the signed-in user can access.", + "displayName": "Read all acronyms that the user can access", + "id": "9084c10f-a2d6-4713-8732-348def50fe02", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all acronyms you can access.", + "userConsentDisplayName": "Read all acronyms that you have access to", + "value": "Acronym.Read.All" + }, + { + "description": "Allows the app to read administrative units and administrative unit membership on behalf of the signed-in user.", + "displayName": "Read administrative units", + "id": "3361d15d-be43-4de6-b441-3c746d05163d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read administrative units and administrative unit membership on your behalf.", + "userConsentDisplayName": "Read administrative units", + "value": "AdministrativeUnit.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete administrative units and manage administrative unit membership on behalf of the signed-in user.", + "displayName": "Read and write administrative units", + "id": "7b8a2d34-6b3f-4542-a343-54651608ad81", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update, and delete administrative units and manage administrative unit membership on your behalf.", + "userConsentDisplayName": "Read and write administrative units", + "value": "AdministrativeUnit.ReadWrite.All" + }, + { + "description": "Allows the app to read terms of use agreements on behalf of the signed-in user.", + "displayName": "Read all terms of use agreements", + "id": "af2819c9-df71-4dd3-ade7-4d7c9dc653b7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read terms of use agreements on your behalf.", + "userConsentDisplayName": "Read all terms of use agreements", + "value": "Agreement.Read.All" + }, + { + "description": "Allows the app to read and write terms of use agreements on behalf of the signed-in user.", + "displayName": "Read and write all terms of use agreements", + "id": "ef4b5d93-3104-4664-9053-a5c49ab44218", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write terms of use agreements on your behalf.", + "userConsentDisplayName": "Read and write all terms of use agreements", + "value": "Agreement.ReadWrite.All" + }, + { + "description": "Allows the app to read terms of use acceptance statuses on behalf of the signed-in user.", + "displayName": "Read user terms of use acceptance statuses", + "id": "0b7643bb-5336-476f-80b5-18fbfbc91806", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your terms of use acceptance statuses.", + "userConsentDisplayName": "Read your terms of use acceptance statuses", + "value": "AgreementAcceptance.Read" + }, + { + "description": "Allows the app to read terms of use acceptance statuses on behalf of the signed-in user.", + "displayName": "Read terms of use acceptance statuses that user can access", + "id": "a66a5341-e66e-4897-9d52-c2df58c2bfb9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read terms of use acceptance statuses on your behalf.", + "userConsentDisplayName": "Read all terms of use acceptance statuses", + "value": "AgreementAcceptance.Read.All" + }, + { + "description": "Allows the app to read the signed-in user's activity statistics, such as how much time the user has spent on emails, in meetings, or in chat sessions.", + "displayName": "Read user activity statistics", + "id": "e03cf23f-8056-446a-8994-7d93dfc8b50e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your activity statistics, such as how much time you've spent on emails, in meetings, or in chat sessions.", + "userConsentDisplayName": "Read your activity statistics", + "value": "Analytics.Read" + }, + { + "description": "Allows the app to read the API connectors used in user authentication flows, on behalf of the signed-in user.", + "displayName": "Read API connectors for authentication flows", + "id": "1b6ff35f-31df-4332-8571-d31ea5a4893f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the API connectors used in user authentication flows, on your behalf.", + "userConsentDisplayName": "Read API connectors for authentication flows", + "value": "APIConnectors.Read.All" + }, + { + "description": "Allows the app to read, create and manage the API connectors used in user authentication flows, on behalf of the signed-in user.", + "displayName": "Read and write API connectors for authentication flows", + "id": "c67b52c5-7c69-48b6-9d48-7b3af3ded914", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, create and manage the API connectors used in user authentication flows, on your behalf.", + "userConsentDisplayName": "Read and write API connectors for authentication flows", + "value": "APIConnectors.ReadWrite.All" + }, + { + "description": "Allows the app to read the apps in the app catalogs.", + "displayName": "Read all app catalogs", + "id": "88e58d74-d3df-44f3-ad47-e89edf4472e4", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read apps in the app catalogs.", + "userConsentDisplayName": "Read all app catalogs", + "value": "AppCatalog.Read.All" + }, + { + "description": "Allows the app to create, read, update, and delete apps in the app catalogs.", + "displayName": "Read and write to all app catalogs", + "id": "1ca167d5-1655-44a1-8adf-1414072e1ef9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update, and delete apps in the app catalogs.", + "userConsentDisplayName": "Read and write to all app catalogs", + "value": "AppCatalog.ReadWrite.All" + }, + { + "description": "Allows the app to submit application packages to the catalog and cancel submissions that are pending review on behalf of the signed-in user.", + "displayName": "Submit application packages to the catalog and cancel pending submissions", + "id": "3db89e36-7fa6-4012-b281-85f3d9d9fd2e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to submit application packages to the catalog and cancel submissions that are pending review on your behalf.", + "userConsentDisplayName": "Submit application packages to your organization's catalog and cancel pending submissions", + "value": "AppCatalog.Submit" + }, + { + "description": "Allows the app to read the trusted certificate authority configuration which can be used to restrict application certificates based on their issuing authority, on behalf of the signed-in user.", + "displayName": "Read the trusted certificate authority configuration for applications", + "id": "af281d3a-030d-4122-886e-146fb30a0413", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the trusted certificate authority configuration which can be used to restrict application certificates based on their issuing authority, on your behalf.", + "userConsentDisplayName": "Read the trusted certificate authority configuration for applications", + "value": "AppCertTrustConfiguration.Read.All" + }, + { + "description": "Allows the app to create, read, update and delete the trusted certificate authority configuration which can be used to restrict application certificates based on their issuing authority, on behalf of the signed-in user.", + "displayName": "Read and write the trusted certificate authority configuration for applications", + "id": "4bae2ed4-473e-4841-a493-9829cfd51d48", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to to create, read, update and delete the trusted certificate authority configuration which can be used to restrict application certificates based on their issuing authority, on your behalf.", + "userConsentDisplayName": "Read and write the trusted certificate authority configuration for applications", + "value": "AppCertTrustConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to read and write other apps' remote desktop security configuration, on behalf of the signed-in user.", + "displayName": "Read and write the remote desktop security configuration for apps", + "id": "ffa91d43-2ad8-45cc-b592-09caddeb24bb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write other apps' remote desktop security configuration, on your behalf.", + "userConsentDisplayName": "Read and write the remote desktop security configuration for apps", + "value": "Application-RemoteDesktopConfig.ReadWrite.All" + }, + { + "description": "Allows the app to read applications and service principals on behalf of the signed-in user.", + "displayName": "Read applications", + "id": "c79f8feb-a9db-4090-85f9-90d820caa0eb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read applications and service principals on your behalf.", + "userConsentDisplayName": "Read applications", + "value": "Application.Read.All" + }, + { + "description": "Allows the app to create, read, update and delete applications and service principals on behalf of the signed-in user. Does not allow management of consent grants.", + "displayName": "Read and write all applications", + "id": "bdfbf15f-ee85-4955-8675-146e8e5296b5", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update and delete applications and service principals on your behalf. Does not allow management of consent grants.", + "userConsentDisplayName": "Read and write applications", + "value": "Application.ReadWrite.All" + }, + { + "description": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, on behalf of the signed-in user.", + "displayName": "Manage app permission grants and app role assignments", + "id": "84bccea3-f856-4a8a-967b-dbe0a3d53a64", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage permission grants for application permissions to any API (including Microsoft Graph) and application assignments for any app, on your behalf.", + "userConsentDisplayName": "Manage app permission grants and app role assignments", + "value": "AppRoleAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to read attack simulation and training data for an organization for the signed-in user.", + "displayName": "Read attack simulation data of an organization", + "id": "104a7a4b-ca76-4677-b7e7-2f4bc482f381", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read attack simulation and training data for an organization on your behalf.", + "userConsentDisplayName": "Read attack simulation data of an organization", + "value": "AttackSimulation.Read.All" + }, + { + "description": "Allows the app to read, create, and update attack simulation and training data for an organization for the signed-in user.", + "displayName": "Read, create, and update attack simulation data of an organization", + "id": "27608d7c-2c66-4cad-a657-951d575f5a60", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, and update attack simulation and training data for an organization on your behalf.", + "userConsentDisplayName": "Read, create, and update attack simulation data of an organization", + "value": "AttackSimulation.ReadWrite.All" + }, + { + "description": "Allows the app to read and query your audit log activities, on behalf of the signed-in user.", + "displayName": "Read audit log data", + "id": "e4c9e354-4dc5-45b8-9e7c-e1393b0b1a20", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and query your audit log activities, on your behalf.", + "userConsentDisplayName": "Read audit log data", + "value": "AuditLog.Read.All" + }, + { + "description": "Allows the app to read all authentication context information in your organization on behalf of the signed-in user.", + "displayName": "Read all authentication context information", + "id": "57b030f1-8c35-469c-b0d9-e4a077debe70", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all authentication context information in your organization on your behalf.", + "userConsentDisplayName": "Read all authentication context information", + "value": "AuthenticationContext.Read.All" + }, + { + "description": "Allows the app to read and update all authentication context information in your organization on behalf of the signed-in user.", + "displayName": "Read and write all authentication context information", + "id": "ba6d575a-1344-4516-b777-1404f5593057", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and update all authentication context information in your organization on your behalf.", + "userConsentDisplayName": "Read and write all authentication context information", + "value": "AuthenticationContext.ReadWrite.All" + }, + { + "description": "Allows the app to read and write the billing configuration on all applications on behalf of the signed-in user. ", + "displayName": "Read and write application billing configuration", + "id": "2bf6d319-dfca-4c22-9879-f88dcfaee6be", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the billing configuration on all applications on your behalf", + "userConsentDisplayName": "Read and write application billing configuration", + "value": "BillingConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to read BitLocker keys on behalf of the signed-in user, for their owned devices. Allows read of the recovery key.", + "displayName": "Read BitLocker keys", + "id": "b27a61ec-b99c-4d6a-b126-c4375d08ae30", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read BitLocker keys for your owned devices. Allows read of the recovery key.", + "userConsentDisplayName": "Read your BitLocker keys", + "value": "BitlockerKey.Read.All" + }, + { + "description": "Allows the app to read basic BitLocker key properties on behalf of the signed-in user, for their owned devices. Does not allow read of the recovery key itself.", + "displayName": "Read BitLocker keys basic information", + "id": "5a107bfc-4f00-4e1a-b67e-66451267bc68", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read basic BitLocker key properties for your owned devices. Does not allow read of the recovery key itself.", + "userConsentDisplayName": "Read your BitLocker keys basic information", + "value": "BitlockerKey.ReadBasic.All" + }, + { + "description": "Allows an app to read, write and manage bookings appointments, businesses, customers, services, and staff on behalf of the signed-in user.", + "displayName": "Manage bookings information", + "id": "7f36b48e-542f-4d3b-9bcb-8406f0ab9fdb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read, write and manage bookings appointments, businesses, customers, services, and staff on your behalf.", + "userConsentDisplayName": "Manage bookings information", + "value": "Bookings.Manage.All" + }, + { + "description": "Allows an app to read bookings appointments, businesses, customers, services, and staff on behalf of the signed-in user.", + "displayName": "Read bookings information", + "id": "33b1df99-4b29-4548-9339-7a7b83eaeebc", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read bookings appointments, businesses, customers, services, and staff on your behalf.", + "userConsentDisplayName": "Read bookings information", + "value": "Bookings.Read.All" + }, + { + "description": "Allows an app to read and write bookings appointments, businesses, customers, services, and staff on behalf of the signed-in user. Does not allow create, delete and publish of booking businesses.", + "displayName": "Read and write bookings information", + "id": "948eb538-f19d-4ec5-9ccc-f059e1ea4c72", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read and write Bookings appointments, businesses, customers, services, and staff on your behalf. Does not allow create, delete and publish of booking businesses.", + "userConsentDisplayName": "Read and write bookings information", + "value": "Bookings.ReadWrite.All" + }, + { + "description": "Allows an app to read and write bookings appointments and customers, and additionally allows read businesses information, services, and staff on behalf of the signed-in user.", + "displayName": "Read and write booking appointments", + "id": "02a5a114-36a6-46ff-a102-954d89d9ab02", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read and write bookings appointments and customers, and additionally allows read businesses information, services, and staff on your behalf.", + "userConsentDisplayName": "Read and write booking appointments", + "value": "BookingsAppointment.ReadWrite.All" + }, + { + "description": "Allows an app to read all bookmarks that the signed-in user can access.", + "displayName": "Read all bookmarks that the user can access", + "id": "98b17b35-f3b1-4849-a85f-9f13733002f0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all bookmarks you can access.", + "userConsentDisplayName": "Read all bookmarks that you have access to", + "value": "Bookmark.Read.All" + }, + { + "description": "Allows an app to read the browser site lists configured for your organization, on behalf of the signed-in user.", + "displayName": "Read browser site lists for your organization", + "id": "fb9be2b7-a7fc-4182-aec1-eda4597c43d5", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read the browser site lists configured for your organization, on your behalf.", + "userConsentDisplayName": "Read browser site lists for your organization", + "value": "BrowserSiteLists.Read.All" + }, + { + "description": "Allows an app to read and write the browser site lists configured for your organization, on behalf of the signed-in user.", + "displayName": "Read and write browser site lists for your organization", + "id": "83b34c85-95bf-497b-a04e-b58eca9d49d0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read and write the browser site lists configured for your organization, on your behalf.", + "userConsentDisplayName": "Read and write browser site lists for your organization", + "value": "BrowserSiteLists.ReadWrite.All" + }, + { + "description": "Allows the app to read the configurations of your organization's business scenarios, on behalf of the signed-in user.", + "displayName": "Read business scenario configurations", + "id": "d16480b2-e469-4118-846b-d3d177327bee", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the configurations of your organization's business scenarios, on your behalf.", + "userConsentDisplayName": "Read business scenario configurations", + "value": "BusinessScenarioConfig.Read.All" + }, + { + "description": "Allows the app to read the configurations of business scenarios it owns, on behalf of the signed-in user.", + "displayName": "Read business scenario configurations this app creates or owns", + "id": "c47e7b6e-d6f1-4be9-9ffd-1e00f3e32892", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the configurations of business scenarios it owns, on your behalf.", + "userConsentDisplayName": "Read business scenario configurations this app creates or owns", + "value": "BusinessScenarioConfig.Read.OwnedBy" + }, + { + "description": "Allows the app to read and write the configurations of your organization's business scenarios, on behalf of the signed-in user.", + "displayName": "Read and write business scenario configurations", + "id": "755e785b-b658-446f-bb22-5a46abd029ea", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the configurations of your organization's business scenarios, on your behalf.", + "userConsentDisplayName": "Read and write business scenario configurations", + "value": "BusinessScenarioConfig.ReadWrite.All" + }, + { + "description": "Allows the app to create new business scenarios and fully manage the configurations of scenarios it owns, on behalf of the signed-in user.", + "displayName": "Read and write business scenario configurations this app creates or owns", + "id": "b3b7fcff-b4d4-4230-bf6f-90bd91285395", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create new business scenarios and fully manage the configurations of scenarios it owns, on your behalf.", + "userConsentDisplayName": "Read and write business scenario configurations this app creates or owns", + "value": "BusinessScenarioConfig.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read all data associated with the business scenarios it owns. Data access will be attributed to the signed-in user.", + "displayName": "Read all data for business scenarios this app creates or owns", + "id": "25b265c4-5d34-4e44-952d-b567f6d3b96d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all data associated with the business scenarios it owns. Data access will be attributed to you.", + "userConsentDisplayName": "Read data for business scenarios this app creates or owns", + "value": "BusinessScenarioData.Read.OwnedBy" + }, + { + "description": "Allows the app to fully manage all data associated with the business scenarios it owns. Data access and changes will be attributed to the signed-in user.", + "displayName": "Read and write all data for business scenarios this app creates or owns", + "id": "19932d57-2952-4c60-8634-3655c79fc527", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to fully manage all data associated with the business scenarios it owns. These changes will be attributed to you.", + "userConsentDisplayName": "Read and write data for business scenarios this app creates or owns", + "value": "BusinessScenarioData.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read events in user calendars . ", + "displayName": "Read user calendars ", + "id": "465a38f9-76ea-45b9-9f34-9e8b0d4b0b42", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read events in your calendars. ", + "userConsentDisplayName": "Read your calendars ", + "value": "Calendars.Read" + }, + { + "description": "Allows the app to read events in all calendars that the user can access, including delegate and shared calendars.", + "displayName": "Read user and shared calendars", + "id": "2b9c4092-424d-4249-948d-b43879977640", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read events in all calendars that you can access, including delegate and shared calendars. ", + "userConsentDisplayName": "Read calendars you can access", + "value": "Calendars.Read.Shared" + }, + { + "description": "Allows the app to read events in user calendars, except for properties such as body, attachments, and extensions.", + "displayName": "Read basic details of user calendars", + "id": "662d75ba-a364-42ad-adee-f5f880ea4878", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read events in your calendars, except for properties such as body, attachments, and extensions.", + "userConsentDisplayName": "Read basic details of your calendars", + "value": "Calendars.ReadBasic" + }, + { + "description": "Allows the app to create, read, update, and delete events in user calendars. ", + "displayName": "Have full access to user calendars ", + "id": "1ec239c2-d7c9-4623-a91a-a9775856bb36", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete events in your calendars. ", + "userConsentDisplayName": "Have full access to your calendars ", + "value": "Calendars.ReadWrite" + }, + { + "description": "Allows the app to create, read, update and delete events in all calendars in the organization user has permissions to access. This includes delegate and shared calendars.", + "displayName": "Read and write user and shared calendars", + "id": "12466101-c9b8-439a-8589-dd09ee67e8e9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete events in all calendars in your organization you have permissions to access. This includes delegate and shared calendars.", + "userConsentDisplayName": "Read and write to your and shared calendars", + "value": "Calendars.ReadWrite.Shared" + }, + { + "description": "Create channels in any team, on behalf of the signed-in user.", + "displayName": "Create channels", + "id": "101147cf-4178-4455-9d58-02b5c164e759", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Create channels in any team, on your behalf.", + "userConsentDisplayName": "Create channels", + "value": "Channel.Create" + }, + { + "description": "Delete channels in any team, on behalf of the signed-in user.", + "displayName": "Delete channels", + "id": "cc83893a-e232-4723-b5af-bd0b01bcfe65", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Delete channels in any team, on your behalf.", + "userConsentDisplayName": "Delete channels", + "value": "Channel.Delete.All" + }, + { + "description": "Read channel names and channel descriptions, on behalf of the signed-in user.", + "displayName": "Read the names and descriptions of channels", + "id": "9d8982ae-4365-4f57-95e9-d6032a4c0b87", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read channel names and channel descriptions, on your behalf.", + "userConsentDisplayName": "Read the names and descriptions of channels", + "value": "Channel.ReadBasic.All" + }, + { + "description": "Read the members of channels, on behalf of the signed-in user.", + "displayName": "Read the members of channels", + "id": "2eadaff8-0bce-4198-a6b9-2cfc35a30075", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read the members of channels, on your behalf.", + "userConsentDisplayName": "Read the members of teams and channels", + "value": "ChannelMember.Read.All" + }, + { + "description": "Add and remove members from channels, on behalf of the signed-in user. Also allows changing a member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from channels", + "id": "0c3e411a-ce45-4cd1-8f30-f99a3efa7b11", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Add and remove members from channels, on your behalf. Also allows changing a member's role, for example from owner to non-owner.", + "userConsentDisplayName": "Add and remove members from teams and channels", + "value": "ChannelMember.ReadWrite.All" + }, + { + "description": "Allows an app to edit channel messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Edit user's channel messages", + "id": "2b61aa8a-6d36-4b2f-ac7b-f29867937c53", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to edit channel messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Edit your channel messages", + "value": "ChannelMessage.Edit" + }, + { + "description": "Allows an app to read a channel's messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Read user channel messages", + "id": "767156cb-16ae-4d10-8f8b-41b657c8c8c8", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read a channel's messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read your channel messages", + "value": "ChannelMessage.Read.All" + }, + { + "description": "Allows the app to read and write channel messages, on behalf of the signed-in user. This doesn't allow the app to edit the policyViolation of a channel message.", + "displayName": "Read and write user channel messages", + "id": "5922d31f-46c8-4404-9eaf-2117e390a8a4", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write channel messages, on your behalf. This doesn't allow the app to edit the policyViolation of a channel message.", + "userConsentDisplayName": "Read and write user channel messages", + "value": "ChannelMessage.ReadWrite" + }, + { + "description": "Allows an app to send channel messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Send channel messages", + "id": "ebf0f66e-9fb1-49e4-a278-222f76911cf4", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to send channel messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Send channel messages", + "value": "ChannelMessage.Send" + }, + { + "description": "Read all channel names, channel descriptions, and channel settings, on behalf of the signed-in user.", + "displayName": "Read the names, descriptions, and settings of channels", + "id": "233e0cf1-dd62-48bc-b65b-b38fe87fcf8e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read all channel names, channel descriptions, and channel settings, on your behalf.", + "userConsentDisplayName": "Read the names, descriptions, and settings of channels", + "value": "ChannelSettings.Read.All" + }, + { + "description": "Read and write the names, descriptions, and settings of all channels, on behalf of the signed-in user.", + "displayName": "Read and write the names, descriptions, and settings of channels", + "id": "d649fb7c-72b4-4eec-b2b4-b15acf79e378", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read and write the names, descriptions, and settings of all channels, on your behalf.", + "userConsentDisplayName": "Read and write the names, descriptions, and settings of channels", + "value": "ChannelSettings.ReadWrite.All" + }, + { + "description": "Allows the app to create chats on behalf of the signed-in user.", + "displayName": "Create chats", + "id": "38826093-1258-4dea-98f0-00003be2b8d0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create chats on your behalf. ", + "userConsentDisplayName": "Create chats", + "value": "Chat.Create" + }, + { + "description": "Allows the app to delete and recover deleted chats, on behalf of the signed-in user.", + "displayName": "Delete and recover deleted chats", + "id": "bb64e6fc-6b6d-4752-aea0-dd922dbba588", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to delete and recover deleted chats, on your behalf.", + "userConsentDisplayName": "Delete and recover deleted chats", + "value": "Chat.ManageDeletion.All" + }, + { + "description": "Allows an app to read 1 on 1 or group chats threads, on behalf of the signed-in user.", + "displayName": "Read user chat messages", + "id": "f501c180-9344-439a-bca0-6cbf209fd270", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read your 1 on 1 or group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read your chat messages", + "value": "Chat.Read" + }, + { + "description": "Allows an app to read the members and descriptions of one-to-one and group chat threads, on behalf of the signed-in user.", + "displayName": "Read names and members of user chat threads", + "id": "9547fcb5-d03f-419d-9948-5928bbf71b0f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read the members and descriptions of one-to-one and group chat threads, on your behalf.", + "userConsentDisplayName": "Read names and members of your chat threads", + "value": "Chat.ReadBasic" + }, + { + "description": "Allows an app to read and write 1 on 1 or group chats threads, on behalf of the signed-in user.", + "displayName": "Read and write user chat messages", + "id": "9ff7295e-131b-4d94-90e1-69fde507ac11", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read and write your 1 on 1 or group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read and write your chat messages", + "value": "Chat.ReadWrite" + }, + { + "description": "Read the members of chats, on behalf of the signed-in user.", + "displayName": "Read the members of chats", + "id": "c5a9e2b1-faf6-41d4-8875-d381aa549b24", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read the members of chats, on your behalf.", + "userConsentDisplayName": "Read the members of chats", + "value": "ChatMember.Read" + }, + { + "description": "Add and remove members from chats, on behalf of the signed-in user.", + "displayName": "Add and remove members from chats", + "id": "dea13482-7ea6-488f-8b98-eb5bbecf033d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Add and remove members from chats, on your behalf.", + "userConsentDisplayName": "Add and remove members from chats", + "value": "ChatMember.ReadWrite" + }, + { + "description": "Allows an app to read one-to-one and group chat messages, on behalf of the signed-in user.", + "displayName": "Read user chat messages", + "id": "cdcdac3a-fd45-410d-83ef-554db620e5c7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read one-to-one or group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Read user chat messages", + "value": "ChatMessage.Read" + }, + { + "description": "Allows an app to send one-to-one and group chat messages in Microsoft Teams, on behalf of the signed-in user.", + "displayName": "Send user chat messages", + "id": "116b7235-7cc6-461e-b163-8e55691d839e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to send one-to-one and group chat messages in Microsoft Teams, on your behalf.", + "userConsentDisplayName": "Send chat messages", + "value": "ChatMessage.Send" + }, + { + "description": "Allows the app to read details of discovered cloud apps in the organization, on behalf of the signed in user.", + "displayName": "Read discovered cloud applications data", + "id": "ad46d60e-1027-4b75-af88-7c14ccf43a19", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read details of discovered cloud apps in the organization, on your behalf.", + "userConsentDisplayName": "Read discovered cloud application data", + "value": "CloudApp-Discovery.Read.All" + }, + { + "description": "Allows the app to read the properties of Cloud PCs on behalf of the signed-in user.", + "displayName": "Read Cloud PCs", + "id": "5252ec4e-fd40-4d92-8c68-89dd1d3c6110", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties of Cloud PCs, on your behalf.", + "userConsentDisplayName": "Read Cloud PCs", + "value": "CloudPC.Read.All" + }, + { + "description": "Allows the app to read and write the properties of Cloud PCs on behalf of the signed-in user.", + "displayName": "Read and write Cloud PCs", + "id": "9d77138f-f0e2-47ba-ab33-cd246c8b79d1", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties of Cloud PCs, on your behalf.", + "userConsentDisplayName": "Read and write Cloud PCs", + "value": "CloudPC.ReadWrite.All" + }, + { + "description": "Allows the app to read consent requests and approvals on behalf of the signed-in user.", + "displayName": "Read consent requests", + "id": "f3bfad56-966e-4590-a536-82ecf548ac1e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read consent requests and approvals, on your behalf.", + "userConsentDisplayName": "Read consent requests", + "value": "ConsentRequest.Read.All" + }, + { + "description": "Allows the app to read app consent requests and approvals, and deny or approve those requests on behalf of the signed-in user.", + "displayName": "Read and write consent requests", + "id": "497d9dfa-3bd1-481a-baab-90895e54568c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read app consent requests for your approval, and deny or approve those request on your behalf.", + "userConsentDisplayName": "Read and write consent requests", + "value": "ConsentRequest.ReadWrite.All" + }, + { + "description": "Allows the app to read user contacts. ", + "displayName": "Read user contacts ", + "id": "ff74d97f-43af-4b68-9f2a-b77ee6968c5d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read contacts in your contact folders. ", + "userConsentDisplayName": "Read your contacts ", + "value": "Contacts.Read" + }, + { + "description": "Allows the app to read contacts a user has permissions to access, including their own and shared contacts.", + "displayName": "Read user and shared contacts", + "id": "242b9d9e-ed24-4d09-9a52-f43769beb9d4", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read contacts you have permissions to access, including your own and shared contacts.", + "userConsentDisplayName": "Read your and shared contacts", + "value": "Contacts.Read.Shared" + }, + { + "description": "Allows the app to create, read, update, and delete user contacts. ", + "displayName": "Have full access to user contacts ", + "id": "d56682ec-c09e-4743-aaf4-1a3aac4caa21", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete contacts in your contact folders. ", + "userConsentDisplayName": "Have full access of your contacts ", + "value": "Contacts.ReadWrite" + }, + { + "description": "Allows the app to create, read, update, and delete contacts a user has permissions to, including their own and shared contacts.", + "displayName": "Read and write user and shared contacts", + "id": "afb6c84b-06be-49af-80bb-8f3f77004eab", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete contacts you have permissions to access, including your own and shared contacts.", + "userConsentDisplayName": "Read and write to your and shared contacts", + "value": "Contacts.ReadWrite.Shared" + }, + { + "description": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem on behalf of the signed-in user.", + "displayName": "Read cross-tenant basic information", + "id": "81594d25-e88e-49cf-ac8c-fecbff49f994", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to obtain basic tenant information about another target tenant within the Azure AD ecosystem on your behalf.", + "userConsentDisplayName": "Read cross-tenant basic information", + "value": "CrossTenantInformation.ReadBasic.All" + }, + { + "description": "Allows the application to list and query user profile information associated with the current tenant on behalf of the signed-in user.  It also permits the application to export external user data (e.g. customer content or system-generated logs), associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read shared cross-tenant user profile and export data", + "id": "cb1ba48f-d22b-4325-a07f-74135a62ee41", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to list and query shared user profile information associated with the current tenant on your behalf.  It also permits the application to export your external user data (e.g. customer content or system-generated logs), associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read shared cross-tenant user profile and export data", + "value": "CrossTenantUserProfileSharing.Read" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant on behalf of the signed-in user.  It also permits the application to export external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export their data", + "id": "759dcd16-3c90-463c-937e-abf89f991c18", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to list and query any shared user profile information associated with the current tenant on your behalf.  It also permits the application to export external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read any shared cross-tenant user profiles and export data", + "value": "CrossTenantUserProfileSharing.Read.All" + }, + { + "description": "Allows the application to list and query user profile information associated with the current tenant on behalf of the signed-in user.  It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read shared cross-tenant user profile and export or delete data", + "id": "eed0129d-dc60-4f30-8641-daf337a39ffd", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to list and query shared user profile information associated with the current tenant on your behalf.  It also permits the application to export and remove your external user data (e.g. customer content or system-generated logs), associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read shared cross-tenant user profile and export or delete data", + "value": "CrossTenantUserProfileSharing.ReadWrite" + }, + { + "description": "Allows the application to list and query any shared user profile information associated with the current tenant on behalf of the signed-in user.  It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on behalf of the signed-in user.", + "displayName": "Read all shared cross-tenant user profiles and export or delete their data", + "id": "64dfa325-cbf8-48e3-938d-51224a0cac01", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to list and query any shared user profile information associated with the current tenant on your behalf.  It also permits the application to export and remove external user data (e.g. customer content or system-generated logs), for any user associated with the current tenant on your behalf.", + "userConsentDisplayName": "Read any shared cross-tenant user profiles and export or delete data", + "value": "CrossTenantUserProfileSharing.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's custom authentication extensions on behalf of the signed-in user.", + "displayName": "Read your oganization's custom authentication extensions", + "id": "b2052569-c98c-4f36-a5fb-43e5c111e6d0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's custom authentication extensions on your behalf.", + "userConsentDisplayName": "Read your organization's custom authentication extensions", + "value": "CustomAuthenticationExtension.Read.All" + }, + { + "description": "Allows the app to read or write your organization's custom authentication extensions on behalf of the signed-in user.", + "displayName": "Read and write your organization's custom authentication extensions", + "id": "8dfcf82f-15d0-43b3-bc78-a958a13a5792", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read or write your organization's custom authentication extensions on your behalf.", + "userConsentDisplayName": "Read and write your organization's custom authentication extensions", + "value": "CustomAuthenticationExtension.ReadWrite.All" + }, + { + "description": "Allows the app to read custom security attribute assignments for all principals in the tenant on behalf of a signed in user.", + "displayName": "Read custom security attribute assignments", + "id": "b46ffa80-fe3d-4822-9a1a-c200932d54d0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read custom security attribute assignments for all principals in the tenant on your behalf.", + "userConsentDisplayName": "Read custom security attribute assignments", + "value": "CustomSecAttributeAssignment.Read.All" + }, + { + "description": "Allows the app to read and write custom security attribute assignments for all principals in the tenant on behalf of a signed in user.", + "displayName": "Read and write custom security attribute assignments", + "id": "ca46335e-8453-47cd-a001-8459884efeae", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write custom security attribute assignments for all principals in the tenant on your behalf.", + "userConsentDisplayName": "Read and write custom security attribute assignments", + "value": "CustomSecAttributeAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to read audit logs for events that contain information about custom security attributes, on behalf of the signed-in user.", + "displayName": "Read custom security attribute audit logs", + "id": "1fcdeaab-b519-44dd-bffc-ed1fd15a24e0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read custom security attributes audit logs on your behalf.", + "userConsentDisplayName": "Read custom security attribute audit logs", + "value": "CustomSecAttributeAuditLogs.Read.All" + }, + { + "description": "Allows the app to read custom security attribute definitions for the tenant on behalf of a signed in user.", + "displayName": "Read custom security attribute definitions", + "id": "ce026878-a0ff-4745-a728-d4fedd086c07", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read custom security attribute definitions for the tenant on your behalf.", + "userConsentDisplayName": "Read custom security attribute definitions", + "value": "CustomSecAttributeDefinition.Read.All" + }, + { + "description": "Allows the app to read and write custom security attribute definitions for the tenant on behalf of a signed in user.", + "displayName": "Read and write custom security attribute definitions", + "id": "8b0160d4-5743-482b-bb27-efc0a485ca4a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write custom security attribute definitions for the tenant on your behalf.", + "userConsentDisplayName": "Read and write custom security attribute definitions", + "value": "CustomSecAttributeDefinition.ReadWrite.All" + }, + { + "description": "Allows the app to read details of delegated admin relationships with customers like access details (that includes roles) and the duration as well as specific role assignments to security groups on behalf of the signed-in user.", + "displayName": "Read Delegated Admin relationships with customers", + "id": "0c0064ea-477b-4130-82a5-4c2cc4ff68aa", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read details of Delegated Admin relationships with customers like access details (that includes roles) and the duration as well as specific role assignments to security groups on your behalf.", + "userConsentDisplayName": "Read Delegated Admin relationships with customers", + "value": "DelegatedAdminRelationship.Read.All" + }, + { + "description": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers as well as role assignments to security groups for active Delegated Admin relationships on behalf of the signed-in user.", + "displayName": "Manage Delegated Admin relationships with customers", + "id": "885f682f-a990-4bad-a642-36736a74b0c7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage (create-update-terminate) Delegated Admin relationships with customers and role assignments to security groups for active Delegated Admin relationships on your behalf.", + "userConsentDisplayName": "Manage Delegated Admin relationships with customers", + "value": "DelegatedAdminRelationship.ReadWrite.All" + }, + { + "description": "Allows the app to read delegated permission grants, on behalf of the signed in user.", + "displayName": "Read delegated permission grants", + "id": "a197cdc4-a8e8-4d49-9d35-4ca7c83887b4", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read delegated permission grants, on your behalf.", + "userConsentDisplayName": "Read delegated permission grants", + "value": "DelegatedPermissionGrant.Read.All" + }, + { + "description": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), on behalf of the signed in user.", + "displayName": "Manage all delegated permission grants", + "id": "41ce6ca6-6826-4807-84f1-1c82854f7ee5", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage permission grants for delegated permissions exposed by any API (including Microsoft Graph), on your behalf. ", + "userConsentDisplayName": "Manage all delegated permission grants", + "value": "DelegatedPermissionGrant.ReadWrite.All" + }, + { + "description": "Allows the app to launch another app or communicate with another app on a user's device on behalf of the signed-in user.", + "displayName": "Communicate with user devices", + "id": "bac3b9c2-b516-4ef4-bd3b-c2ef73d8d804", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to launch another app or communicate with another app on a device that you own.", + "userConsentDisplayName": "Communicate with your other devices", + "value": "Device.Command" + }, + { + "description": "Allows the app to read a user's list of devices on behalf of the signed-in user.", + "displayName": "Read user devices", + "id": "11d4cd79-5ba5-460f-803f-e22c8ab85ccd", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to see your list of devices.", + "userConsentDisplayName": "View your list of devices", + "value": "Device.Read" + }, + { + "description": "Allows the app to read your organization's devices' configuration information on behalf of the signed-in user.", + "displayName": "Read all devices", + "id": "951183d1-1a61-466f-a6d1-1fde911bfd95", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read devices' configuration information on your behalf.", + "userConsentDisplayName": "Read all devices", + "value": "Device.Read.All" + }, + { + "description": "Allows the app to read device local credential properties including passwords, on behalf of the signed-in user.", + "displayName": "Read device local credential passwords", + "id": "280b3b69-0437-44b1-bc20-3b2fca1ee3e9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read device local credential properties including passwords, on your behalf.", + "userConsentDisplayName": "Read device local credential passwords", + "value": "DeviceLocalCredential.Read.All" + }, + { + "description": "Allows the app to read device local credential properties excluding passwords, on behalf of the signed-in user.", + "displayName": "Read device local credential properties", + "id": "9917900e-410b-4d15-846e-42a357488545", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read device local credential properties excluding passwords, on your behalf.", + "userConsentDisplayName": "Read device local credential properties", + "value": "DeviceLocalCredential.ReadBasic.All" + }, + { + "description": "Allows the app to read the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "displayName": "Read Microsoft Intune apps", + "id": "4edf5f54-4666-44af-9de9-0144fb4b6e8c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "userConsentDisplayName": "Read Microsoft Intune apps", + "value": "DeviceManagementApps.Read.All" + }, + { + "description": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "displayName": "Read and write Microsoft Intune apps", + "id": "7b3f05d5-f68c-4b8d-8c59-a2ecd12f24af", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties, group assignments and status of apps, app configurations and app protection policies managed by Microsoft Intune.", + "userConsentDisplayName": "Read and write Microsoft Intune apps", + "value": "DeviceManagementApps.ReadWrite.All" + }, + { + "description": "Allows the app to read properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "displayName": "Read Microsoft Intune Device Configuration and Policies", + "id": "f1493658-876a-4c87-8fa7-edb559b3476a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "userConsentDisplayName": "Read Microsoft Intune Device Configuration and Policies", + "value": "DeviceManagementConfiguration.Read.All" + }, + { + "description": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "displayName": "Read and write Microsoft Intune Device Configuration and Policies", + "id": "0883f392-0a7a-443d-8c76-16a6d39c7b63", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write properties of Microsoft Intune-managed device configuration and device compliance policies and their assignment to groups.", + "userConsentDisplayName": "Read and write Microsoft Intune Device Configuration and Policies", + "value": "DeviceManagementConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune.", + "displayName": "Perform user-impacting remote actions on Microsoft Intune devices", + "id": "3404d2bf-2b13-457e-a330-c24615765193", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to perform remote high impact actions such as wiping the device or resetting the passcode on devices managed by Microsoft Intune.", + "userConsentDisplayName": "Perform user-impacting remote actions on Microsoft Intune devices", + "value": "DeviceManagementManagedDevices.PrivilegedOperations.All" + }, + { + "description": "Allows the app to read the properties of devices managed by Microsoft Intune.", + "displayName": "Read Microsoft Intune devices", + "id": "314874da-47d6-4978-88dc-cf0d37f0bb82", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties of devices managed by Microsoft Intune.", + "userConsentDisplayName": "Read devices Microsoft Intune devices", + "value": "DeviceManagementManagedDevices.Read.All" + }, + { + "description": "Allows the app to read and write the properties of devices managed by Microsoft Intune. Does not allow high impact operations such as remote wipe and password reset on the device’s owner.", + "displayName": "Read and write Microsoft Intune devices", + "id": "44642bfe-8385-4adc-8fc6-fe3cb2c375c3", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties of devices managed by Microsoft Intune. Does not allow high impact operations such as remote wipe and password reset on the device’s owner.", + "userConsentDisplayName": "Read and write Microsoft Intune devices", + "value": "DeviceManagementManagedDevices.ReadWrite.All" + }, + { + "description": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "displayName": "Read Microsoft Intune RBAC settings", + "id": "49f0cc30-024c-4dfd-ab3e-82e137ee5431", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "userConsentDisplayName": "Read Microsoft Intune RBAC settings", + "value": "DeviceManagementRBAC.Read.All" + }, + { + "description": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "displayName": "Read and write Microsoft Intune RBAC settings", + "id": "0c5e8a55-87a6-4556-93ab-adc52c4d862d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the properties relating to the Microsoft Intune Role-Based Access Control (RBAC) settings.", + "userConsentDisplayName": "Read and write Microsoft Intune RBAC settings", + "value": "DeviceManagementRBAC.ReadWrite.All" + }, + { + "description": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "displayName": "Read Microsoft Intune configuration", + "id": "8696daa5-bce5-4b2e-83f9-51b6defc4e1e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "userConsentDisplayName": "Read Microsoft Intune configuration", + "value": "DeviceManagementServiceConfig.Read.All" + }, + { + "description": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "displayName": "Read and write Microsoft Intune configuration", + "id": "662ed50a-ac44-4eef-ad86-62eed9be2a29", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write Microsoft Intune service properties including device enrollment and third party service connection configuration.", + "userConsentDisplayName": "Read and write Microsoft Intune configuration", + "value": "DeviceManagementServiceConfig.ReadWrite.All" + }, + { + "description": "Allows the app to have the same access to information in the directory as the signed-in user.", + "displayName": "Access directory as the signed in user", + "id": "0e263e50-5827-48a4-b97c-d940288653c7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to have the same access to information in your work or school directory as you do.", + "userConsentDisplayName": "Access the directory as you", + "value": "Directory.AccessAsUser.All" + }, + { + "description": "Allows the app to read data in your organization's directory, such as users, groups and apps.", + "displayName": "Read directory data", + "id": "06da0dbc-49e2-44d2-8312-53f166ab848a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read data in your organization's directory.", + "userConsentDisplayName": "Read directory data", + "value": "Directory.Read.All" + }, + { + "description": "Allows the app to read and write data in your organization's directory, such as users, and groups. It does not allow the app to delete users or groups, or reset user passwords.", + "displayName": "Read and write directory data", + "id": "c5366453-9fb0-48a5-a156-24f0c49a4b84", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write data in your organization's directory, such as other users, groups. It does not allow the app to delete users or groups, or reset user passwords.", + "userConsentDisplayName": "Read and write directory data", + "value": "Directory.ReadWrite.All" + }, + { + "description": "Allows the app to manage restricted resources based on the other permissions granted to the app, on behalf of the signed-in user.", + "displayName": "Manage restricted resources in the directory", + "id": "cba5390f-ed6a-4b7f-b657-0efc2210ed20", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage restricted resources based on the other permissions granted to the app, on your behalf.", + "userConsentDisplayName": "Manage restricted resources in the directory", + "value": "Directory.Write.Restricted" + }, + { + "description": "Allows the app to read Azure AD recommendations, on behalf of the signed-in user.", + "displayName": "Read Azure AD recommendations", + "id": "34d3bd24-f6a6-468c-b67c-0c365c1d6410", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read Azure AD recommendations, on your behalf.", + "userConsentDisplayName": "Read Azure AD recommendations", + "value": "DirectoryRecommendations.Read.All" + }, + { + "description": "Allows the app to read and update Azure AD recommendations, on behalf of the signed-in user. ", + "displayName": "Read and update Azure AD recommendations", + "id": "f37235e8-90a0-4189-93e2-e55b53867ccd", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and update Azure AD recommendations, on your behalf.", + "userConsentDisplayName": "Read and update Azure AD recommendations", + "value": "DirectoryRecommendations.ReadWrite.All" + }, + { + "description": "Allows the app to read all domain properties on behalf of the signed-in user.", + "displayName": "Read domains.", + "id": "2f9ee017-59c1-4f1d-9472-bd5529a7b311", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all domain properties on your behalf.", + "userConsentDisplayName": "Read domains.", + "value": "Domain.Read.All" + }, + { + "description": "Allows the app to read and write all domain properties on behalf of the signed-in user. Also allows the app to add, verify and remove domains.", + "displayName": "Read and write domains", + "id": "0b5d694c-a244-4bde-86e6-eb5cd07730fe", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all domain properties on your behalf. Also allows the app to add, verify and remove domains.", + "userConsentDisplayName": "Read and write domains", + "value": "Domain.ReadWrite.All" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via Exchange ActiveSync.", + "displayName": "Access mailboxes via Exchange ActiveSync", + "id": "ff91d191-45a0-43fd-b837-bd682c4a0b0f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app full access to your mailboxes on your behalf.", + "userConsentDisplayName": "Access your mailboxes", + "value": "EAS.AccessAsUser.All" + }, + { + "description": "Allows the app to read eDiscovery objects such as cases, custodians, review sets and other related objects on behalf of the signed-in user.", + "displayName": "Read all eDiscovery objects", + "id": "99201db3-7652-4d5a-809a-bdb94f85fe3c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read eDiscovery objects such as cases, custodians, review sets and other related objects on your behalf.", + "userConsentDisplayName": "Read all eDiscovery objects", + "value": "eDiscovery.Read.All" + }, + { + "description": "Allows the app to read and write eDiscovery objects such as cases, custodians, review sets and other related objects on behalf of the signed-in user.", + "displayName": "Read and write all eDiscovery objects", + "id": "acb8f680-0834-4146-b69e-4ab1b39745ad", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write eDiscovery objects such as cases, custodians, review sets and other related objects on your behalf.", + "userConsentDisplayName": "Read and write all eDiscovery objects", + "value": "eDiscovery.ReadWrite.All" + }, + { + "description": "Read the state and settings of all Microsoft education apps on behalf of the user.", + "displayName": "Read education app settings", + "id": "8523895c-6081-45bf-8a5d-f062a2f12c9f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to view the state and settings of all Microsoft education apps on your behalf.", + "userConsentDisplayName": "View your education app settings", + "value": "EduAdministration.Read" + }, + { + "description": "Manage the state and settings of all Microsoft education apps on behalf of the user.", + "displayName": "Manage education app settings", + "id": "63589852-04e3-46b4-bae9-15d5b1050748", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage the state and settings of all Microsoft education apps on your behalf.", + "userConsentDisplayName": "Manage your education app settings", + "value": "EduAdministration.ReadWrite" + }, + { + "description": "Allows the app to read assignments and their grades on behalf of the user.", + "displayName": "Read users' class assignments and their grades", + "id": "091460c9-9c4a-49b2-81ef-1f3d852acce2", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to view your assignments on your behalf including grades.", + "userConsentDisplayName": "View your assignments and grades", + "value": "EduAssignments.Read" + }, + { + "description": "Allows the app to read assignments without grades on behalf of the user.", + "displayName": "Read users' class assignments without grades", + "id": "c0b0103b-c053-4b2e-9973-9f3a544ec9b8", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to view your assignments on your behalf without seeing grades.", + "userConsentDisplayName": "View your assignments without grades", + "value": "EduAssignments.ReadBasic" + }, + { + "description": "Allows the app to read and write assignments and their grades on behalf of the user.", + "displayName": "Read and write users' class assignments and their grades", + "id": "2f233e90-164b-4501-8bce-31af2559a2d3", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to view and modify your assignments on your behalf including  grades.", + "userConsentDisplayName": "View and modify your assignments and grades", + "value": "EduAssignments.ReadWrite" + }, + { + "description": "Allows the app to read and write assignments without grades on behalf of the user.", + "displayName": "Read and write users' class assignments without grades", + "id": "2ef770a1-622a-47c4-93ee-28d6adbed3a0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to view and modify your assignments on your behalf without seeing grades.", + "userConsentDisplayName": "View and modify your assignments without grades", + "value": "EduAssignments.ReadWriteBasic" + }, + { + "description": "Allows the app to read the user's modules and resources on behalf of the signed-in user.", + "displayName": "Read the user's class modules and resources", + "id": "484859e8-b9e2-4e92-b910-84db35dadd29", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read modules and resources on your behalf.", + "userConsentDisplayName": "Read your class modules and resources", + "value": "EduCurricula.Read" + }, + { + "description": "Allows the app to read and write user's modules and resources on behalf of the signed-in user.", + "displayName": "Read and write the user's class modules and resources", + "id": "4793c53b-df34-44fd-8d26-d15c517732f5", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write modules and resources on your behalf.", + "userConsentDisplayName": "Read and write your class modules and resources", + "value": "EduCurricula.ReadWrite" + }, + { + "description": "Allows the app to read the structure of schools and classes in an organization's roster and education-specific information about users to be read on behalf of the user.", + "displayName": "Read users' view of the roster", + "id": "a4389601-22d9-4096-ac18-36a927199112", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to view information about schools and classes in your organization and education-related information about you and other users on your behalf.", + "userConsentDisplayName": "View your school, class and user information", + "value": "EduRoster.Read" + }, + { + "description": "Allows the app to read a limited subset of the properties from the structure of schools and classes in an organization's roster and a limited subset of properties about users to be read on behalf of the user. Includes name, status, education role, email address and photo.", + "displayName": "Read a limited subset of users' view of the roster", + "id": "5d186531-d1bf-4f07-8cea-7c42119e1bd9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to view minimal  information about both schools and classes in your organization and education-related information about you and other users on your behalf.", + "userConsentDisplayName": "View a limited subset of your school, class and user information", + "value": "EduRoster.ReadBasic" + }, + { + "description": "Allows the app to read and write the structure of schools and classes in an organization's roster and education-specific information about users to be read and written on behalf of the user.", + "displayName": "Read and write users' view of the roster", + "id": "359e19a6-e3fa-4d7f-bcab-d28ec592b51e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to view and modify information about schools and classes in your organization and education-related information about you and other users on your behalf.", + "userConsentDisplayName": "View and modify your school, class and user information", + "value": "EduRoster.ReadWrite" + }, + { + "description": "Allows the app to read your users' primary email address", + "displayName": "View users' email address", + "id": "64a6cdd6-aab1-4aaf-94b8-3cc8405e90d0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your primary email address", + "userConsentDisplayName": "View your email address", + "value": "email" + }, + { + "description": "Allows the app to read access packages and related entitlement management resources on behalf of the signed-in user.", + "displayName": "Read all entitlement management resources", + "id": "5449aa12-1393-4ea2-a7c7-d0e06c1a56b2", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read access packages and related entitlement management resources that you have access to.", + "userConsentDisplayName": "Read all entitlement management resources", + "value": "EntitlementManagement.Read.All" + }, + { + "description": "Allows the app to request access to and management of access packages and related entitlement management resources on behalf of the signed-in user.", + "displayName": "Read and write entitlement management resources", + "id": "ae7a573d-81d7-432b-ad44-4ed5c9d89038", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to request access to and management of access packages and related entitlement management resources that you have access to.", + "userConsentDisplayName": "Read and write entitlement management resources", + "value": "EntitlementManagement.ReadWrite.All" + }, + { + "description": "Allows the app to manage self-service entitlement management resources on behalf of the signed-in user. This includes operations such as requesting access and approving access of others.", + "displayName": "Read and write entitlement management resources related to self-service operations", + "id": "e9fdcbbb-8807-410f-b9ec-8d5468c7c2ac", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create and manage self-service entitlement management resources that you have access to. This includes operations such as requesting access and approving access for others.", + "userConsentDisplayName": "Read and write self-service entitlement management resources", + "value": "EntitlementMgmt-SubjectAccess.ReadWrite" + }, + { + "description": "Allows the app to read your organization's authentication event listeners on behalf of the signed-in user.", + "displayName": "Read your organization's authentication event listeners", + "id": "f7dd3bed-5eec-48da-bc73-1c0ef50bc9a1", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's authentication event listeners on your behalf.", + "userConsentDisplayName": "Read your organization's authentication event listeners", + "value": "EventListener.Read.All" + }, + { + "description": "Allows the app to read or write your organization's authentication event listeners on behalf of the signed-in user.", + "displayName": "Read and write your organization's authentication event listeners", + "id": "d11625a6-fe21-4fc6-8d3d-063eba5525ad", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read or write your organization's authentication event listeners on your behalf.", + "userConsentDisplayName": "Read and write your organization's authentication event listeners", + "value": "EventListener.ReadWrite.All" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via Exchange Web Services.", + "displayName": "Access mailboxes as the signed-in user via Exchange Web Services", + "id": "9769c687-087d-48ac-9cb3-c37dde652038", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app full access to your mailboxes on your behalf.", + "userConsentDisplayName": "Access your mailboxes", + "value": "EWS.AccessAsUser.All" + }, + { + "description": "Allows the app to read all external connections on behalf of a signed-in user. The signed-in user must be an administrator.", + "displayName": "Read all external connections", + "id": "a38267a5-26b6-4d76-9493-935b7599116b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all external connections on your behalf. The signed-in user must be an administrator.", + "userConsentDisplayName": "Read all external connections", + "value": "ExternalConnection.Read.All" + }, + { + "description": "Allows the app to read and write all external connections on behalf of a signed-in user. The signed-in user must be an administrator.", + "displayName": "Read and write all external connections", + "id": "bbbbd9b3-3566-4931-ac37-2b2180d9e334", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all external connections on your behalf. The signed-in user must be an administrator.", + "userConsentDisplayName": "Read and write all external connections", + "value": "ExternalConnection.ReadWrite.All" + }, + { + "description": "Allows the app to read and write settings of external connections on behalf of a signed-in user. The signed-in user must be an administrator. The app can only read and write settings of connections that it is authorized to.", + "displayName": "Read and write external connections", + "id": "4082ad95-c812-4f02-be92-780c4c4f1830", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write external connections on your behalf. The signed-in user must be an administrator. The app can only read and write external connections that it is authorized to, or it can create new external connections. ", + "userConsentDisplayName": "Read and write external connections", + "value": "ExternalConnection.ReadWrite.OwnedBy" + }, + { + "description": "Allow the app to read external datasets and content, on behalf of the signed-in user.", + "displayName": "Read items in external datasets", + "id": "922f9392-b1b7-483c-a4be-0089be7704fb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read external datasets and content that you have access to.", + "userConsentDisplayName": "Read items in external datasets", + "value": "ExternalItem.Read.All" + }, + { + "description": "Allows the app to read and write all external items on behalf of a signed-in user. The signed-in user must be an administrator.", + "displayName": "Read and write all external items", + "id": "b02c54f8-eb48-4c50-a9f0-a149e5a2012f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all external items on your behalf. The signed-in user must be an administrator.", + "userConsentDisplayName": "Read and write all external items", + "value": "ExternalItem.ReadWrite.All" + }, + { + "description": "Allows the app to read and write external items on behalf of a signed-in user. The signed-in user must be an administrator. The app can only read external items of the connection that it is authorized to.", + "displayName": "Read and write external items", + "id": "4367b9d7-cee7-4995-853c-a0bdfe95c1f9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write external items on your behalf. The signed-in user must be an administrator. The app can only read external items of the connection that it is authorized to.", + "userConsentDisplayName": "Read and write external items", + "value": "ExternalItem.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read your family information, members and their basic profile.", + "displayName": "Read your family info", + "id": "3a1e4806-a744-4c70-80fc-223bf8582c46", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your family information, members and their basic profile.", + "userConsentDisplayName": "Read your family info", + "value": "Family.Read" + }, + { + "description": "Allows the app to read the signed-in user's files.", + "displayName": "Read user files", + "id": "10465720-29dd-4523-a11a-6a75c743c9d9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your files.", + "userConsentDisplayName": "Read your files", + "value": "Files.Read" + }, + { + "description": "Allows the app to read all files the signed-in user can access.", + "displayName": "Read all files that user can access", + "id": "df85f4d6-205c-4ac5-a5ea-6bf408dba283", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all files you can access.", + "userConsentDisplayName": "Read all files that you have access to", + "value": "Files.Read.All" + }, + { + "description": "(Preview) Allows the app to read files that the user selects. The app has access for several hours after the user selects a file.", + "displayName": "Read files that the user selects (preview)", + "id": "5447fe39-cb82-4c1a-b977-520e67e724eb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "(Preview) Allows the app to read files that you select. After you select a file, the app has access to the file for several hours.", + "userConsentDisplayName": "Read selected files", + "value": "Files.Read.Selected" + }, + { + "description": "Allows the app to read, create, update and delete the signed-in user's files.", + "displayName": "Have full access to user files", + "id": "5c28f0bf-8a70-41f1-8ab2-9032436ddb65", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, update, and delete your files.", + "userConsentDisplayName": "Have full access to your files", + "value": "Files.ReadWrite" + }, + { + "description": "Allows the app to read, create, update and delete all files the signed-in user can access.", + "displayName": "Have full access to all files user can access", + "id": "863451e7-0667-486c-a5d6-d135439485f0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, update and delete all files that you can access.", + "userConsentDisplayName": "Have full access to all files you have access to", + "value": "Files.ReadWrite.All" + }, + { + "description": "(Preview) Allows the app to read, create, update and delete files in the application's folder.", + "displayName": "Have full access to the application's folder (preview)", + "id": "8019c312-3263-48e6-825e-2b833497195b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "(Preview) Allows the app to read, create, update and delete files in the application's folder.", + "userConsentDisplayName": "Have full access to the application's folder", + "value": "Files.ReadWrite.AppFolder" + }, + { + "description": "(Preview) Allows the app to read and write files that the user selects. The app has access for several hours after the user selects a file.", + "displayName": "Read and write files that the user selects (preview)", + "id": "17dde5bd-8c17-420f-a486-969730c1b827", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "(Preview) Allows the app to read and write files that you select. After you select a file, the app has access to the file for several hours.", + "userConsentDisplayName": "Read and write selected files", + "value": "Files.ReadWrite.Selected" + }, + { + "description": "Allows the app to read and write financials data on behalf of the signed-in user.", + "displayName": "Read and write financials data", + "id": "f534bf13-55d4-45a9-8f3c-c92fe64d6131", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write financials data on your behalf.", + "userConsentDisplayName": "Read and write financials data", + "value": "Financials.ReadWrite.All" + }, + { + "description": "Allows the app to list groups, and to read their properties and all group memberships on behalf of the signed-in user. Also allows the app to read calendar, conversations, files, and other group content for all groups the signed-in user can access. ", + "displayName": "Read all groups", + "id": "5f8c59db-677d-491f-a6b8-5f174b11ec1d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to list groups, and to read their properties and all group memberships on your behalf. Also allows the app to read calendar, conversations, files, and other group content for all groups you can access. ", + "userConsentDisplayName": "Read all groups", + "value": "Group.Read.All" + }, + { + "description": "Allows the app to create groups and read all group properties and memberships on behalf of the signed-in user. Additionally allows group owners to manage their groups and allows group members to update group content.", + "displayName": "Read and write all groups", + "id": "4e46008b-f24c-477d-8fff-7bb4ec7aafe0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create groups and read all group properties and memberships on your behalf. Additionally allows the app to manage your groups and to update group content for groups you are a member of.", + "userConsentDisplayName": "Read and write all groups", + "value": "Group.ReadWrite.All" + }, + { + "description": "Allows the app to list groups, read basic group properties and read membership of all groups the signed-in user has access to.", + "displayName": "Read group memberships", + "id": "bc024368-1153-4739-b217-4326f2e966d0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to list groups, read basic group properties and read membership of all your groups.", + "userConsentDisplayName": "Read group memberships", + "value": "GroupMember.Read.All" + }, + { + "description": "Allows the app to list groups, read basic properties, read and update the membership of the groups the signed-in user has access to. Group properties and owners cannot be updated and groups cannot be deleted.", + "displayName": "Read and write group memberships", + "id": "f81125ac-d3b7-4573-a3b2-7099cc39df9e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to list groups, read basic properties, read and update the membership of your groups. Group properties and owners cannot be updated and groups cannot be deleted.", + "userConsentDisplayName": "Read and write group memberships", + "value": "GroupMember.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization’s identity (authentication) providers’ properties on behalf of the user.", + "displayName": "Read identity providers", + "id": "43781733-b5a7-4d1b-98f4-e8edff23e1a9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization’s identity (authentication) providers’ properties on your behalf.", + "userConsentDisplayName": "Read identity providers", + "value": "IdentityProvider.Read.All" + }, + { + "description": "Allows the app to read and write your organization’s identity (authentication) providers’ properties on behalf of the user.", + "displayName": "Read and write identity providers", + "id": "f13ce604-1677-429f-90bd-8a10b9f01325", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization’s identity (authentication) providers’ properties on your behalf.", + "userConsentDisplayName": "Read and write identity providers", + "value": "IdentityProvider.ReadWrite.All" + }, + { + "description": "Allows the app to read identity risk event information for all users in your organization on behalf of the signed-in user. ", + "displayName": "Read identity risk event information", + "id": "8f6a01e7-0391-4ee5-aa22-a3af122cef27", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read identity risk event information for all users in your organization on behalf of the signed-in user. ", + "userConsentDisplayName": "Read identity risk event information", + "value": "IdentityRiskEvent.Read.All" + }, + { + "description": "Allows the app to read and update identity risk event information for all users in your organization on behalf of the signed-in user. Update operations include confirming risk event detections. ", + "displayName": "Read and write risk event information", + "id": "9e4862a5-b68f-479e-848a-4e07e25c9916", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and update identity risk event information for all users in your organization on your behalf. Update operations include confirming risk event detections. ", + "userConsentDisplayName": "Read and write risk event information", + "value": "IdentityRiskEvent.ReadWrite.All" + }, + { + "description": "Allows the app to read all identity risky service principal information for your organization, on behalf of the signed-in user.", + "displayName": "Read all identity risky service principal information", + "id": "ea5c4ab0-5a73-4f35-8272-5d5337884e5d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all identity risky service principal information for your organization, on your behalf.", + "userConsentDisplayName": "Read all identity risky service principal information", + "value": "IdentityRiskyServicePrincipal.Read.All" + }, + { + "description": "Allows the app to read and update identity risky service principal information for all service principals in your organization, on behalf of the signed-in user. Update operations include dismissing risky service principals.", + "displayName": "Read and write all identity risky service principal information", + "id": "bb6f654c-d7fd-4ae3-85c3-fc380934f515", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and update identity risky service principal information for all service principals in your organization, on your behalf. Update operations include dismissing risky service principals.", + "userConsentDisplayName": "Read and write all identity risky service principal information", + "value": "IdentityRiskyServicePrincipal.ReadWrite.All" + }, + { + "description": "Allows the app to read identity risky user information for all users in your organization on behalf of the signed-in user.", + "displayName": "Read identity risky user information", + "id": "d04bb851-cb7c-4146-97c7-ca3e71baf56c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read identity risky user information for all users in your organization on behalf of the signed-in user.", + "userConsentDisplayName": "Read identity risky user information", + "value": "IdentityRiskyUser.Read.All" + }, + { + "description": "Allows the app to read and update identity risky user information for all users in your organization on behalf of the signed-in user. Update operations include dismissing risky users.", + "displayName": "Read and write risky user information", + "id": "e0a7cdbb-08b0-4697-8264-0069786e9674", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and update identity risky user information for all users in your organization on your behalf. Update operations include dismissing risky users.", + "userConsentDisplayName": "Read and write identity risky user information", + "value": "IdentityRiskyUser.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's user flows, on behalf of the signed-in user.", + "displayName": "Read all identity user flows", + "id": "2903d63d-4611-4d43-99ce-a33f3f52e343", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's user flows, on your behalf.", + "userConsentDisplayName": "Read all identity user flows", + "value": "IdentityUserFlow.Read.All" + }, + { + "description": "Allows the app to read or write your organization's user flows, on behalf of the signed-in user.", + "displayName": "Read and write all identity user flows", + "id": "281892cc-4dbf-4e3a-b6cc-b21029bb4e82", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read or write your organization's user flows, on your behalf.", + "userConsentDisplayName": "Read and write all identity user flows", + "value": "IdentityUserFlow.ReadWrite.All" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via IMAP protocol.", + "displayName": "Read and write access to mailboxes via IMAP.", + "id": "652390e4-393a-48de-9484-05f9b1212954", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete email in your mailbox. Does not include permission to send mail.", + "userConsentDisplayName": "Read and write access to your mail.", + "value": "IMAP.AccessAsUser.All" + }, + { + "description": "Allows the app to read data connectors on behalf of the signed-in user.", + "displayName": "View data connector definitions", + "id": "d19c0de5-7ecb-4aba-b090-da35ebcd5425", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read data connectors on your behalf.", + "userConsentDisplayName": "View data connector definitions", + "value": "IndustryData-DataConnector.Read.All" + }, + { + "description": "Allows the app to read and write data connectors on behalf of the signed-in user.", + "displayName": "Manage data connector definitions", + "id": "5ce933ac-3997-4280-aed0-cc072e5c062a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write data connectors on your behalf.", + "userConsentDisplayName": "Manage data connector definitions", + "value": "IndustryData-DataConnector.ReadWrite.All" + }, + { + "description": "Allows the app to upload data files to a data connector on behalf of the signed-in user.", + "displayName": "Upload files to a data connector", + "id": "fc47391d-ab2c-410f-9059-5600f7af660d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to upload data files to a data connector on your behalf.", + "userConsentDisplayName": "Upload files to a data connector", + "value": "IndustryData-DataConnector.Upload" + }, + { + "description": "Allows the app to read inbound data flows on behalf of the signed-in user.", + "displayName": "View inbound flow definitions", + "id": "cb0774da-a605-42af-959c-32f438fb38f4", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read inbound data flows on your behalf.", + "userConsentDisplayName": "View inbound flow definitions", + "value": "IndustryData-InboundFlow.Read.All" + }, + { + "description": "Allows the app to read and write inbound data flows on behalf of the signed-in user.", + "displayName": "Manage inbound flow definitions", + "id": "97044676-2cec-40ee-bd70-38df444c9e70", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write inbound data flows on your behalf.", + "userConsentDisplayName": "Manage inbound flow definitions", + "value": "IndustryData-InboundFlow.ReadWrite.All" + }, + { + "description": "Allows the app to read reference definitions on behalf of the signed-in user.", + "displayName": "View reference definitions", + "id": "a3f96ffe-cb84-40a8-ac85-582d7ef97c2a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read reference definitions on your behalf.", + "userConsentDisplayName": "View reference definitions", + "value": "IndustryData-ReferenceDefinition.Read.All" + }, + { + "description": "Allows the app to read current and previous IndustryData runs on behalf of the signed-in user.", + "displayName": "View current and previous runs", + "id": "92685235-50c4-4702-b2c8-36043db6fa79", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read current and previous IndustryData runs on your behalf.", + "userConsentDisplayName": "View current and previous runs", + "value": "IndustryData-Run.Read.All" + }, + { + "description": "Allows the app to read source system definitions on behalf of the signed-in user.", + "displayName": "View source system definitions", + "id": "49b7016c-89ae-41e7-bd6f-b7170c5490bf", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read source system definitions on your behalf.", + "userConsentDisplayName": "View source system definitions", + "value": "IndustryData-SourceSystem.Read.All" + }, + { + "description": "Allows the app to read and write source system definitions on behalf of the signed-in user.", + "displayName": "Manage source system definitions", + "id": "9599f005-05d6-4ea7-b1b1-4929768af5d0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write source system definitions on your behalf.", + "userConsentDisplayName": "Manage source system definitions", + "value": "IndustryData-SourceSystem.ReadWrite.All" + }, + { + "description": "Allows the app to read time period definitions on behalf of the signed-in user.", + "displayName": "Read time period definitions", + "id": "c9d51f28-8ccd-42b2-a836-fd8fe9ebf2ae", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read time period definitions on your behalf.", + "userConsentDisplayName": "Read time period definitions", + "value": "IndustryData-TimePeriod.Read.All" + }, + { + "description": "Allows the app to read and write time period definitions on behalf of the signed-in user.", + "displayName": "Manage time period definitions", + "id": "b6d56528-3032-4f9d-830f-5a24a25e6661", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write time period definitions on your behalf.", + "userConsentDisplayName": "Manage time period definitions", + "value": "IndustryData-TimePeriod.ReadWrite.All" + }, + { + "description": "Allows the app to read basic Industry Data service and resource information on behalf of the signed-in user.", + "displayName": "Read basic Industry Data service and resource definitions", + "id": "60382b96-1f5e-46ea-a544-0407e489e588", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read Industry Data basic service and resource information on your behalf.", + "userConsentDisplayName": "Read basic Industry Data service and resource definitions", + "value": "IndustryData.ReadBasic.All" + }, + { + "description": "Allows the app to read the configurations applicable to the signed-in user for protecting organizational data, on behalf of the signed-in user.", + "displayName": "Read configurations for protecting organizational data applicable to the user", + "id": "12f4bffb-b598-413c-984b-db99728f8b54", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the configurations applicable to you for protecting organizational data, on your behalf.", + "userConsentDisplayName": "Read configurations for protecting organizational data applicable to you", + "value": "InformationProtectionConfig.Read" + }, + { + "description": "Allows an app to read information protection sensitivity labels and label policy settings, on behalf of the signed-in user.", + "displayName": "Read user sensitivity labels and label policies.", + "id": "4ad84827-5578-4e18-ad7a-86530b12f884", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read information protection sensitivity labels and label policy settings, on behalf of the signed-in user.", + "userConsentDisplayName": "Read user sensitivity labels and label policies.", + "value": "InformationProtectionPolicy.Read" + }, + { + "description": "Allows the app to read insights related to guest activity, on behalf of the signed-in user.", + "displayName": "Read insights related to guest activity", + "id": "bdd9425e-296d-4e4b-9c15-0a288b4b12e1", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read insights related to guest activity, on your behalf.", + "userConsentDisplayName": "Read insights related to guest activity", + "value": "Insights-GuestActivity.Read.All" + }, + { + "description": "Allows the app to read and write insights related to guest activity, on behalf of the signed-in user.", + "displayName": "Read and write insights related to guest activity", + "id": "7e23346e-6931-45b2-b04e-6332b3905b8a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write insights related to guest activity, on your behalf.", + "userConsentDisplayName": "Read and write insights related to guest activity", + "value": "Insights-GuestActivity.ReadWrite.All" + }, + { + "description": "Allows the app to read data for the learner's assignments in the organization's directory, on behalf of the signed-in user.", + "displayName": "Read user's assignments", + "id": "ac08cdae-e845-41db-adf9-5899a0ec9ef6", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read data for your assignments in the organization's directory, on your behalf.", + "userConsentDisplayName": "Read your assignments", + "value": "LearningAssignedCourse.Read" + }, + { + "description": "Allows the app to read learning content in the organization's directory, on behalf of the signed-in user.", + "displayName": "Read learning content", + "id": "ea4c1fd9-6a9f-4432-8e5d-86e06cc0da77", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read learning content in the organization's directory, on your behalf.", + "userConsentDisplayName": "Read learning content", + "value": "LearningContent.Read.All" + }, + { + "description": "Allows the app to manage learning content in the organization's directory, on behalf of the signed-in user.", + "displayName": "Manage learning content", + "id": "53cec1c4-a65f-4981-9dc1-ad75dbf1c077", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage learning content in the organization's directory, on your behalf.", + "userConsentDisplayName": "Manage learning content", + "value": "LearningContent.ReadWrite.All" + }, + { + "description": "Allows the app to read data for the learning provider in the organization's directory, on behalf of the signed-in user.", + "displayName": "Read learning provider", + "id": "dd8ce36f-9245-45ea-a99e-8ac398c22861", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read data for the learning provider in the organization's directory, on your behalf.", + "userConsentDisplayName": "Read learning provider", + "value": "LearningProvider.Read" + }, + { + "description": "Allows the app to create, update, read, and delete data for the learning provider in the organization's directory, on behalf of the signed-in user.", + "displayName": "Manage learning provider", + "id": "40c2eb57-abaf-49f5-9331-e90fd01f7130", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create, update, read, and delete data for the learning provider in the organization's directory, on your behalf.", + "userConsentDisplayName": "Manage learning provider", + "value": "LearningProvider.ReadWrite" + }, + { + "description": "Allows the app to read data for the learner's self-initiated courses in the organization's directory, on behalf of the signed-in user.", + "displayName": "Read user's self-initiated courses", + "id": "f6403ef7-4a96-47be-a190-69ba274c3f11", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read data for your self-initiated courses in the organization's directory, on your behalf.", + "userConsentDisplayName": "Read your self-initiated courses", + "value": "LearningSelfInitiatedCourse.Read" + }, + { + "description": "Allows an app to manage license assignments for users and groups, on behalf of the signed-in user.", + "displayName": "Manage all license assignments", + "id": "f55016cc-149c-447e-8f21-7cf3ec1d6350", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage all license assignments, on your behalf.", + "userConsentDisplayName": "Manage all license assignments", + "value": "LicenseAssignment.ReadWrite.All" + }, + { + "description": "Allows the app to list and read all workflows, tasks and related lifecycle workflows resources on behalf of the signed-in user.", + "displayName": "Read all lifecycle workflows resources", + "id": "9bcb9916-765a-42af-bf77-02282e26b01a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to list and read all workflows, tasks and related lifecycle workflows resources on your behalf.", + "userConsentDisplayName": "Read all lifecycle workflows resources", + "value": "LifecycleWorkflows.Read.All" + }, + { + "description": "Allows the app to create, update, list, read and delete all workflows, tasks and related lifecycle workflows resources on behalf of the signed-in user.", + "displayName": "Read and write all lifecycle workflows resources", + "id": "84b9d731-7db8-4454-8c90-fd9e95350179", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create, update, list, read and delete all workflows, tasks and related lifecycle workflows resources on your behalf.", + "userConsentDisplayName": "Read and write all lifecycle workflows resources", + "value": "LifecycleWorkflows.ReadWrite.All" + }, + { + "description": "Allows the app to read the signed-in user's mailbox.", + "displayName": "Read user mail ", + "id": "570282fd-fa5c-430d-a7fd-fc8dc98a9dca", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read email in your mailbox. ", + "userConsentDisplayName": "Read your mail ", + "value": "Mail.Read" + }, + { + "description": "Allows the app to read mail a user can access, including their own and shared mail.", + "displayName": "Read user and shared mail", + "id": "7b9103a5-4610-446b-9670-80643382c1fa", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read mail you can access, including shared mail.", + "userConsentDisplayName": "Read mail you can access", + "value": "Mail.Read.Shared" + }, + { + "description": "Allows the app to read email in the signed-in user's mailbox except body, previewBody, attachments and any extended properties.", + "displayName": "Read user basic mail", + "id": "a4b8392a-d8d1-4954-a029-8e668a39a170", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read email in the signed-in user's mailbox except body, previewBody, attachments and any extended properties.", + "userConsentDisplayName": "Read user basic mail", + "value": "Mail.ReadBasic" + }, + { + "description": "Allows the app to read mail the signed-in user can access, including their own and shared mail, except for body, bodyPreview, uniqueBody, attachments, extensions, and any extended properties.", + "displayName": "Read user and shared basic mail", + "id": "b11fa0e7-fdb7-4dc9-b1f1-59facd463480", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read mail you can access, including shared mail except body, previewBody, uniqueBody, attachments, extensions, and any extended properties. ", + "userConsentDisplayName": "Read basic mail you can access", + "value": "Mail.ReadBasic.Shared" + }, + { + "description": "Allows the app to create, read, update, and delete email in user mailboxes. Does not include permission to send mail. ", + "displayName": "Read and write access to user mail ", + "id": "024d486e-b451-40bb-833d-3e66d98c5c73", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete email in your mailbox. Does not include permission to send mail. ", + "userConsentDisplayName": "Read and write access to your mail ", + "value": "Mail.ReadWrite" + }, + { + "description": "Allows the app to create, read, update, and delete mail a user has permission to access, including their own and shared mail. Does not include permission to send mail.", + "displayName": "Read and write user and shared mail", + "id": "5df07973-7d5d-46ed-9847-1271055cbd51", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete mail you have permission to access, including your own and shared mail. Does not allow the app to send mail on your behalf.", + "userConsentDisplayName": "Read and write mail you can access", + "value": "Mail.ReadWrite.Shared" + }, + { + "description": "Allows the app to send mail as users in the organization. ", + "displayName": "Send mail as a user ", + "id": "e383f46e-2787-4529-855e-0e479a3ffac0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to send mail as you. ", + "userConsentDisplayName": "Send mail as you ", + "value": "Mail.Send" + }, + { + "description": "Allows the app to send mail as the signed-in user, including sending on-behalf of others.", + "displayName": "Send mail on behalf of others", + "id": "a367ab51-6b49-43bf-a716-a1fb06d2a174", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to send mail as you or on-behalf of someone else.", + "userConsentDisplayName": "Send mail on behalf of others or yourself", + "value": "Mail.Send.Shared" + }, + { + "description": "Allows the app to the read user's mailbox settings. Does not include permission to send mail.", + "displayName": "Read user mailbox settings", + "id": "87f447af-9fa4-4c32-9dfa-4a57a73d18ce", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your mailbox settings.", + "userConsentDisplayName": "Read your mailbox settings", + "value": "MailboxSettings.Read" + }, + { + "description": "Allows the app to create, read, update, and delete user's mailbox settings. Does not include permission to send mail.", + "displayName": "Read and write user mailbox settings", + "id": "818c620a-27a9-40bd-a6a5-d96f7d610b4b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete your mailbox settings.", + "userConsentDisplayName": "Read and write to your mailbox settings", + "value": "MailboxSettings.ReadWrite" + }, + { + "description": "Allows the app to read all managed tenant information on behalf of the signed-in user.", + "displayName": "Read all managed tenant information", + "id": "dc34164e-6c4a-41a0-be89-3ae2fbad7cd3", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all managed tenant information on your behalf.", + "userConsentDisplayName": "Read all managed tenant information", + "value": "ManagedTenants.Read.All" + }, + { + "description": "Allows the app to read and write all managed tenant information on behalf of the signed-in user.", + "displayName": "Read and write all managed tenant information", + "id": "b31fa710-c9b3-4d9e-8f5e-8036eecddab9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all managed tenant information on your behalf.", + "userConsentDisplayName": "Read and write all managed tenant information", + "value": "ManagedTenants.ReadWrite.All" + }, + { + "description": "Allows the app to read the memberships of hidden groups and administrative units on behalf of the signed-in user, for those hidden groups and administrative units that the signed-in user has access to.", + "displayName": "Read hidden memberships", + "id": "f6a3db3e-f7e8-4ed2-a414-557c8c9830be", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the memberships of hidden groups or administrative units on your behalf, for those hidden groups or adminstrative units that you have access to.", + "userConsentDisplayName": "Read your hidden memberships", + "value": "Member.Read.Hidden" + }, + { + "description": "Allows the app to read multi-tenant organization details and tenants on behalf of the signed-in user.", + "displayName": "Read multi-tenant organization details and tenants", + "id": "526aa72a-5878-49fe-bf4e-357973af9b06", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read multi-tenant organization details and tenants on your behalf.", + "userConsentDisplayName": "Read multi-tenant organization details and tenants", + "value": "MultiTenantOrganization.Read.All" + }, + { + "description": "Allows the app to read multi-tenant organization basic details and active tenants on behalf of the signed-in user.", + "displayName": "Read multi-tenant organization basic details and active tenants", + "id": "225db56b-15b2-4daa-acb3-0eec2bbe4849", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read multi-tenant organization basic details and active tenants on your behalf.", + "userConsentDisplayName": "Read multi-tenant organization basic details and active tenants", + "value": "MultiTenantOrganization.ReadBasic.All" + }, + { + "description": "Allows the app to read and write multi-tenant organization details and tenants on behalf of the signed-in user.", + "displayName": "Read and write multi-tenant organization details and tenants", + "id": "77af1528-84f3-4023-8d90-d219cd433108", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write multi-tenant organization details and tenants on your behalf.", + "userConsentDisplayName": "Read and write multi-tenant organization details and tenants", + "value": "MultiTenantOrganization.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's branches for network access on behalf of the signed-in user.", + "displayName": "Read properties of branches for network access", + "id": "4051c7fc-b429-4804-8d80-8f1f8c24a6f7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's branches for network access on your behalf.", + "userConsentDisplayName": "Read properties of branches for network access", + "value": "NetworkAccessBranch.Read.All" + }, + { + "description": "Allows the app to read and write your organization's branches for network access on behalf of the signed-in user.", + "displayName": "Read and write properties of branches for network access", + "id": "b8a36cc2-b810-461a-baa4-a7281e50bd5c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's branches for network access on your behalf.", + "userConsentDisplayName": "Read and write properties of branches for network access", + "value": "NetworkAccessBranch.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's security and routing network access policies on behalf of the signed-in user.", + "displayName": "Read security and routing policies for network access", + "id": "ba22922b-752c-446f-89d7-a2d92398fceb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's security and routing network access policies on your behalf.", + "userConsentDisplayName": "Read security and routing policies for network access", + "value": "NetworkAccessPolicy.Read.All" + }, + { + "description": "Allows the app to read and write your organization's security and routing network access policies on behalf of the signed-in user.", + "displayName": "Read and write security and routing policies for network access", + "id": "b1fbad0f-ef6e-42ed-8676-bca7fa3e7291", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's security and routing network access policies on your behalf.", + "userConsentDisplayName": "Read and write security and routing policies for network access", + "value": "NetworkAccessPolicy.ReadWrite.All" + }, + { + "description": "Allows the app to read the titles of OneNote notebooks and sections and to create new pages, notebooks, and sections on behalf of the signed-in user.", + "displayName": "Create user OneNote notebooks", + "id": "9d822255-d64d-4b7a-afdb-833b9a97ed02", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to view the titles of your OneNote notebooks and sections and to create new pages, notebooks, and sections on your behalf.", + "userConsentDisplayName": "Create your OneNote notebooks", + "value": "Notes.Create" + }, + { + "description": "Allows the app to read OneNote notebooks on behalf of the signed-in user.", + "displayName": "Read user OneNote notebooks", + "id": "371361e4-b9e2-4a3f-8315-2a301a3b0a3d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read OneNote notebooks on your behalf.", + "userConsentDisplayName": "Read your OneNote notebooks", + "value": "Notes.Read" + }, + { + "description": "Allows the app to read OneNote notebooks that the signed-in user has access to in the organization.", + "displayName": "Read all OneNote notebooks that user can access", + "id": "dfabfca6-ee36-4db2-8208-7a28381419b3", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all the OneNote notebooks that you have access to.", + "userConsentDisplayName": "Read all OneNote notebooks that you can access", + "value": "Notes.Read.All" + }, + { + "description": "Allows the app to read, share, and modify OneNote notebooks on behalf of the signed-in user.", + "displayName": "Read and write user OneNote notebooks", + "id": "615e26af-c38a-4150-ae3e-c3b0d4cb1d6a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, share, and modify OneNote notebooks on your behalf.", + "userConsentDisplayName": "Read and write your OneNote notebooks", + "value": "Notes.ReadWrite" + }, + { + "description": "Allows the app to read, share, and modify OneNote notebooks that the signed-in user has access to in the organization.", + "displayName": "Read and write all OneNote notebooks that user can access", + "id": "64ac0503-b4fa-45d9-b544-71a463f05da0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, share, and modify all the OneNote notebooks that you have access to.", + "userConsentDisplayName": "Read and write all OneNote notebooks that you can access", + "value": "Notes.ReadWrite.All" + }, + { + "description": "This is deprecated! Do not use! This permission no longer has any effect. You can safely consent to it. No additional privileges will be granted to the app.", + "displayName": "Limited notebook access (deprecated)", + "id": "ed68249d-017c-4df5-9113-e684c7f8760b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "This permission no longer has any effect. You can safely consent to it. No additional privileges will be granted to the app.", + "userConsentDisplayName": "Limited access to your OneNote notebooks for this app (preview)", + "value": "Notes.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to deliver its notifications on behalf of signed-in users. Also allows the app to read, update, and delete the user's notification items for this app.", + "displayName": "Deliver and manage user notifications for this app", + "id": "89497502-6e42-46a2-8cb2-427fd3df970a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to deliver its notifications, on your behalf. Also allows the app to read, update, and delete your notification items for this app.", + "userConsentDisplayName": "Deliver and manage your notifications for this app", + "value": "Notifications.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to see and update the data you gave it access to, even when users are not currently using the app. This does not give the app any additional permissions.", + "displayName": "Maintain access to data you have given it access to", + "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to see and update the data you gave it access to, even when you are not currently using the app. This does not give the app any additional permissions.", + "userConsentDisplayName": "Maintain access to data you have given it access to", + "value": "offline_access" + }, + { + "description": "Allows the app to read online meeting artifacts on behalf of the signed-in user.", + "displayName": "Read user's online meeting artifacts", + "id": "110e5abb-a10c-4b59-8b55-9b4daa4ef743", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read online meeting artifacts on your behalf.", + "userConsentDisplayName": "Read user's online meeting artifacts", + "value": "OnlineMeetingArtifact.Read.All" + }, + { + "description": "Allows the app to read all recordings of online meetings, on behalf of the signed-in user.", + "displayName": "Read all recordings of online meetings.", + "id": "190c2bb6-1fdd-4fec-9aa2-7d571b5e1fe3", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all recordings of online meetings, on your behalf. ", + "userConsentDisplayName": "Read all recordings of online meetings. ", + "value": "OnlineMeetingRecording.Read.All" + }, + { + "description": "Allows the app to read online meeting details on behalf of the signed-in user.", + "displayName": "Read user's online meetings", + "id": "9be106e1-f4e3-4df5-bdff-e4bc531cbe43", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read online meeting details on your behalf.", + "userConsentDisplayName": "Read your online meetings", + "value": "OnlineMeetings.Read" + }, + { + "description": "Allows the app to read and create online meetings on behalf of the signed-in user.", + "displayName": "Read and create user's online meetings", + "id": "a65f2972-a4f8-4f5e-afd7-69ccb046d5dc", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and create online meetings on your behalf.", + "userConsentDisplayName": "Read and create your online meetings", + "value": "OnlineMeetings.ReadWrite" + }, + { + "description": "Allows the app to read all transcripts of online meetings, on behalf of the signed-in user.", + "displayName": "Read all transcripts of online meetings. ", + "id": "30b87d18-ebb1-45db-97f8-82ccb1f0190c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all transcripts of online meetings, on your behalf.", + "userConsentDisplayName": "Read all transcripts of online meetings.", + "value": "OnlineMeetingTranscript.Read.All" + }, + { + "description": "Allows the app to read all on-premises directory synchronization information for the organization, on behalf of the signed-in user.", + "displayName": "Read all on-premises directory synchronization information", + "id": "f6609722-4100-44eb-b747-e6ca0536989d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all on-premises directory synchronization information for the organization, on your behalf.", + "userConsentDisplayName": "Read all on-premises directory synchronization information", + "value": "OnPremDirectorySynchronization.Read.All" + }, + { + "description": "Allows the app to read and write all on-premises directory synchronization information for the organization, on behalf of the signed-in user.", + "displayName": "Read and write all on-premises directory synchronization information", + "id": "c2d95988-7604-4ba1-aaed-38a5f82a51c7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all on-premises directory synchronization information for the organization, on your behalf.", + "userConsentDisplayName": "Read and write all on-premises directory synchronization information", + "value": "OnPremDirectorySynchronization.ReadWrite.All" + }, + { + "description": "Allows the app to manage hybrid identity service configuration by creating, viewing, updating and deleting on-premises published resources, on-premises agents and agent groups, on behalf of the signed-in user.", + "displayName": "Manage on-premises published resources", + "id": "8c4d5184-71c2-4bf8-bb9d-bc3378c9ad42", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage hybrid identity service configuration by creating, viewing, updating and deleting on-premises published resources, on-premises agents and agent groups, on your behalf.", + "userConsentDisplayName": "Manage on-premises published resources", + "value": "OnPremisesPublishingProfiles.ReadWrite.All" + }, + { + "description": "Allows users to sign in to the app with their work or school accounts and allows the app to see basic user profile information.", + "displayName": "Sign users in", + "id": "37f7f235-527c-4136-accd-4a02d197296e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows you to sign in to the app with your work or school account and allows the app to read your basic profile information.", + "userConsentDisplayName": "Sign in as you", + "value": "openid" + }, + { + "description": "Allows the app to read the organization and related resources, on behalf of the signed-in user. Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read organization information", + "id": "4908d5b9-3fb2-4b1e-9336-1888b7937185", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the organization and related resources, on your behalf. Related resources include things like subscribed skus and tenant branding information.", + "userConsentDisplayName": "Read organization information", + "value": "Organization.Read.All" + }, + { + "description": "Allows the app to read and write the organization and related resources, on behalf of the signed-in user. Related resources include things like subscribed skus and tenant branding information.", + "displayName": "Read and write organization information", + "id": "46ca0847-7e6b-426e-9775-ea810a948356", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the organization and related resources, on your behalf. Related resources include things like subscribed skus and tenant branding information.", + "userConsentDisplayName": "Read and write organization information", + "value": "Organization.ReadWrite.All" + }, + { + "description": "Allows the app to read all organizational contacts on behalf of the signed-in user.  These contacts are managed by the organization and are different from a user's personal contacts.", + "displayName": "Read organizational contacts", + "id": "08432d1b-5911-483c-86df-7980af5cdee0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all organizational contacts on your behalf.  These contacts are managed by the organization and are different from your personal contacts.", + "userConsentDisplayName": "Read organizational contacts", + "value": "OrgContact.Read.All" + }, + { + "description": "Allows the app to read organization-wide apps and services settings on behalf of the signed-in user.", + "displayName": "Read organization-wide apps and services settings", + "id": "1e9b7a7e-4d64-44ff-acf5-2e9651c1519f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read organization-wide apps and services settings on your behalf.", + "userConsentDisplayName": "Read organization-wide apps and services settings", + "value": "OrgSettings-AppsAndServices.Read.All" + }, + { + "description": "Allows the app to read and write organization-wide apps and services settings on behalf of the signed-in user.", + "displayName": "Read and write organization-wide apps and services settings", + "id": "c167b0e7-47c0-48e8-9eee-9892f58018fa", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write organization-wide apps and services settings on your behalf.", + "userConsentDisplayName": "Read and write organization-wide apps and services settings", + "value": "OrgSettings-AppsAndServices.ReadWrite.All" + }, + { + "description": "Allows the app to read organization-wide Dynamics customer voice settings on behalf of the signed-in user.", + "displayName": "Read organization-wide Dynamics customer voice settings", + "id": "9862d930-5aec-4a98-8d4f-7277a8db9bcb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read organization-wide Dynamics customer voice settings on your behalf.", + "userConsentDisplayName": "Read organization-wide dynamics customer voice settings", + "value": "OrgSettings-DynamicsVoice.Read.All" + }, + { + "description": "Allows the app to read and write organization-wide Dynamics customer voice settings on behalf of the signed-in user.", + "displayName": "Read and write organization-wide Dynamics customer voice settings", + "id": "4cea26fb-6967-4234-82c4-c044414743f8", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write organization-wide Dynamics customer voice settings on your behalf.", + "userConsentDisplayName": "Read and write organization-wide Dynamics customer voice settings", + "value": "OrgSettings-DynamicsVoice.ReadWrite.All" + }, + { + "description": "Allows the app to read organization-wide Microsoft Forms settings on behalf of the signed-in user.", + "displayName": "Read organization-wide Microsoft Forms settings", + "id": "210051a0-1ffc-435c-ae76-02d226d05752", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read organization-wide Microsoft Forms settings on your behalf.", + "userConsentDisplayName": "Read organization-wide Microsoft Forms settings", + "value": "OrgSettings-Forms.Read.All" + }, + { + "description": "Allows the app to read and write organization-wide Microsoft Forms settings on behalf of the signed-in user.", + "displayName": "Read and write organization-wide Microsoft Forms settings", + "id": "346c19ff-3fb2-4e81-87a0-bac9e33990c1", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write organization-wide Microsoft Forms settings on your behalf.", + "userConsentDisplayName": "Read and write organization-wide Microsoft Forms settings", + "value": "OrgSettings-Forms.ReadWrite.All" + }, + { + "description": "Allows the app to read organization-wide Microsoft 365 apps installation settings on behalf of the signed-in user.", + "displayName": "Read organization-wide Microsoft 365 apps installation settings", + "id": "8cbdb9f6-9c2e-451a-814d-ec606e5d0212", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read organization-wide Microsoft 365 apps installation settings on your behalf.", + "userConsentDisplayName": "Read organization-wide Microsoft 365 apps installation settings", + "value": "OrgSettings-Microsoft365Install.Read.All" + }, + { + "description": "Allows the app to read and write organization-wide Microsoft 365 apps installation settings on behalf of the signed-in user.", + "displayName": "Read and write organization-wide Microsoft 365 apps installation settings", + "id": "1ff35e91-19eb-42d8-aa2d-cc9891127ae5", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write organization-wide Microsoft 365 apps installation settings on your behalf.", + "userConsentDisplayName": "Read and write organization-wide Microsoft 365 apps installation settings", + "value": "OrgSettings-Microsoft365Install.ReadWrite.All" + }, + { + "description": "Allows the app to read organization-wide Microsoft To Do settings on behalf of the signed-in user.", + "displayName": "Read organization-wide Microsoft To Do settings", + "id": "7ff96f41-f022-45ba-acd8-ef3f03063d6b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read organization-wide Microsoft To Do settings on your behalf.", + "userConsentDisplayName": "Read organization-wide Microsoft To Do settings", + "value": "OrgSettings-Todo.Read.All" + }, + { + "description": "Allows the app to read and write organization-wide Microsoft To Do settings on behalf of the signed-in user.", + "displayName": "Read and write organization-wide Microsoft To Do settings", + "id": "087502c2-5263-433e-abe3-8f77231a0627", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write organization-wide Microsoft To Do settings on your behalf.", + "userConsentDisplayName": "Read and write organization-wide Microsoft To Do settings", + "value": "OrgSettings-Todo.ReadWrite.All" + }, + { + "description": "Allows the app to read a ranked list of relevant people of the signed-in user. The list includes local contacts, contacts from social networking, your organization's directory, and people from recent communications (such as email and Skype).", + "displayName": "Read users' relevant people lists", + "id": "ba47897c-39ec-4d83-8086-ee8256fa737d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read a list of people in the order that's most relevant to you. This includes your local contacts, your contacts from social networking, people listed in your organization's directory, and people from recent communications.", + "userConsentDisplayName": "Read your relevant people list", + "value": "People.Read" + }, + { + "description": "Allows the app to read a scored list of relevant people of the signed-in user or other users in the signed-in user's organization. The list can include local contacts, contacts from social networking, your organization's directory, and people from recent communications (such as email and Skype).", + "displayName": "Read all users' relevant people lists", + "id": "b89f9189-71a5-4e70-b041-9887f0bc7e4a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read a list of people in the order that is most relevant to you. Allows the app to read a list of people in the order that is most relevant to another user in your organization. These can include local contacts, contacts from social networking, people listed in your organization’s directory, and people from recent communications.", + "userConsentDisplayName": "Read all users’ relevant people lists", + "value": "People.Read.All" + }, + { + "description": "Allows the application to read tenant-wide people settings on behalf of the signed-in user.", + "displayName": "Read tenant-wide people settings", + "id": "ec762c5f-388b-4b16-8693-ac1efbc611bc", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read tenant-wide people settings on your behalf.", + "userConsentDisplayName": "Read tenant-wide people settings", + "value": "PeopleSettings.Read.All" + }, + { + "description": "Allows the application to read and write tenant-wide people settings on behalf of the signed-in user.", + "displayName": "Read and write tenant-wide people settings", + "id": "e67e6727-c080-415e-b521-e3f35d5248e9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and write tenant-wide people settings on your behalf.", + "userConsentDisplayName": "Read and write tenant-wide people settings", + "value": "PeopleSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read your company's places (conference rooms and room lists) for calendar events and other applications, on behalf of the signed-in user.", + "displayName": "Read all company places", + "id": "cb8f45a0-5c2e-4ea1-b803-84b870a7d7ec", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your company's places (conference rooms and room lists) for calendar events and other applications, on your behalf.", + "userConsentDisplayName": "Read all company places", + "value": "Place.Read.All" + }, + { + "description": "Allows the app to manage organization places (conference rooms and room lists) for calendar events and other applications, on behalf of the signed-in user.", + "displayName": "Read and write organization places", + "id": "4c06a06a-098a-4063-868e-5dfee3827264", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage organization places (conference rooms and room lists) for calendar events and other applications, on your behalf.", + "userConsentDisplayName": "Read and write organization places", + "value": "Place.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's policies on behalf of the signed-in user.", + "displayName": "Read your organization's policies", + "id": "572fea84-0151-49b2-9301-11cb16974376", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's policies on your behalf.", + "userConsentDisplayName": "Read your organization's policies", + "value": "Policy.Read.All" + }, + { + "description": "Allows the app to read your organization's conditional access policies on behalf of the signed-in user.", + "displayName": "Read your organization's conditional access policies", + "id": "633e0fce-8c58-4cfb-9495-12bbd5a24f7c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's conditional access policies on your behalf.", + "userConsentDisplayName": "Read your organization's conditional access policies", + "value": "Policy.Read.ConditionalAccess" + }, + { + "description": "Allows the app to read your organization’s identity protection policy on behalf of the signed-in user. ", + "displayName": "Read your organization’s identity protection policy", + "id": "d146432f-b803-4ed4-8d42-ba74193a6ede", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization’s identity protection policy on your behalf.", + "userConsentDisplayName": "Read your organization’s identity protection policy", + "value": "Policy.Read.IdentityProtection" + }, + { + "description": "Allows the app to read policies related to consent and permission grants for applications, on behalf of the signed-in user.", + "displayName": "Read consent and permission grant policies", + "id": "414de6ea-2d92-462f-b120-6e2a809a6d01", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read policies related to consent and permission grants for applications, on your behalf.", + "userConsentDisplayName": "Read consent and permission grant policies", + "value": "Policy.Read.PermissionGrant" + }, + { + "description": "Allows the app to read and write your organization's directory access review default policy on behalf of the signed-in user.", + "displayName": "Read and write your organization's directory access review default policy", + "id": "4f5bc9c8-ea54-4772-973a-9ca119cb0409", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's directory access review default policy on your behalf.", + "userConsentDisplayName": "Read and write your organization's directory access review default policy", + "value": "Policy.ReadWrite.AccessReview" + }, + { + "description": "Allows the app to read and write your organization's application configuration policies on behalf of the signed-in user. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy.", + "displayName": "Read and write your organization's application configuration policies", + "id": "b27add92-efb2-4f16-84f5-8108ba77985c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's application configuration policies on your behalf. This includes policies such as activityBasedTimeoutPolicy, claimsMappingPolicy, homeRealmDiscoveryPolicy, tokenIssuancePolicy and tokenLifetimePolicy.", + "userConsentDisplayName": "Read and write your organization's application configuration policies", + "value": "Policy.ReadWrite.ApplicationConfiguration" + }, + { + "description": "Allows the app to read and write the authentication flow policies, on behalf of the signed-in user. ", + "displayName": "Read and write authentication flow policies", + "id": "edb72de9-4252-4d03-a925-451deef99db7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the authentication flow policies for your tenant, on your behalf.", + "userConsentDisplayName": "Read and write your authentication flow policies", + "value": "Policy.ReadWrite.AuthenticationFlows" + }, + { + "description": "Allows the app to read and write the authentication method policies, on behalf of the signed-in user. ", + "displayName": "Read and write authentication method policies", + "id": "7e823077-d88e-468f-a337-e18f1f0e6c7c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the authentication method policies for your tenant, on your behalf.", + "userConsentDisplayName": "Read and write your authentication method policies ", + "value": "Policy.ReadWrite.AuthenticationMethod" + }, + { + "description": "Allows the app to read and write your organization's authorization policy on behalf of the signed-in user. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default.", + "displayName": "Read and write your organization's authorization policy", + "id": "edd3c878-b384-41fd-95ad-e7407dd775be", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's authorization policy on your behalf. For example, authorization policies can control some of the permissions that the out-of-the-box user role has by default.", + "userConsentDisplayName": "Read and write your organization's authorization policy", + "value": "Policy.ReadWrite.Authorization" + }, + { + "description": "Allows the app to read and write your organization's conditional access policies on behalf of the signed-in user.", + "displayName": "Read and write your organization's conditional access policies", + "id": "ad902697-1014-4ef5-81ef-2b4301988e8c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's conditional access policies on your behalf.", + "userConsentDisplayName": "Read and write your organization's conditional access policies", + "value": "Policy.ReadWrite.ConditionalAccess" + }, + { + "description": "Allows the app to read and write your organization's consent requests policy on behalf of the signed-in user.", + "displayName": "Read and write consent request policy", + "id": "4d135e65-66b8-41a8-9f8b-081452c91774", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's consent request policy on your behalf.", + "userConsentDisplayName": "Read and write consent request policy", + "value": "Policy.ReadWrite.ConsentRequest" + }, + { + "description": "Allows the app to read and write your organization's cross tenant access policies on behalf of the signed-in user.", + "displayName": "Read and write your organization's cross tenant access policies", + "id": "014b43d0-6ed4-4fc6-84dc-4b6f7bae7d85", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's cross tenant access policies on your behalf.", + "userConsentDisplayName": "Read and write your organization's cross tenant access policies", + "value": "Policy.ReadWrite.CrossTenantAccess" + }, + { + "description": "Allows the app to read and write your organization's device configuration policies on behalf of the signed-in user. For example, device registration policy can limit initial provisioning controls using quota restrictions, additional authentication and authorization checks.", + "displayName": "Read and write your organization's device configuration policies", + "id": "40b534c3-9552-4550-901b-23879c90bcf9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's device configuration policies on your behalf. For example, device registration policy can limit initial provisioning controls using quota restrictions, additional authentication and authorization checks.", + "userConsentDisplayName": "Read and write your organization's device configuration policies", + "value": "Policy.ReadWrite.DeviceConfiguration" + }, + { + "description": "Allows the application to read and update the organization's external identities policy on behalf of the signed-in user. For example, external identities policy controls if users invited to access resources in your organization via B2B collaboration or B2B direct connect are allowed to self-service leave.", + "displayName": "Read and write your organization's external identities policy", + "id": "b5219784-1215-45b5-b3f1-88fe1081f9c0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the organization's external identities policy on your behalf. For example, external identities policy controls if users invited to access resources in your organization via B2B collaboration or B2B direct connect are allowed to self-service leave.", + "userConsentDisplayName": "Read and write your organization's external identities policy", + "value": "Policy.ReadWrite.ExternalIdentities" + }, + { + "description": "Allows the app to read and write your organization's feature rollout policies on behalf of the signed-in user. Includes abilities to assign and remove users and groups to rollout of a specific feature.", + "displayName": "Read and write your organization's feature rollout policies", + "id": "92a38652-f13b-4875-bc77-6e1dbb63e1b2", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's feature rollout policies on your behalf. Includes abilities to assign and remove users and groups to rollout of a specific feature.", + "userConsentDisplayName": "Read and write your organization's feature rollout policies", + "value": "Policy.ReadWrite.FeatureRollout" + }, + { + "description": "Allows the app to read and write your organization’s identity protection policy on behalf of the signed-in user.", + "displayName": "Read and write your organization’s identity protection policy ", + "id": "7256e131-3efb-4323-9854-cf41c6021770", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization’s identity protection policy on your behalf.", + "userConsentDisplayName": "Read and write your organization’s identity protection policy.", + "value": "Policy.ReadWrite.IdentityProtection" + }, + { + "description": "Allows the app to read and write your organization's mobility management policies on behalf of the signed-in user. For example, a mobility management policy can set the enrollment scope for a given mobility management application.", + "displayName": "Read and write your organization's mobility management policies", + "id": "a8ead177-1889-4546-9387-f25e658e2a79", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's mobility management policies on your behalf. For example, a mobility management policy can set the enrollment scope for a given mobility management application.", + "userConsentDisplayName": "Read and write your organization's mobility management policies", + "value": "Policy.ReadWrite.MobilityManagement" + }, + { + "description": "Allows the app to manage policies related to consent and permission grants for applications, on behalf of the signed-in user.", + "displayName": "Manage consent and permission grant policies", + "id": "2672f8bb-fd5e-42e0-85e1-ec764dd2614e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage policies related to consent and permission grants for applications, on behalf of the signed-in user.", + "userConsentDisplayName": "Manage consent and permission grant policies", + "value": "Policy.ReadWrite.PermissionGrant" + }, + { + "description": "Allows the app to read and write your organization's security defaults policy on behalf of the signed-in user.", + "displayName": "Read and write your organization's security defaults policy", + "id": "0b2a744c-2abf-4f1e-ad7e-17a087e2be99", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's security defaults policy on your behalf.", + "userConsentDisplayName": "Read and write your organization's security defaults policy", + "value": "Policy.ReadWrite.SecurityDefaults" + }, + { + "description": "Allows the app to read and write your organization's trust framework policies on behalf of the signed-in user.", + "displayName": "Read and write your organization's trust framework policies", + "id": "cefba324-1a70-4a6e-9c1d-fd670b7ae392", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your organization's trust framework policies on your behalf.", + "userConsentDisplayName": "Read and write trust framework policies", + "value": "Policy.ReadWrite.TrustFramework" + }, + { + "description": "Allows the app to have the same access to mailboxes as the signed-in user via POP protocol.", + "displayName": "Read and write access to mailboxes via POP.", + "id": "d7b7f2d9-0f45-4ea1-9d42-e50810c06991", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create and delete email in your mailbox. Does not include permission to send mail.", + "userConsentDisplayName": "Read and write access to your mail.", + "value": "POP.AccessAsUser.All" + }, + { + "description": "Allows the app to read presence information on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "displayName": "Read user's presence information", + "id": "76bc735e-aecd-4a1d-8b4c-2b915deabb79", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your presence information on your behalf. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "userConsentDisplayName": "Read your presence information", + "value": "Presence.Read" + }, + { + "description": "Allows the app to read presence information of all users in the directory on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "displayName": "Read presence information of all users in your organization", + "id": "9c7a330d-35b3-4aa1-963d-cb2b9f927841", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read presence information of all users in the directory on your behalf. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "userConsentDisplayName": "Read presence information of all users in your organization", + "value": "Presence.Read.All" + }, + { + "description": "Allows the app to read the presence information and write activity and availability on behalf of the signed-in user. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "displayName": "Read and write a user's presence information", + "id": "8d3c54a7-cf58-4773-bf81-c0cd6ad522bb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the presence information and write activity and availability on your behalf. Presence information includes activity, availability, status note, calendar out-of-office message, timezone and location.", + "userConsentDisplayName": "Read and write your presence information", + "value": "Presence.ReadWrite" + }, + { + "description": "Allows the application to read print connectors on behalf of the signed-in user.", + "displayName": "Read print connectors", + "id": "d69c2d6d-4f72-4f99-a6b9-663e32f8cf68", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read print connectors on your behalf.", + "userConsentDisplayName": "Read print connectors", + "value": "PrintConnector.Read.All" + }, + { + "description": "Allows the application to read and write print connectors on behalf of the signed-in user. ", + "displayName": "Read and write print connectors", + "id": "79ef9967-7d59-4213-9c64-4b10687637d8", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and write print connectors on your behalf.", + "userConsentDisplayName": "Read and write print connectors", + "value": "PrintConnector.ReadWrite.All" + }, + { + "description": "Allows the application to create (register) printers on behalf of the signed-in user. ", + "displayName": "Register printers  ", + "id": "90c30bed-6fd1-4279-bf39-714069619721", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to create (register) printers on your behalf. ", + "userConsentDisplayName": "Register printers  ", + "value": "Printer.Create" + }, + { + "description": "Allows the application to create (register), read, update, and delete (unregister) printers on behalf of the signed-in user. ", + "displayName": "Register, read, update, and unregister printers", + "id": "93dae4bd-43a1-4a23-9a1a-92957e1d9121", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to create (register), read, update, and delete (unregister) printers on your behalf.  ", + "userConsentDisplayName": "Register, read, update, and unregister printers", + "value": "Printer.FullControl.All" + }, + { + "description": "Allows the application to read printers on behalf of the signed-in user. ", + "displayName": "Read printers", + "id": "3a736c8a-018e-460a-b60c-863b2683e8bf", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read printers on your behalf. ", + "userConsentDisplayName": "Read printers", + "value": "Printer.Read.All" + }, + { + "description": "Allows the application to read and update printers on behalf of the signed-in user. Does not allow creating (registering) or deleting (unregistering) printers.", + "displayName": "Read and update printers", + "id": "89f66824-725f-4b8f-928e-e1c5258dc565", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and update printers on your behalf. Does not allow creating (registering) or deleting (unregistering) printers.", + "userConsentDisplayName": "Read and update printers", + "value": "Printer.ReadWrite.All" + }, + { + "description": "Allows the application to read printer shares on behalf of the signed-in user. ", + "displayName": "Read printer shares", + "id": "ed11134d-2f3f-440d-a2e1-411efada2502", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read printer shares on your behalf. ", + "userConsentDisplayName": "Read printer shares", + "value": "PrinterShare.Read.All" + }, + { + "description": "Allows the application to read basic information about printer shares on behalf of the signed-in user. Does not allow reading access control information.", + "displayName": "Read basic information about printer shares", + "id": "5fa075e9-b951-4165-947b-c63396ff0a37", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read basic information about printer shares on your behalf.", + "userConsentDisplayName": "Read basic information about printer shares", + "value": "PrinterShare.ReadBasic.All" + }, + { + "description": "Allows the application to read and update printer shares on behalf of the signed-in user. ", + "displayName": "Read and write printer shares", + "id": "06ceea37-85e2-40d7-bec3-91337a46038f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and update printer shares on your behalf. ", + "userConsentDisplayName": "Read and update printer shares", + "value": "PrinterShare.ReadWrite.All" + }, + { + "description": "Allows the application to create print jobs on behalf of the signed-in user and upload document content to print jobs that the signed-in user created.", + "displayName": "Create print jobs", + "id": "21f0d9c0-9f13-48b3-94e0-b6b231c7d320", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to create print jobs on your behalf and upload document content to print jobs that you created.", + "userConsentDisplayName": "Create your print jobs", + "value": "PrintJob.Create" + }, + { + "description": "Allows the application to read the metadata and document content of print jobs that the signed-in user created.", + "displayName": "Read user's print jobs", + "id": "248f5528-65c0-4c88-8326-876c7236df5e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata and document content of print jobs that you created.", + "userConsentDisplayName": "Read your print jobs", + "value": "PrintJob.Read" + }, + { + "description": "Allows the application to read the metadata and document content of print jobs on behalf of the signed-in user. ", + "displayName": "Read print jobs", + "id": "afdd6933-a0d8-40f7-bd1a-b5d778e8624b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata and document content of print jobs on your behalf. ", + "userConsentDisplayName": "Read print jobs", + "value": "PrintJob.Read.All" + }, + { + "description": "Allows the application to read the metadata of print jobs that the signed-in user created. Does not allow access to print job document content.", + "displayName": "Read basic information of user's print jobs", + "id": "6a71a747-280f-4670-9ca0-a9cbf882b274", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata of print jobs that you created. Does not allow access to print job document content.", + "userConsentDisplayName": "Read basic information of your print jobs", + "value": "PrintJob.ReadBasic" + }, + { + "description": "Allows the application to read the metadata of print jobs on behalf of the signed-in user. Does not allow access to print job document content.", + "displayName": "Read basic information of print jobs", + "id": "04ce8d60-72ce-4867-85cf-6d82f36922f3", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read the metadata of print jobs on your behalf. Does not allow access to print job document content.", + "userConsentDisplayName": "Read basic information of print jobs", + "value": "PrintJob.ReadBasic.All" + }, + { + "description": "Allows the application to read and update the metadata and document content of print jobs that the signed-in user created.", + "displayName": "Read and write user's print jobs", + "id": "b81dd597-8abb-4b3f-a07a-820b0316ed04", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata and document content of print jobs that you created.", + "userConsentDisplayName": "Read and update your print jobs", + "value": "PrintJob.ReadWrite" + }, + { + "description": "Allows the application to read and update the metadata and document content of print jobs on behalf of the signed-in user. ", + "displayName": "Read and write print jobs", + "id": "036b9544-e8c5-46ef-900a-0646cc42b271", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata and document content of print jobs on your behalf. ", + "userConsentDisplayName": "Read and update print jobs", + "value": "PrintJob.ReadWrite.All" + }, + { + "description": "Allows the application to read and update the metadata of print jobs that the signed-in user created. Does not allow access to print job document content.", + "displayName": "Read and write basic information of user's print jobs", + "id": "6f2d22f2-1cb6-412c-a17c-3336817eaa82", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata of print jobs that you created. Does not allow access to print job document content.", + "userConsentDisplayName": "Read and write basic information of your print jobs", + "value": "PrintJob.ReadWriteBasic" + }, + { + "description": "Allows the application to read and update the metadata of print jobs on behalf of the signed-in user. Does not allow access to print job document content.", + "displayName": "Read and write basic information of print jobs", + "id": "3a0db2f6-0d2a-4c19-971b-49109b19ad3d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and update the metadata of print jobs on your behalf. Does not allow access to print job document content.", + "userConsentDisplayName": "Read and write basic information of print jobs", + "value": "PrintJob.ReadWriteBasic.All" + }, + { + "description": "Allows the application to read tenant-wide print settings on behalf of the signed-in user.", + "displayName": "Read tenant-wide print settings", + "id": "490f32fd-d90f-4dd7-a601-ff6cdc1a3f6c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read tenant-wide print settings on your behalf.", + "userConsentDisplayName": "Read tenant-wide print settings", + "value": "PrintSettings.Read.All" + }, + { + "description": "Allows the application to read and write tenant-wide print settings on behalf of the signed-in user.", + "displayName": "Read and write tenant-wide print settings", + "id": "9ccc526a-c51c-4e5c-a1fd-74726ef50b8f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and write tenant-wide print settings on your behalf.", + "userConsentDisplayName": "Read and write tenant-wide print settings", + "value": "PrintSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles, on behalf of the signed-in user.", + "displayName": "Read privileged access to Azure AD", + "id": "b3a539c9-59cb-4ad5-825a-041ddbdc2bdb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD built-in and custom administrative roles, on your behalf.", + "userConsentDisplayName": "Read privileged access to Azure AD", + "value": "PrivilegedAccess.Read.AzureAD" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read privileged access to Azure AD groups", + "id": "d329c81c-20ad-4772-abf9-3f6fdb7e5988", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read privileged access to Azure AD groups", + "value": "PrivilegedAccess.Read.AzureADGroup" + }, + { + "description": "Allows the app to read time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) on behalf of the signed-in user.", + "displayName": "Read privileged access to Azure resources", + "id": "1d89d70c-dcac-4248-b214-903c457af83a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment and just-in-time elevation of Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf.", + "userConsentDisplayName": "Read privileged access to your Azure resources", + "value": "PrivilegedAccess.Read.AzureResources" + }, + { + "description": "Allows the app to request and manage just in time elevation (including scheduled elevation) of users to Azure AD built-in administrative roles, on behalf of signed-in users.", + "displayName": "Read and write privileged access to Azure AD", + "id": "3c3c74f5-cdaa-4a97-b7e0-4e788bfcfb37", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to request and manage just in time elevation (including scheduled elevation) of users to Azure AD built-in administrative roles, on your behalf.", + "userConsentDisplayName": "Read and write privileged access to Azure AD", + "value": "PrivilegedAccess.ReadWrite.AzureAD" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read and write privileged access to Azure AD groups", + "id": "32531c59-1f32-461f-b8df-6f8a3b89f73b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to request and manage time-based assignment and just-in-time elevation (including scheduled elevation) of Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read and write privileged access to Azure AD groups", + "value": "PrivilegedAccess.ReadWrite.AzureADGroup" + }, + { + "description": "Allows the app to request and manage time-based assignment and just-in-time elevation of user privileges to manage Azure resources (like subscriptions, resource groups, storage, compute) on behalf of the signed-in users.", + "displayName": "Read and write privileged access to Azure resources", + "id": "a84a9652-ffd3-496e-a991-22ba5529156a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to request and manage time-based assignment and just-in-time elevation of user privileges to manage  your Azure resources (like your subscriptions, resource groups, storage, compute) on your behalf.", + "userConsentDisplayName": "Read and write privileged access to Azure resources", + "value": "PrivilegedAccess.ReadWrite.AzureResources" + }, + { + "description": "Allows the app to read time-based assignment schedules for access to Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read assignment schedules for access to Azure AD groups", + "id": "02a32cc4-7ab5-4b58-879a-0586e0f7c495", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based assignment schedules for access to Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read assignment schedules for access to Azure AD groups", + "value": "PrivilegedAssignmentSchedule.Read.AzureADGroup" + }, + { + "description": "Allows the app to read, create, and delete time-based assignment schedules for access to Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read, create, and delete assignment schedules for access to Azure AD groups", + "id": "06dbc45d-6708-4ef0-a797-f797ee68bf4b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, and delete time-based assignment schedules for access to Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read, create, and delete assignment schedules for access to Azure AD groups", + "value": "PrivilegedAssignmentSchedule.ReadWrite.AzureADGroup" + }, + { + "description": "Allows the app to read time-based eligibility schedules for access to Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read eligibility schedules for access to Azure AD groups", + "id": "8f44f93d-ecef-46ae-a9bf-338508d44d6b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read time-based eligibility schedules for access to Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read eligibility schedules for access to Azure AD groups", + "value": "PrivilegedEligibilitySchedule.Read.AzureADGroup" + }, + { + "description": "Allows the app to read, create, and delete time-based eligibility schedules for access to Azure AD groups, on behalf of the signed-in user.", + "displayName": "Read, create, and delete eligibility schedules for access to Azure AD groups", + "id": "ba974594-d163-484e-ba39-c330d5897667", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, and delete time-based eligibility schedules for access to Azure AD groups, on your behalf.", + "userConsentDisplayName": "Read, create, and delete eligibility schedules for access to Azure AD groups", + "value": "PrivilegedEligibilitySchedule.ReadWrite.AzureADGroup" + }, + { + "description": "Allows the app to see your users' basic profile (e.g., name, picture, user name, email address)", + "displayName": "View users' basic profile", + "id": "14dad69e-099b-42c9-810b-d002981feec1", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to see your basic profile (e.g., name, picture, user name, email address)", + "userConsentDisplayName": "View your basic profile", + "value": "profile" + }, + { + "description": "Allows the app to read programs and program controls that the signed-in user has access to in the organization.", + "displayName": "Read all programs that user can access", + "id": "c492a2e1-2f8f-4caa-b076-99bbf6e40fe4", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read information on programs and program controls that you have access to.", + "userConsentDisplayName": "Read programs that you can access", + "value": "ProgramControl.Read.All" + }, + { + "description": "Allows the app to read, update, delete and perform actions on programs and program controls that the signed-in user has access to in the organization.", + "displayName": "Manage all programs that user can access", + "id": "50fd364f-9d93-4ae1-b170-300e87cccf84", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and perform action on programs and program controls that you have access to.", + "userConsentDisplayName": "Manage programs that you can access", + "value": "ProgramControl.ReadWrite.All" + }, + { + "description": "Allows an app to read all question and answer sets that the signed-in user can access.", + "displayName": "Read all Questions and Answers that the user can access.", + "id": "f73fa04f-b9a5-4df9-8843-993ce928925e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all question and answer sets that you can access.", + "userConsentDisplayName": "Read all Questions and Answers that you can access.", + "value": "QnA.Read.All" + }, + { + "description": "Allows the application to read any data from Records Management, such as configuration, labels, and policies on behalf of the signed-in user.", + "displayName": "Read Records Management configuration, labels, and policies", + "id": "07f995eb-fc67-4522-ad66-2b8ca8ea3efd", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read any data from Records Management, such as configuration, labels and policies on your behalf.", + "userConsentDisplayName": "Read Records Management configuration, labels, and policies", + "value": "RecordsManagement.Read.All" + }, + { + "description": "Allow the application to create, update and delete any data from Records Management, such as configuration, labels, and policies on behalf of the signed-in user.", + "displayName": "Read and write Records Management configuration, labels, and policies", + "id": "f2833d75-a4e6-40ab-86d4-6dfe73c97605", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allow the application to create, update and delete any data from Records Management, such as configuration, labels, and policies on your behalf.", + "userConsentDisplayName": "Read and write Records Management configuration, labels, and policies", + "value": "RecordsManagement.ReadWrite.All" + }, + { + "description": "Allows an app to read all service usage reports on behalf of the signed-in user. Services that provide usage reports include Office 365 and Azure Active Directory.", + "displayName": "Read all usage reports", + "id": "02e97553-ed7b-43d0-ab3c-f8bace0d040c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read all service usage reports on your behalf. Services that provide usage reports include Office 365 and Azure Active Directory.", + "userConsentDisplayName": "Read all usage reports", + "value": "Reports.Read.All" + }, + { + "description": "Allows the app to read admin report settings, such as whether to display concealed information in reports, on behalf of the signed-in user", + "displayName": "Read admin report settings", + "id": "84fac5f4-33a9-4100-aa38-a20c6d29e5e7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read admin report settings, such as whether to display concealed information in reports, on your behalf.", + "userConsentDisplayName": "Read admin report settings", + "value": "ReportSettings.Read.All" + }, + { + "description": "Allows the app to read and update admin report settings, such as whether to display concealed information in reports, on behalf of the signed-in user.", + "displayName": "Read and write admin report settings", + "id": "b955410e-7715-4a88-a940-dfd551018df3", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and update admin report settings, such as whether to display concealed information in reports, on your behalf.", + "userConsentDisplayName": "Read and write admin report settings", + "value": "ReportSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read the resource specific permissions granted on a user account, on behalf of the signed-in user.", + "displayName": "Read resource specific permissions granted on a user account", + "id": "f1d91a8f-88e7-4774-8401-b668d5bca0c5", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the resource specific permission granted on your account, on your behalf.", + "userConsentDisplayName": "Read resource specific permissions granted on your user account", + "value": "ResourceSpecificPermissionGrant.ReadForUser" + }, + { + "description": "Allows the app to read the active role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes reading directory role templates, and directory roles.", + "displayName": "Read all active role assignments for your company's directory", + "id": "344a729c-0285-42c6-9014-f12b9b8d6129", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the active role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes reading directory role templates, and directory roles.", + "userConsentDisplayName": "Read all active role assignments for your company's directory", + "value": "RoleAssignmentSchedule.Read.Directory" + }, + { + "description": "Allows the app to read and manage the active role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes managing active directory role membership, and reading directory role templates, directory roles and active memberships.", + "displayName": "Read, update, and delete all active role assignments for your company's directory", + "id": "8c026be3-8e26-4774-9372-8d5d6f21daff", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the active role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes managing active directory role membership, and reading directory role templates, directory roles and active memberships.", + "userConsentDisplayName": "Read, update, and delete all active role assignments for your company's directory", + "value": "RoleAssignmentSchedule.ReadWrite.Directory" + }, + { + "description": "Allows the app to read the eligible role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes reading directory role templates, and directory roles.", + "displayName": "Read all eligible role assignments for your company's directory", + "id": "eb0788c2-6d4e-4658-8c9e-c0fb8053f03d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the eligible role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes reading directory role templates, and directory roles.", + "userConsentDisplayName": "Read all eligible role assignments for your company's directory", + "value": "RoleEligibilitySchedule.Read.Directory" + }, + { + "description": "Allows the app to read and manage the eligible role-based access control (RBAC) assignments for your company's directory, on behalf of the signed-in user. This includes managing eligible directory role membership, and reading directory role templates, directory roles and eligible memberships.", + "displayName": "Read, update, and delete all eligible role assignments for your company's directory", + "id": "62ade113-f8e0-4bf9-a6ba-5acb31db32fd", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the eligible role-based access control (RBAC) assignments for your company's directory, on your behalf. This includes managing eligible directory role membership, and reading directory role templates, directory roles and eligible memberships.", + "userConsentDisplayName": "Read, update, and delete all eligible role assignments for your company's directory", + "value": "RoleEligibilitySchedule.ReadWrite.Directory" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) settings for all RBAC providers, on behalf of the signed-in user. This includes reading role definitions and role assignments.", + "displayName": "Read role management data for all RBAC providers", + "id": "48fec646-b2ba-4019-8681-8eb31435aded", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the role-based access control (RBAC) settings for all RBAC providers, on your behalf. This includes reading role definitions and role assignments.", + "userConsentDisplayName": "Read role management data for all RBAC providers", + "value": "RoleManagement.Read.All" + }, + { + "description": "Allows the app to read the Cloud PC role-based access control (RBAC) settings, on behalf of the signed-in user.  This includes reading Cloud PC role definitions and role assignments.", + "displayName": "Read Cloud PC RBAC settings", + "id": "9619b88a-8a25-48a7-9571-d23be0337a79", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the Cloud PC role-based access control (RBAC) settings, on your behalf.  This includes reading Cloud PC role definitions and role assignments.", + "userConsentDisplayName": "Read Cloud PC RBAC settings", + "value": "RoleManagement.Read.CloudPC" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) settings for your company's directory, on behalf of the signed-in user. This includes reading directory role templates, directory roles and memberships.", + "displayName": "Read directory RBAC settings", + "id": "741c54c3-0c1e-44a1-818b-3f97ab4e8c83", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the role-based access control (RBAC) settings for your company's directory, on your behalf. This includes reading directory role templates, directory roles and memberships.", + "userConsentDisplayName": "Read directory RBAC settings", + "value": "RoleManagement.Read.Directory" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) settings for your organization's Exchange Online service, on behalf of the signed-in user. This includes reading Exchange management role definitions, role groups, role group membership, role assignments, management scopes, and role assignment policies.", + "displayName": "Read Exchange Online RBAC configuration", + "id": "3bc15058-7858-4141-b24f-ae43b4e80b52", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the role-based access control (RBAC) settings for your organization's Exchange Online service, on your behalf. This includes reading Exchange management role definitions, role groups, role group membership, role assignments, management scopes, and role assignment policies.", + "userConsentDisplayName": "Read Exchange Online RBAC configuration", + "value": "RoleManagement.Read.Exchange" + }, + { + "description": "Allows the app to read and manage the Cloud PC role-based access control (RBAC) settings, on behalf of the signed-in user. This includes reading and managing Cloud PC role definitions and role assignments.", + "displayName": "Read and write Cloud PC RBAC settings", + "id": "501d06f8-07b8-4f18-b5c6-c191a4af7a82", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the Cloud PC role-based access control (RBAC) settings, on your behalf. This includes reading and managing Cloud PC role definitions and memberships.", + "userConsentDisplayName": "Read and write Cloud PC RBAC settings", + "value": "RoleManagement.ReadWrite.CloudPC" + }, + { + "description": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, on behalf of the signed-in user. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships.", + "displayName": "Read and write directory RBAC settings", + "id": "d01b97e9-cbc0-49fe-810a-750afd5527a3", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the role-based access control (RBAC) settings for your company's directory, on your behalf. This includes instantiating directory roles and managing directory role membership, and reading directory role templates, directory roles and memberships.", + "userConsentDisplayName": "Read and write directory RBAC settings", + "value": "RoleManagement.ReadWrite.Directory" + }, + { + "description": "Allows the app to read and manage the role-based access control (RBAC) settings for your organization's Exchange Online service, on behalf of the signed-in user. This includes reading, creating, updating, and deleting Exchange management role definitions, role groups, role group membership, role assignments, management scopes, and role assignment policies.", + "displayName": "Read and write Exchange Online RBAC configuration", + "id": "c1499fe0-52b1-4b22-bed2-7a244e0e879f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the role-based access control (RBAC) settings for your organization's Exchange Online service, on your behalf. This includes reading, creating, updating, and deleting Exchange management role definitions, role groups, role group membership, role assignments, management scopes, and role assignment policies.", + "userConsentDisplayName": "Read and write Exchange Online RBAC configuration", + "value": "RoleManagement.ReadWrite.Exchange" + }, + { + "description": "Allows the app to read the role-based access control (RBAC) alerts for your company's directory, on behalf of the signed-in user. This includes reading alert statuses, alert definitions, alert configurations and incidents that lead to an alert.", + "displayName": "Read all alert data for your company's directory", + "id": "cce71173-f76d-446e-97ff-efb2d82e11b1", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the role-based access control (RBAC) alerts for your company's directory, on your behalf. This includes reading alert statuses, alert definitions, alert configurations and incidents that lead to an alert.", + "userConsentDisplayName": "Read all alert data for your company's directory", + "value": "RoleManagementAlert.Read.Directory" + }, + { + "description": "Allows the app to read and manage the role-based access control (RBAC) alerts for your company's directory, on behalf of the signed-in user. This includes managing alert settings, initiating alert scans, dimissing alerts, remediating alert incidents, and reading alert statuses, alert definitions, alert configurations and incidents that lead to an alert.", + "displayName": "Read all alert data, configure alerts, and take actions on all alerts for your company's directory", + "id": "435644c6-a5b1-40bf-8f52-fe8e5b53e19c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and manage the role-based access control (RBAC) alerts for your company's directory, on your behalf. This includes managing alert settings, initiating alert scans, dimissing alerts, remediating alert incidents, and reading alert statuses, alert definitions, alert configurations and incidents that lead to an alert.", + "userConsentDisplayName": "Read all alert data, configure alerts, and take actions on all alerts for your company's directory", + "value": "RoleManagementAlert.ReadWrite.Directory" + }, + { + "description": "Allows the app to read policies in Privileged Identity Management for Groups, on behalf of the signed-in user.", + "displayName": "Read all policies in PIM for Groups", + "id": "7e26fdff-9cb1-4e56-bede-211fe0e420e8", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read policies in Privileged Identity Management for Groups, on your behalf.", + "userConsentDisplayName": "Read all policies in PIM for Groups", + "value": "RoleManagementPolicy.Read.AzureADGroup" + }, + { + "description": "Allows the app to read policies for privileged role-based access control (RBAC) assignments of your company's directory, on behalf of the signed-in user.", + "displayName": "Read all policies for privileged role assignments of your company's directory", + "id": "3de2cdbe-0ff5-47d5-bdee-7f45b4749ead", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read policies for privileged role-based access control (RBAC) assignments of your company's directory, on your behalf.", + "userConsentDisplayName": "Read all policies for privileged role assignments of your company's directory", + "value": "RoleManagementPolicy.Read.Directory" + }, + { + "description": "Allows the app to read, update, and delete policies in Privileged Identity Management for Groups, on behalf of the signed-in user.", + "displayName": "Read, update, and delete all policies in PIM for Groups", + "id": "0da165c7-3f15-4236-b733-c0b0f6abe41d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, and delete policies in Privileged Identity Management for Groups, on your behalf.", + "userConsentDisplayName": "Read, update, and delete all policies in PIM for Groups", + "value": "RoleManagementPolicy.ReadWrite.AzureADGroup" + }, + { + "description": "Allows the app to read, update, and delete policies for privileged role-based access control (RBAC) assignments of your company's directory, on behalf of the signed-in user.", + "displayName": "Read, update, and delete all policies for privileged role assignments of your company's directory", + "id": "1ff1be21-34eb-448c-9ac9-ce1f506b2a68", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, and delete policies for privileged role-based access control (RBAC) assignments of your company's directory, on your behalf.", + "userConsentDisplayName": "Read, update, and delete all policies for privileged role assignments of your company's directory", + "value": "RoleManagementPolicy.ReadWrite.Directory" + }, + { + "description": "Allows the app to read schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on behalf of the signed-in user.", + "displayName": "Read user schedule items", + "id": "fccf6dd8-5706-49fa-811f-69e2e1b585d0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on your behalf.", + "userConsentDisplayName": "Read your schedule items", + "value": "Schedule.Read.All" + }, + { + "description": "Allows the app to manage schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on behalf of the signed-in user.", + "displayName": "Read and write user schedule items", + "id": "63f27281-c9d9-4f29-94dd-6942f7f1feb0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage schedule, schedule groups, shifts and associated entities in the Teams or Shifts application on your behalf.", + "userConsentDisplayName": "Read and write your schedule items", + "value": "Schedule.ReadWrite.All" + }, + { + "description": "Allows the app to read search configuration, on behalf of the signed-in user.", + "displayName": "Read your organization's search configuration", + "id": "7d307522-aa38-4cd0-bd60-90c6f0ac50bd", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read search configuration, on your behalf.", + "userConsentDisplayName": "Read your organization's search configuration", + "value": "SearchConfiguration.Read.All" + }, + { + "description": "Allows the app to read and write search configuration, on behalf of the signed-in user.", + "displayName": "Read and write your organization's search configuration", + "id": "b1a7d408-cab0-47d2-a2a5-a74a3733600d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write search configuration, on your behalf.", + "userConsentDisplayName": "Read and write your organization's search configuration", + "value": "SearchConfiguration.ReadWrite.All" + }, + { + "description": "Allows the app to read security actions, on behalf of the signed-in user.", + "displayName": "Read your organization's security actions", + "id": "1638cddf-07a4-4de2-8645-69c96cacad73", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read security actions, on your behalf.", + "userConsentDisplayName": "Read your organization's security actions", + "value": "SecurityActions.Read.All" + }, + { + "description": "Allows the app to read or update security actions, on behalf of the signed-in user.", + "displayName": "Read and update your organization's security actions", + "id": "dc38509c-b87d-4da0-bd92-6bec988bac4a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and update security actions, on your behalf.", + "userConsentDisplayName": "Read and update your organization's security actions", + "value": "SecurityActions.ReadWrite.All" + }, + { + "description": "Allows the app to read all security alerts, on behalf of the signed-in user.", + "displayName": "Read all security alerts", + "id": "bc257fb8-46b4-4b15-8713-01e91bfbe4ea", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all security alerts that you have access to.", + "userConsentDisplayName": "Read all alerts", + "value": "SecurityAlert.Read.All" + }, + { + "description": "Allows the app to read and write to all security alerts, on behalf of the signed-in user.", + "displayName": "Read and write to all security alerts", + "id": "471f2a7f-2a42-4d45-a2bf-594d0838070d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all alerts that you have access to.", + "userConsentDisplayName": "Read and write all alerts", + "value": "SecurityAlert.ReadWrite.All" + }, + { + "description": "Read email metadata and security detection details on behalf of the signed in user.", + "displayName": "Read metadata and detection details for emails in your organization", + "id": "53e6783e-b127-4a35-ab3a-6a52d80a9077", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read email metadata and security detection details on your behalf.", + "userConsentDisplayName": "Read metadata and detection details for emails in your organization", + "value": "SecurityAnalyzedMessage.Read.All" + }, + { + "description": "Read email metadata, security detection details, and execute remediation actions like deleting an email, on behalf of the signed in user.", + "displayName": "Read metadata, detection details, and execute remediation actions on emails in your organization", + "id": "48eb8c83-6e58-46e7-a6d3-8805822f5940", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read email metadata, security detection details, and execute remediation actions like deleting an email, on your behalf.", + "userConsentDisplayName": "Read metadata, detection details, and execute remediation actions on emails in your organization", + "value": "SecurityAnalyzedMessage.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization’s security events on behalf of the signed-in user.", + "displayName": "Read your organization’s security events", + "id": "64733abd-851e-478a-bffb-e47a14b18235", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization’s security events on your behalf.", + "userConsentDisplayName": "Read your organization’s security events", + "value": "SecurityEvents.Read.All" + }, + { + "description": "Allows the app to read your organization’s security events on behalf of the signed-in user. Also allows the app to update editable properties in security events on behalf of the signed-in user.", + "displayName": "Read and update your organization’s security events", + "id": "6aedf524-7e1c-45a7-bd76-ded8cab8d0fc", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization’s security events on your behalf. Also allows you to update editable properties in security events.", + "userConsentDisplayName": "Read and update your organization’s security events", + "value": "SecurityEvents.ReadWrite.All" + }, + { + "description": "Allows the app to read security incidents, on behalf of the signed-in user.", + "displayName": "Read incidents", + "id": "b9abcc4f-94fc-4457-9141-d20ce80ec952", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all security incidents that you have access to.", + "userConsentDisplayName": "Read security incidents", + "value": "SecurityIncident.Read.All" + }, + { + "description": "Allows the app to read and write security incidents, on behalf of the signed-in user.", + "displayName": "Read and write to incidents", + "id": "128ca929-1a19-45e6-a3b8-435ec44a36ba", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write to all security incidents that you have access to.", + "userConsentDisplayName": "Read and write to security incidents", + "value": "SecurityIncident.ReadWrite.All" + }, + { + "description": "Allows the app to read your tenant's service health information on behalf of the signed-in user. Health information may include service issues or service health overviews.", + "displayName": "Read service health", + "id": "55896846-df78-47a7-aa94-8d3d4442ca7f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your tenant's service health information on your behalf.Health information may include service issues or service health overviews.", + "userConsentDisplayName": "Read service health", + "value": "ServiceHealth.Read.All" + }, + { + "description": "Allows the app to read your tenant's service announcement messages on behalf of the signed-in user. Messages may include information about new or changed features.", + "displayName": "Read service announcement messages", + "id": "eda39fa6-f8cf-4c3c-a909-432c683e4c9b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your tenant's service announcement messages on your behalf. Messages may include information about new or changed features.", + "userConsentDisplayName": "Read service messages", + "value": "ServiceMessage.Read.All" + }, + { + "description": "Allows the app to update service announcement messages' user status on behalf of the signed-in user. The message status can be marked as read, archive, or favorite.", + "displayName": "Update user status on service announcement messages", + "id": "636e1b0b-1cc2-4b1c-9aa9-4eeed9b9761b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to update service announcement messages' status on your behalf. Your status for messages can be marked as read, archive, or favorite.", + "userConsentDisplayName": "Update your user status on service announcement messages", + "value": "ServiceMessageViewpoint.Write" + }, + { + "description": "Allows the app to read service principal endpoints", + "displayName": "Read service principal endpoints", + "id": "9f9ce928-e038-4e3b-8faf-7b59049a8ddc", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read service principal endpoints", + "userConsentDisplayName": "Read service principal endpoints", + "value": "ServicePrincipalEndpoint.Read.All" + }, + { + "description": "Allows the app to update service principal endpoints", + "displayName": "Read and update service principal endpoints", + "id": "7297d82c-9546-4aed-91df-3d4f0a9b3ff0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to update service principal endpoints", + "userConsentDisplayName": "Read and update service principal endpoints", + "value": "ServicePrincipalEndpoint.ReadWrite.All" + }, + { + "description": "Allows the application to read the tenant-level settings in SharePoint and OneDrive on behalf of the signed-in user.", + "displayName": "Read SharePoint and OneDrive tenant settings", + "id": "2ef70e10-5bfd-4ede-a5f6-67720500b258", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read the tenant-level settings in SharePoint and OneDrive on your behalf.", + "userConsentDisplayName": "Read SharePoint and OneDrive tenant settings", + "value": "SharePointTenantSettings.Read.All" + }, + { + "description": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive on behalf of the signed-in user.", + "displayName": "Read and change SharePoint and OneDrive tenant settings", + "id": "aa07f155-3612-49b8-a147-6c590df35536", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the application to read and change the tenant-level settings of SharePoint and OneDrive on your behalf.", + "userConsentDisplayName": "Read and change SharePoint and OneDrive tenant settings", + "value": "SharePointTenantSettings.ReadWrite.All" + }, + { + "description": "Allows the app to read all the short notes a sign-in user has access to.", + "displayName": "Read short notes of the signed-in user", + "id": "50f66e47-eb56-45b7-aaa2-75057d9afe08", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your short notes.", + "userConsentDisplayName": "Read your short notes", + "value": "ShortNotes.Read" + }, + { + "description": "Allows the app to read, create, edit, and delete short notes of a signed-in user.", + "displayName": "Read, create, edit, and delete short notes of the signed-in user", + "id": "328438b7-4c01-4c07-a840-e625a749bb89", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, create, edit, and delete your short notes.", + "userConsentDisplayName": "Read, create, edit, and delete your short notes", + "value": "ShortNotes.ReadWrite" + }, + { + "description": "Allows the application to have full control of all site collections on behalf of the signed-in user.", + "displayName": "Have full control of all site collections", + "id": "5a54b8b3-347c-476d-8f8e-42d5c7424d29", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allow the application to have full control of all site collections on your behalf.", + "userConsentDisplayName": "Have full control of all your site collections", + "value": "Sites.FullControl.All" + }, + { + "description": "Allows the application to create or delete document libraries and lists in all site collections on behalf of the signed-in user.", + "displayName": "Create, edit, and delete items and lists in all site collections", + "id": "65e50fdc-43b7-4915-933e-e8138f11f40a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allow the application to create or delete document libraries and lists in all site collections on your behalf.", + "userConsentDisplayName": "Create, edit, and delete items and lists in all your site collections", + "value": "Sites.Manage.All" + }, + { + "description": "Allows the application to read documents and list items in all site collections on behalf of the signed-in user", + "displayName": "Read items in all site collections", + "id": "205e70e5-aba6-4c52-a976-6d2d46c48043", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allow the application to read documents and list items in all site collections on your behalf", + "userConsentDisplayName": "Read items in all site collections", + "value": "Sites.Read.All" + }, + { + "description": "Allows the application to edit or delete documents and list items in all site collections on behalf of the signed-in user.", + "displayName": "Edit or delete items in all site collections", + "id": "89fe6a52-be36-487e-b7d8-d061c450a026", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allow the application to edit or delete documents and list items in all site collections on your behalf.", + "userConsentDisplayName": "Edit or delete items in all site collections", + "value": "Sites.ReadWrite.All" + }, + { + "description": "Allows the app to be able to send emails from the user’s mailbox using the SMTP AUTH client submission protocol.", + "displayName": "Send emails from mailboxes using SMTP AUTH.", + "id": "258f6531-6087-4cc4-bb90-092c5fb3ed3f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to send emails on your behalf from your mailbox.", + "userConsentDisplayName": "Access to sending emails from your mailbox.", + "value": "SMTP.Send" + }, + { + "description": "Allows the app to read subject rights requests on behalf of the signed-in user", + "displayName": "Read subject rights requests", + "id": "9c3af74c-fd0f-4db4-b17a-71939e2a9d77", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read subject rights requests on your behalf.", + "userConsentDisplayName": "Read data subject requests", + "value": "SubjectRightsRequest.Read.All" + }, + { + "description": "Allows the app to read and write subject rights requests on behalf of the signed-in user", + "displayName": "Read and write subject rights requests", + "id": "2b8fcc74-bce1-4ae3-a0e8-60c53739299d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write subject rights requests on your behalf.", + "userConsentDisplayName": "Read and write data subject requests", + "value": "SubjectRightsRequest.ReadWrite.All" + }, + { + "description": "Allows the app to read all webhook subscriptions on behalf of the signed-in user.", + "displayName": "Read all webhook subscriptions ", + "id": "5f88184c-80bb-4d52-9ff2-757288b2e9b7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all webhook subscriptions on your behalf.", + "userConsentDisplayName": "Read all webhook subscriptions ", + "value": "Subscription.Read.All" + }, + { + "description": "Allows the app to read Azure AD synchronization information, on behalf of the signed-in user.", + "displayName": "Read all Azure AD synchronization data", + "id": "7aa02aeb-824f-4fbe-a3f7-611f751f5b55", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read Azure AD synchronization information, on your behalf.", + "userConsentDisplayName": "Read all Azure AD synchronization data", + "value": "Synchronization.Read.All" + }, + { + "description": "Allows the app to configure the Azure AD synchronization service, on behalf of the signed-in user.", + "displayName": "Read and write all Azure AD synchronization data", + "id": "7bb27fa3-ea8f-4d67-a916-87715b6188bd", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to configure the Azure AD synchronization service, on your behalf.", + "userConsentDisplayName": "Read and write all Azure AD synchronization data", + "value": "Synchronization.ReadWrite.All" + }, + { + "description": "Allows the app to upload bulk user data to the identity synchronization service, on behalf of the signed-in user.", + "displayName": "Upload user data to the identity synchronization service", + "id": "1a2e7420-4e92-4d2b-94cb-fb2952e9ddf7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to upload bulk user data to the identity synchronization service, on your behalf.", + "userConsentDisplayName": "Bulk upload user data to identity synchronization service", + "value": "SynchronizationData-User.Upload" + }, + { + "description": "Allows the app to read the signed-in user’s tasks and task lists, including any shared with the user. Doesn't include permission to create, delete, or update anything.", + "displayName": "Read user's tasks and task lists", + "id": "f45671fb-e0fe-4b4b-be20-3d3ce43f1bcb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your tasks and task lists, including any shared with you. Doesn't include permission to create, delete, or update anything.", + "userConsentDisplayName": "Read your tasks and task lists", + "value": "Tasks.Read" + }, + { + "description": "Allows the app to read tasks a user has permissions to access, including their own and shared tasks.", + "displayName": "Read user and shared tasks", + "id": "88d21fd4-8e5a-4c32-b5e2-4a1c95f34f72", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read tasks you have permissions to access, including your own and shared tasks.", + "userConsentDisplayName": "Read your and shared tasks", + "value": "Tasks.Read.Shared" + }, + { + "description": "Allows the app to create, read, update, and delete the signed-in user's tasks and task lists, including any shared with the user.", + "displayName": "Create, read, update, and delete user’s tasks and task lists", + "id": "2219042f-cab5-40cc-b0d2-16b1540b4c5f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create, read, update, and delete your tasks and task lists, including any shared with you.", + "userConsentDisplayName": "Create, read, update, and delete your tasks and task lists", + "value": "Tasks.ReadWrite" + }, + { + "description": "Allows the app to create, read, update, and delete tasks a user has permissions to, including their own and shared tasks.", + "displayName": "Read and write user and shared tasks", + "id": "c5ddf11b-c114-4886-8558-8a4e557cd52b", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update, create, and delete tasks you have permissions to access, including your own and shared tasks.", + "userConsentDisplayName": "Read and write to your and shared tasks", + "value": "Tasks.ReadWrite.Shared" + }, + { + "description": "Allows the app to create teams on behalf of the signed-in user.", + "displayName": "Create teams", + "id": "7825d5d6-6049-4ce7-bdf6-3b8d53f4bcd0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create teams on your behalf. ", + "userConsentDisplayName": "Create teams", + "value": "Team.Create" + }, + { + "description": "Read the names and descriptions of teams, on behalf of the signed-in user.", + "displayName": "Read the names and descriptions of teams", + "id": "485be79e-c497-4b35-9400-0e3fa7f2a5d4", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read the names and descriptions of teams, on your behalf.", + "userConsentDisplayName": "Read the names and descriptions of teams", + "value": "Team.ReadBasic.All" + }, + { + "description": "Read the members of teams, on behalf of the signed-in user.", + "displayName": "Read the members of teams", + "id": "2497278c-d82d-46a2-b1ce-39d4cdde5570", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read the members of teams, on your behalf.", + "userConsentDisplayName": "Read the members of teams", + "value": "TeamMember.Read.All" + }, + { + "description": "Add and remove members from teams, on behalf of the signed-in user. Also allows changing a member's role, for example from owner to non-owner.", + "displayName": "Add and remove members from teams", + "id": "4a06efd2-f825-4e34-813e-82a57b03d1ee", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Add and remove members from teams, on your behalf. Also allows changing a member's role, for example from owner to non-owner.", + "userConsentDisplayName": "Add and remove members from teams and channels", + "value": "TeamMember.ReadWrite.All" + }, + { + "description": "Add and remove members from all teams, on behalf of the signed-in user. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.", + "displayName": "Add and remove members with non-owner role for all teams", + "id": "2104a4db-3a2f-4ea0-9dba-143d457dc666", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Add and remove members from all teams, on your behalf. Does not allow adding or removing a member with the owner role. Additionally, does not allow the app to elevate an existing member to the owner role.", + "userConsentDisplayName": "Add and remove members with non-owner role for all teams", + "value": "TeamMember.ReadWriteNonOwnerRole.All" + }, + { + "description": "Allows the app to read the signed-in user's teamwork activity feed.", + "displayName": "Read user's teamwork activity feed", + "id": "0e755559-83fb-4b44-91d0-4cc721b9323e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your teamwork activity feed.", + "userConsentDisplayName": "Read your teamwork activity feed", + "value": "TeamsActivity.Read" + }, + { + "description": "Allows the app to create new notifications in users' teamwork activity feeds on behalf of the signed in user. These notifications may not be discoverable or be held or governed by compliance policies.", + "displayName": "Send a teamwork activity as the user", + "id": "7ab1d787-bae7-4d5d-8db6-37ea32df9186", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create new activities in your teamwork activity feed, and send new activities to other users' activity feed, on your behalf.", + "userConsentDisplayName": "Send a teamwork activity", + "value": "TeamsActivity.Send" + }, + { + "description": "Allows the app to read the Teams apps that are installed in chats the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps in chats", + "id": "bf3fbf03-f35f-4e93-963e-47e4d874c37a", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams apps that are installed in chats that you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Read installed Teams apps in chats", + "value": "TeamsAppInstallation.ReadForChat" + }, + { + "description": "Allows the app to read the Teams apps that are installed in teams the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Read installed Teams apps in teams", + "id": "5248dcb1-f83b-4ec3-9f4d-a4428a961a72", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams apps that are installed in teams that you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Read installed Teams apps in teams", + "value": "TeamsAppInstallation.ReadForTeam" + }, + { + "description": "Allows the app to read the Teams apps that are installed for the signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Read user's installed Teams apps", + "id": "c395395c-ff9a-4dba-bc1f-8372ba9dca84", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams apps that are installed for you. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Read your installed Teams apps", + "value": "TeamsAppInstallation.ReadForUser" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in chats the signed-in user can access. Gives the ability to manage permission grants for accessing those specific chats' data.", + "displayName": "Manage installed Teams apps in chats", + "id": "e1408a66-8f82-451b-a2f3-3c3e38f7413f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps in chats the signed-in user can access. Gives the ability to manage permission grants for accessing those specific chats' data.", + "userConsentDisplayName": "Manage installation and permission grants of Teams apps in chats", + "value": "TeamsAppInstallation.ReadWriteAndConsentForChat" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in teams the signed-in user can access. Gives the ability to manage permission grants for accessing those specific teams' data.", + "displayName": "Manage installed Teams apps in teams", + "id": "946349d5-2a9d-4535-abc0-7beeacaedd1d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps in teams the signed-in user can access. Gives the ability to manage permission grants for accessing those specific teams' data.", + "userConsentDisplayName": "Manage installation and permission grants of Teams apps in teams", + "value": "TeamsAppInstallation.ReadWriteAndConsentForTeam" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in user accounts, on behalf of the signed-in user. Gives the ability to manage permission grants for accessing those specific users' data.", + "displayName": "Manage installation and permission grants of Teams apps in users' personal scope", + "id": "2da62c49-dfbd-40df-ba16-fef3529d391c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps for your account, on your behalf. Gives the ability to manage permission grants for accessing your data.", + "userConsentDisplayName": "Manage installation and permission grants of Teams apps on your user account", + "value": "TeamsAppInstallation.ReadWriteAndConsentForUser" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself in chats the signed-in user can access, and manage its permission grants for accessing those specific chats' data.", + "displayName": "Allow the Teams app to manage itself and its permission grants in chats", + "id": "a0e0e18b-8fb2-458f-8130-da2d7cab9c75", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself in chats the signed-in user can access, and manage its permission grants for accessing those specific chats' data.", + "userConsentDisplayName": "Allow the Teams app to manage itself and its permission grants in chats", + "value": "TeamsAppInstallation.ReadWriteAndConsentSelfForChat" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself in teams the signed-in user can access, and manage its permission grants for accessing those specific teams' data.", + "displayName": "Allow the Teams app to manage itself and its permission grants in teams", + "id": "4a6bbf29-a0e1-4a4d-a7d1-cef17f772975", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself in teams the signed-in user can access, and manage its permission grants for accessing those specific teams' data.", + "userConsentDisplayName": "Allow the Teams app to manage itself and its permission grants in teams", + "value": "TeamsAppInstallation.ReadWriteAndConsentSelfForTeam" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself in user accounts, and manage its permission grants for accessing those specific users' data, on behalf of the signed-in user.", + "displayName": "Allow the Teams app to manage itself and its permission grants in user accounts", + "id": "7a349935-c54d-44ab-ab66-1b460d315be7", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself in your account, and manage its permission grants for accessing your data, on your behalf.", + "userConsentDisplayName": "Allow the Teams app to manage itself and its permission grants on your user account", + "value": "TeamsAppInstallation.ReadWriteAndConsentSelfForUser" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in chats the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Manage installed Teams apps in chats", + "id": "aa85bf13-d771-4d5d-a9e6-bca04ce44edf", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps in chats you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Manage installed Teams apps in chats", + "value": "TeamsAppInstallation.ReadWriteForChat" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps in teams the signed-in user can access. Does not give the ability to read application-specific settings.", + "displayName": "Manage installed Teams apps in teams", + "id": "2e25a044-2580-450d-8859-42eeb6e996c0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps in teams you can access. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Manage installed Teams apps in teams", + "value": "TeamsAppInstallation.ReadWriteForTeam" + }, + { + "description": "Allows the app to read, install, upgrade, and uninstall Teams apps installed for the signed-in user. Does not give the ability to read application-specific settings.", + "displayName": "Manage user's installed Teams apps", + "id": "093f8818-d05f-49b8-95bc-9d2a73e9a43c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, install, upgrade, and uninstall Teams apps installed for you. Does not give the ability to read application-specific settings.", + "userConsentDisplayName": "Manage your installed Teams apps", + "value": "TeamsAppInstallation.ReadWriteForUser" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself in chats the signed-in user can access.", + "displayName": "Allow the Teams app to manage itself in chats", + "id": "0ce33576-30e8-43b7-99e5-62f8569a4002", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself in chats you can access.", + "userConsentDisplayName": "Allow the Teams app to manage itself in chats", + "value": "TeamsAppInstallation.ReadWriteSelfForChat" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself to teams the signed-in user can access.", + "displayName": "Allow the app to manage itself in teams", + "id": "0f4595f7-64b1-4e13-81bc-11a249df07a9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself to teams you can access.", + "userConsentDisplayName": "Allow the Teams app to manage itself in teams", + "value": "TeamsAppInstallation.ReadWriteSelfForTeam" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall itself for the signed-in user.", + "displayName": "Allow the Teams app to manage itself for a user", + "id": "207e0cb1-3ce7-4922-b991-5a760c346ebc", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall itself for you.", + "userConsentDisplayName": "Allow the Teams app to manage itself for you", + "value": "TeamsAppInstallation.ReadWriteSelfForUser" + }, + { + "description": "Read all teams' settings, on behalf of the signed-in user.", + "displayName": "Read teams' settings", + "id": "48638b3c-ad68-4383-8ac4-e6880ee6ca57", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read all teams' settings, on your behalf.", + "userConsentDisplayName": "Read teams' settings", + "value": "TeamSettings.Read.All" + }, + { + "description": "Read and change all teams' settings, on behalf of the signed-in user.", + "displayName": "Read and change teams' settings", + "id": "39d65650-9d3e-4223-80db-a335590d027e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read and change all teams' settings, on your behalf.", + "userConsentDisplayName": "Read and change teams' settings", + "value": "TeamSettings.ReadWrite.All" + }, + { + "description": "Allows the app to create tabs in any team in Microsoft Teams, on behalf of the signed-in user. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs.", + "displayName": "Create tabs in Microsoft Teams.", + "id": "a9ff19c2-f369-4a95-9a25-ba9d460efc8e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create tabs in any team in Microsoft Teams, on your behalf. This does not grant the ability to read, modify or delete tabs after they are created, or give access to the content inside the tabs.", + "userConsentDisplayName": "Create tabs in Microsoft Teams.", + "value": "TeamsTab.Create" + }, + { + "description": "Read the names and settings of tabs inside any team in Microsoft Teams, on behalf of the signed-in user. This does not give access to the content inside the tabs.", + "displayName": "Read tabs in Microsoft Teams.", + "id": "59dacb05-e88d-4c13-a684-59f1afc8cc98", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read the names and settings of tabs inside any team in Microsoft Teams, on your behalf. This does not give access to the content inside the tabs.", + "userConsentDisplayName": "Read tabs in Microsoft Teams.", + "value": "TeamsTab.Read.All" + }, + { + "description": "Read and write tabs in any team in Microsoft Teams, on behalf of the signed-in user. This does not give access to the content inside the tabs.", + "displayName": "Read and write tabs in Microsoft Teams.", + "id": "b98bfd41-87c6-45cc-b104-e2de4f0dafb9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read and write tabs in any team in Microsoft Teams, on your behalf. This does not give access to the content inside the tabs.", + "userConsentDisplayName": "Read and write tabs in Microsoft Teams.", + "value": "TeamsTab.ReadWrite.All" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs in chats the signed-in user can access.", + "displayName": "Allow the Teams app to manage all tabs in chats", + "id": "ee928332-e9c2-4747-b4a0-f8c164b68de6", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall all tabs in chats you can access.", + "userConsentDisplayName": "Allow the Teams app to manage all tabs in chats", + "value": "TeamsTab.ReadWriteForChat" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs to teams the signed-in user can access.", + "displayName": "Allow the Teams app to manage all tabs in teams", + "id": "c975dd04-a06e-4fbb-9704-62daad77bb49", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall all tabs to teams you can access.", + "userConsentDisplayName": "Allow the app to manage all tabs in teams", + "value": "TeamsTab.ReadWriteForTeam" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for the signed-in user.", + "displayName": "Allow the Teams app to manage all tabs for a user", + "id": "c37c9b61-7762-4bff-a156-afc0005847a0", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall all tabs for you.", + "userConsentDisplayName": "Allow the Teams app to manage all tabs for you", + "value": "TeamsTab.ReadWriteForUser" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs in chats the signed-in user can access.", + "displayName": "Allow the Teams app to manage only its own tabs in chats", + "id": "0c219d04-3abf-47f7-912d-5cca239e90e6", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs in chats you can access.", + "userConsentDisplayName": "Allow the Teams app to manage only its own tabs in chats", + "value": "TeamsTab.ReadWriteSelfForChat" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs to teams the signed-in user can access.", + "displayName": "Allow the Teams app to manage only its own tabs in teams", + "id": "f266662f-120a-4314-b26a-99b08617c7ef", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs to teams you can access.", + "userConsentDisplayName": "Allow the Teams app to manage only its own tabs in teams", + "value": "TeamsTab.ReadWriteSelfForTeam" + }, + { + "description": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for the signed-in user.", + "displayName": "Allow the Teams app to manage only its own tabs for a user", + "id": "395dfec1-a0b9-465f-a783-8250a430cb8c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows a Teams app to read, install, upgrade, and uninstall its own tabs for you.", + "userConsentDisplayName": "Allow the Teams app to manage only its own tabs for you", + "value": "TeamsTab.ReadWriteSelfForUser" + }, + { + "description": "Allows the app to read the available Teams templates, on behalf of the signed-in user.", + "displayName": "Read available Teams templates", + "id": "cd87405c-5792-4f15-92f7-debc0db6d1d6", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Read available Teams templates, on your behalf.", + "userConsentDisplayName": "Read available Teams templates", + "value": "TeamTemplates.Read" + }, + { + "description": "Allows the app to read the Teams app settings on behalf of the signed-in user.", + "displayName": "Read Teams app settings", + "id": "44e060c4-bbdc-4256-a0b9-dcc0396db368", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the Teams app settings on your behalf.", + "userConsentDisplayName": "Read Teams app settings", + "value": "TeamworkAppSettings.Read.All" + }, + { + "description": "Allows the app to read and write the Teams app settings on behalf of the signed-in user.", + "displayName": "Read and write Teams app settings", + "id": "87c556f0-2bd9-4eed-bd74-5dd8af6eaf7e", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the Teams app settings on your behalf.", + "userConsentDisplayName": "Read and write Teams app settings", + "value": "TeamworkAppSettings.ReadWrite.All" + }, + { + "description": "Allow the app to read the management data for Teams devices on behalf of the signed-in user.", + "displayName": "Read Teams devices", + "id": "b659488b-9d28-4208-b2be-1c6652b3c970", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allow the app to read the management data for Teams devices on your behalf.", + "userConsentDisplayName": "Read Teams devices", + "value": "TeamworkDevice.Read.All" + }, + { + "description": "Allow the app to read and write the management data for Teams devices on behalf of the signed-in user.", + "displayName": "Read and write Teams devices", + "id": "ddd97ecb-5c31-43db-a235-0ee20e635c40", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allow the app to read and write the management data for Teams devices on your behalf.", + "userConsentDisplayName": "Read and write Teams devices", + "value": "TeamworkDevice.ReadWrite.All" + }, + { + "description": "Allows the app to read tags in Teams, on behalf of the signed-in user.", + "displayName": "Read tags in Teams", + "id": "57587d0b-8399-45be-b207-8050cec54575", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read tags in Teams, on your behalf.", + "userConsentDisplayName": "Read tags in Teams", + "value": "TeamworkTag.Read" + }, + { + "description": "Allows the app to read and write tags in Teams, on behalf of the signed-in user.", + "displayName": "Read and write tags in Teams", + "id": "539dabd7-b5b6-4117-b164-d60cd15a8671", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write tags in Teams, on your behalf.", + "userConsentDisplayName": "Read and write tags in Teams", + "value": "TeamworkTag.ReadWrite" + }, + { + "description": "Allows the app to read the term store data that the signed-in user has access to. This includes all sets, groups and terms in the term store.", + "displayName": "Read term store data", + "id": "297f747b-0005-475b-8fef-c890f5152b38", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the term store data that you have access to. This includes all sets, groups and terms in the term store.", + "userConsentDisplayName": "Read term store data", + "value": "TermStore.Read.All" + }, + { + "description": "Allows the app to read or modify data that the signed-in user has access to. This includes all sets, groups and terms in the term store.", + "displayName": "Read and write term store data", + "id": "6c37c71d-f50f-4bff-8fd3-8a41da390140", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read or modify data that you have access to. This includes all sets, groups and terms in the term store.", + "userConsentDisplayName": "Read and write term store data", + "value": "TermStore.ReadWrite.All" + }, + { + "description": "Allows an app to read your organization's threat assessment requests on behalf of the signed-in user. Also allows the app to create new requests to assess threats received by your organization on behalf of the signed-in user.", + "displayName": "Read and write threat assessment requests", + "id": "cac97e40-6730-457d-ad8d-4852fddab7ad", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows an app to read your organization's threat assessment requests on your behalf. Also allows the app to create new requests to assess threats received by your organization on your behalf.", + "userConsentDisplayName": "Read and write threat assessment requests", + "value": "ThreatAssessment.ReadWrite.All" + }, + { + "description": "Allows the app to run hunting queries, on behalf of the signed-in user.", + "displayName": "Run hunting queries", + "id": "b152eca8-ea73-4a48-8c98-1a6742673d99", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to run hunting queries that you can execute.", + "userConsentDisplayName": "Run hunting queries", + "value": "ThreatHunting.Read.All" + }, + { + "description": "Allows the app to read all the indicators for your organization, on behalf of the signed-in user.", + "displayName": "Read all threat indicators", + "id": "9cc427b4-2004-41c5-aa22-757b755e9796", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read all the indicators for your organization, on your behalf.", + "userConsentDisplayName": "Read all threat indicators", + "value": "ThreatIndicators.Read.All" + }, + { + "description": "Allows the app to create threat indicators, and fully manage those threat indicators (read, update and delete), on behalf of the signed-in user.  It cannot update any threat indicators it does not own.", + "displayName": "Manage threat indicators this app creates or owns", + "id": "91e7d36d-022a-490f-a748-f8e011357b42", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to create threat indicators, and fully manage those threat indicators (read, update and delete), on your behalf.  It cannot update any threat indicators that it is not an owner of.", + "userConsentDisplayName": "Manage threat indicators this app creates or owns", + "value": "ThreatIndicators.ReadWrite.OwnedBy" + }, + { + "description": "Allows the app to read threat intelligence information, such as indicators, observations, and articles, on behalf of the signed-in user.", + "displayName": "Read all threat intelligence information", + "id": "f266d9c0-ccb9-4fb8-a228-01ac0d8d6627", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read threat intelligence information, such as indicators, observations, and articles, on your behalf.", + "userConsentDisplayName": "Read threat intelligence Information", + "value": "ThreatIntelligence.Read.All" + }, + { + "description": "Allows the app to read the threat submissions and threat submission policies owned by the signed-in user.", + "displayName": "Read threat submissions", + "id": "fd5353c6-26dd-449f-a565-c4e16b9fce78", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the threat submissions and threat submission policies that you own on your behalf.", + "userConsentDisplayName": "Read threat submissions", + "value": "ThreatSubmission.Read" + }, + { + "description": "Allows the app to read your organization's threat submissions and threat submission policies on behalf of the signed-in user.", + "displayName": "Read all threat submissions", + "id": "7083913a-4966-44b6-9886-c5822a5fd910", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's threat submissions and threat submission policies on your behalf.", + "userConsentDisplayName": "Read all threat submissions", + "value": "ThreatSubmission.Read.All" + }, + { + "description": "Allows the app to read the threat submissions and threat submission policies owned by the signed-in user. Also allows the app to create new threat submissions on behalf of the signed-in user.", + "displayName": "Read and write threat submissions", + "id": "68a3156e-46c9-443c-b85c-921397f082b5", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the threat submissions and threat submission policies that you own. Also allows the app to create new threat submissions on your behalf.", + "userConsentDisplayName": "Read and write threat submissions", + "value": "ThreatSubmission.ReadWrite" + }, + { + "description": "Allows the app to read your organization's threat submissions and threat submission policies on behalf of the signed-in user. Also allows the app to create new threat submissions on behalf of the signed-in user.", + "displayName": "Read and write all threat submissions", + "id": "8458e264-4eb9-4922-abe9-768d58f13c7f", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's threat submissions and threat submission policies on your behalf. Also allows the app to create new threat submissions on your behalf.", + "userConsentDisplayName": "Read and write all threat submissions", + "value": "ThreatSubmission.ReadWrite.All" + }, + { + "description": "Allows the app to read your organization's threat submission policies on behalf of the signed-in user. Also allows the app to create new threat submission policies on behalf of the signed-in user.", + "displayName": "Read and write all threat submission policies", + "id": "059e5840-5353-4c68-b1da-666a033fc5e8", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your organization's threat submission policies on your behalf. Also allows the app to create new threat submission policies on your behalf.", + "userConsentDisplayName": "Read and write all threat submission policies", + "value": "ThreatSubmissionPolicy.ReadWrite.All" + }, + { + "description": "Allows the app to read trust framework key set properties on behalf of the signed-in user.", + "displayName": "Read trust framework key sets", + "id": "7ad34336-f5b1-44ce-8682-31d7dfcd9ab9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read trust framework key sets, on your behalf.", + "userConsentDisplayName": "Read trust framework key sets", + "value": "TrustFrameworkKeySet.Read.All" + }, + { + "description": "Allows the app to read and write trust framework key set properties on behalf of the signed-in user.", + "displayName": "Read and write trust framework key sets", + "id": "39244520-1e7d-4b4a-aee0-57c65826e427", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read or write trust framework key sets, on your behalf.", + "userConsentDisplayName": "Read and write trust framework key sets", + "value": "TrustFrameworkKeySet.ReadWrite.All" + }, + { + "description": "Allows the app to read basic unified group properties, memberships and owners of the group the signed-in guest is a member of.", + "displayName": "Read unified group memberships as guest", + "id": "73e75199-7c3e-41bb-9357-167164dbb415", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read basic unified group properties, memberships and owners of the group you are a member of.", + "userConsentDisplayName": "Read unified group memberships as guest", + "value": "UnifiedGroupMember.Read.AsGuest" + }, + { + "description": "Allows the app to read the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "displayName": "Read all users' lifecycle information", + "id": "ed8d2a04-0374-41f1-aefe-da8ac87ccc87", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "userConsentDisplayName": "Read all users' lifecycle information", + "value": "User-LifeCycleInfo.Read.All" + }, + { + "description": "Allows the app to read and write the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "displayName": "Read and write all users' lifecycle information", + "id": "7ee7473e-bd4b-4c9f-987c-bd58481f5fa2", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the lifecycle information like employeeLeaveDateTime of users in your organization, on behalf of the signed-in user.", + "userConsentDisplayName": "Read and write all users' lifecycle information", + "value": "User-LifeCycleInfo.ReadWrite.All" + }, + { + "description": "Allows the app to enable and disable users' accounts, on behalf of the signed-in user.", + "displayName": "Enable and disable user accounts", + "id": "f92e74e7-2563-467f-9dd0-902688cb5863", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to enable and disable users' accounts, on your behalf.", + "userConsentDisplayName": "Enable and disable user accounts", + "value": "User.EnableDisableAccount.All" + }, + { + "description": "Allows the app to export data (e.g. customer content or system-generated logs), associated with any user in your company, when the app is used by a privileged user (e.g. a Company Administrator).", + "displayName": "Export user's data", + "id": "405a51b5-8d8d-430b-9842-8be4b0e9f324", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to export data (e.g. customer content or system-generated logs), associated with any user in your company, when the app is used by a privileged user (e.g. a Company Administrator).", + "userConsentDisplayName": "Export user's data", + "value": "User.Export.All" + }, + { + "description": "Allows the app to invite guest users to the organization, on behalf of the signed-in user.", + "displayName": "Invite guest users to the organization", + "id": "63dd7cd9-b489-4adf-a28c-ac38b9a0f962", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to invite guest users to the organization, on your behalf.", + "userConsentDisplayName": "Invite guest users to the organization", + "value": "User.Invite.All" + }, + { + "description": "Allows the app to read, update and delete identities that are associated with a user's account that the signed-in user has access to. This controls the identities users can sign-in with.", + "displayName": "Manage user identities", + "id": "637d7bec-b31e-4deb-acc9-24275642a2c9", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read, update and delete identities that are associated with a user's account that you have access to. This controls the identities users can sign-in with.", + "userConsentDisplayName": "Manage user identities", + "value": "User.ManageIdentities.All" + }, + { + "description": "Allows users to sign-in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users.", + "displayName": "Sign in and read user profile", + "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows you to sign in to the app with your organizational account and let the app read your profile. It also allows the app to read basic company information.", + "userConsentDisplayName": "Sign you in and read your profile", + "value": "User.Read" + }, + { + "description": "Allows the app to read the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user.", + "displayName": "Read all users' full profiles", + "id": "a154be20-db9c-4678-8ab7-66f6cc099a59", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read the full set of profile properties, reports, and managers of other users in your organization, on your behalf.", + "userConsentDisplayName": "Read all users' full profiles", + "value": "User.Read.All" + }, + { + "description": "Allows the app to read a basic set of profile properties of other users in your organization on behalf of the signed-in user. This includes display name, first and last name, email address and photo.", + "displayName": "Read all users' basic profiles", + "id": "b340eb25-3456-403f-be2f-af7a0d370277", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read a basic set of profile properties of other users in your organization on your behalf. Includes display name, first and last name, email address and photo.", + "userConsentDisplayName": "Read all users' basic profiles", + "value": "User.ReadBasic.All" + }, + { + "description": "Allows the app to read your profile. It also allows the app to update your profile information on your behalf.", + "displayName": "Read and write access to user profile", + "id": "b4e74841-8e56-480b-be8b-910348b18b4c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your profile, and discover your group membership, reports and manager. It also allows the app to update your profile information on your behalf.", + "userConsentDisplayName": "Read and update your profile", + "value": "User.ReadWrite" + }, + { + "description": "Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user.", + "displayName": "Read and write all users' full profiles", + "id": "204e0828-b5ca-4ad8-b9f3-f32a958e7cc4", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on your behalf.", + "userConsentDisplayName": "Read and write all users' full profiles", + "value": "User.ReadWrite.All" + }, + { + "description": "Allows the app to read and report the signed-in user's activity in the app.", + "displayName": "Read and write app activity to users' activity feed", + "id": "47607519-5fb1-47d9-99c7-da4b48f369b1", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and report your activity in the app.", + "userConsentDisplayName": "Read and write app activity to your activity feed", + "value": "UserActivity.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to read the signed-in user's authentication methods, including phone numbers and Authenticator app settings. This does not allow the app to see secret information like the signed-in user's passwords, or to sign-in or otherwise use the signed-in user's authentication methods.", + "displayName": "Read user authentication methods.", + "id": "1f6b61c5-2f65-4135-9c9f-31c0f8d32b52", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read your authentication methods, including phone numbers and Authenticator app settings. This does not allow the app to see secret information like your passwords, or to sign-in or otherwise use your authentication methods.", + "userConsentDisplayName": "Read your authentication methods.", + "value": "UserAuthenticationMethod.Read" + }, + { + "description": "Allows the app to read authentication methods of all users in your organization that the signed-in user has access to. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "displayName": "Read all users' authentication methods", + "id": "aec28ec7-4d02-4e8c-b864-50163aea77eb", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read authentication methods of all users you have access to in your organization. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "userConsentDisplayName": "Read all users' authentication methods", + "value": "UserAuthenticationMethod.Read.All" + }, + { + "description": "Allows the app to read and write the signed-in user's authentication methods, including phone numbers and Authenticator app settings. This does not allow the app to see secret information like the signed-in user's passwords, or to sign-in or otherwise use the signed-in user's authentication methods. ", + "displayName": "Read and write user authentication methods", + "id": "48971fc1-70d7-4245-af77-0beb29b53ee2", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write your authentication methods, including phone numbers and Authenticator app settings.This does not allow the app to see secret information like your passwords, or to sign-in or otherwise use your authentication methods.", + "userConsentDisplayName": "Read and write your authentication methods", + "value": "UserAuthenticationMethod.ReadWrite" + }, + { + "description": " Allows the app to read and write authentication methods of all users in your organization that the signed-in user has access to. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "displayName": "Read and write all users' authentication methods.", + "id": "b7887744-6746-4312-813d-72daeaee7e2d", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write authentication methods of all users you have access to in your organization. Authentication methods include things like a user’s phone numbers and Authenticator app settings. This does not allow the app to see secret information like passwords, or to sign-in or otherwise use the authentication methods.", + "userConsentDisplayName": "Read and write all users' authentication methods", + "value": "UserAuthenticationMethod.ReadWrite.All" + }, + { + "description": "Allows the app to send, read, update and delete user’s notifications.", + "displayName": "Deliver and manage user's notifications", + "id": "26e2f3e8-b2a1-47fc-9620-89bb5b042024", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to send, read, update and delete your app-specific notifications.", + "userConsentDisplayName": "Deliver and manage your notifications", + "value": "UserNotification.ReadWrite.CreatedByApp" + }, + { + "description": "Allows the app to report the signed-in user's app activity information to Microsoft Timeline.", + "displayName": "Write app activity to users' timeline", + "id": "367492fc-594d-4972-a9b5-0d58c622c91c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to report your app activity information to Microsoft Timeline.", + "userConsentDisplayName": "Write app activity to your timeline", + "value": "UserTimelineActivity.Write.CreatedByApp" + }, + { + "description": "Allows an application to read virtual appointments for the signed-in user. Only an organizer or participant user can read their virtual appointments.  ", + "displayName": "Read a user's virtual appointments", + "id": "27470298-d3b8-4b9c-aad4-6334312a3eac", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read virtual appointments on your behalf.  ", + "userConsentDisplayName": "Read your virtual appointments ", + "value": "VirtualAppointment.Read" + }, + { + "description": "Allows an application to read and write virtual appointments for the signed-in user. Only an organizer or participant user can read and write their virtual appointments. ", + "displayName": "Read and write a user's virtual appointments  ", + "id": "2ccc2926-a528-4b17-b8bb-860eed29d64c", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write virtual appointments on your behalf.  ", + "userConsentDisplayName": "Read and write your virtual appointments", + "value": "VirtualAppointment.ReadWrite" + }, + { + "description": "Allows the app to read virtual events created by the you", + "displayName": "Read your virtual events", + "id": "6b616635-ae58-433a-a918-8c45e4f304dc", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read virtual events created by the you", + "userConsentDisplayName": "Read your virtual events", + "value": "VirtualEvent.Read" + }, + { + "description": "Allows the app to read and write all Windows update deployment settings for the organization on behalf of the signed-in user.", + "displayName": "Read and write all Windows update deployment settings", + "id": "11776c0c-6138-4db3-a668-ee621bea2555", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read and write all Windows update deployment settings for the organization on your behalf.", + "userConsentDisplayName": "Read and write all Windows update deployment settings", + "value": "WindowsUpdates.ReadWrite.All" + }, + { + "description": "Allows the app to read workforce integrations, to synchronize data from Microsoft Teams Shifts, on behalf of the signed-in user.", + "displayName": "Read workforce integrations", + "id": "f1ccd5a7-6383-466a-8db8-1a656f7d06fa", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to read workforce integrations, to synchronize data from Microsoft Teams Shifts, on your behalf.", + "userConsentDisplayName": "Read workforce integrations", + "value": "WorkforceIntegration.Read.All" + }, + { + "description": "Allows the app to manage workforce integrations, to synchronize data from Microsoft Teams Shifts, on behalf of the signed-in user.", + "displayName": "Read and write workforce integrations", + "id": "08c4b377-0d23-4a8b-be2a-23c1c1d88545", + "isEnabled": true, + "origin": "Delegated", + "userConsentDescription": "Allows the app to manage workforce integrations, to synchronize data from Microsoft Teams Shifts, on your behalf.", + "userConsentDisplayName": "Read and write workforce integrations", + "value": "WorkforceIntegration.ReadWrite.All" + } +] diff --git a/src/views/cipp/AppApproval.js b/src/views/cipp/AppApproval.js index 66d88991a92b..0f420ea6c78e 100644 --- a/src/views/cipp/AppApproval.js +++ b/src/views/cipp/AppApproval.js @@ -1,204 +1,211 @@ -import React, { useEffect, useState } from 'react' -import { - CButton, - CCard, - CCardBody, - CCardHeader, - CCardTitle, - CCol, - CCollapse, - CForm, - CRow, -} from '@coreui/react' -import useQuery from 'src/hooks/useQuery' -import { Field, Form, FormSpy } from 'react-final-form' -import { RFFCFormInput, RFFCFormSelect } from 'src/components/forms' +import React from 'react' +import { CCol, CRow, CCallout, CSpinner } from '@coreui/react' +import { Field, FormSpy } from 'react-final-form' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faChevronRight, faChevronDown, faSearch, faCog } from '@fortawesome/free-solid-svg-icons' -import { CellTip, CippTable } from 'src/components/tables' -import { useSelector } from 'react-redux' -import { useNavigate } from 'react-router-dom' -import { CippPage } from 'src/components/layout/CippPage' -import { useLazyGenericGetRequestQuery } from 'src/store/api/app' -import { OnChange } from 'react-final-form-listeners' - -const GraphExplorer = () => { - let navigate = useNavigate() - const tenant = useSelector((state) => state.app.currentTenant) - let query = useQuery() - const applicationid = query.get('applicationid') - const SearchNow = query.get('SearchNow') - const [visibleA, setVisibleA] = useState(true) - const handleSubmit = async (values) => { - setVisibleA(false) - Object.keys(values).filter(function (x) { - if (values[x] === null) { - delete values[x] - } - return null - }) - const shippedValues = { - tenantFilter: tenant.defaultDomainName, - SearchNow: true, - ...values, +import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons' +import { CippWizard } from 'src/components/layout' +import { CippTable, WizardTableField } from 'src/components/tables' +import PropTypes from 'prop-types' +import { + Condition, + RFFCFormCheck, + RFFCFormInput, + RFFCFormSwitch, + RFFSelectSearch, +} from 'src/components/forms' +import { useLazyGenericPostRequestQuery } from 'src/store/api/app' +const Error = ({ name }) => ( + + touched && error ? ( + + + {error} + + ) : null } - var queryString = Object.keys(shippedValues) - .map((key) => key + '=' + shippedValues[key]) - .join('&') + /> +) - navigate(`?${queryString}`) - } - const [execGraphRequest, graphrequest] = useLazyGenericGetRequestQuery() +Error.propTypes = { + name: PropTypes.string.isRequired, +} - const columns = [ - { - name: 'Default Domain', - selector: (row) => row['defaultDomainName'], - sortable: true, - cell: (row) => CellTip(row['defaultDomainName']), - exportSelector: 'defaultDomainName', - minWidth: '200px', - }, - { - name: 'Approval link', - selector: (row) => row['link'], - center: true, - cell: (row) => ( - - - - ), - }, - ] +const requiredArray = (value) => (value && value.length !== 0 ? undefined : 'Required') +const AppApproval = () => { + const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() - if (graphrequest.isSuccess) { - if (graphrequest.data.length === 0) { - graphrequest.data = [{ data: 'No Data Found' }] - } + const handleSubmit = async (values) => { + genericPostRequest({ path: '/api/ExecAddMultiTenantApp', values: values }) } - useEffect(() => { - execGraphRequest({ - path: 'api/execAppApproval', - params: { applicationid }, - }) - }, [applicationid, execGraphRequest, tenant.defaultDomainName]) - - const WhenFieldChanges = ({ field, set }) => ( - - {( - // No subscription. We only use Field to get to the change function - { input: { onChange } }, - ) => ( - - {({ form }) => ( - - {(value) => { - let template = value - onChange(template) - }} - - )} - - )} - - ) + const formValues = { + TemplateType: 'Admin', + } return ( - <> - - - - - - Approval Settings - setVisibleA(!visibleA)} - > - - - - - - - - - - { - return ( - - - -

    - This tool helps you to retrieve the approval links required for each - tenant. This is required to use 'Application Permissions' within these - tenants when GDAP is deployed. -

    -

    - The approval URL might lead to an error page with the error "Admin - Role not found" or not load any page at all after clicking confirm - - This is expected behavior. -

    -
    -
    - - - - - - - - - - - Query - - - -
    - ) - }} + + +
    +

    Step 1

    +
    Choose tenants
    +
    +
    + + {(props) => ( + row['displayName'], + sortable: true, + exportselector: 'displayName', + }, + { + name: 'Default Domain Name', + selector: (row) => row['defaultDomainName'], + sortable: true, + exportselector: 'mail', + }, + ]} + fieldProps={props} + /> + )} + + +
    +
    + +
    +

    Step 2

    +
    Enter the information for this application
    +
    +
    + + + + + + + + + + + + + + + {(props) => ( + row['displayName'], + sortable: true, + exportselector: 'displayName', + }, + { + name: 'Value', + selector: (row) => row['value'], + sortable: true, + exportselector: 'value', + }, + { + name: 'Type', + selector: (row) => row['origin'], + sortable: true, + exportselector: 'origin', + }, + ]} + fieldProps={props} /> -
    -
    -
    -
    -
    -
    - - {!SearchNow && Execute a search to get started.} - {graphrequest.isSuccess && SearchNow && ( - - - Results - - - - - + )} +
    + + +
    +
    + +
    +

    Step 3

    +
    Confirm and apply
    +
    +
    + {!postResults.isSuccess && ( + + {(props) => { + return ( + <> + + + +
    Selected Tenants
    + + {props.values.selectedTenants.map((tenant, idx) => ( +
  • + {tenant.displayName}- {tenant.defaultDomainName} +
  • + ))} +
    +
    Application ID
    + {props.values.AppId} +
    Copy Permissions
    + + {props.values.CopyPermissions ? ( + Yes + ) : ( + No + )} + +
    Selected Permissions
    + + {props.values.permissions.map((tenant, idx) => ( +
  • + {tenant.displayName} - {tenant.origin} +
  • + ))} +
    +
    +
    + + ) + }} +
    + )} + {postResults.isFetching && ( + + Loading + + )} + {postResults.isSuccess && ( + + {postResults.data.Results.map((message, idx) => { + return
  • {message}
  • + })} +
    )} - - +
    +
    + ) } -export default GraphExplorer +export default AppApproval From 02f8b66b1e6a8bac9173d14835214fc123fbf68b Mon Sep 17 00:00:00 2001 From: John Duprey Date: Mon, 9 Oct 2023 21:27:06 -0400 Subject: [PATCH 052/205] CippDatatable.js - Add metadata/results support --- src/components/tables/CippDatatable.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/tables/CippDatatable.js b/src/components/tables/CippDatatable.js index e36befb3dea3..188c44542c82 100644 --- a/src/components/tables/CippDatatable.js +++ b/src/components/tables/CippDatatable.js @@ -20,10 +20,10 @@ export default function CippDatatable({ path, params, ...rest }) { } return ( <> - {data[0]?.Queued && {data[0]?.QueueMessage}} + {data?.Metadata?.Queued && {data?.Metadata?.QueueMessage}} Date: Mon, 9 Oct 2023 21:29:58 -0400 Subject: [PATCH 053/205] Update Home.js --- src/views/home/Home.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/home/Home.js b/src/views/home/Home.js index 1473119811aa..c802805552af 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -333,7 +333,7 @@ const Home = () => { {(isLoadingPartners || isFetchingPartners) && } {issuccessPartners && !isFetchingPartners && - partners.map((partner) => { + partners?.Results.map((partner) => { if (partner.TenantInfo) { return (
  • From 45a00aed7f04fa7606c60f0e961f6ab84a9f2235 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Tue, 10 Oct 2023 07:16:02 -0400 Subject: [PATCH 054/205] Add switch parameter types --- src/views/cipp/Scheduler.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/views/cipp/Scheduler.js b/src/views/cipp/Scheduler.js index 8483c2c477b2..cdd8ed9474ef 100644 --- a/src/views/cipp/Scheduler.js +++ b/src/views/cipp/Scheduler.js @@ -283,7 +283,9 @@ const Scheduler = () => { paramblock = parameters.map((param, idx) => ( - {param.Type === 'System.Boolean' ? ( + {param.Type === 'System.Boolean' || + param.Type === + 'System.Management.Automation.SwitchParameter' ? ( <> Date: Tue, 10 Oct 2023 18:18:20 +0200 Subject: [PATCH 055/205] app approval and time --- src/views/cipp/AppApproval.js | 7 +++---- .../tenant/standards/ListAppliedStandards.js | 20 +++++++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/views/cipp/AppApproval.js b/src/views/cipp/AppApproval.js index 0f420ea6c78e..265aa5bdab42 100644 --- a/src/views/cipp/AppApproval.js +++ b/src/views/cipp/AppApproval.js @@ -33,7 +33,6 @@ Error.propTypes = { name: PropTypes.string.isRequired, } -const requiredArray = (value) => (value && value.length !== 0 ? undefined : 'Required') const AppApproval = () => { const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() @@ -60,7 +59,7 @@ const AppApproval = () => {
    Choose tenants

  • - + {(props) => ( { - + {(props) => ( {
    Selected Permissions
    - {props.values.permissions.map((tenant, idx) => ( + {props.values.permissions?.map((tenant, idx) => (
  • {tenant.displayName} - {tenant.origin}
  • diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.js index 94bcc688001b..e3ae8cc96108 100644 --- a/src/views/tenant/standards/ListAppliedStandards.js +++ b/src/views/tenant/standards/ListAppliedStandards.js @@ -171,9 +171,22 @@ const ListAppliedStandards = () => { render={({ handleSubmit, submitting, values }) => { return ( -
    - {listStandardResults[0].appliedBy - ? `This standard has been applied at ${listStandardResults[0].appliedAt} by ${listStandardResults[0].appliedBy}` +
    {' '} + {listStandardResults[0]?.appliedBy + ? `This standard has been applied at ${new Date( + listStandardResults[0].appliedAt + 'Z', + ).toLocaleDateString(undefined, { + year: 'numeric', + month: 'long', + day: 'numeric', + })} ${new Date( + listStandardResults[0].appliedAt + 'Z', + ).toLocaleTimeString(undefined, { + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + hour12: false, + })} by ${listStandardResults[0].appliedBy}` : 'This tenant does not yet have a standard applied'}
    Global Standards
    @@ -373,7 +386,6 @@ const ListAppliedStandards = () => { {postResults.isSuccess && ( {postResults.data.Results} )} -
    Templates

    From e9a34ac443b83b3fa81dc8713f398f05e0689169 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Wed, 11 Oct 2023 12:41:00 +0200 Subject: [PATCH 056/205] do not cancel requests when listing tenants and switching pages --- src/store/api/baseQuery.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/store/api/baseQuery.js b/src/store/api/baseQuery.js index dfdc52a859b5..b999c8b6b272 100644 --- a/src/store/api/baseQuery.js +++ b/src/store/api/baseQuery.js @@ -3,7 +3,7 @@ let newController = new AbortController() export const axiosQuery = async ({ path, method = 'get', params, data, hideToast }) => { try { const result = await axios({ - signal: newController.signal, + signal: path === '/api/ListTenants' ? undefined : newController.signal, method, baseURL: window.location.origin, url: path, @@ -23,6 +23,7 @@ export const axiosQuery = async ({ path, method = 'get', params, data, hideToast } } export function abortRequestSafe() { + console.log(newController) newController.abort() newController = new AbortController() } From cdff41d82eb5f310585855ac6970f474808c5091 Mon Sep 17 00:00:00 2001 From: Roel van der Wegen Date: Wed, 11 Oct 2023 18:10:58 +0200 Subject: [PATCH 057/205] Azure AD to Entra ID name change --- src/views/tenant/standards/ApplyStandard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/tenant/standards/ApplyStandard.js b/src/views/tenant/standards/ApplyStandard.js index a01959cefcc3..64d9fbf0ffce 100644 --- a/src/views/tenant/standards/ApplyStandard.js +++ b/src/views/tenant/standards/ApplyStandard.js @@ -169,7 +169,7 @@ const ApplyStandard = () => {
    From 9e40e07a03be7e80386eebe4fb773436ad8abe25 Mon Sep 17 00:00:00 2001 From: Roel van der Wegen Date: Wed, 11 Oct 2023 18:11:38 +0200 Subject: [PATCH 058/205] Azure AD to Entra ID name change --- src/views/tenant/standards/ListAppliedStandards.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.js index e3ae8cc96108..7f1382a5e149 100644 --- a/src/views/tenant/standards/ListAppliedStandards.js +++ b/src/views/tenant/standards/ListAppliedStandards.js @@ -228,7 +228,7 @@ const ListAppliedStandards = () => { ))}
    -
    Azure AD Standards
    +
    Entra ID Standards

    {allStandardsList From 016b0170d023e94d2570206dc90eea470e12b77c Mon Sep 17 00:00:00 2001 From: John Duprey Date: Wed, 11 Oct 2023 16:49:21 -0400 Subject: [PATCH 059/205] Company Administrator warnings --- src/views/tenant/administration/GDAPInviteWizard.js | 11 +++++++++++ src/views/tenant/administration/GDAPRoleWizard.js | 12 ++++++++++++ src/views/tenant/administration/GDAPWizard.js | 11 +++++++++++ 3 files changed, 34 insertions(+) diff --git a/src/views/tenant/administration/GDAPInviteWizard.js b/src/views/tenant/administration/GDAPInviteWizard.js index 9adb90081c62..1efdd36f7906 100644 --- a/src/views/tenant/administration/GDAPInviteWizard.js +++ b/src/views/tenant/administration/GDAPInviteWizard.js @@ -109,6 +109,17 @@ const GDAPInviteWizard = () => {
    Roles and group names
    + {props.values.gdapRoles.map((role, idx) => ( + <> + {role.RoleName == 'Company Administrator' && ( + + WARNING: The Company Administrator role will prevent GDAP + relationships from automatically extending. We recommend against using + this in any GDAP relationship. + + )} + + ))} {props.values.gdapRoles.map((role, idx) => (
  • diff --git a/src/views/tenant/administration/GDAPRoleWizard.js b/src/views/tenant/administration/GDAPRoleWizard.js index 26c56de51a4d..83830e976cab 100644 --- a/src/views/tenant/administration/GDAPRoleWizard.js +++ b/src/views/tenant/administration/GDAPRoleWizard.js @@ -121,6 +121,18 @@ const GDAPRoleWizard = () => {
    Roles and group names
    + {props.values.gdapRoles.map((role, idx) => ( + <> + {role.Name == 'Company Administrator' && ( + + WARNING: The Company Administrator role will prevent GDAP + relationships from automatically extending. We recommend against using + this in any GDAP relationship. + + )} + + ))} + {props.values.gdapRoles.map((role, idx) => (
  • diff --git a/src/views/tenant/administration/GDAPWizard.js b/src/views/tenant/administration/GDAPWizard.js index b8c110be6c9c..8722bde0b5f7 100644 --- a/src/views/tenant/administration/GDAPWizard.js +++ b/src/views/tenant/administration/GDAPWizard.js @@ -191,6 +191,17 @@ const GDAPWizard = () => { ))}
    Roles and group names
    + {props.values.gdapRoles.map((role, idx) => ( + <> + {role.RoleName == 'Company Administrator' && ( + + WARNING: The Company Administrator role will prevent GDAP + relationships from automatically extending. We recommend against using + this in any GDAP relationship. + + )} + + ))} {props.values.gdapRoles.map((role, idx) => (
  • From c1dc3b287bf8c28aa95e9efe25220558eb2531cf Mon Sep 17 00:00:00 2001 From: John Duprey Date: Wed, 11 Oct 2023 16:54:35 -0400 Subject: [PATCH 060/205] Scheduler Update - Add function synopsis - Add parameter descriptions as tooltips --- src/views/cipp/Scheduler.js | 59 +++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/src/views/cipp/Scheduler.js b/src/views/cipp/Scheduler.js index cdd8ed9474ef..202009c5fd5d 100644 --- a/src/views/cipp/Scheduler.js +++ b/src/views/cipp/Scheduler.js @@ -269,6 +269,18 @@ const Scheduler = () => { /> + + {(props) => { + const selectedCommand = availableCommands.find( + (cmd) => cmd.Function === props.values.command?.value, + ) + return ( + + {selectedCommand?.Synopsis} + + ) + }} + {(props) => { @@ -282,27 +294,36 @@ const Scheduler = () => { if (parameters.length > 0) { paramblock = parameters.map((param, idx) => ( - - {param.Type === 'System.Boolean' || - param.Type === - 'System.Management.Automation.SwitchParameter' ? ( - <> - - + + {param.Type === 'System.Boolean' || + param.Type === + 'System.Management.Automation.SwitchParameter' ? ( + <> + + + + ) : ( + - - ) : ( - - )} - + )} + + )) } From c7d86d49f35b7015fce551f2e253d1babcaa5e76 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 12 Oct 2023 01:19:48 +0200 Subject: [PATCH 061/205] fix some classes stuff --- src/views/cipp/UserSettings.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/cipp/UserSettings.js b/src/views/cipp/UserSettings.js index 01ad712a1c75..bac284828d9f 100644 --- a/src/views/cipp/UserSettings.js +++ b/src/views/cipp/UserSettings.js @@ -202,12 +202,12 @@ const UserSettings = () => { - + { form.change('user', profile.clientPrincipal.userDetails) }} - className="me-3" + className="me-3 mb-3" name="singleuser" type="submit" > @@ -220,7 +220,7 @@ const UserSettings = () => { onClick={() => { form.change('user', 'allUsers') }} - className="me-3" + className="mb-3" name="allUsers" type="submit" > From 4c0aaaa0ff563f62edaa5f1fb19bf6c2245f9327 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 12 Oct 2023 01:43:30 +0200 Subject: [PATCH 062/205] improved extention --- src/data/Extensions.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/data/Extensions.json b/src/data/Extensions.json index 3c1a1e7f1cd8..7d7703f4d13a 100644 --- a/src/data/Extensions.json +++ b/src/data/Extensions.json @@ -77,7 +77,14 @@ "fieldtype": "input", "name": "HaloPSA.Tenant", "label": "HaloPSA Tenant", - "placeholder": "Enter your HaloPSA Tenant" + "placeholder": "Enter your HaloPSA Tenant (Leave blank if self-hosted" + }, + { + "type": "input", + "fieldtype": "input", + "name": "HaloPSA.TicketType", + "label": "HaloPSA Ticket Type ID", + "placeholder": "Enter your HaloPSA ticket type to use for CIPP Tickets. Leave blank for default." }, { "type": "input", From 926f32a8f09086e665b7f608b49d70b1f5d6b8b9 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 12 Oct 2023 15:31:20 +0200 Subject: [PATCH 063/205] exports now show filtered items --- src/components/tables/CippTable.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.js index 55b6fd7b27ce..5fcb006c88be 100644 --- a/src/components/tables/CippTable.js +++ b/src/components/tables/CippTable.js @@ -481,10 +481,7 @@ export default function CippTable({ return null }) - var exportData = data - if (exportFiltered) { - exportData = filteredItems - } + var exportData = filteredItems var filtered = Array.isArray(exportData) && exportData.length > 0 From a5885aa195f58ad4741383b286e1e03e1121ffc8 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 12 Oct 2023 23:15:37 +0200 Subject: [PATCH 064/205] fixes interface bug --- src/views/cipp/AppApproval.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/cipp/AppApproval.js b/src/views/cipp/AppApproval.js index 265aa5bdab42..ab13d99f8c1d 100644 --- a/src/views/cipp/AppApproval.js +++ b/src/views/cipp/AppApproval.js @@ -171,7 +171,7 @@ const AppApproval = () => { {props.values.CopyPermissions ? ( Yes ) : ( - No + No )}
    Selected Permissions
    From f04e107546f9e9dfc8961179e73e68f3f4a8d755 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 13 Oct 2023 01:32:16 +0200 Subject: [PATCH 065/205] allow adding of custom attributes --- src/views/identity/administration/AddUser.js | 44 +++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/views/identity/administration/AddUser.js b/src/views/identity/administration/AddUser.js index 30a0aea33332..ba0e0b1d96a3 100644 --- a/src/views/identity/administration/AddUser.js +++ b/src/views/identity/administration/AddUser.js @@ -39,7 +39,7 @@ import { useNavigate } from 'react-router-dom' const AddUser = () => { let navigate = useNavigate() - + const [addedAttributes, setAddedAttribute] = React.useState(0) const tenant = useSelector((state) => state.app.currentTenant) const { defaultDomainName: tenantDomain } = tenant let query = useQuery() @@ -96,6 +96,7 @@ const AddUser = () => { Autopassword: !!values.Autopassword, MustChangePass: values.MustChangePass, tenantID: tenantDomain, + addedAttributes: values.addedAttributes, ...values.license, } //window.alert(JSON.stringify(shippedValues)) @@ -287,6 +288,47 @@ const AddUser = () => {
    + <> + {addedAttributes > 0 && + [...Array(addedAttributes)].map((e, i) => ( + + + + + + + + + ))} + + + + {addedAttributes > 0 && ( + setAddedAttribute(addedAttributes - 1)} + className={`circular-button`} + title={'-'} + > + + + )} + setAddedAttribute(addedAttributes + 1)} + className={`circular-button`} + title={'+'} + > + + + + Date: Thu, 12 Oct 2023 21:05:00 -0400 Subject: [PATCH 066/205] RFF ArrayFields - Add new component for ArrayFields - New react packages - Add Hashtable support for scheduler --- package-lock.json | 50 ++++++++++++++++++++++-- package.json | 2 + src/components/forms/RFFComponents.js | 56 +++++++++++++++++++++++++++ src/components/forms/index.js | 2 + src/views/cipp/Scheduler.js | 34 ++++++++++++---- 5 files changed, 134 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2db89fb7513f..7ecc83e4101a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,6 +34,7 @@ "core-js": "^3.18.3", "enzyme": "^3.11.0", "final-form": "^4.20.4", + "final-form-arrays": "^3.1.0", "fuzzysort": "^1.1.4", "javascript-time-ago": "^2.5.9", "jspdf": "^2.4.0", @@ -48,6 +49,7 @@ "react-datepicker": "^4.10.0", "react-dom": "^17.0.2", "react-final-form": "^6.5.7", + "react-final-form-arrays": "^3.1.4", "react-final-form-listeners": "^1.0.3", "react-helmet": "^6.1.0", "react-hotkeys-hook": "^3.4.4", @@ -8510,16 +8512,28 @@ } }, "node_modules/final-form": { - "version": "4.20.6", - "license": "MIT", + "version": "4.20.10", + "resolved": "https://registry.npmjs.org/final-form/-/final-form-4.20.10.tgz", + "integrity": "sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==", "dependencies": { "@babel/runtime": "^7.10.0" }, + "engines": { + "node": ">=8" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/final-form" } }, + "node_modules/final-form-arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-3.1.0.tgz", + "integrity": "sha512-TWBvun+AopgBLw9zfTFHBllnKMVNEwCEyDawphPuBGGqNsuhGzhT7yewHys64KFFwzIs6KEteGLpKOwvTQEscQ==", + "peerDependencies": { + "final-form": "^4.20.8" + } + }, "node_modules/finalhandler": { "version": "1.1.2", "dev": true, @@ -15149,6 +15163,20 @@ "react": "^16.8.0 || ^17.0.0" } }, + "node_modules/react-final-form-arrays": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/react-final-form-arrays/-/react-final-form-arrays-3.1.4.tgz", + "integrity": "sha512-siVFAolUAe29rMR6u8VwepoysUcUdh6MLV2OWnCtKpsPRUdT9VUgECjAPaVMAH2GROZNiVB9On1H9MMrm9gdpg==", + "dependencies": { + "@babel/runtime": "^7.19.4" + }, + "peerDependencies": { + "final-form": "^4.15.0", + "final-form-arrays": ">=1.0.4", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-final-form": "^6.2.1" + } + }, "node_modules/react-final-form-listeners": { "version": "1.0.3", "license": "MIT", @@ -24179,11 +24207,19 @@ } }, "final-form": { - "version": "4.20.6", + "version": "4.20.10", + "resolved": "https://registry.npmjs.org/final-form/-/final-form-4.20.10.tgz", + "integrity": "sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==", "requires": { "@babel/runtime": "^7.10.0" } }, + "final-form-arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-3.1.0.tgz", + "integrity": "sha512-TWBvun+AopgBLw9zfTFHBllnKMVNEwCEyDawphPuBGGqNsuhGzhT7yewHys64KFFwzIs6KEteGLpKOwvTQEscQ==", + "requires": {} + }, "finalhandler": { "version": "1.1.2", "dev": true, @@ -28203,6 +28239,14 @@ "@babel/runtime": "^7.15.4" } }, + "react-final-form-arrays": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/react-final-form-arrays/-/react-final-form-arrays-3.1.4.tgz", + "integrity": "sha512-siVFAolUAe29rMR6u8VwepoysUcUdh6MLV2OWnCtKpsPRUdT9VUgECjAPaVMAH2GROZNiVB9On1H9MMrm9gdpg==", + "requires": { + "@babel/runtime": "^7.19.4" + } + }, "react-final-form-listeners": { "version": "1.0.3", "requires": { diff --git a/package.json b/package.json index 9d1cc1f15d02..5e277e8bc02b 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "core-js": "^3.18.3", "enzyme": "^3.11.0", "final-form": "^4.20.4", + "final-form-arrays": "^3.1.0", "fuzzysort": "^1.1.4", "javascript-time-ago": "^2.5.9", "jspdf": "^2.4.0", @@ -67,6 +68,7 @@ "react-datepicker": "^4.10.0", "react-dom": "^17.0.2", "react-final-form": "^6.5.7", + "react-final-form-arrays": "^3.1.4", "react-final-form-listeners": "^1.0.3", "react-helmet": "^6.1.0", "react-hotkeys-hook": "^3.4.4", diff --git a/src/components/forms/RFFComponents.js b/src/components/forms/RFFComponents.js index 9aef7ca81c35..5365819e6623 100644 --- a/src/components/forms/RFFComponents.js +++ b/src/components/forms/RFFComponents.js @@ -1,4 +1,5 @@ import { + CButton, CFormCheck, CFormFeedback, CFormInput, @@ -12,9 +13,11 @@ import { import Select from 'react-select' import AsyncSelect from 'react-select/async' import { Field } from 'react-final-form' +import { FieldArray } from 'react-final-form-arrays' import React from 'react' import PropTypes from 'prop-types' import { useRef } from 'react' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' /* wrapper classes for React Final Form with CoreUI @@ -167,6 +170,59 @@ RFFCFormInput.propTypes = { placeholder: PropTypes.string, } +export const RFFCFormInputArray = ({ name, label, className = 'mb-3' }) => { + return ( + <> + + {({ fields }) => ( +
    +
    + {label && ( + + {label} + + )} + fields.push({ Key: '', Value: '' })} + className="circular-button" + title={'+'} + > + + +
    + {fields.map((name, index) => ( +
    +
    + + {({ input, meta }) => { + return + }} + + + {({ input, meta }) => { + return + }} + +
    + fields.remove(index)} + className={`circular-button`} + title={'-'} + > + + +
    + ))} +
    + )} +
    + + ) +} +RFFCFormInputArray.propTypes = { + ...sharedPropTypes, +} + export const RFFCFormRadio = ({ name, label, diff --git a/src/components/forms/index.js b/src/components/forms/index.js index 47709152242b..616687f88a0f 100644 --- a/src/components/forms/index.js +++ b/src/components/forms/index.js @@ -8,6 +8,7 @@ import { RFFCFormTextarea, RFFCFormSelect, RFFSelectSearch, + RFFCFormInputArray, } from 'src/components/forms/RFFComponents' export { @@ -20,4 +21,5 @@ export { RFFCFormTextarea, RFFCFormSelect, RFFSelectSearch, + RFFCFormInputArray, } diff --git a/src/views/cipp/Scheduler.js b/src/views/cipp/Scheduler.js index 202009c5fd5d..af533a68b800 100644 --- a/src/views/cipp/Scheduler.js +++ b/src/views/cipp/Scheduler.js @@ -7,6 +7,7 @@ import { Condition, RFFCFormCheck, RFFCFormInput, + RFFCFormInputArray, RFFCFormRadio, RFFCFormSwitch, RFFCFormTextarea, @@ -36,6 +37,7 @@ import 'react-datepicker/dist/react-datepicker.css' import TenantListSelector from 'src/components/utilities/TenantListSelector' import { ModalService, TenantSelector } from 'src/components/utilities' import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas' +import arrayMutators from 'final-form-arrays' const Offcanvas = (row, rowIndex, formatExtraData) => { const [ExecuteGetRequest, getResults] = useLazyGenericGetRequestQuery() @@ -110,6 +112,7 @@ const Scheduler = () => { Parameters: values.parameters, ScheduledTime: unixTime, Recurrence: values.Recurrence, + AdditionalProperties: values.additional, PostExecution: { Webhook: values.webhook, Email: values.email, @@ -199,6 +202,9 @@ const Scheduler = () => { true} render={({ handleSubmit, submitting, values }) => { @@ -315,12 +321,22 @@ const Scheduler = () => { /> ) : ( - + <> + {param.Type === 'System.Collections.Hashtable' ? ( + + ) : ( + + )} + )}
    @@ -332,7 +348,11 @@ const Scheduler = () => { }}
    - + + + + + From 78b818a4d2abb6757712184cee3992c5ad3be0be Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 13 Oct 2023 12:38:04 +0200 Subject: [PATCH 067/205] Fixes alert wizard --- src/views/tenant/administration/AlertWizard.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/views/tenant/administration/AlertWizard.js b/src/views/tenant/administration/AlertWizard.js index 8e02a21f6bd0..a8986663644a 100644 --- a/src/views/tenant/administration/AlertWizard.js +++ b/src/views/tenant/administration/AlertWizard.js @@ -219,10 +219,6 @@ const AlertWizard = () => { value: 'UserLoggedInFromUnknownLocation', name: 'A user has logged in from non-allowed location', }, - { - value: 'UserLoggedIn', - name: 'A user has logged in from any location', - }, { value: 'Add service principal.', name: 'Enterprise App Added', From f22161d7ee9d901bcace5a2b46223c6d0c572a5c Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 13 Oct 2023 12:38:50 +0200 Subject: [PATCH 068/205] upped version --- public/version_latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/version_latest.txt b/public/version_latest.txt index ecedc98d1d5a..64b5ae3938a0 100644 --- a/public/version_latest.txt +++ b/public/version_latest.txt @@ -1 +1 @@ -4.3.1 \ No newline at end of file +4.4.0 \ No newline at end of file From e5b39638946aca2309345622c73857fbe5c634cf Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 13 Oct 2023 12:44:59 +0200 Subject: [PATCH 069/205] uppev ersion --- version_latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version_latest.txt b/version_latest.txt index ecedc98d1d5a..64b5ae3938a0 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -4.3.1 \ No newline at end of file +4.4.0 \ No newline at end of file From 4f6b4eb9879537f7d9f1907024c190903bd6524b Mon Sep 17 00:00:00 2001 From: Jr7468 Date: Fri, 13 Oct 2023 13:27:47 +0100 Subject: [PATCH 070/205] Add Advanced Out of Office Tool --- .../administration/EditMailboxPermissions.js | 243 +++++++++++++++++- src/views/identity/administration/Users.js | 3 +- 2 files changed, 244 insertions(+), 2 deletions(-) diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.js b/src/views/email-exchange/administration/EditMailboxPermissions.js index b0649954994b..20b0ec147405 100644 --- a/src/views/email-exchange/administration/EditMailboxPermissions.js +++ b/src/views/email-exchange/administration/EditMailboxPermissions.js @@ -21,7 +21,11 @@ import { Form, Field } from 'react-final-form' import { RFFSelectSearch, RFFCFormSelect, RFFCFormCheck, RFFCFormInput } from 'src/components/forms' import { useListUsersQuery } from 'src/store/api/users' import { ModalService } from 'src/components/utilities' -import { useLazyGenericPostRequestQuery, useLazyGenericGetRequestQuery } from 'src/store/api/app' +import { + useLazyGenericPostRequestQuery, + useLazyGenericGetRequestQuery, + useGenericGetRequestQuery, +} from 'src/store/api/app' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faCircleNotch } from '@fortawesome/free-solid-svg-icons' import { @@ -32,6 +36,9 @@ import { import { CippTable } from 'src/components/tables' import { useListMailboxDetailsQuery } from 'src/store/api/mailbox' import { CellBoolean } from 'src/components/tables' +import DatePicker from 'react-datepicker' +import 'react-datepicker/dist/react-datepicker.css' +import { RFFCFormSwitch } from 'src/components/forms' const formatter = (cell, warning = false, reverse = false, colourless = false) => CellBoolean({ cell, warning, reverse, colourless }) @@ -114,6 +121,9 @@ const MailboxSettings = () => { setActive(3)} href="#"> Mailbox Forwarding + setActive(4)} href="#"> + Out Of Office + @@ -127,6 +137,9 @@ const MailboxSettings = () => { + + + @@ -158,6 +171,11 @@ const MailboxSettings = () => { )} + {active === 4 && ( + <> + + + )} @@ -761,3 +779,226 @@ const ForwardingSettings = () => { ) } + +const OutOfOffice = () => { + const dispatch = useDispatch() + let query = useQuery() + const userId = query.get('userId') + const tenantDomain = query.get('tenantDomain') + const [queryError, setQueryError] = useState(false) + const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() + const [startDate, setStartDate] = useState(new Date()) + const [endDate, setEndDate] = useState(new Date()) + const { + data: user = {}, + isFetching: userIsFetching, + error: userError, + } = useListMailboxPermissionsQuery({ tenantDomain, userId }) + + const { + data: users = [], + isFetching: usersIsFetching, + error: usersError, + } = useListUsersQuery({ tenantDomain }) + + useEffect(() => { + if (postResults.isSuccess) { + } + if (!userId || !tenantDomain) { + ModalService.open({ + body: 'Error invalid request, could not load requested user.', + title: 'Invalid Request', + }) + setQueryError(true) + } else { + setQueryError(false) + } + }, [userId, tenantDomain, dispatch, postResults]) + const onSubmit = (values) => { + const shippedValues = { + user: userId, + tenantFilter: tenantDomain, + AutoReplyState: values.AutoReplyState ? 'Scheduled' : 'Disabled', + StartTime: startDate.toLocaleString(), + EndTime: endDate.toLocaleString(), + InternalMessage: values.InternalMessage ? values.InternalMessage : '', + ExternalMessage: values.ExternalMessage ? values.ExternalMessage : '', + } + //window.alert(JSON.stringify(shippedValues)) + genericPostRequest({ path: '/api/ExecSetOoO', values: shippedValues }) + } + const initialState = { + ...user, + } + + const formDisabled = queryError === true + + return ( + <> + {!queryError && ( + <> + {queryError && ( + + + + {/* @todo add more descriptive help message here */} + Failed to load user + + + + )} + + + {usersIsFetching && } + {userError && Error loading user} + {!usersIsFetching && ( + { + return ( + + + + + + + + + + setStartDate(date)} + showTimeSelect + /> + + + + + + setEndDate(date)} + showTimeSelect + /> + + + + + + + + + + + + + + + + Edit Out of Office + {postResults.isFetching && ( + + )} + + + + {postResults.isSuccess && ( + + {postResults.data.Results.map((result, idx) => ( +
  • {result}
  • + ))} +
    + )} + + ) + }} + /> + )} +
    +
    + + )} + + ) +} + +const OutOfOfficeSettings = () => { + const query = useQuery() + const userId = query.get('userId') + const tenantDomain = query.get('tenantDomain') + const tenantFilter = tenantDomain + const { + data: details, + isFetching, + error, + } = useGenericGetRequestQuery({ + path: '/api/ListOoO', + params: { userId, tenantFilter }, + }) + const content = [ + { + heading: 'Auto Reply State', + body: formatter(details?.AutoReplyState, false, false, true), + }, + { + heading: 'Start Date/Time', + body: details?.StartTime ? details?.StartTime : 'N/A', + }, + { + heading: 'End Date/Time', + body: details?.EndTime ? details?.EndTime : 'N/A', + }, + { + heading: 'Internal Message', + body: details?.InternalMessage ? details?.InternalMessage : 'N/A', + }, + { + heading: 'External Message', + body: details?.ExternalMessage ? details?.ExternalMessage : 'N/A', + }, + ] + return ( + + {isFetching && ( + + Loading + + )} + {!isFetching && ( + + {content.map((item, index) => ( +
    +
    {item.heading}
    +

    {item.body}

    +
    + ))} +
    + )} + {error && Could not connect to API: {error.message}} +
    + ) +} diff --git a/src/views/identity/administration/Users.js b/src/views/identity/administration/Users.js index 69796c07b423..40bf15590a8e 100644 --- a/src/views/identity/administration/Users.js +++ b/src/views/identity/administration/Users.js @@ -149,6 +149,7 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { user: row.userPrincipalName, TenantFilter: tenant.defaultDomainName, message: row.message, + AutoReplyState: 'Enabled', }, modalUrl: `/api/ExecSetOoO`, modalInput: true, @@ -163,7 +164,7 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { modalBody: { user: row.userPrincipalName, TenantFilter: tenant.defaultDomainName, - Disable: true, + AutoReplyState: 'Disabled', }, modalUrl: `/api/ExecSetOoO`, modalMessage: 'Are you sure you want to disable the out of office?', From 749b17b9f020dd1912e0540ff6c20c4715bbac9a Mon Sep 17 00:00:00 2001 From: BNWEIN Date: Sun, 15 Oct 2023 08:09:54 +0100 Subject: [PATCH 071/205] Delete .github/workflows/azure-static-web-apps-proud-smoke-0849e8603.yml --- ...-static-web-apps-proud-smoke-0849e8603.yml | 46 ------------------- 1 file changed, 46 deletions(-) delete mode 100644 .github/workflows/azure-static-web-apps-proud-smoke-0849e8603.yml diff --git a/.github/workflows/azure-static-web-apps-proud-smoke-0849e8603.yml b/.github/workflows/azure-static-web-apps-proud-smoke-0849e8603.yml deleted file mode 100644 index dbcc4eb90308..000000000000 --- a/.github/workflows/azure-static-web-apps-proud-smoke-0849e8603.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Azure Static Web Apps CI/CD - -on: - push: - branches: - - dev - pull_request: - types: [opened, synchronize, reopened, closed] - branches: - - dev - -jobs: - build_and_deploy_job: - if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') - runs-on: ubuntu-latest - name: Build and Deploy Job - steps: - - uses: actions/checkout@v3 - with: - submodules: true - lfs: false - - name: Build And Deploy - id: builddeploy - uses: Azure/static-web-apps-deploy@v1 - with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_SMOKE_0849E8603 }} - repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) - action: "upload" - ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### - # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig - app_location: "/" # App source code path - api_location: "" # Api source code path - optional - output_location: "" # Built app content directory - optional - ###### End of Repository/Build Configurations ###### - - close_pull_request_job: - if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: ubuntu-latest - name: Close Pull Request Job - steps: - - name: Close Pull Request - id: closepullrequest - uses: Azure/static-web-apps-deploy@v1 - with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_SMOKE_0849E8603 }} - action: "close" From 2fc7853bc2276c6a715676a0c4e944b9a1f6ced8 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 16 Oct 2023 10:13:20 +0200 Subject: [PATCH 072/205] fixes sort --- src/components/tables/CippTable.js | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.js index 5fcb006c88be..72b3247f2218 100644 --- a/src/components/tables/CippTable.js +++ b/src/components/tables/CippTable.js @@ -79,27 +79,23 @@ FilterComponent.propTypes = { filterlist: PropTypes.arrayOf(PropTypes.object), onFilterPreset: PropTypes.func, } +const compareValues = (a, b) => { + if (a === null) return 1 + if (b === null) return -1 + if (typeof a === 'number' && typeof b === 'number') return a - b + if (typeof a === 'boolean' && typeof b === 'boolean') return a === b ? 0 : a ? -1 : 1 + return String(a).localeCompare(String(b), 'en', { numeric: true }) +} const customSort = (rows, selector, direction) => { return rows.sort((a, b) => { - // use the selector to resolve your field names by passing the sort comparitors - let aField - let bField - - aField = selector(a) - bField = selector(b) - - let comparison = 0 - - if (aField?.toString().localeCompare(bField, 'en', { numeric: true }) > 0) { - comparison = 1 - } else if (aField?.toString().localeCompare(bField, 'en', { numeric: true }) < 0) { - comparison = -1 - } - + let aField = selector(a) + let bField = selector(b) + let comparison = compareValues(aField, bField) return direction === 'desc' ? comparison * -1 : comparison }) } + export default function CippTable({ data, isFetching = false, From 7f4c8dffb91ca400c70ced232a5192e8daa35945 Mon Sep 17 00:00:00 2001 From: Jr7468 Date: Tue, 17 Oct 2023 17:41:28 +0100 Subject: [PATCH 073/205] Fixed spacing --- .../email-exchange/administration/EditMailboxPermissions.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.js b/src/views/email-exchange/administration/EditMailboxPermissions.js index 20b0ec147405..87525d9d6cc8 100644 --- a/src/views/email-exchange/administration/EditMailboxPermissions.js +++ b/src/views/email-exchange/administration/EditMailboxPermissions.js @@ -859,7 +859,7 @@ const OutOfOffice = () => { return ( - + @@ -888,7 +888,7 @@ const OutOfOffice = () => { - + { - + Date: Wed, 18 Oct 2023 09:47:30 +0100 Subject: [PATCH 074/205] Used regex to eliminate HTML elements in output --- .../email-exchange/administration/EditMailboxPermissions.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.js b/src/views/email-exchange/administration/EditMailboxPermissions.js index 87525d9d6cc8..fd41f5af70e1 100644 --- a/src/views/email-exchange/administration/EditMailboxPermissions.js +++ b/src/views/email-exchange/administration/EditMailboxPermissions.js @@ -959,6 +959,7 @@ const OutOfOfficeSettings = () => { path: '/api/ListOoO', params: { userId, tenantFilter }, }) + const combinedRegex = /(<([^>]+)>)|| /gi const content = [ { heading: 'Auto Reply State', @@ -974,11 +975,11 @@ const OutOfOfficeSettings = () => { }, { heading: 'Internal Message', - body: details?.InternalMessage ? details?.InternalMessage : 'N/A', + body: details?.InternalMessage ? details?.InternalMessage.replace(combinedRegex, '') : 'N/A', }, { heading: 'External Message', - body: details?.ExternalMessage ? details?.ExternalMessage : 'N/A', + body: details?.ExternalMessage ? details?.ExternalMessage.replace(combinedRegex, '') : 'N/A', }, ] return ( From 807b90dc1a3b686fee986c99fb78b4364897b48a Mon Sep 17 00:00:00 2001 From: John Duprey Date: Wed, 18 Oct 2023 20:12:19 -0400 Subject: [PATCH 075/205] Permission Checks - Add TableModalButton component - Update permission check to include GDAP info and Role/Group memberships --- src/components/buttons/TableModalButton.js | 40 ++++++++++++++++++++++ src/components/buttons/index.js | 3 +- src/views/cipp/CIPPSettings.js | 38 +++++++++++++++++++- 3 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 src/components/buttons/TableModalButton.js diff --git a/src/components/buttons/TableModalButton.js b/src/components/buttons/TableModalButton.js new file mode 100644 index 000000000000..725405e7629e --- /dev/null +++ b/src/components/buttons/TableModalButton.js @@ -0,0 +1,40 @@ +import React from 'react' +import { CButton } from '@coreui/react' +import { ModalService } from '../utilities' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faCheckCircle } from '@fortawesome/free-solid-svg-icons' +import { cellGenericFormatter } from '../tables/CellGenericFormat' + +export default function TableModalButton({ data, title, className }) { + const handleTable = (data) => { + const QueryColumns = [] + const columns = Object.keys(data[0]).map((key) => { + QueryColumns.push({ + name: key, + selector: (row) => row[key], // Accessing the property using the key + sortable: true, + exportSelector: key, + cell: cellGenericFormatter(), + }) + }) + ModalService.open({ + data: data, + componentType: 'table', + componentProps: { + columns: QueryColumns, + keyField: 'id', + }, + title: title, + size: 'lg', + }) + } + const buttonClass = 'btn ' + className + + return ( + handleTable(data)}> + <> + {title} ({data.length}) + + + ) +} diff --git a/src/components/buttons/index.js b/src/components/buttons/index.js index e0c639073418..c87617eb1456 100644 --- a/src/components/buttons/index.js +++ b/src/components/buttons/index.js @@ -1,5 +1,6 @@ import ExportCsvButton from 'src/components/buttons/CsvButton' import ExportPDFButton from 'src/components/buttons/PdfButton' import TitleButton from 'src/components/buttons/TitleButton' +import TableModalButton from 'src/components/buttons/TableModalButton' -export { ExportCsvButton, ExportPDFButton, TitleButton } +export { ExportCsvButton, ExportPDFButton, TitleButton, TableModalButton } diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 1716df3abee3..3fb453caa594 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -82,6 +82,7 @@ import Skeleton from 'react-loading-skeleton' import { Buffer } from 'buffer' import Extensions from 'src/data/Extensions.json' import { CellDelegatedPrivilege } from 'src/components/tables/CellDelegatedPrivilege' +import { TableModalButton } from 'src/components/buttons' const CIPPSettings = () => { const [active, setActive] = useState(1) @@ -387,10 +388,28 @@ const GeneralSettings = () => { )} + {permissionsResult.data.Results?.MissingGroups.length > 0 && ( + <> + Your SAM User is missing the following group memberships. + + {permissionsResult.data.Results?.MissingGroups?.map((r, index) => ( + {r} + ))} + + + )} + {permissionsResult.data.Results?.CIPPGroupCount == 0 && ( + <> + NOTE: M365 GDAP groups were not set up by CIPP, review the SAM user groups + below. + + )} {permissionsResult.data.Results?.AccessTokenDetails?.Name !== '' && ( <> - setTokenOffcanvasVisible(true)}>Details + setTokenOffcanvasVisible(true)}> + Details + { /> )} + {permissionsResult.data.Results?.Memberships !== '' && ( + <> + p['@odata.type'] == '#microsoft.graph.group', + )} + title="Groups" + /> + p['@odata.type'] == '#microsoft.graph.directoryRole', + )} + title="Roles" + /> + + )} )} From 06db64e01740281fea86af75313635a7200ddb56 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Wed, 18 Oct 2023 20:22:25 -0400 Subject: [PATCH 076/205] spacing --- src/views/cipp/CIPPSettings.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 3fb453caa594..9c75630f2c65 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -407,7 +407,7 @@ const GeneralSettings = () => { {permissionsResult.data.Results?.AccessTokenDetails?.Name !== '' && ( <> - setTokenOffcanvasVisible(true)}> + setTokenOffcanvasVisible(true)}> Details { {permissionsResult.data.Results?.Memberships !== '' && ( <> p['@odata.type'] == '#microsoft.graph.group', )} From 7b36891435703744525efb68e0c0e65f26a80545 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 19 Oct 2023 18:09:44 +0200 Subject: [PATCH 077/205] changed text a little. --- src/views/cipp/CIPPSettings.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 9c75630f2c65..b46e9165e005 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -400,8 +400,9 @@ const GeneralSettings = () => { )} {permissionsResult.data.Results?.CIPPGroupCount == 0 && ( <> - NOTE: M365 GDAP groups were not set up by CIPP, review the SAM user groups - below. + NOTE: Your M365 GDAP groups were not set up by CIPP. Please check the groups + below to see if you have the correct GDAP permissions, or execute an access + check. )} From 09a4052fda311920389178b0ac085f33f5d2e331 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 19 Oct 2023 21:45:38 +0200 Subject: [PATCH 078/205] changed nav --- src/_nav.js | 90 ++++++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 43 deletions(-) diff --git a/src/_nav.js b/src/_nav.js index 683cd830fdaa..4933192c1a26 100644 --- a/src/_nav.js +++ b/src/_nav.js @@ -246,6 +246,51 @@ const _nav = [ }, ], }, + { + component: CNavGroup, + name: 'GDAP Management', + section: 'Settings', + to: '/cipp/gdap', + icon: , + items: [ + { + component: CNavItem, + name: 'Role Wizard', + to: '/tenant/administration/gdap-role-wizard', + }, + { + component: CNavItem, + name: 'GDAP Roles', + to: '/tenant/administration/gdap-roles', + }, + /*{ + component: CNavItem, + name: 'Migration Wizard', + to: '/tenant/administration/gdap', + }, + { + component: CNavItem, + name: 'GDAP Migration Status', + to: '/tenant/administration/gdap-status', + },*/ + { + component: CNavItem, + name: 'Invite Wizard', + to: '/tenant/administration/gdap-invite', + }, + { + component: CNavItem, + name: 'GDAP Relationships', + to: '/tenant/administration/gdap-relationships', + }, + { + component: CNavItem, + name: 'Documentation', + href: 'https://cipp.app/docs/user/usingcipp/GDAP/migration', + target: '_blank', + }, + ], + }, { component: CNavGroup, name: 'Reports', @@ -678,56 +723,15 @@ const _nav = [ name: 'Logbook', to: '/cipp/logs', }, - { component: CNavItem, name: 'SAM Setup Wizard', to: '/cipp/setup', }, - ], - }, - { - component: CNavGroup, - name: 'GDAP Migration', - section: 'Settings', - to: '/cipp/gdap', - icon: , - items: [ - { - component: CNavItem, - name: 'Role Wizard', - to: '/tenant/administration/gdap-role-wizard', - }, - { - component: CNavItem, - name: 'GDAP Roles', - to: '/tenant/administration/gdap-roles', - }, - { - component: CNavItem, - name: 'Migration Wizard', - to: '/tenant/administration/gdap', - }, { component: CNavItem, - name: 'GDAP Migration Status', - to: '/tenant/administration/gdap-status', - }, - { - component: CNavItem, - name: 'Invite Wizard', - to: '/tenant/administration/gdap-invite', - }, - { - component: CNavItem, - name: 'GDAP Relationships', - to: '/tenant/administration/gdap-relationships', - }, - { - component: CNavItem, - name: 'Documentation', - href: 'https://cipp.app/docs/user/usingcipp/GDAP/migration', - target: '_blank', + name: 'Log Out', + to: '/logout', }, ], }, From a8f7ddc3d70229c8e52939e9b57bfa8fd303cd62 Mon Sep 17 00:00:00 2001 From: BNWEIN Date: Fri, 20 Oct 2023 08:35:18 +0100 Subject: [PATCH 079/205] Fixed Link on Transport Rules Page Finally fixed the link on the transport rules page to deploy a new rule. --- src/views/email-exchange/transport/TransportRules.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/email-exchange/transport/TransportRules.js b/src/views/email-exchange/transport/TransportRules.js index ecb39e6d9af6..77f26875c406 100644 --- a/src/views/email-exchange/transport/TransportRules.js +++ b/src/views/email-exchange/transport/TransportRules.js @@ -122,7 +122,7 @@ const TransportRulesList = () => { tenantSelector={true} titleButton={ <> - + } datatable={{ From 8dcfb905766617a281cc098188be0af2c266fff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Fri, 20 Oct 2023 18:03:55 +0200 Subject: [PATCH 080/205] Add an Edit Mailbox Permissions button when viewing a user --- src/views/identity/administration/UserActions.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/views/identity/administration/UserActions.js b/src/views/identity/administration/UserActions.js index 78ca9e360fe8..2a96415e0b15 100644 --- a/src/views/identity/administration/UserActions.js +++ b/src/views/identity/administration/UserActions.js @@ -9,6 +9,7 @@ import { faUserTimes, faEllipsisH, faEnvelope, + faEdit, } from '@fortawesome/free-solid-svg-icons' import { ActionContentCard } from 'src/components/contentcards' import { useLazyGenericGetRequestQuery } from 'src/store/api/app' @@ -30,6 +31,7 @@ export default function UserActions({ tenantDomain, userId, userEmail, className } const editLink = `/identity/administration/users/edit?tenantDomain=${tenantDomain}&userId=${userId}` + const editMailboxLink = `/email/administration/edit-mailbox-permissions?tenantDomain=${tenantDomain}&userId=${userId}` const actions = [ { @@ -37,6 +39,11 @@ export default function UserActions({ tenantDomain, userId, userEmail, className link: editLink, icon: faCog, }, + { + label: 'Edit Mailbox Permissions', + link: editMailboxLink, + icon: faEdit, + }, { label: 'Send MFA Push', link: '#', From 0a1abb102089565ad6cf2bbd73c44b98a47a3de7 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Fri, 20 Oct 2023 21:39:47 -0400 Subject: [PATCH 081/205] Tenant Access Check - Add cellTableFormatter - Increase column size --- src/views/cipp/CIPPSettings.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index b46e9165e005..985dc4af7251 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -83,6 +83,8 @@ import { Buffer } from 'buffer' import Extensions from 'src/data/Extensions.json' import { CellDelegatedPrivilege } from 'src/components/tables/CellDelegatedPrivilege' import { TableModalButton } from 'src/components/buttons' +import { cellTableFormatter } from 'src/components/tables/CellTable' +import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' const CIPPSettings = () => { const [active, setActive] = useState(1) @@ -151,16 +153,29 @@ const checkAccessColumns = [ name: 'Tenant Domain', selector: (row) => row['TenantName'], grow: 0, + cell: cellGenericFormatter(), }, { name: 'Result', selector: (row) => row['Status'], minWidth: '380px', maxWidth: '380px', + cell: cellGenericFormatter(), }, { name: 'Missing GDAP Roles', - selector: (row) => row['GDAP'], + selector: (row) => row?.MissingRoles, + cell: cellTableFormatter('MissingRoles'), + }, + { + name: 'Tenant Roles', + selector: (row) => row?.GDAPRoles, + cell: cellTableFormatter('GDAPRoles'), + }, + { + name: 'SAM User Roles', + selector: (row) => row?.SAMUserRoles, + cell: cellTableFormatter('SAMUserRoles'), }, ] @@ -482,7 +497,7 @@ const GeneralSettings = () => { - + Tenant Access Check From 8631d8bde3ac7ac88bdfe58c2a84ae371a8353ba Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sun, 22 Oct 2023 16:44:19 +0200 Subject: [PATCH 082/205] improvements to table looks --- src/components/tables/CellTable.js | 38 ++++-- src/views/cipp/CIPPSettings.js | 190 +++++++++++++---------------- 2 files changed, 118 insertions(+), 110 deletions(-) diff --git a/src/components/tables/CellTable.js b/src/components/tables/CellTable.js index 004cdb715c48..c874a6854920 100644 --- a/src/components/tables/CellTable.js +++ b/src/components/tables/CellTable.js @@ -3,16 +3,22 @@ import { CButton } from '@coreui/react' import { ModalService } from '../utilities' import { CBadge } from '@coreui/react' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faCheckCircle } from '@fortawesome/free-solid-svg-icons' +import { faCheckCircle, faTimesCircle } from '@fortawesome/free-solid-svg-icons' // 1. Import the required FontAwesome icon import { cellGenericFormatter } from './CellGenericFormat' -export default function cellTable(row, column, propertyName) { +export default function cellTable( + row, + column, + propertyName, + checkWhenZero = false, + crossWhenZero = false, +) { const handleTable = ({ row }) => { const QueryColumns = [] const columns = Object.keys(row[propertyName][0]).map((key) => { QueryColumns.push({ name: key, - selector: (row) => row[key], // Accessing the property using the key + selector: (row) => row[key], sortable: true, exportSelector: key, cell: cellGenericFormatter(), @@ -29,8 +35,24 @@ export default function cellTable(row, column, propertyName) { size: 'lg', }) } + //if the row propertyName is a bool, then return a check or cross + if (typeof row[propertyName] === 'boolean') { + if (row[propertyName]) { + return + } + return + } - if (!row[propertyName] || !Array.isArray(row[propertyName]) || row.length === 0) { + if (!row[propertyName] || !Array.isArray(row[propertyName]) || row[propertyName].length === 0) { + if (row[propertyName] === undefined) { + return + } + if (checkWhenZero) { + return + } + if (crossWhenZero) { + return + } return } @@ -41,6 +63,8 @@ export default function cellTable(row, column, propertyName) { ) } -export const cellTableFormatter = (propertyName) => (row, index, column, id) => { - return cellTable(row, column, propertyName) -} +export const cellTableFormatter = + (propertyName, checkWhenZero = false, crossWhenZero = false) => + (row, index, column, id) => { + return cellTable(row, column, propertyName, checkWhenZero, crossWhenZero) + } diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 985dc4af7251..f4e300e0c215 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -85,6 +85,7 @@ import { CellDelegatedPrivilege } from 'src/components/tables/CellDelegatedPrivi import { TableModalButton } from 'src/components/buttons' import { cellTableFormatter } from 'src/components/tables/CellTable' import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' +import { check } from 'prettier' const CIPPSettings = () => { const [active, setActive] = useState(1) @@ -165,17 +166,17 @@ const checkAccessColumns = [ { name: 'Missing GDAP Roles', selector: (row) => row?.MissingRoles, - cell: cellTableFormatter('MissingRoles'), + cell: cellTableFormatter('MissingRoles', true, false), }, { - name: 'Tenant Roles', + name: 'Roles available', selector: (row) => row?.GDAPRoles, - cell: cellTableFormatter('GDAPRoles'), + cell: cellTableFormatter('GDAPRoles', false, true), }, { name: 'SAM User Roles', selector: (row) => row?.SAMUserRoles, - cell: cellTableFormatter('SAMUserRoles'), + cell: cellTableFormatter('SAMUserRoles', false, true), }, ] @@ -189,8 +190,6 @@ const GeneralSettings = () => { const [selectedTenants, setSelectedTenants] = useState([]) const [showMaxSelected, setShowMaxSelected] = useState(false) const [tokenOffcanvasVisible, setTokenOffcanvasVisible] = useState(false) - const [runBackup, RunBackupResult] = useLazyGenericGetRequestQuery() - const [restoreBackup, restoreBackupResult] = useLazyGenericPostRequestQuery() const maxSelected = 2 const tenantSelectorRef = useRef(null) @@ -560,68 +559,6 @@ const GeneralSettings = () => { - - - - - Run Backup - - - Click the button below to start a backup of all Settings - runBackup({ path: '/api/ExecRunBackup' })} - disabled={RunBackupResult.isFetching} - className="me-3 mt-3" - > - {RunBackupResult.isFetching && ( - - )} - Run backup - - handleChange(e)} - /> - inputRef.current.click()} - disabled={restoreBackupResult.isFetching} - className="me-3 mt-3" - > - {restoreBackupResult.isFetching && ( - - )} - Restore backup - - {restoreBackupResult.isSuccess && ( - <> - {restoreBackupResult.data.Results} - - )} - {RunBackupResult.isSuccess && ( - <> - - downloadTxtFile(RunBackupResult.data.backup)} - className="m-1" - > - Download Backup - - - - )} - - - - - - - ) } @@ -1371,46 +1308,40 @@ const PasswordSettings = () => { <> {getPasswordConfigResult.isUninitialized && getPasswordConfig({ path: '/api/ExecPasswordConfig?list=true' })} - - - Password Generation - - - Select a password style for generated passwords. - - {resolvers.map((r, index) => ( - switchResolver(r)} - color={ - r === getPasswordConfigResult.data?.Results?.passwordType - ? 'primary' - : 'secondary' - } - key={index} - > - {r} - - ))} - - {(editPasswordConfigResult.isSuccess || editPasswordConfigResult.isError) && ( - - {editPasswordConfigResult.isSuccess - ? editPasswordConfigResult.data.Results - : 'Error setting password style'} - - )} - - +

    Password Style

    + + {resolvers.map((r, index) => ( + switchResolver(r)} + color={ + r === getPasswordConfigResult.data?.Results?.passwordType ? 'primary' : 'secondary' + } + key={index} + > + {r} + + ))} + + {(editPasswordConfigResult.isSuccess || editPasswordConfigResult.isError) && ( + + {editPasswordConfigResult.isSuccess + ? editPasswordConfigResult.data.Results + : 'Error setting password style'} + + )} ) } const DNSSettings = () => { + const [runBackup, RunBackupResult] = useLazyGenericGetRequestQuery() + const [restoreBackup, restoreBackupResult] = useLazyGenericPostRequestQuery() const [getDnsConfig, getDnsConfigResult] = useLazyGetDnsConfigQuery() const [editDnsConfig, editDnsConfigResult] = useLazyEditDnsConfigQuery() + const inputRef = useRef(null) const [alertVisible, setAlertVisible] = useState(false) @@ -1431,10 +1362,10 @@ const DNSSettings = () => { {getDnsConfigResult.isSuccess && ( - DNS Resolver + Application Settings - Select a DNS resolver to use for Domain Analysis. +

    DNS resolver

    {resolvers.map((r, index) => ( { : 'Error setting resolver'} )} + + + + +

    Settings Backup

    + runBackup({ path: '/api/ExecRunBackup' })} + disabled={RunBackupResult.isFetching} + className="me-3 mt-3" + > + {RunBackupResult.isFetching && ( + + )} + Run backup + + handleChange(e)} + /> + inputRef.current.click()} + disabled={restoreBackupResult.isFetching} + className="me-3 mt-3" + > + {restoreBackupResult.isFetching && ( + + )} + Restore backup + + {restoreBackupResult.isSuccess && ( + <> + {restoreBackupResult.data.Results} + + )} + {RunBackupResult.isSuccess && ( + <> + + downloadTxtFile(RunBackupResult.data.backup)} + className="m-1" + > + Download Backup + + + + )} +
    )} From 9c0b574feda2267d3d05fd863a65863cde15f79b Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sun, 22 Oct 2023 21:36:48 +0200 Subject: [PATCH 083/205] caps --- src/views/cipp/CIPPSettings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index f4e300e0c215..2ccf00c60bb5 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -1365,7 +1365,7 @@ const DNSSettings = () => { Application Settings -

    DNS resolver

    +

    DNS Resolver

    {resolvers.map((r, index) => ( Date: Mon, 23 Oct 2023 09:39:08 +0200 Subject: [PATCH 084/205] add requireMFAadd requireMFA --- src/data/standards.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/data/standards.json b/src/data/standards.json index 255449b17c3a..292fafc41ac4 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -415,6 +415,12 @@ }, "label": "Set inactive device retirement days" }, + { + "name": "standards.intuneRequireMFA", + "cat": "Intune", + "helpText": "", + "label": "Require Multifactor Authentication to register or join devices with Microsoft Entra" + }, { "name": "standards.sharingCapability.Enabled", "cat": "SharePoint", From eda41a1eda1eb5211cac73e349e5bc6fe2d9df34 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 23 Oct 2023 11:08:48 +0200 Subject: [PATCH 085/205] Remove mailbox permissions --- src/views/identity/administration/OffboardingWizard.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/views/identity/administration/OffboardingWizard.js b/src/views/identity/administration/OffboardingWizard.js index a5bf2288504a..052495dfabb8 100644 --- a/src/views/identity/administration/OffboardingWizard.js +++ b/src/views/identity/administration/OffboardingWizard.js @@ -60,6 +60,7 @@ const OffboardingWizard = () => { removeRules: values.RemoveRules, removeMobile: values.RemoveMobile, keepCopy: values.keepCopy, + removePermissions: values.removePermissions, } //alert(JSON.stringify(values, null, 2)) @@ -125,6 +126,7 @@ const OffboardingWizard = () => { + From 5a863dcc81d9df8298f3153d4047088f3da4069b Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 23 Oct 2023 11:14:40 +0200 Subject: [PATCH 086/205] prettification --- src/views/identity/administration/OffboardingWizard.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/views/identity/administration/OffboardingWizard.js b/src/views/identity/administration/OffboardingWizard.js index 052495dfabb8..71e886944b03 100644 --- a/src/views/identity/administration/OffboardingWizard.js +++ b/src/views/identity/administration/OffboardingWizard.js @@ -262,6 +262,14 @@ const OffboardingWizard = () => { icon={props.values.RemoveRules ? faCheck : faTimes} /> + + Remove all mailbox permissions + + Remove Licenses Date: Mon, 23 Oct 2023 18:20:17 +0200 Subject: [PATCH 087/205] Fix small label error to make labels consistent with the ones found in ApplyStandard.js --- src/views/tenant/standards/ListAppliedStandards.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.js index 7f1382a5e149..84d168b995f3 100644 --- a/src/views/tenant/standards/ListAppliedStandards.js +++ b/src/views/tenant/standards/ListAppliedStandards.js @@ -451,7 +451,7 @@ const ListAppliedStandards = () => { name: template.displayName, }))} placeholder="Select a template" - label="Choose your intune templates to apply" + label="Choose your Conditional Access templates to apply" /> )} @@ -473,7 +473,7 @@ const ListAppliedStandards = () => { name: template.name, }))} placeholder="Select a template" - label="Choose your intune templates to apply" + label="Choose your Transport Rule templates to apply" /> )} @@ -494,7 +494,7 @@ const ListAppliedStandards = () => { name: template.Displayname, }))} placeholder="Select a template" - label="Choose your group templates to apply" + label="Choose your Group templates to apply" /> )} From 8716e5544bad646b26beaaa06d5e79286b07e7cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Mon, 23 Oct 2023 18:21:48 +0200 Subject: [PATCH 088/205] Whoops --- src/views/tenant/standards/ListAppliedStandards.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.js index 84d168b995f3..a6e6ce55749a 100644 --- a/src/views/tenant/standards/ListAppliedStandards.js +++ b/src/views/tenant/standards/ListAppliedStandards.js @@ -407,7 +407,7 @@ const ListAppliedStandards = () => { name: template.Displayname, }))} placeholder="Select a template" - label="Choose your intune templates to apply" + label="Choose your Intune templates to apply" /> )} From fa5ab4850eadee99c048b0d3887b63e6344b5517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Mon, 23 Oct 2023 19:36:30 +0200 Subject: [PATCH 089/205] Move timeout to global standards --- src/data/standards.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/standards.json b/src/data/standards.json index 292fafc41ac4..0fd0665c1aeb 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -332,7 +332,7 @@ }, { "name": "standards.ActivityBasedTimeout", - "cat": "SharePoint", + "cat": "Global", "helpText": "", "addedComponent": null, "label": "Enable 1 hour Activity based Timeout" From 4fc2843f8d777e28c38b1dfcbe8c8d60d9eec4ff Mon Sep 17 00:00:00 2001 From: John Duprey Date: Mon, 23 Oct 2023 21:28:56 -0400 Subject: [PATCH 090/205] CippTable / Access Check Tweaks - Add support for hiding filter in subheader - Add omit property to extended info - Add CFormSwitch toggle to hide or show role details --- src/components/tables/CippTable.js | 29 ++++++----- src/views/cipp/CIPPSettings.js | 81 ++++++++++++++++++------------ 2 files changed, 65 insertions(+), 45 deletions(-) diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.js index 72b3247f2218..75106ab21de4 100644 --- a/src/components/tables/CippTable.js +++ b/src/components/tables/CippTable.js @@ -111,6 +111,7 @@ export default function CippTable({ isModal = false, exportFiltered = false, filterlist, + showFilter = true, tableProps: { keyField = 'id', theme = 'cyberdrain', @@ -468,6 +469,10 @@ export default function CippTable({ ]) } + actions.forEach((action) => { + defaultActions.push(action) + }) + if (!disablePDFExport || !disableCSVExport) { const keys = [] const exportFormatter = {} @@ -578,9 +583,7 @@ export default function CippTable({ , ]) } - actions.forEach((action) => { - defaultActions.push(action) - }) + defaultActions.push([
    - setFilterText(e.target.value)} - onFilterPreset={(e) => { - setFilterText(e) - }} - onClear={handleClear} - filterText={filterText} - filterlist={filterlist} - /> + {showFilter && ( + setFilterText(e.target.value)} + onFilterPreset={(e) => { + setFilterText(e) + }} + onClear={handleClear} + filterText={filterText} + filterlist={filterlist} + /> + )} {defaultActions}
    diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 2ccf00c60bb5..8c46d827521f 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -21,6 +21,7 @@ import { CSpinner, CCardText, CTooltip, + CFormSwitch, } from '@coreui/react' import { useGenericGetRequestQuery, @@ -149,40 +150,8 @@ const CIPPSettings = () => { export default CIPPSettings -const checkAccessColumns = [ - { - name: 'Tenant Domain', - selector: (row) => row['TenantName'], - grow: 0, - cell: cellGenericFormatter(), - }, - { - name: 'Result', - selector: (row) => row['Status'], - minWidth: '380px', - maxWidth: '380px', - cell: cellGenericFormatter(), - }, - { - name: 'Missing GDAP Roles', - selector: (row) => row?.MissingRoles, - cell: cellTableFormatter('MissingRoles', true, false), - }, - { - name: 'Roles available', - selector: (row) => row?.GDAPRoles, - cell: cellTableFormatter('GDAPRoles', false, true), - }, - { - name: 'SAM User Roles', - selector: (row) => row?.SAMUserRoles, - cell: cellTableFormatter('SAMUserRoles', false, true), - }, -] - const GeneralSettings = () => { const { data: versions, isSuccess: isSuccessVersion } = useLoadVersionsQuery() - const { data: tenants = [] } = useListTenantsQuery({ AllTenantSelector: false }) const [checkPermissions, permissionsResult] = useLazyExecPermissionsAccessCheckQuery() const [clearCache, clearCacheResult] = useLazyExecClearCacheQuery() @@ -190,6 +159,7 @@ const GeneralSettings = () => { const [selectedTenants, setSelectedTenants] = useState([]) const [showMaxSelected, setShowMaxSelected] = useState(false) const [tokenOffcanvasVisible, setTokenOffcanvasVisible] = useState(false) + const [showExtendedInfo, setShowExtendedInfo] = useState(true) const maxSelected = 2 const tenantSelectorRef = useRef(null) @@ -204,6 +174,39 @@ const GeneralSettings = () => { } } + const checkAccessColumns = [ + { + name: 'Tenant Domain', + selector: (row) => row['TenantName'], + grow: 0, + cell: cellGenericFormatter(), + }, + { + name: 'Result', + selector: (row) => row['Status'], + minWidth: '380px', + maxWidth: '380px', + cell: cellGenericFormatter(), + }, + { + name: 'Missing GDAP Roles', + selector: (row) => row?.MissingRoles, + cell: cellTableFormatter('MissingRoles', true, false), + }, + { + name: 'Roles available', + selector: (row) => row?.GDAPRoles, + cell: cellTableFormatter('GDAPRoles', false, true), + omit: showExtendedInfo, + }, + { + name: 'SAM User Roles', + selector: (row) => row?.SAMUserRoles, + cell: cellTableFormatter('SAMUserRoles', false, true), + omit: showExtendedInfo, + }, + ] + const handleCheckAccess = () => { const mapped = tenants.reduce( (current, { customerId, ...rest }) => ({ @@ -301,7 +304,16 @@ const GeneralSettings = () => { const tableProps = { pagination: false, - subheader: false, + actions: [ + { + console.log(e) + setShowExtendedInfo(!e.target.checked) + }} + />, + ], } const downloadTxtFile = (data) => { const txtdata = [JSON.stringify(RunBackupResult.data.backup)] @@ -544,6 +556,9 @@ const GeneralSettings = () => { {accessCheckResult.isSuccess && ( Date: Tue, 24 Oct 2023 11:25:01 +0200 Subject: [PATCH 091/205] external link for GA --- src/views/home/Home.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/views/home/Home.js b/src/views/home/Home.js index c802805552af..761be7b0d35d 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -187,12 +187,8 @@ const Home = () => { - From c9f6c9074db6e3b6f5741a73be60d60d4b6f9de1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Tue, 24 Oct 2023 18:39:00 +0200 Subject: [PATCH 092/205] Make Universal search remember the user you clicked on --- src/components/utilities/UniversalSearch.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/utilities/UniversalSearch.js b/src/components/utilities/UniversalSearch.js index 0dadbe464659..74f2efeb7cd2 100644 --- a/src/components/utilities/UniversalSearch.js +++ b/src/components/utilities/UniversalSearch.js @@ -80,7 +80,7 @@ const ResultsRow = ({ match }) => { const handleClick = () => { dispatch(hideSwitcher()) - navigate(`/identity/administration/users?customerId=${match._tenantId}`) + navigate(`/identity/administration/users?customerId=${match._tenantId}&tableFilter=${match.userPrincipalName}`) } return ( From bc60b6127edd15c83a6d5fa2c12f86ff61a87d09 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Tue, 24 Oct 2023 19:44:40 +0200 Subject: [PATCH 093/205] fix spacing --- src/components/utilities/UniversalSearch.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/utilities/UniversalSearch.js b/src/components/utilities/UniversalSearch.js index 74f2efeb7cd2..0893132265d9 100644 --- a/src/components/utilities/UniversalSearch.js +++ b/src/components/utilities/UniversalSearch.js @@ -17,7 +17,7 @@ export const UniversalSearch = React.forwardRef( const handleKeyDown = (event) => { if (event.key === 'Enter') { - // on enter key, start the search + // on enter key, start the searchs getSearchItems({ path: `/api/ExecUniversalSearch?name=${searchValue}` }) } } @@ -80,7 +80,9 @@ const ResultsRow = ({ match }) => { const handleClick = () => { dispatch(hideSwitcher()) - navigate(`/identity/administration/users?customerId=${match._tenantId}&tableFilter=${match.userPrincipalName}`) + navigate( + `/identity/administration/users?customerId=${match._tenantId}&tableFilter=${match.userPrincipalName}`, + ) } return ( From 9055f2858824559255fb44a033bd43dd903960f3 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 26 Oct 2023 11:57:31 +0200 Subject: [PATCH 094/205] case sensitivity issue --- src/views/endpoint/intune/MEMListPolicyTemplates.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/endpoint/intune/MEMListPolicyTemplates.js b/src/views/endpoint/intune/MEMListPolicyTemplates.js index 645744383d56..851c6731bedd 100644 --- a/src/views/endpoint/intune/MEMListPolicyTemplates.js +++ b/src/views/endpoint/intune/MEMListPolicyTemplates.js @@ -69,7 +69,7 @@ const AutopilotListTemplates = () => { selector: (row) => row['displayName'], sortable: true, cell: (row) => CellTip(row['displayName']), - exportSelector: 'Displayname', + exportSelector: 'displayName', minWidth: '400px', maxWidth: '400px', }, @@ -78,7 +78,7 @@ const AutopilotListTemplates = () => { selector: (row) => row['description'], sortable: true, cell: (row) => CellTip(row['description']), - exportSelector: 'Description', + exportSelector: 'description', minWidth: '400px', maxWidth: '400px', }, From 13c1736f92ba3cd23a47a49f11a57226047fab50 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 26 Oct 2023 12:29:02 +0200 Subject: [PATCH 095/205] improvements to cipp-sam --- src/views/cipp/Setup.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/views/cipp/Setup.js b/src/views/cipp/Setup.js index 603e2a07a0e2..82da760206e7 100644 --- a/src/views/cipp/Setup.js +++ b/src/views/cipp/Setup.js @@ -48,7 +48,10 @@ Error.propTypes = { const Setup = () => { const [setupDone, setSetupdone] = useState(false) - const valbutton = (value) => (setupDone ? undefined : 'You must finish the wizard.') + const valbutton = (value) => + getResults.data?.step < 5 + ? undefined + : `You must finish the setup process. you are currently at step ${getResults.data?.step} of 5.` const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const [genericGetRequest, getResults] = useLazyGenericGetRequestQuery() const onSubmit = (values) => { From b557a239d012761786ddb6a86b093d6a1b46c6aa Mon Sep 17 00:00:00 2001 From: BNWEIN Date: Thu, 26 Oct 2023 11:42:16 +0100 Subject: [PATCH 096/205] Update ListAppliedStandards.js Removed Duplicated Success Message --- src/views/tenant/standards/ListAppliedStandards.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.js index a6e6ce55749a..bf56b10ffbe2 100644 --- a/src/views/tenant/standards/ListAppliedStandards.js +++ b/src/views/tenant/standards/ListAppliedStandards.js @@ -383,9 +383,6 @@ const ListAppliedStandards = () => { ))} - {postResults.isSuccess && ( - {postResults.data.Results} - )}
    Templates

    From 0752d4b01b646a73b1b900e776e6aa7c72ac728b Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 26 Oct 2023 19:41:04 +0200 Subject: [PATCH 097/205] added complex filter licenses --- src/views/identity/reports/MFAReport.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/identity/reports/MFAReport.js b/src/views/identity/reports/MFAReport.js index da29c7e33b87..5dbae89bb4ad 100644 --- a/src/views/identity/reports/MFAReport.js +++ b/src/views/identity/reports/MFAReport.js @@ -134,7 +134,7 @@ const MFAList = () => { datatable={{ filterlist: [ { filterName: 'Enabled users', filter: '"accountEnabled":true' }, - { filterName: 'Licensed users', filter: '"isLicensed":"true"' }, + { filterName: 'Licensed users', filter: 'Complex: IsLicensed eq true' }, ], columns: tenant.defaultDomainName === 'AllTenants' ? Altcolumns : columns, path: '/api/ListMFAUsers', From c9e06094c8272b14d256aa546718c95379f4216d Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 26 Oct 2023 20:42:41 +0200 Subject: [PATCH 098/205] add standard --- src/data/standards.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/data/standards.json b/src/data/standards.json index 0fd0665c1aeb..328a668fdc85 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -267,6 +267,13 @@ }, "label": "Set Outbound Spam Alert e-mail" }, + { + "name": "standards.SafeSendersDisable", + "cat": "Exchange", + "helpText": "", + "addedComponent": null, + "label": "Remove Safe Senders to prevent SPF bypass" + }, { "name": "standards.DisableSharedMailbox", "cat": "Exchange", From 073e0336cc068a4102746446306ccffbeac180a0 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 26 Oct 2023 21:12:46 +0200 Subject: [PATCH 099/205] Fix bug with showing logs --- src/views/cipp/Logs.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/views/cipp/Logs.js b/src/views/cipp/Logs.js index dc128d9a9721..22862da55ea2 100644 --- a/src/views/cipp/Logs.js +++ b/src/views/cipp/Logs.js @@ -107,7 +107,7 @@ const Logs = () => { const DateFilter = query.get('DateFilter') //const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const [visibleA, setVisibleA] = useState(false) - const [startDate, setStartDate] = useState(new Date()) + const [startDate, setStartDate] = useState(DateFilter ? new Date(DateFilter) : new Date()) const handleSubmit = async (values) => { Object.keys(values).filter(function (x) { if (values[x] === null) { @@ -115,11 +115,13 @@ const Logs = () => { } return null }) + console.log(startDate) const shippedValues = { SearchNow: true, - DateFilter: startDate.toLocaleDateString('en-GB').split('/').reverse().join(''), + DateFilter: startDate.toISOString().split('T')[0].replace(/-/g, ''), ...values, } + console.log(shippedValues) var queryString = Object.keys(shippedValues) .map((key) => key + '=' + shippedValues[key]) .join('&') @@ -154,7 +156,7 @@ const Logs = () => { initialValues={{ Severity: severity, user: user, - DateFilter: DateFilter, + DateFilter: startDate.toISOString().split('T')[0].replace(/-/g, ''), }} onSubmit={handleSubmit} render={({ handleSubmit, submitting, values }) => { From 406355acc57961c0d241cebcdce808fe3538f81f Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 26 Oct 2023 21:22:03 +0200 Subject: [PATCH 100/205] removed console.logs --- src/views/cipp/Logs.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/views/cipp/Logs.js b/src/views/cipp/Logs.js index 22862da55ea2..0d339880d1ff 100644 --- a/src/views/cipp/Logs.js +++ b/src/views/cipp/Logs.js @@ -115,13 +115,11 @@ const Logs = () => { } return null }) - console.log(startDate) const shippedValues = { SearchNow: true, DateFilter: startDate.toISOString().split('T')[0].replace(/-/g, ''), ...values, } - console.log(shippedValues) var queryString = Object.keys(shippedValues) .map((key) => key + '=' + shippedValues[key]) .join('&') From 9573b96cf9a57cbfbc0f115b80272a87bb648c29 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 27 Oct 2023 00:26:49 +0200 Subject: [PATCH 101/205] Add custom group support for apps --- .../applications/ApplicationsAddChocoApp.js | 17 ++++++++++++++++- .../endpoint/applications/ApplicationsAddRMM.js | 15 +++++++++++++++ .../applications/ApplicationsAddWinGet.js | 16 ++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/src/views/endpoint/applications/ApplicationsAddChocoApp.js b/src/views/endpoint/applications/ApplicationsAddChocoApp.js index 4b46dcec0efa..6f518d6f5d07 100644 --- a/src/views/endpoint/applications/ApplicationsAddChocoApp.js +++ b/src/views/endpoint/applications/ApplicationsAddChocoApp.js @@ -18,6 +18,7 @@ import { CippWizard } from 'src/components/layout' import { WizardTableField } from 'src/components/tables' import PropTypes from 'prop-types' import { + Condition, RFFCFormCheck, RFFCFormInput, RFFCFormRadio, @@ -57,6 +58,9 @@ const ApplyStandard = () => { values.selectedTenants.map( (tenant) => (values[`Select_${tenant.defaultDomainName}`] = tenant.defaultDomainName), ) + if (values.AssignTo === 'customGroup') { + values.AssignTo = values.customGroup + } genericPostRequest({ path: '/api/AddChocoApp', values: values }) } const handleSearch = async ({ searchString, customRepo }) => { @@ -87,7 +91,6 @@ const ApplyStandard = () => { console.log(value) return obj.packagename === value }) - console.log(template[0]) onChange(template[0][set]) }} @@ -246,6 +249,18 @@ const ApplyStandard = () => { name="AssignTo" label="Assign to all users and devices" > + + + +

    diff --git a/src/views/endpoint/applications/ApplicationsAddRMM.js b/src/views/endpoint/applications/ApplicationsAddRMM.js index 5d994c7dbbca..da43bbca5a29 100644 --- a/src/views/endpoint/applications/ApplicationsAddRMM.js +++ b/src/views/endpoint/applications/ApplicationsAddRMM.js @@ -37,6 +37,9 @@ const AddRMM = () => { values.selectedTenants.map( (tenant) => (values[`Select_${tenant.defaultDomainName}`] = tenant.defaultDomainName), ) + if (values.AssignTo === 'customGroup') { + values.AssignTo = values.customGroup + } genericPostRequest({ path: '/api/AddMSPApp', values: values }) } @@ -312,6 +315,18 @@ const AddRMM = () => { name="AssignTo" label="Assign to all users and devices" > + + + +
    diff --git a/src/views/endpoint/applications/ApplicationsAddWinGet.js b/src/views/endpoint/applications/ApplicationsAddWinGet.js index 14424f1390a9..72a1dc7937f4 100644 --- a/src/views/endpoint/applications/ApplicationsAddWinGet.js +++ b/src/views/endpoint/applications/ApplicationsAddWinGet.js @@ -18,6 +18,7 @@ import { CippWizard } from 'src/components/layout' import { WizardTableField } from 'src/components/tables' import PropTypes from 'prop-types' import { + Condition, RFFCFormCheck, RFFCFormInput, RFFCFormRadio, @@ -54,6 +55,9 @@ const AddWinGet = () => { const [searchPostRequest, foundPackages] = useLazyGenericPostRequestQuery() const handleSubmit = async (values) => { + if (values.AssignTo === 'customGroup') { + values.AssignTo = values.customGroup + } values.selectedTenants.map( (tenant) => (values[`Select_${tenant.defaultDomainName}`] = tenant.defaultDomainName), ) @@ -240,6 +244,18 @@ const AddWinGet = () => { name="AssignTo" label="Assign to all users and devices" > + + + + From 060509e2185b7dc78ff2dc8051b0a71dbac2f834 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 27 Oct 2023 00:42:01 +0200 Subject: [PATCH 102/205] add removal of standards from table --- .../tenant/standards/ListAppliedStandards.js | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.js index bf56b10ffbe2..d22f03d05862 100644 --- a/src/views/tenant/standards/ListAppliedStandards.js +++ b/src/views/tenant/standards/ListAppliedStandards.js @@ -21,6 +21,8 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import Skeleton from 'react-loading-skeleton' import { CippTable } from 'src/components/tables' import allStandardsList from 'src/data/standards' +import { useState } from 'react' +import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas' const RefreshAction = () => { const [execStandards, execStandardsResults] = useLazyGenericGetRequestQuery() @@ -80,6 +82,43 @@ const DeleteAction = () => { ) } const ListAppliedStandards = () => { + const [ExecuteGetRequest, getResults] = useLazyGenericGetRequestQuery() + + const Offcanvas = (row, rowIndex, formatExtraData) => { + const [ocVisible, setOCVisible] = useState(false) + const handleDeleteIntuneTemplate = (apiurl, message) => { + ModalService.confirm({ + title: 'Confirm', + body:
    {message}
    , + onConfirm: () => ExecuteGetRequest({ path: apiurl }), + confirmLabel: 'Continue', + cancelLabel: 'Cancel', + }) + } + return ( + <> + + handleDeleteIntuneTemplate( + `api/RemoveStandard?ID=${row.displayName}`, + 'Do you want to delete this standard?', + ) + } + > + + + setOCVisible(false)} + /> + + ) + } const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() @@ -124,6 +163,11 @@ const ListAppliedStandards = () => { sortable: true, exportSelector: 'StandardsExport', }, + { + name: 'Actions', + cell: Offcanvas, + maxWidth: '80px', + }, ] const [intuneGetRequest, intuneTemplates] = useLazyGenericGetRequestQuery() const [transportGetRequest, transportTemplates] = useLazyGenericGetRequestQuery() @@ -530,6 +574,10 @@ const ListAppliedStandards = () => { {listStandardsAllTenants && ( + {getResults.isLoading && } + {getResults.isSuccess && ( + {getResults.data?.Results} + )} Date: Fri, 27 Oct 2023 01:20:00 +0200 Subject: [PATCH 103/205] added custom groups for intune --- src/views/endpoint/intune/MEMAddPolicy.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/views/endpoint/intune/MEMAddPolicy.js b/src/views/endpoint/intune/MEMAddPolicy.js index 327954c91f40..f87f6b87dd2a 100644 --- a/src/views/endpoint/intune/MEMAddPolicy.js +++ b/src/views/endpoint/intune/MEMAddPolicy.js @@ -45,6 +45,9 @@ const AddPolicy = () => { (tenant) => (values[`Select_${tenant.defaultDomainName}`] = tenant.defaultDomainName), ) values.TemplateType = values.Type + if (values.AssignTo === 'customGroup') { + values.AssignTo = values.customGroup + } genericPostRequest({ path: '/api/AddPolicy', values: values }) } const [matchMap, setMatchMap] = useState([]) @@ -234,6 +237,18 @@ const AddPolicy = () => { name="AssignTo" label="Assign to all users and devices" > + + + +
    From c59af15c1f321999f50c0d9ccde66881fa375f37 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 27 Oct 2023 01:41:31 +0200 Subject: [PATCH 104/205] add autoextend button --- .../administration/ListGDAPRelationships.js | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/views/tenant/administration/ListGDAPRelationships.js b/src/views/tenant/administration/ListGDAPRelationships.js index a5703bd84b22..ee162af21975 100644 --- a/src/views/tenant/administration/ListGDAPRelationships.js +++ b/src/views/tenant/administration/ListGDAPRelationships.js @@ -34,7 +34,7 @@ const RefreshAction = () => { {isLoading && } {error && } {isSuccess && } - Map GDAP Groups + Map recently approved relationships ) } @@ -89,6 +89,13 @@ const Actions = (row, rowIndex, formatExtraData) => { title={'GDAP - ' + row?.customer?.displayName} extendedInfo={extendedInfo} actions={[ + { + label: 'Enable automatic extension', + color: 'info', + modal: true, + modalUrl: `/api/ExecAutoExtendGDAP?ID=${row.id}`, + modalMessage: 'Are you sure you want to enable auto-extend for this relationship', + }, { label: 'Terminate Relationship', color: 'danger', @@ -149,6 +156,13 @@ const GDAPRelationships = () => { exportSelector: 'endDateTime', cell: cellDateFormatter({ format: 'short' }), }, + { + name: 'Auto Extend', + selector: (row) => row['autoExtendDuration'], + sortable: true, + exportSelector: 'endDateTime', + cell: (row) => (row['autoExtendDuration'] === 'PT0S' ? 'No' : 'Yes'), + }, { name: 'Actions', cell: Actions, @@ -158,6 +172,7 @@ const GDAPRelationships = () => { return (
    } capabilities={{ allTenants: true, helpContext: 'https://google.com' }} title="GDAP Relationship List" tenantSelector={false} @@ -176,8 +191,13 @@ const GDAPRelationships = () => { modalUrl: `/api/ExecDeleteGDAPRelationship?&GDAPID=!id`, modalMessage: 'Are you sure you want to terminate these relationships?', }, + { + label: 'Auto Extend Relationship', + modal: true, + modalUrl: `/api/ExecAutoExtendGDAP&ID=!id`, + modalMessage: 'Are you sure you want to enable automatic extension?', + }, ], - actions: [], }, keyField: 'id', columns, From f34fe8f5c99b6acb0e1ecf4add98335861ee6f4e Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 27 Oct 2023 01:43:02 +0200 Subject: [PATCH 105/205] fix bulk extend --- src/views/tenant/administration/ListGDAPRelationships.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/tenant/administration/ListGDAPRelationships.js b/src/views/tenant/administration/ListGDAPRelationships.js index ee162af21975..dcba0648a907 100644 --- a/src/views/tenant/administration/ListGDAPRelationships.js +++ b/src/views/tenant/administration/ListGDAPRelationships.js @@ -194,7 +194,7 @@ const GDAPRelationships = () => { { label: 'Auto Extend Relationship', modal: true, - modalUrl: `/api/ExecAutoExtendGDAP&ID=!id`, + modalUrl: `/api/ExecAutoExtendGDAP?ID=!id`, modalMessage: 'Are you sure you want to enable automatic extension?', }, ], From ca4ad83aeee510b792bd819b11db0722a3ecae38 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 27 Oct 2023 13:38:06 +0200 Subject: [PATCH 106/205] uncomment migration tool becasue extra month --- src/_nav.js | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/_nav.js b/src/_nav.js index 4933192c1a26..623201a42809 100644 --- a/src/_nav.js +++ b/src/_nav.js @@ -263,7 +263,7 @@ const _nav = [ name: 'GDAP Roles', to: '/tenant/administration/gdap-roles', }, - /*{ + { component: CNavItem, name: 'Migration Wizard', to: '/tenant/administration/gdap', @@ -272,7 +272,7 @@ const _nav = [ component: CNavItem, name: 'GDAP Migration Status', to: '/tenant/administration/gdap-status', - },*/ + }, { component: CNavItem, name: 'Invite Wizard', @@ -283,12 +283,6 @@ const _nav = [ name: 'GDAP Relationships', to: '/tenant/administration/gdap-relationships', }, - { - component: CNavItem, - name: 'Documentation', - href: 'https://cipp.app/docs/user/usingcipp/GDAP/migration', - target: '_blank', - }, ], }, { From 12872b8cb81e400730195dc973ee7b0c64234977 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 27 Oct 2023 14:04:12 +0200 Subject: [PATCH 107/205] old content --- src/_nav.js | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/_nav.js b/src/_nav.js index 623201a42809..852e4334d8cb 100644 --- a/src/_nav.js +++ b/src/_nav.js @@ -332,15 +332,6 @@ const _nav = [ }, ], }, - // Coming in another branch (heads up) - //{ - //component: CNavGroup, - //name: 'Vulnerabilities', - //section: 'Security & Compliance', - //to: '/security/vulnerabilities', - //icon: , - //items: [], - //}, { component: CNavGroup, name: 'Defender', From 34a8a1a0ef3f9b02c06d254cd9354048379a783e Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 27 Oct 2023 14:17:17 +0200 Subject: [PATCH 108/205] upped version --- public/version_latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/version_latest.txt b/public/version_latest.txt index 64b5ae3938a0..ae153944ee8b 100644 --- a/public/version_latest.txt +++ b/public/version_latest.txt @@ -1 +1 @@ -4.4.0 \ No newline at end of file +4.5.0 \ No newline at end of file From 12c30565340fb4a22f949008f538237878645944 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Mon, 30 Oct 2023 12:13:38 -0400 Subject: [PATCH 109/205] GDAP Relationships - Add CA role check column - Switch filters to Complex type - Add new filters for Auto Extend --- .../administration/ListGDAPRelationships.js | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/views/tenant/administration/ListGDAPRelationships.js b/src/views/tenant/administration/ListGDAPRelationships.js index dcba0648a907..6ee6a8cfa07c 100644 --- a/src/views/tenant/administration/ListGDAPRelationships.js +++ b/src/views/tenant/administration/ListGDAPRelationships.js @@ -163,6 +163,17 @@ const GDAPRelationships = () => { exportSelector: 'endDateTime', cell: (row) => (row['autoExtendDuration'] === 'PT0S' ? 'No' : 'Yes'), }, + { + name: 'Includes CA Role', + selector: (row) => row?.accessDetails, + sortable: true, + cell: (row) => + row?.accessDetails?.unifiedRoles?.filter( + (e) => e.roleDefinitionId === '62e90394-69f5-4237-9190-012177145e10', + ).length > 0 + ? 'Yes' + : 'No', + }, { name: 'Actions', cell: Actions, @@ -178,9 +189,17 @@ const GDAPRelationships = () => { tenantSelector={false} datatable={{ filterlist: [ - { filterName: 'Active Relationships', filter: '"status":"active"' }, - { filterName: 'Terminated Relationships', filter: '"status":"Terminated"' }, + { filterName: 'Active Relationships', filter: 'Complex: status eq active' }, + { filterName: 'Terminated Relationships', filter: 'Complex: status eq terminated' }, { filterName: 'Pending Relationships', filter: 'Pending' }, + { + filterName: 'Active with Auto Extend', + filter: 'Complex: status eq active; autoExtendDuration ne PT0S', + }, + { + filterName: 'Active without Auto Extend', + filter: 'Complex: status eq active; autoExtendDuration eq PT0S', + }, ], tableProps: { selectableRows: true, From 7a52b0a42db1664daa8468815da8367ee354dd1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Mon, 30 Oct 2023 20:17:51 +0100 Subject: [PATCH 110/205] All the link fixes in 1 commit --- .github/ISSUE_TEMPLATE/feature.yml | 2 +- .github/workflows/Close_Stale_Issues_and_PRs.yml | 2 +- .github/workflows/Comment_on_Issues.yml | 4 ++-- src/views/cipp/CIPPSettings.js | 2 +- src/views/endpoint/intune/MEMAddPolicy.js | 4 +++- src/views/tenant/administration/GDAPWizard.js | 6 +----- src/views/tenant/standards/ApplyStandard.js | 2 +- 7 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml index af41440ebfc9..de839daf7a30 100644 --- a/.github/ISSUE_TEMPLATE/feature.yml +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -11,7 +11,7 @@ body: - Please search the existing feature request to see if there has been a similar issue filed. - - If a feature has been filed before, but not followed up by a contributor, you can develop the feature yourself by checking the development documentation [here](https://cipp.app/docs/dev/). + - If a feature has been filed before, but not followed up by a contributor, you can develop the feature yourself by checking the development documentation [here](https://docs.cipp.app/dev-documentation/cipp-dev-guide/setting-up-for-local-development). - Repeat feature requests are allowed if the previous request has been closed for more than 30 days diff --git a/.github/workflows/Close_Stale_Issues_and_PRs.yml b/.github/workflows/Close_Stale_Issues_and_PRs.yml index 7eff0bf2f619..35bd43d9f8f0 100644 --- a/.github/workflows/Close_Stale_Issues_and_PRs.yml +++ b/.github/workflows/Close_Stale_Issues_and_PRs.yml @@ -9,7 +9,7 @@ jobs: steps: - uses: actions/stale@v4 with: - stale-issue-message: 'This issue is stale because it has been open 10 days with no activity. We will close this issue soon. If you want this feature implemented you can contribute it. See: https://cipp.app/GettingStarted/Contributions/ . Please notify the team if you are working on this yourself.' + stale-issue-message: 'This issue is stale because it has been open 10 days with no activity. We will close this issue soon. If you want this feature implemented you can contribute it. See: https://docs.cipp.app/dev-documentation/contributing-to-the-code . Please notify the team if you are working on this yourself.' close-issue-message: 'This issue was closed because it has been stalled for 14 days with no activity.' stale-issue-label: 'no-activity' exempt-issue-labels: 'planned' diff --git a/.github/workflows/Comment_on_Issues.yml b/.github/workflows/Comment_on_Issues.yml index 6bd12f6a005b..c43a6c184869 100644 --- a/.github/workflows/Comment_on_Issues.yml +++ b/.github/workflows/Comment_on_Issues.yml @@ -16,7 +16,7 @@ jobs: with: issue-number: ${{ github.event.issue.number }} body: | - Thank you for creating a bug. Please make sure your bug is indeed a unique case by checking current and past issues, and reading the complete documentation at https://kelvintegelaar.github.io/CIPP + Thank you for creating a bug. Please make sure your bug is indeed a unique case by checking current and past issues, and reading the complete documentation at https://docs.cipp.app/ If your bug is a known documentation issue, it will be closed without notice by a contributor. To confirm that this is not a bug found in the documentation, please copy and paste the following comment: "I confirm that I have checked the documentation thoroughly and believe this to be an actual bug.". Without confirming, your report will be closed in 24 hours. If you'd like this bug to be assigned to you, please comment "I would like to work on this please!". @@ -35,5 +35,5 @@ jobs: Your current priority is set to "No Priority". No Priority Feature requests automatically get closed in two days if a contributor does not accept the FR. If you are a sponsor you can request an upgrade of priority. To upgrade the priority type "I would like to upgrade the priority". - If you want this feature to be integrated you can always do this yourself by checking out our contributions guide at https://cipp.app/docs/dev/. Contributors to the CIPP project reserve the right to close feature requests at will. + If you want this feature to be integrated you can always do this yourself by checking out our contributions guide at https://docs.cipp.app/dev-documentation/contributing-to-the-code. Contributors to the CIPP project reserve the right to close feature requests at will. If you'd like this feature request to be assigned to you, please comment "I would like to work on this please!". diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 8c46d827521f..66c09666d7ec 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -402,7 +402,7 @@ const GeneralSettings = () => { documentation on how to add permissions{' '} here diff --git a/src/views/endpoint/intune/MEMAddPolicy.js b/src/views/endpoint/intune/MEMAddPolicy.js index f87f6b87dd2a..a564ce3d36db 100644 --- a/src/views/endpoint/intune/MEMAddPolicy.js +++ b/src/views/endpoint/intune/MEMAddPolicy.js @@ -130,7 +130,9 @@ const AddPolicy = () => {

    Step 2

    Enter the raw JSON for this policy. See{' '} - this for more + + this + {' '} information.
    diff --git a/src/views/tenant/administration/GDAPWizard.js b/src/views/tenant/administration/GDAPWizard.js index 8722bde0b5f7..3c6147e7547d 100644 --- a/src/views/tenant/administration/GDAPWizard.js +++ b/src/views/tenant/administration/GDAPWizard.js @@ -54,11 +54,7 @@ const GDAPWizard = () => {
    The GDAP migration tool requires setup. Please check the documentation{' '} - + here.

    diff --git a/src/views/tenant/standards/ApplyStandard.js b/src/views/tenant/standards/ApplyStandard.js index 64d9fbf0ffce..2f84f99607ea 100644 --- a/src/views/tenant/standards/ApplyStandard.js +++ b/src/views/tenant/standards/ApplyStandard.js @@ -83,7 +83,7 @@ const ApplyStandard = () => { > Ensure you read{' '} - + the documentation fully {' '} before proceeding with this wizard. Some of the changes cannot be reverted by CIPP. From e79ed922ddd3b30a13b5618c6bf35deedeb989a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Bentsen=20Kj=C3=A6rg=C3=A5rd=20=28KBK=29?= Date: Wed, 1 Nov 2023 09:27:59 +0100 Subject: [PATCH 111/205] Fix wrongly used variable --- src/views/identity/administration/UserActions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/identity/administration/UserActions.js b/src/views/identity/administration/UserActions.js index 2a96415e0b15..774d27e481c3 100644 --- a/src/views/identity/administration/UserActions.js +++ b/src/views/identity/administration/UserActions.js @@ -31,7 +31,7 @@ export default function UserActions({ tenantDomain, userId, userEmail, className } const editLink = `/identity/administration/users/edit?tenantDomain=${tenantDomain}&userId=${userId}` - const editMailboxLink = `/email/administration/edit-mailbox-permissions?tenantDomain=${tenantDomain}&userId=${userId}` + const editMailboxLink = `/email/administration/edit-mailbox-permissions?tenantDomain=${tenantDomain}&userId=${userEmail}` const actions = [ { From 798dd658c1dca6d7115eb5814f347b85964aa420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Thu, 2 Nov 2023 00:24:54 +0100 Subject: [PATCH 112/205] Add hover help text to standards radio buttons --- src/data/standards.json | 46 +++++++++---------- .../tenant/standards/ListAppliedStandards.js | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/data/standards.json b/src/data/standards.json index 328a668fdc85..4e57829a0265 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -2,7 +2,7 @@ { "name": "standards.MailContacts.GeneralContact.Enabled", "cat": "Global", - "helpText": "", + "helpText": "Receives emails about updates about subscriptions etc", "addedComponent": { "type": "input", "name": "standards.MailContacts.GeneralContact.Mail", @@ -13,7 +13,7 @@ { "name": "standards.MailContacts.SecurityContact.Enabled", "cat": "Global", - "helpText": "", + "helpText": "Receives emails about security alerts or advisories by Microsoft", "addedComponent": { "type": "input", "name": "standards.MailContacts.SecurityContact.Mail", @@ -24,7 +24,7 @@ { "name": "standards.MailContacts.MarketingContact.Enabled", "cat": "Global", - "helpText": "", + "helpText": "Receives the emails related to marketing; new features etc", "addedComponent": { "type": "input", "name": "standards.MailContacts.MarketingContact.Mail", @@ -35,7 +35,7 @@ { "name": "standards.MailContacts.TechContact.Enabled", "cat": "Global", - "helpText": "", + "helpText": "Receives emails related to possible technical issues, service disruptions, etc", "addedComponent": { "type": "input", "name": "standards.MailContacts.TechContact.Mail", @@ -46,7 +46,7 @@ { "name": "standards.AuditLog", "cat": "Global", - "helpText": "", + "helpText": "Also runs Enable-OrganizationCustomization if needed", "addedComponent": null, "label": "Enable the Unified Audit Log" }, @@ -67,21 +67,21 @@ { "name": "standards.ModernAuth", "cat": "Global", - "helpText": "", + "helpText": "Modern Authentication is enabled by default. This standard is no longer required and can be safely disabled", "addedComponent": null, "label": "Enable Modern Authentication" }, { "name": "standards.DisableBasicAuth", "cat": "Global", - "helpText": "", + "helpText": "Basic Authentication is disabled by default. This standard is no longer required and can be safely disabled", "addedComponent": null, "label": "Disable Basic Authentication" }, { "name": "standards.DisableBasicAuthSMTP", "cat": "Global", - "helpText": "", + "helpText": "Disables SMTP AUTH for the organization. This is the default for new tenants. Can be overridden by enabling SMTP AUTH on specific users", "addedComponent": null, "label": "Disable SMTP Basic Authentication" }, @@ -95,14 +95,14 @@ { "name": "standards.PWnumberMatchingRequiredState", "cat": "AAD", - "helpText": "", + "helpText": "Passwordless with number matching is now enabled by default. This standard is no longer required and can be safely disabled", "addedComponent": null, "label": "Enable Passwordless with Number Matching" }, { "cat": "AAD", "name": "standards.PWdisplayAppInformationRequiredState", - "helpText": "", + "helpText": "Enables the MS authenticator app to display information about the app that is requesting authentication", "addedComponent": null, "label": "Enable Passwordless with Location information and Number Matching" }, @@ -151,21 +151,21 @@ { "cat": "AAD", "name": "standards.SecurityDefaults", - "helpText": "", + "helpText": "Enables security defaults for the tenant. This has a lot of implications and should be carefully considered before enabling", "addedComponent": null, "label": "Enable Security Defaults" }, { "cat": "AAD", "name": "standards.PasswordExpireDisabled", - "helpText": "", + "helpText": "Disables the expiration of passwords for the tenant", "addedComponent": null, "label": "Do not expire passwords" }, { "cat": "AAD", "name": "standards.DisableSecurityGroupUsers", - "helpText": "", + "helpText": "Completely disables the creation of security groups by users. This also breaks the ability to manage groups themselves, or create Teams", "addedComponent": null, "label": "Disable Security Group creation by users" }, @@ -210,14 +210,14 @@ { "cat": "AAD", "name": "standards.NudgeMFA.enable", - "helpText": "", + "helpText": "Enables registration campaign for the tenant", "addedComponent": null, "label": "Request to setup Authenticator if not setup yet." }, { "cat": "AAD", "name": "standards.NudgeMFA.disable", - "helpText": "", + "helpText": "Disables registration campaign for the tenant", "addedComponent": null, "label": "Disables the request to setup Authenticator if setup." }, @@ -238,7 +238,7 @@ { "cat": "AAD", "name": "standards.UndoOauth", - "helpText": "", + "helpText": "Disables App consent and set to Allow user consent for apps", "addedComponent": null, "label": "Undo App Consent Standard" }, @@ -252,7 +252,7 @@ { "cat": "AAD", "name": "standards.EnableFIDO2", - "helpText": "", + "helpText": "Enables the FIDO2 authenticationMethod for the tenant", "addedComponent": null, "label": "Enable FIDO2 capabilities" }, @@ -298,14 +298,14 @@ { "name": "standards.AutoExpandArchive", "cat": "Exchange", - "helpText": "", + "helpText": "Enables auto-expanding archives for the tenant", "addedComponent": null, "label": "Enable Auto-expanding archives" }, { "name": "standards.SpoofWarn.enable", "cat": "Exchange", - "helpText": "", + "helpText": "Adds indicators to e-mail messages received from external senders in Outlook. Works on all Outlook clients/OWA", "addedComponent": null, "label": "Enable Spoofing warnings for Outlook (This e-mail is external identifiers)" }, @@ -340,7 +340,7 @@ { "name": "standards.ActivityBasedTimeout", "cat": "Global", - "helpText": "", + "helpText": "Enables and sets Idle session timeout for Microsoft 365 to 1 hour. This policy affects most M365 web apps", "addedComponent": null, "label": "Enable 1 hour Activity based Timeout" }, @@ -414,7 +414,7 @@ { "name": "standards.intuneDeviceRetirementDays.Enabled", "cat": "Intune", - "helpText": "", + "helpText": "A value between 0 and 270 is supported. A value of 0 disables retirement.", "addedComponent": { "type": "input", "name": "standards.intuneDeviceRetirementDays.days", @@ -485,14 +485,14 @@ { "name": "standards.DeletedUserRentention", "cat": "SharePoint", - "helpText": "", + "helpText": "Sets the retenton period for deleted users OneDrive to 1 year/365 days", "addedComponent": null, "label": "Retain a deleted user OneDrive for 1 year" }, { "name": "standards.DisableUserSiteCreate", "cat": "SharePoint", - "helpText": "", + "helpText": "Disables users from creating new SharePoint sites", "addedComponent": null, "label": "Disable site creation by standard users" }, diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.js index d22f03d05862..ed0c7856a40a 100644 --- a/src/views/tenant/standards/ListAppliedStandards.js +++ b/src/views/tenant/standards/ListAppliedStandards.js @@ -514,7 +514,7 @@ const ListAppliedStandards = () => { name: template.name, }))} placeholder="Select a template" - label="Choose your Transport Rule templates to apply" + label="Choose your Exchange Connector templates to apply" /> )} From 33582cf3fbd781c5fe774ed490646df91c37427e Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 2 Nov 2023 16:14:09 +0100 Subject: [PATCH 113/205] required field marker --- src/components/forms/RFFComponents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/forms/RFFComponents.js b/src/components/forms/RFFComponents.js index 5365819e6623..414a472b6c82 100644 --- a/src/components/forms/RFFComponents.js +++ b/src/components/forms/RFFComponents.js @@ -420,7 +420,7 @@ export const RFFSelectSearch = ({ isMulti={multi} /> )} - + {meta.error && meta.touched && {meta.error}} ) }} From f2376defc14f05558c01aafd24c6d345921a6070 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 2 Nov 2023 17:02:00 +0100 Subject: [PATCH 114/205] added frontend changes --- src/views/cipp/CIPPSettings.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 66c09666d7ec..b8ad4330c463 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -452,13 +452,13 @@ const GeneralSettings = () => { <> p['@odata.type'] == '#microsoft.graph.group', )} title="Groups" /> p['@odata.type'] == '#microsoft.graph.directoryRole', )} title="Roles" From 6cc21e1e9be354820e9b45d5d5e46e00a93aeea7 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 2 Nov 2023 17:23:59 +0100 Subject: [PATCH 115/205] improved text --- src/views/cipp/CIPPSettings.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index b8ad4330c463..b242ee5257cd 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -416,7 +416,9 @@ const GeneralSettings = () => { )} {permissionsResult.data.Results?.MissingGroups.length > 0 && ( <> - Your SAM User is missing the following group memberships. + Your SAM User is missing the following group memberships. If you have setup + GDAP outside of CIPP, execute an access check to confirm access and role + availability to your tenants {permissionsResult.data.Results?.MissingGroups?.map((r, index) => ( {r} @@ -426,7 +428,7 @@ const GeneralSettings = () => { )} {permissionsResult.data.Results?.CIPPGroupCount == 0 && ( <> - NOTE: Your M365 GDAP groups were not set up by CIPP. Please check the groups + NOTE: Your GDAP groups were not set up by CIPP. Please check the groups below to see if you have the correct GDAP permissions, or execute an access check. From 5a49ac5e9b59de142160bbff4b942012d00801d1 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 2 Nov 2023 22:58:47 +0100 Subject: [PATCH 116/205] fixed wizard bug by improving text --- src/views/cipp/Setup.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/cipp/Setup.js b/src/views/cipp/Setup.js index 82da760206e7..e8d9a33d3064 100644 --- a/src/views/cipp/Setup.js +++ b/src/views/cipp/Setup.js @@ -51,7 +51,7 @@ const Setup = () => { const valbutton = (value) => getResults.data?.step < 5 ? undefined - : `You must finish the setup process. you are currently at step ${getResults.data?.step} of 5.` + : `You do not have to click next. Finish the wizard via the setup button below. After it says "Setup Completed" you may browse away from this page.` const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const [genericGetRequest, getResults] = useLazyGenericGetRequestQuery() const onSubmit = (values) => { @@ -159,14 +159,14 @@ const Setup = () => { Please use a Global Administrator to perform these tasks. You can restart the process at any time, by clicking on the start button once more.

    - + startCIPPSetup(true)} - validate={valbutton} + validate={() => valbutton()} > Start Setup Wizard From 51dccd8f64e41c442c590d8a25bc36a83b94fc20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Bentsen=20Kj=C3=A6rg=C3=A5rd=20=28KBK=29?= Date: Fri, 3 Nov 2023 10:06:38 +0100 Subject: [PATCH 117/205] Fix caldefaults LimitedDetails and AvailabilityOnly --- src/data/standards.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/data/standards.json b/src/data/standards.json index 328a668fdc85..2db75bc38816 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -371,12 +371,12 @@ "value": "Contributor" }, { - "label": "Free Busy Time And Subject And Location - The user can view free/busy time within the calendar and the subject and location of appointments.", - "value": "FreeBusyTimeAndSubjectAndLocation" + "label": "Limited Details - The user can view free/busy time within the calendar and the subject and location of appointments.", + "value": "LimitedDetails" }, { - "label": "Indicates that the user can view only free/busy time within the calendar.", - "value": "FreeBusyTimeOnly" + "label": "Availability Only - Indicates that the user can view only free/busy time within the calendar.", + "value": "AvailabilityOnly" }, { "label": "None - The user has no permissions on the folder.", From 07e6de8b8d6c6c0ec30f75dc61e20b757172088e Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 15:53:18 +0100 Subject: [PATCH 118/205] improved access checks --- src/views/cipp/CIPPSettings.js | 389 ++++++++++++++++++--------------- 1 file changed, 210 insertions(+), 179 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index b242ee5257cd..385075a06fc2 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -151,9 +151,10 @@ const CIPPSettings = () => { export default CIPPSettings const GeneralSettings = () => { - const { data: versions, isSuccess: isSuccessVersion } = useLoadVersionsQuery() const { data: tenants = [] } = useListTenantsQuery({ AllTenantSelector: false }) const [checkPermissions, permissionsResult] = useLazyExecPermissionsAccessCheckQuery() + const [checkGDAP, GDAPResult] = useLazyGenericGetRequestQuery() + const [clearCache, clearCacheResult] = useLazyExecClearCacheQuery() const [checkAccess, accessCheckResult] = useLazyExecTenantsAccessCheckQuery() const [selectedTenants, setSelectedTenants] = useState([]) @@ -207,6 +208,34 @@ const GeneralSettings = () => { }, ] + const checkGDAPColumns = [ + { + name: 'Tenant', + selector: (row) => row['Tenant'], + grow: 0, + cell: cellGenericFormatter(), + }, + { + name: 'Error Type', + selector: (row) => row['Type'], + minWidth: '380px', + maxWidth: '380px', + cell: cellGenericFormatter(), + }, + { + name: 'Issue', + selector: (row) => row?.Issue, + }, + { + name: 'Resolution Link', + selector: (row) => row?.link, + }, + { + name: 'Relationship ID', + selector: (row) => row?.Relationship, + }, + ] + const handleCheckAccess = () => { const mapped = tenants.reduce( (current, { customerId, ...rest }) => ({ @@ -287,21 +316,6 @@ const GeneralSettings = () => { return tokenOffcanvasGroups } - const handleClearCache = useConfirmModal({ - body:
    Are you sure you want to clear the cache?
    , - onConfirm: () => { - clearCache({ tenantsOnly: false }) - localStorage.clear() - }, - }) - - const handleClearCacheTenant = useConfirmModal({ - body:
    Are you sure you want to clear the cache?
    , - onConfirm: () => { - clearCache({ tenantsOnly: true }) - }, - }) - const tableProps = { pagination: false, actions: [ @@ -336,39 +350,12 @@ const GeneralSettings = () => {
    - - - Frontend Version - - - -
    Latest: {isSuccessVersion ? versions.RemoteCIPPVersion : }
    -
    Current: {isSuccessVersion ? versions.LocalCIPPVersion : }
    -
    -
    -
    - - - - API Version - - - -
    Latest: {isSuccessVersion ? versions.RemoteCIPPAPIVersion : }
    -
    Current: {isSuccessVersion ? versions.LocalCIPPAPIVersion : }
    -
    -
    +
    - + Permissions Check @@ -414,25 +401,6 @@ const GeneralSettings = () => { )} - {permissionsResult.data.Results?.MissingGroups.length > 0 && ( - <> - Your SAM User is missing the following group memberships. If you have setup - GDAP outside of CIPP, execute an access check to confirm access and role - availability to your tenants - - {permissionsResult.data.Results?.MissingGroups?.map((r, index) => ( - {r} - ))} - - - )} - {permissionsResult.data.Results?.CIPPGroupCount == 0 && ( - <> - NOTE: Your GDAP groups were not set up by CIPP. Please check the groups - below to see if you have the correct GDAP permissions, or execute an access - check. - - )} {permissionsResult.data.Results?.AccessTokenDetails?.Name !== '' && ( <> @@ -450,68 +418,70 @@ const GeneralSettings = () => { /> )} - {permissionsResult.data.Results?.Memberships !== '' && ( + + )} + + + + + + + GDAP Check + + + Click the button below to start a check for general GDAP settings. + checkGDAP({ path: '/api/ExecAccessChecks?GDAP=true' })} + disabled={GDAPResult.isFetching} + className="mt-3" + > + {GDAPResult.isFetching && ( + + )} + Run GDAP Check + + + + {GDAPResult.isSuccess && GDAPResult.data.Results.GDAPIssues?.length > 0 && ( + + )} + {GDAPResult.isSuccess && GDAPResult.data.Results.GDAPIssues?.length === 0 && ( + + No relationships with issues found. Please perform a Permissions Check or + Tenant Access Check if you are experiencing issues. + + )} + {GDAPResult.isSuccess && ( <> p['@odata.type'] == '#microsoft.graph.group', )} title="Groups" /> p['@odata.type'] == '#microsoft.graph.directoryRole', )} title="Roles" /> )} - - )} - - - - - - - Clear Cache - - - - Click the button below to clear the application cache. You can clear only the tenant - cache, or all caches. + - handleClearCache()} - disabled={clearCacheResult.isFetching} - className="me-3 mt-3" - > - {clearCacheResult.isFetching && ( - - )} - Clear All Caches - - handleClearCacheTenant()} - disabled={clearCacheResult.isFetching} - className="me-3 mt-3" - > - {clearCacheResult.isFetching && ( - - )} - Clear Tenant Cache - - {clearCacheResult.isSuccess && ( -
    {clearCacheResult.data?.Results}
    - )} - - + + Tenant Access Check @@ -541,6 +511,7 @@ const GeneralSettings = () => { )} + { - - -
    ) @@ -1359,6 +1327,8 @@ const DNSSettings = () => { const [getDnsConfig, getDnsConfigResult] = useLazyGetDnsConfigQuery() const [editDnsConfig, editDnsConfigResult] = useLazyEditDnsConfigQuery() const inputRef = useRef(null) + const [clearCache, clearCacheResult] = useLazyExecClearCacheQuery() + const { data: versions, isSuccess: isSuccessVersion } = useLoadVersionsQuery() const [alertVisible, setAlertVisible] = useState(false) @@ -1370,7 +1340,20 @@ const DNSSettings = () => { setAlertVisible(false) }, 2000) } + const handleClearCache = useConfirmModal({ + body:
    Are you sure you want to clear the cache?
    , + onConfirm: () => { + clearCache({ tenantsOnly: false }) + localStorage.clear() + }, + }) + const handleClearCacheTenant = useConfirmModal({ + body:
    Are you sure you want to clear the cache?
    , + onConfirm: () => { + clearCache({ tenantsOnly: true }) + }, + }) const resolvers = ['Google', 'Cloudflare', 'Quad9'] return ( @@ -1382,81 +1365,129 @@ const DNSSettings = () => { Application Settings -

    DNS Resolver

    - - {resolvers.map((r, index) => ( + + + + + +

    DNS Resolver

    + + {resolvers.map((r, index) => ( + switchResolver(r)} + color={r === getDnsConfigResult.data.Resolver ? 'primary' : 'secondary'} + key={index} + > + {r} + + ))} + + {(editDnsConfigResult.isSuccess || editDnsConfigResult.isError) && ( + + {editDnsConfigResult.isSuccess + ? editDnsConfigResult.data.Results + : 'Error setting resolver'} + + )} +
    + +

    Frontend Version

    + +
    Latest: {isSuccessVersion ? versions.RemoteCIPPVersion : }
    +
    Current: {isSuccessVersion ? versions.LocalCIPPVersion : }
    +
    +
    + + +

    Clear Caches

    switchResolver(r)} - color={r === getDnsConfigResult.data.Resolver ? 'primary' : 'secondary'} - key={index} + className="me-2 mb-2" + onClick={() => handleClearCache()} + disabled={clearCacheResult.isFetching} > - {r} + {clearCacheResult.isFetching && ( + + )} + Clear All Cache - ))} -
    - {(editDnsConfigResult.isSuccess || editDnsConfigResult.isError) && ( - - {editDnsConfigResult.isSuccess - ? editDnsConfigResult.data.Results - : 'Error setting resolver'} - - )} - - - - -

    Settings Backup

    - runBackup({ path: '/api/ExecRunBackup' })} - disabled={RunBackupResult.isFetching} - className="me-3 mt-3" - > - {RunBackupResult.isFetching && ( - + handleClearCacheTenant()} + disabled={clearCacheResult.isFetching} + > + {clearCacheResult.isFetching && ( + + )} + Clear Tenant Cache + + {clearCacheResult.isSuccess && ( +
    {clearCacheResult.data?.Results}
    )} - Run backup -
    - handleChange(e)} - /> - inputRef.current.click()} - disabled={restoreBackupResult.isFetching} - className="me-3 mt-3" - > - {restoreBackupResult.isFetching && ( - +
    + + +

    Settings Backup

    + runBackup({ path: '/api/ExecRunBackup' })} + disabled={RunBackupResult.isFetching} + > + {RunBackupResult.isFetching && ( + + )} + Run backup + + handleChange(e)} + /> + inputRef.current.click()} + disabled={restoreBackupResult.isFetching} + > + {restoreBackupResult.isFetching && ( + + )} + Restore backup + + {restoreBackupResult.isSuccess && ( + <> + {restoreBackupResult.data.Results} + )} - Restore backup - - {restoreBackupResult.isSuccess && ( - <> - {restoreBackupResult.data.Results} - - )} - {RunBackupResult.isSuccess && ( - <> - - downloadTxtFile(RunBackupResult.data.backup)} - className="m-1" - > - Download Backup - - - - )} -
    + {RunBackupResult.isSuccess && ( + <> + + downloadTxtFile(RunBackupResult.data.backup)}> + Download Backup + + + + )} +
    + +

    Backend API Version

    + +
    Latest: {isSuccessVersion ? versions.RemoteCIPPAPIVersion : }
    +
    Current: {isSuccessVersion ? versions.LocalCIPPAPIVersion : }
    +
    + )} From 9fee67b87bf4977b08494a80079c7a25365081ad Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 17:50:29 +0100 Subject: [PATCH 119/205] improved the layout a little --- src/views/cipp/CIPPSettings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 385075a06fc2..fd049b7629cd 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -354,7 +354,7 @@ const GeneralSettings = () => {
    - + Permissions Check From 81249e1c80e409d5f83f67e8a7cd8abec3fc5e44 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 17:50:59 +0100 Subject: [PATCH 120/205] improve layout of table --- src/views/cipp/CIPPSettings.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index fd049b7629cd..4c6b60f71992 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -218,8 +218,6 @@ const GeneralSettings = () => { { name: 'Error Type', selector: (row) => row['Type'], - minWidth: '380px', - maxWidth: '380px', cell: cellGenericFormatter(), }, { From fd8164e794044ffef6a1d93dd59f9176e11db8d3 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 17:53:10 +0100 Subject: [PATCH 121/205] adding links --- src/views/cipp/CIPPSettings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 4c6b60f71992..cdb468d9df3a 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -226,7 +226,7 @@ const GeneralSettings = () => { }, { name: 'Resolution Link', - selector: (row) => row?.link, + selector: (row) => row?.Link, }, { name: 'Relationship ID', From 01047abd9ad3d4123db7784f849b8ea0145b57f0 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 18:02:36 +0100 Subject: [PATCH 122/205] improved cellformatter for urls --- src/components/tables/CellGenericFormat.js | 4 ++++ src/views/cipp/CIPPSettings.js | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/components/tables/CellGenericFormat.js b/src/components/tables/CellGenericFormat.js index e442378a5633..1015106a1935 100644 --- a/src/components/tables/CellGenericFormat.js +++ b/src/components/tables/CellGenericFormat.js @@ -7,6 +7,7 @@ import { } from '@fortawesome/free-solid-svg-icons' import { CellBadge } from 'src/components/tables' import { CBadge, CTooltip } from '@coreui/react' +import { startsWith } from 'core-js/core/string' const IconWarning = () => const IconError = () => @@ -79,6 +80,9 @@ export const cellGenericFormatter = if (cell.toLowerCase() === 'failed') { return {CellTip('Failed to retrieve from API')} } + if (cell.toLowerCase().startsWith('http')) { + return `URL` + } return CellTip(cell) } if (typeof cell === 'number') { diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index cdb468d9df3a..9e223b32cc1c 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -223,14 +223,17 @@ const GeneralSettings = () => { { name: 'Issue', selector: (row) => row?.Issue, + cell: cellGenericFormatter(), }, { name: 'Resolution Link', selector: (row) => row?.Link, + cell: cellGenericFormatter(), }, { name: 'Relationship ID', selector: (row) => row?.Relationship, + cell: cellGenericFormatter(), }, ] From 5344fda97a4683a9fbb977b4eadf3fbfb6f4e3bb Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 18:06:44 +0100 Subject: [PATCH 123/205] improvements --- src/views/cipp/CIPPSettings.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 9e223b32cc1c..576ad9ee520d 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -212,13 +212,16 @@ const GeneralSettings = () => { { name: 'Tenant', selector: (row) => row['Tenant'], - grow: 0, cell: cellGenericFormatter(), + minWidth: '200px', + maxWidth: '200px', }, { name: 'Error Type', selector: (row) => row['Type'], cell: cellGenericFormatter(), + minWidth: '150px', + maxWidth: '150px', }, { name: 'Issue', From 39fdbc7422787e09e593d4869ca16dce96b64692 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 18:16:50 +0100 Subject: [PATCH 124/205] fix --- src/components/tables/CellGenericFormat.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/tables/CellGenericFormat.js b/src/components/tables/CellGenericFormat.js index 1015106a1935..1fd1a70e6138 100644 --- a/src/components/tables/CellGenericFormat.js +++ b/src/components/tables/CellGenericFormat.js @@ -7,7 +7,6 @@ import { } from '@fortawesome/free-solid-svg-icons' import { CellBadge } from 'src/components/tables' import { CBadge, CTooltip } from '@coreui/react' -import { startsWith } from 'core-js/core/string' const IconWarning = () => const IconError = () => From e8c9603d014e4116e8ecf3afd7fa096b10ad06a2 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 18:39:53 +0100 Subject: [PATCH 125/205] design changes --- src/components/tables/CellGenericFormat.js | 2 +- src/views/cipp/CIPPSettings.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/tables/CellGenericFormat.js b/src/components/tables/CellGenericFormat.js index 1fd1a70e6138..d78f7759dcd4 100644 --- a/src/components/tables/CellGenericFormat.js +++ b/src/components/tables/CellGenericFormat.js @@ -80,7 +80,7 @@ export const cellGenericFormatter = return {CellTip('Failed to retrieve from API')} } if (cell.toLowerCase().startsWith('http')) { - return `URL` + return URL } return CellTip(cell) } diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 576ad9ee520d..ace316706511 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -220,8 +220,8 @@ const GeneralSettings = () => { name: 'Error Type', selector: (row) => row['Type'], cell: cellGenericFormatter(), - minWidth: '150px', - maxWidth: '150px', + minWidth: '100px', + maxWidth: '100px', }, { name: 'Issue', @@ -427,7 +427,7 @@ const GeneralSettings = () => { - + GDAP Check From 34e6d99c8692ac52397c7ad532e110055874b3da Mon Sep 17 00:00:00 2001 From: John Duprey Date: Fri, 3 Nov 2023 13:50:23 -0400 Subject: [PATCH 126/205] Mailbox Restores --- src/_nav.js | 19 ++ .../utilities/CippActionsOffcanvas.js | 7 + src/components/utilities/SharedModal.js | 3 + src/routes.js | 14 ++ .../tools/MailboxRestoreWizard.js | 214 ++++++++++++++++++ .../email-exchange/tools/MailboxRestores.js | 170 ++++++++++++++ 6 files changed, 427 insertions(+) create mode 100644 src/views/email-exchange/tools/MailboxRestoreWizard.js create mode 100644 src/views/email-exchange/tools/MailboxRestores.js diff --git a/src/_nav.js b/src/_nav.js index 852e4334d8cb..272eb82cd2f8 100644 --- a/src/_nav.js +++ b/src/_nav.js @@ -677,6 +677,25 @@ const _nav = [ }, ], }, + { + component: CNavGroup, + name: 'Tools', + section: 'Tools', + to: '/email/tools', + icon: , + items: [ + { + component: CNavItem, + name: 'Mailbox Restore Wizard', + to: '/email/tools/mailbox-restore-wizard', + }, + { + component: CNavItem, + name: 'Mailbox Restores', + to: '/email/tools/mailbox-restores', + }, + ], + }, { component: CNavTitle, name: 'Settings', diff --git a/src/components/utilities/CippActionsOffcanvas.js b/src/components/utilities/CippActionsOffcanvas.js index 371276f49375..ce148defa5a4 100644 --- a/src/components/utilities/CippActionsOffcanvas.js +++ b/src/components/utilities/CippActionsOffcanvas.js @@ -85,6 +85,13 @@ export default function CippActionsOffcanvas(props) { title: 'Confirm', onConfirm: () => genericGetRequest({ path: modalUrl }), }) + } else if (modalType === 'codeblock') { + ModalService.open({ + data: modalBody, + componentType: 'codeblock', + title: 'Info', + size: 'lg', + }) } else { ModalService.confirm({ key: modalContent, diff --git a/src/components/utilities/SharedModal.js b/src/components/utilities/SharedModal.js index 4975c0cc17f6..26b473729a91 100644 --- a/src/components/utilities/SharedModal.js +++ b/src/components/utilities/SharedModal.js @@ -2,6 +2,7 @@ import React from 'react' import { CButton, CModal, CModalBody, CModalFooter, CModalHeader, CModalTitle } from '@coreui/react' import PropTypes from 'prop-types' import { CippTable } from 'src/components/tables' +import CippCodeBlock from 'src/components/utilities/CippCodeBlock' /** * @@ -18,6 +19,8 @@ function mapBodyComponent({ componentType, data, componentProps }) { return
    {Array.isArray(data) && data.map((el, idx) =>
    {el}
    )}
    case 'text': return String(data) + case 'codeblock': + return default: return String(data) } diff --git a/src/routes.js b/src/routes.js index d305063a4109..5be9247bfae0 100644 --- a/src/routes.js +++ b/src/routes.js @@ -225,6 +225,10 @@ const ServiceHealth = React.lazy(() => import('src/views/tenant/administration/S const EnterpriseApplications = React.lazy(() => import('src/views/tenant/administration/ListEnterpriseApps'), ) +const MailboxRestoreWizard = React.lazy(() => + import('src/views/email-exchange/tools/MailboxRestoreWizard'), +) +const MailboxRestores = React.lazy(() => import('src/views/email-exchange/tools/MailboxRestores')) const routes = [ // { path: '/', exact: true, name: 'Home' }, @@ -544,6 +548,16 @@ const routes = [ name: 'List Spamfilter Templates', component: SpamFilterTemplate, }, + { + path: '/email/tools/mailbox-restore-wizard', + name: 'Mailbox Restore Wizard', + component: MailboxRestoreWizard, + }, + { + path: '/email/tools/mailbox-restores', + name: 'Mailbox Restores', + component: MailboxRestores, + }, { path: '/email/spamfilter/add-template', name: 'Add Spamfilter Template', diff --git a/src/views/email-exchange/tools/MailboxRestoreWizard.js b/src/views/email-exchange/tools/MailboxRestoreWizard.js new file mode 100644 index 000000000000..2e8acddc59f7 --- /dev/null +++ b/src/views/email-exchange/tools/MailboxRestoreWizard.js @@ -0,0 +1,214 @@ +import React from 'react' +import { CCallout, CCol, CListGroup, CListGroupItem, CRow, CSpinner } from '@coreui/react' +import { Field, FormSpy } from 'react-final-form' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faExclamationTriangle, faTimes, faCheck } from '@fortawesome/free-solid-svg-icons' +import { useSelector } from 'react-redux' +import { CippWizard } from 'src/components/layout' +import PropTypes from 'prop-types' +import { + RFFCFormCheck, + RFFCFormInput, + RFFCFormSelect, + RFFCFormSwitch, + RFFSelectSearch, +} from 'src/components/forms' +import { TenantSelector } from 'src/components/utilities' +import { useListUsersQuery } from 'src/store/api/users' +import { useGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app' + +const Error = ({ name }) => ( + + touched && error ? ( + + + {error} + + ) : null + } + /> +) + +Error.propTypes = { + name: PropTypes.string.isRequired, +} + +const MailboxRestoreWizard = () => { + const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) + const { + data: sourceMailboxes = [], + isFetching: sMailboxesIsFetching, + error: sMailboxError, + } = useGenericGetRequestQuery({ + path: '/api/ListMailboxes', + params: { TenantFilter: tenantDomain, SoftDeletedMailbox: true }, + }) + const { + data: targetMailboxes = [], + isFetching: tMailboxesIsFetching, + error: tMailboxError, + } = useGenericGetRequestQuery({ + path: '/api/ListMailboxes', + params: { TenantFilter: tenantDomain }, + }) + const currentSettings = useSelector((state) => state.app) + const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() + + const handleSubmit = async (values) => { + const shippedValues = { + TenantFilter: tenantDomain, + RequestName: values.RequestName, + SourceMailbox: values.SourceMailbox.value, + TargetMailbox: values.TargetMailbox.value, + BadItemLimit: values.BadItemLimit, + LargeItemLimit: values.LargeItemLimit, + AcceptLargeDataLoss: values.AcceptLargeDataLoss, + } + + //alert(JSON.stringify(values, null, 2)) + genericPostRequest({ path: '/api/ExecMailboxRestore', values: shippedValues }) + } + + return ( + + +
    +

    Step 1

    +
    Choose a tenant
    +
    +
    + {(props) => } +
    +
    + +
    +

    Step 2

    +
    Select a soft deleted mailbox to restore.
    +
    +
    +
    + ({ + value: mbx.ExchangeGuid, + name: `${mbx.displayName} <${mbx.UPN}>`, + }))} + placeholder={!sMailboxesIsFetching ? 'Select mailbox' : 'Loading...'} + name="SourceMailbox" + /> + {sMailboxError && Failed to load source mailboxes} +
    +
    +
    + +
    +

    Step 2

    +
    Select a mailbox to restore to.
    +
    +
    +
    + ({ + value: mbx.ExchangeGuid, + name: `${mbx.displayName} <${mbx.UPN}>`, + }))} + placeholder={!tMailboxesIsFetching ? 'Select mailbox' : 'Loading...'} + name="TargetMailbox" + /> + {sMailboxError && Failed to load source mailboxes} +
    +
    +
    + +
    +

    Step 3

    +
    Enter Restore Request Options
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    +

    Step 4

    +
    Confirm and apply
    +
    +
    +
    + {postResults.isFetching && ( + + Loading + + )} + {postResults.isSuccess && ( + + {postResults.data.Results.map((message, idx) => { + return
  • {message}
  • + })} +
    + )} + {!postResults.isSuccess && ( + + {(props) => ( + <> + + + + +
    Selected Tenant:
    + {tenantDomain} +
    + +
    Source Mailbox:
    + {props.values.SourceMailbox.label} +
    + +
    Target Mailbox:
    + {props.values.TargetMailbox.label} +
    +
    +
    +
    + + )} +
    + )} +
    +
    +
    +
    + ) +} + +export default MailboxRestoreWizard diff --git a/src/views/email-exchange/tools/MailboxRestores.js b/src/views/email-exchange/tools/MailboxRestores.js new file mode 100644 index 000000000000..05459fa1e08d --- /dev/null +++ b/src/views/email-exchange/tools/MailboxRestores.js @@ -0,0 +1,170 @@ +import { CSpinner, CButton } from '@coreui/react' +import { + faEllipsisV, + faTrashAlt, + faExclamationTriangle, + faCheck, +} from '@fortawesome/free-solid-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import React, { useState } from 'react' +import { useSelector } from 'react-redux' +import { CippPageList } from 'src/components/layout' +import { + CellDelegatedPrivilege, + cellDateFormatter, + cellNullTextFormatter, +} from 'src/components/tables' +import { CippActionsOffcanvas } from 'src/components/utilities' +import GDAPRoles from 'src/data/GDAPRoles' +import { useLazyGenericGetRequestQuery } from 'src/store/api/app' +import { ModalService } from 'src/components/utilities' +import { constants } from 'buffer' +import Skeleton from 'react-loading-skeleton' +import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' + +const Actions = (row, rowIndex, formatExtraData) => { + const [ocVisible, setOCVisible] = useState(false) + const [getMailboxRestoreStats, mailboxRestoreStats] = useLazyGenericGetRequestQuery() + const tenant = useSelector((state) => state.app.currentTenant) + + function statProperty(mailboxRestoreStats, propertyName) { + return ( + <> + {mailboxRestoreStats.isFetching && } + {!mailboxRestoreStats.isFetching && + mailboxRestoreStats.isSuccess && + (mailboxRestoreStats?.data[0][propertyName]?.toString() ?? ' ')} + + ) + } + + function loadOffCanvasDetails(id) { + setOCVisible(true) + getMailboxRestoreStats({ + path: 'api/ListMailboxRestores', + params: { + TenantFilter: tenant.defaultDomainName, + Identity: id, + Statistics: true, + IncludeReport: true, + }, + }) + } + var extendedInfo = [ + { label: 'Status', value: statProperty(mailboxRestoreStats, 'Status') }, + { label: 'Status Detail', value: statProperty(mailboxRestoreStats, 'StatusDetail') }, + { label: 'Sync Stage', value: statProperty(mailboxRestoreStats, 'SyncStage') }, + { label: 'Data Consistency', value: statProperty(mailboxRestoreStats, 'DataConsistencyScore') }, + { + label: 'Estimated Transfer', + value: statProperty(mailboxRestoreStats, 'EstimatedTransferSize'), + }, + { + label: 'Bytes Transferred', + value: statProperty(mailboxRestoreStats, 'BytesTransferred'), + }, + { + label: 'Percent Complete', + value: statProperty(mailboxRestoreStats, 'PercentComplete'), + }, + { + label: 'Estimated Item Count', + value: statProperty(mailboxRestoreStats, 'EstimatedTransferItemCount'), + }, + { + label: 'Transferred Items', + value: statProperty(mailboxRestoreStats, 'ItemsTransferred'), + }, + ] + + return ( + <> + loadOffCanvasDetails(row.Identity)}> + + + setOCVisible(false)} + /> + + ) +} + +const MailboxRestores = () => { + const tenant = useSelector((state) => state.app.currentTenant) + const columns = [ + { + name: 'Name', + selector: (row) => row['Name'], + sortable: true, + exportSelector: 'Name', + cell: cellGenericFormatter(), + }, + { + name: 'Status', + selector: (row) => row['Status'], + sortable: true, + exportSelector: 'Status', + cell: cellGenericFormatter(), + }, + { + name: 'Target Mailbox', + selector: (row) => row['TargetMailbox'], + sortable: true, + exportSelector: 'TargetMailbox', + cell: cellGenericFormatter(), + }, + { + name: 'Created', + selector: (row) => row['WhenCreated'], + sortable: true, + exportSelector: 'WhenCreated', + cell: cellDateFormatter({ format: 'short' }), + }, + { + name: 'Changed', + selector: (row) => row['WhenChanged'], + sortable: true, + exportSelector: 'WhenChanged', + cell: cellDateFormatter({ format: 'short' }), + }, + { + name: 'Actions', + cell: Actions, + maxWidth: '80px', + }, + ] + return ( +
    + +
    + ) +} + +export default MailboxRestores From 10cdce00435ebac982c7c6816154a549ce136f96 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 18:57:35 +0100 Subject: [PATCH 127/205] sortable --- src/views/cipp/CIPPSettings.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index ace316706511..d4405538b881 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -212,6 +212,7 @@ const GeneralSettings = () => { { name: 'Tenant', selector: (row) => row['Tenant'], + sortable: true, cell: cellGenericFormatter(), minWidth: '200px', maxWidth: '200px', @@ -219,6 +220,7 @@ const GeneralSettings = () => { { name: 'Error Type', selector: (row) => row['Type'], + sortable: true, cell: cellGenericFormatter(), minWidth: '100px', maxWidth: '100px', @@ -226,15 +228,18 @@ const GeneralSettings = () => { { name: 'Issue', selector: (row) => row?.Issue, + sortable: true, cell: cellGenericFormatter(), }, { name: 'Resolution Link', + sortable: true, selector: (row) => row?.Link, cell: cellGenericFormatter(), }, { name: 'Relationship ID', + sortable: true, selector: (row) => row?.Relationship, cell: cellGenericFormatter(), }, From 66fd3dbedf7c6b86b62ebe42ccae55f7d80b3145 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 18:58:30 +0100 Subject: [PATCH 128/205] fixes interface bugs --- src/views/cipp/CIPPSettings.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index d4405538b881..ff405447c7ed 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -86,7 +86,6 @@ import { CellDelegatedPrivilege } from 'src/components/tables/CellDelegatedPrivi import { TableModalButton } from 'src/components/buttons' import { cellTableFormatter } from 'src/components/tables/CellTable' import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' -import { check } from 'prettier' const CIPPSettings = () => { const [active, setActive] = useState(1) From fd8d3930d9d2c3f734c9d433efc0a59792e9301e Mon Sep 17 00:00:00 2001 From: John Duprey Date: Fri, 3 Nov 2023 13:59:46 -0400 Subject: [PATCH 129/205] Update SharedModal.js --- src/components/utilities/SharedModal.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/utilities/SharedModal.js b/src/components/utilities/SharedModal.js index 26b473729a91..fb8501fc93ca 100644 --- a/src/components/utilities/SharedModal.js +++ b/src/components/utilities/SharedModal.js @@ -20,7 +20,9 @@ function mapBodyComponent({ componentType, data, componentProps }) { case 'text': return String(data) case 'codeblock': - return + return ( + + ) default: return String(data) } From b776180ebc58918c38f76577ee6dec90d678ba2c Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 19:00:40 +0100 Subject: [PATCH 130/205] fixed backup wizard --- src/views/cipp/CIPPSettings.js | 35 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index ff405447c7ed..965ae5beef54 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -337,23 +337,7 @@ const GeneralSettings = () => { />, ], } - const downloadTxtFile = (data) => { - const txtdata = [JSON.stringify(RunBackupResult.data.backup)] - const file = new Blob(txtdata, { type: 'text/plain' }) - const element = document.createElement('a') - element.href = URL.createObjectURL(file) - element.download = 'CIPP-Backup' + Date.now() + '.json' - document.body.appendChild(element) - element.click() - } - const inputRef = useRef(null) - const handleChange = (e) => { - const fileReader = new FileReader() - fileReader.readAsText(e.target.files[0], 'UTF-8') - fileReader.onload = (e) => { - restoreBackup({ path: '/api/ExecRestoreBackup', values: e.target.result }) - } - } + return (
    @@ -1339,7 +1323,22 @@ const DNSSettings = () => { const { data: versions, isSuccess: isSuccessVersion } = useLoadVersionsQuery() const [alertVisible, setAlertVisible] = useState(false) - + const downloadTxtFile = (data) => { + const txtdata = [JSON.stringify(RunBackupResult.data.backup)] + const file = new Blob(txtdata, { type: 'text/plain' }) + const element = document.createElement('a') + element.href = URL.createObjectURL(file) + element.download = 'CIPP-Backup' + Date.now() + '.json' + document.body.appendChild(element) + element.click() + } + const handleChange = (e) => { + const fileReader = new FileReader() + fileReader.readAsText(e.target.files[0], 'UTF-8') + fileReader.onload = (e) => { + restoreBackup({ path: '/api/ExecRestoreBackup', values: e.target.result }) + } + } const switchResolver = (resolver) => { editDnsConfig({ resolver }) getDnsConfig() From b015da799d2d127a2ac974eabc4091e4b3485437 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 3 Nov 2023 19:01:34 +0100 Subject: [PATCH 131/205] upped to 4.5.5 --- public/version_latest.txt | 2 +- version_latest.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/version_latest.txt b/public/version_latest.txt index ae153944ee8b..50021202769b 100644 --- a/public/version_latest.txt +++ b/public/version_latest.txt @@ -1 +1 @@ -4.5.0 \ No newline at end of file +4.5.5 \ No newline at end of file diff --git a/version_latest.txt b/version_latest.txt index 64b5ae3938a0..50021202769b 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -4.4.0 \ No newline at end of file +4.5.5 \ No newline at end of file From c1975ee731f90ea0c283989a07316d5215ab6f35 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 6 Nov 2023 12:02:16 +0100 Subject: [PATCH 132/205] fixes issue with addtional emails not showing --- src/views/email-exchange/administration/MailboxesList.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/views/email-exchange/administration/MailboxesList.js b/src/views/email-exchange/administration/MailboxesList.js index cc4015b9708e..d3a7c92463a7 100644 --- a/src/views/email-exchange/administration/MailboxesList.js +++ b/src/views/email-exchange/administration/MailboxesList.js @@ -8,6 +8,7 @@ import { Link } from 'react-router-dom' import { CippActionsOffcanvas } from 'src/components/utilities' import { TitleButton } from 'src/components/buttons' import { CellTip } from 'src/components/tables' +import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' const MailboxList = () => { const tenant = useSelector((state) => state.app.currentTenant) @@ -219,10 +220,10 @@ const MailboxList = () => { }, { name: 'Additional Email Addresses', - selector: (row) => 'Click to Expand', + selector: (row) => row.AdditionalEmailAddresses, exportSelector: 'AdditionalEmailAddresses', sortable: true, - omit: true, + cell: cellGenericFormatter(), }, { name: 'Actions', From 0cfadeac2ca2c9d014ae19a0d736c27c84122250 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Wed, 8 Nov 2023 20:51:01 -0500 Subject: [PATCH 133/205] Add missing description --- .../tools/MailboxRestoreWizard.js | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/views/email-exchange/tools/MailboxRestoreWizard.js b/src/views/email-exchange/tools/MailboxRestoreWizard.js index 2e8acddc59f7..d0a810813bbe 100644 --- a/src/views/email-exchange/tools/MailboxRestoreWizard.js +++ b/src/views/email-exchange/tools/MailboxRestoreWizard.js @@ -116,20 +116,27 @@ const MailboxRestoreWizard = () => {
    - ({ - value: mbx.ExchangeGuid, - name: `${mbx.displayName} <${mbx.UPN}>`, - }))} - placeholder={!tMailboxesIsFetching ? 'Select mailbox' : 'Loading...'} - name="TargetMailbox" - /> - {sMailboxError && Failed to load source mailboxes} + + {(props) => ( + <> + {console.log(props)} + ({ + value: mbx.ExchangeGuid, + name: `${mbx.displayName} <${mbx.UPN}>`, + }))} + placeholder={!tMailboxesIsFetching ? 'Select mailbox' : 'Loading...'} + name="TargetMailbox" + /> + {sMailboxError && Failed to load source mailboxes} + + )} +

    - +

    Step 3

    Enter Restore Request Options
    From b7d87d48f3626831048a57e6bd248a6e2b88417c Mon Sep 17 00:00:00 2001 From: John Duprey Date: Wed, 8 Nov 2023 21:14:09 -0500 Subject: [PATCH 134/205] Update CIPPSettings.js --- src/views/cipp/CIPPSettings.js | 76 ++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 965ae5beef54..1186669a3897 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -356,7 +356,7 @@ const GeneralSettings = () => { checkPermissions()} disabled={permissionsResult.isFetching} - className="mt-3" + className="my-3 me-2" > {permissionsResult.isFetching && ( @@ -365,6 +365,22 @@ const GeneralSettings = () => { {permissionsResult.isSuccess && ( <> + {permissionsResult.data.Results?.AccessTokenDetails?.Name !== '' && ( + <> + setTokenOffcanvasVisible(true)}> + Details + + setTokenOffcanvasVisible(false)} + /> + + )} @@ -394,22 +410,6 @@ const GeneralSettings = () => { )} - {permissionsResult.data.Results?.AccessTokenDetails?.Name !== '' && ( - <> - setTokenOffcanvasVisible(true)}> - Details - - setTokenOffcanvasVisible(false)} - /> - - )} )} @@ -425,13 +425,31 @@ const GeneralSettings = () => { checkGDAP({ path: '/api/ExecAccessChecks?GDAP=true' })} disabled={GDAPResult.isFetching} - className="mt-3" + className="my-3 me-2" > {GDAPResult.isFetching && ( )} Run GDAP Check + {GDAPResult.isSuccess && ( + <> + p['@odata.type'] == '#microsoft.graph.group', + )} + title="Groups" + /> + p['@odata.type'] == '#microsoft.graph.directoryRole', + )} + title="Roles" + /> + + )} {GDAPResult.isSuccess && GDAPResult.data.Results.GDAPIssues?.length > 0 && ( @@ -440,6 +458,11 @@ const GeneralSettings = () => { reportName="none" columns={checkGDAPColumns} data={GDAPResult.data.Results.GDAPIssues} + filterlist={[ + { filterName: 'Errors', filter: 'Complex: Type eq Error' }, + { filterName: 'Warnings', filter: 'Complex: Type eq Warning' }, + ]} + defaultFilterText="Complex: Type eq Error" /> )} {GDAPResult.isSuccess && GDAPResult.data.Results.GDAPIssues?.length === 0 && ( @@ -448,23 +471,6 @@ const GeneralSettings = () => { Tenant Access Check if you are experiencing issues. )} - {GDAPResult.isSuccess && ( - <> - p['@odata.type'] == '#microsoft.graph.group', - )} - title="Groups" - /> - p['@odata.type'] == '#microsoft.graph.directoryRole', - )} - title="Roles" - /> - - )} From ad814dd10c5dd786876aaffc8877bd97ca55bf28 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Wed, 8 Nov 2023 21:17:41 -0500 Subject: [PATCH 135/205] Update MailboxRestoreWizard.js --- .../tools/MailboxRestoreWizard.js | 27 +++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/views/email-exchange/tools/MailboxRestoreWizard.js b/src/views/email-exchange/tools/MailboxRestoreWizard.js index d0a810813bbe..5f0f6d95de26 100644 --- a/src/views/email-exchange/tools/MailboxRestoreWizard.js +++ b/src/views/email-exchange/tools/MailboxRestoreWizard.js @@ -116,23 +116,16 @@ const MailboxRestoreWizard = () => {

    - - {(props) => ( - <> - {console.log(props)} - ({ - value: mbx.ExchangeGuid, - name: `${mbx.displayName} <${mbx.UPN}>`, - }))} - placeholder={!tMailboxesIsFetching ? 'Select mailbox' : 'Loading...'} - name="TargetMailbox" - /> - {sMailboxError && Failed to load source mailboxes} - - )} - + ({ + value: mbx.ExchangeGuid, + name: `${mbx.displayName} <${mbx.UPN}>`, + }))} + placeholder={!tMailboxesIsFetching ? 'Select mailbox' : 'Loading...'} + name="TargetMailbox" + /> + {sMailboxError && Failed to load source mailboxes}

    From 3f56c8d06a9c31cc0314124cb9f1c779e901b8d2 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Wed, 8 Nov 2023 21:23:19 -0500 Subject: [PATCH 136/205] Force ipv4 start-swa --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5e277e8bc02b..486ca94f90ba 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "test": "react-scripts test", "test:cov": "npm test -- --coverage --watchAll=false", "test:debug": "react-scripts --inspect-brk test --runInBand", - "start-swa": "swa start --swa-config-location .vscode http://127.0.0.1:3000 --api-location http://localhost:7071", + "start-swa": "swa start --swa-config-location .vscode http://127.0.0.1:3000 --api-location http://127.0.0.1:7071", "prepare": "husky install" }, "config": { From d9cf840559022de4fb6cb4a0357ec5aca8613ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Fri, 10 Nov 2023 20:17:02 +0100 Subject: [PATCH 137/205] fix oauth colum giving object id and not application id --- src/views/tenant/administration/ListOauthApps.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/views/tenant/administration/ListOauthApps.js b/src/views/tenant/administration/ListOauthApps.js index fb45f6bf115a..8a3a2fd0a3d2 100644 --- a/src/views/tenant/administration/ListOauthApps.js +++ b/src/views/tenant/administration/ListOauthApps.js @@ -23,10 +23,17 @@ const columns = [ }, { name: 'Application ID', - selector: (row) => row['ID'], + selector: (row) => row['ApplicationID'], sortable: true, - cell: (row) => CellTip(row['ID']), - exportSelector: 'ID', + cell: (row) => CellTip(row['ApplicationID']), + exportSelector: 'ApplicationID', + }, + { + name: 'Object ID', + selector: (row) => row['ObjectID'], + sortable: true, + cell: (row) => CellTip(row['ObjectID']), + exportSelector: 'ObjectID', }, { name: 'Scope (Permissions)', From af2ba64d5dfcda3a8f4dcffddc60372878ab376c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Sat, 11 Nov 2023 00:26:19 +0100 Subject: [PATCH 138/205] Add mailbox type to Email settings pane under list user --- src/views/identity/administration/UserEmailSettings.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/views/identity/administration/UserEmailSettings.js b/src/views/identity/administration/UserEmailSettings.js index 2fbdfe09828b..731591e45833 100644 --- a/src/views/identity/administration/UserEmailSettings.js +++ b/src/views/identity/administration/UserEmailSettings.js @@ -11,6 +11,10 @@ const formatter = (cell, warning = false, reverse = false, colourless = false) = export default function UserEmailSettings({ userId, tenantDomain, className = null }) { const { data: details, isFetching, error } = useListMailboxDetailsQuery({ userId, tenantDomain }) const content = [ + { + heading: 'Mailbox Type', + body: details?.RecipientTypeDetails, + }, { heading: 'User Not Restricted', body: formatter(details?.BlockedForSpam, false, true), From fefa5c6e12e5c14fb1bf61bf6d2464160c9a48ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Sat, 11 Nov 2023 15:58:20 +0100 Subject: [PATCH 139/205] Add Sign-In Status to UserDetails --- src/views/identity/administration/UserActions.js | 2 +- src/views/identity/administration/UserDetails.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/views/identity/administration/UserActions.js b/src/views/identity/administration/UserActions.js index 774d27e481c3..9ffa80bb3267 100644 --- a/src/views/identity/administration/UserActions.js +++ b/src/views/identity/administration/UserActions.js @@ -75,7 +75,7 @@ export default function UserActions({ tenantDomain, userId, userEmail, className ), }, { - label: 'Block Sign In', + label: 'Block Sign-In', link: '#', icon: faBan, onClick: () => diff --git a/src/views/identity/administration/UserDetails.js b/src/views/identity/administration/UserDetails.js index 8fc0d182b266..52f5e0666430 100644 --- a/src/views/identity/administration/UserDetails.js +++ b/src/views/identity/administration/UserDetails.js @@ -8,6 +8,10 @@ export default function UserDetails({ tenantDomain, userId, className = null }) const { data: user = {}, isFetching, error } = useListUserQuery({ tenantDomain, userId }) const content = [ + { + heading: 'Sign-In Status', + body: user.accountEnabled ? 'Enabled' : 'Blocked', + }, { heading: 'First Name', body: user.givenName, From eb2c6ff6aa7505e924d39a01dd55b8eb78c672d1 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sat, 11 Nov 2023 13:21:11 -0500 Subject: [PATCH 140/205] Settings improvements - Lazy load tab content - Tweak style and breakpoints --- src/views/cipp/CIPPSettings.js | 101 ++++++++++++++++++++------------- 1 file changed, 62 insertions(+), 39 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 1186669a3897..49ec0af8cec8 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -87,6 +87,18 @@ import { TableModalButton } from 'src/components/buttons' import { cellTableFormatter } from 'src/components/tables/CellTable' import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' +function Lazy({ visible, children }) { + const rendered = useRef(visible) + + if (visible && !rendered.current) { + rendered.current = true + } + + if (!rendered.current) return null + + return
    {children}
    +} + const CIPPSettings = () => { const [active, setActive] = useState(1) return ( @@ -119,28 +131,43 @@ const CIPPSettings = () => { - + + + - + + + - + + + + - + + + - + + + - + + + - + + + @@ -346,17 +373,16 @@ const GeneralSettings = () => {
    - + - - Permissions Check - + - Click the button below to start a permissions check. +

    Permissions Check

    +

    Click the button below to start a permissions check.

    checkPermissions()} disabled={permissionsResult.isFetching} - className="my-3 me-2" + className="mb-3 me-2" > {permissionsResult.isFetching && ( @@ -367,7 +393,7 @@ const GeneralSettings = () => { <> {permissionsResult.data.Results?.AccessTokenDetails?.Name !== '' && ( <> - setTokenOffcanvasVisible(true)}> + setTokenOffcanvasVisible(true)}> Details {
    - + - - GDAP Check - + - Click the button below to start a check for general GDAP settings. +

    GDAP Check

    +

    Click the button below to start a check for general GDAP settings.

    checkGDAP({ path: '/api/ExecAccessChecks?GDAP=true' })} disabled={GDAPResult.isFetching} - className="my-3 me-2" + className="mb-3 me-2" > {GDAPResult.isFetching && ( @@ -435,14 +460,14 @@ const GeneralSettings = () => { {GDAPResult.isSuccess && ( <> p['@odata.type'] == '#microsoft.graph.group', )} title="Groups" /> p['@odata.type'] == '#microsoft.graph.directoryRole', )} @@ -480,10 +505,9 @@ const GeneralSettings = () => { - - Tenant Access Check - + +

    Tenant Access Check

    @@ -1374,15 +1398,13 @@ const DNSSettings = () => { {getDnsConfigResult.isUninitialized && getDnsConfig()} {getDnsConfigResult.isSuccess && ( - - Application Settings - + - + - +

    DNS Resolver

    {resolvers.map((r, index) => ( @@ -1406,18 +1428,18 @@ const DNSSettings = () => { )}
    - +

    Frontend Version

    Latest: {isSuccessVersion ? versions.RemoteCIPPVersion : }
    -
    Current: {isSuccessVersion ? versions.LocalCIPPVersion : }
    +
    + Current: {isSuccessVersion ? versions.LocalCIPPVersion : } +
    -
    - - +

    Clear Caches

    {
    {clearCacheResult.data?.Results}
    )}
    - - +

    Settings Backup

    { )}
    - +

    Backend API Version

    Latest: {isSuccessVersion ? versions.RemoteCIPPAPIVersion : }
    -
    Current: {isSuccessVersion ? versions.LocalCIPPAPIVersion : }
    +
    + Current: {isSuccessVersion ? versions.LocalCIPPAPIVersion : } +
    From 668f06e2cf6236787d0a8dd263cdc5dfe03582d7 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sat, 11 Nov 2023 13:34:18 -0500 Subject: [PATCH 141/205] Tweak table filters --- src/views/cipp/CIPPSettings.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.js index 49ec0af8cec8..c1d655ec72c7 100644 --- a/src/views/cipp/CIPPSettings.js +++ b/src/views/cipp/CIPPSettings.js @@ -488,6 +488,7 @@ const GeneralSettings = () => { { filterName: 'Warnings', filter: 'Complex: Type eq Warning' }, ]} defaultFilterText="Complex: Type eq Error" + isModal={true} /> )} {GDAPResult.isSuccess && GDAPResult.data.Results.GDAPIssues?.length === 0 && ( @@ -800,9 +801,19 @@ const ExcludedTenantsSettings = () => { }, ], }, + isModal: true, filterlist: [ - { filterName: 'Excluded Tenants', filter: '"Excluded":true' }, - { filterName: 'Included Tenants', filter: '"Excluded":false' }, + { filterName: 'Excluded Tenants', filter: 'Complex: Excluded eq true' }, + { filterName: 'Included Tenants', filter: 'Complex: Excluded eq false' }, + { + filterName: 'GDAP & DAP', + filter: + 'Complex: delegatedPrivilegeStatus eq delegatedAndGranularDelegetedAdminPrivileges', + }, + { + filterName: 'GDAP Only', + filter: 'Complex: delegatedPrivilegeStatus eq granularDelegatedAdminPrivileges', + }, ], keyField: 'id', columns, From 50b5be66ae8e3f71c2db97e27af85f5eb0cd0ed1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Sat, 11 Nov 2023 21:08:42 +0100 Subject: [PATCH 142/205] Steal JD's code --- .../administration/EditMailboxPermissions.js | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.js b/src/views/email-exchange/administration/EditMailboxPermissions.js index fd41f5af70e1..7d7fad968cd7 100644 --- a/src/views/email-exchange/administration/EditMailboxPermissions.js +++ b/src/views/email-exchange/administration/EditMailboxPermissions.js @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react' +import React, { useEffect, useRef, useState } from 'react' import { CButton, CCallout, @@ -43,6 +43,18 @@ import { RFFCFormSwitch } from 'src/components/forms' const formatter = (cell, warning = false, reverse = false, colourless = false) => CellBoolean({ cell, warning, reverse, colourless }) +function Lazy({ visible, children }) { + const rendered = useRef(visible) + + if (visible && !rendered.current) { + rendered.current = true + } + + if (!rendered.current) return null + + return
    {children}
    +} + const MailboxSettings = () => { const dispatch = useDispatch() let query = useQuery() @@ -129,16 +141,24 @@ const MailboxSettings = () => { - + + + - + + + - + + + - + + + From b900a4645f752cf49cbf9e7acc1f11b2212f6f42 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 13 Nov 2023 17:40:17 +0100 Subject: [PATCH 143/205] updated repos --- .../workflows/Check_for_Version_Update.yml | 3 ++- .../workflows/Close_Stale_Issues_and_PRs.yml | 3 ++- .github/workflows/CodeQL_Analyser.yml | 3 ++- .github/workflows/Comment_on_Issues.yml | 19 +++++-------------- .github/workflows/Label_Issues.yml | 6 +++--- .github/workflows/Node_Project_Check.yml | 3 ++- .github/workflows/label_sponsor_requests.yml | 6 +++--- 7 files changed, 19 insertions(+), 24 deletions(-) diff --git a/.github/workflows/Check_for_Version_Update.yml b/.github/workflows/Check_for_Version_Update.yml index 4a0b3f8d4c76..ec6f3e68769b 100644 --- a/.github/workflows/Check_for_Version_Update.yml +++ b/.github/workflows/Check_for_Version_Update.yml @@ -1,11 +1,12 @@ --- name: Check for Version Update -on: # yamllint disable-line rule:truthy +on: pull_request: branches: [master, main] workflow_dispatch: jobs: build: + if: github.repository_owner == 'KelvinTegelaar' name: 'Check for Version Update' runs-on: ubuntu-latest steps: diff --git a/.github/workflows/Close_Stale_Issues_and_PRs.yml b/.github/workflows/Close_Stale_Issues_and_PRs.yml index 35bd43d9f8f0..41dc1be235d7 100644 --- a/.github/workflows/Close_Stale_Issues_and_PRs.yml +++ b/.github/workflows/Close_Stale_Issues_and_PRs.yml @@ -1,10 +1,11 @@ --- name: 'Close stale issues and PRs' -on: # yamllint disable-line rule:truthy +on: schedule: - cron: '30 1 * * *' jobs: stale: + if: github.repository_owner == 'KelvinTegelaar' runs-on: ubuntu-latest steps: - uses: actions/stale@v4 diff --git a/.github/workflows/CodeQL_Analyser.yml b/.github/workflows/CodeQL_Analyser.yml index b5c18a50df14..043426a1d69f 100644 --- a/.github/workflows/CodeQL_Analyser.yml +++ b/.github/workflows/CodeQL_Analyser.yml @@ -1,12 +1,13 @@ --- name: 'CodeQL' -on: # yamllint disable-line rule:truthy +on: pull_request: branches: [master, main, dev, react] schedule: - cron: '26 17 * * 0' jobs: analyze: + if: github.repository_owner == 'KelvinTegelaar' name: Analyze runs-on: ubuntu-latest permissions: diff --git a/.github/workflows/Comment_on_Issues.yml b/.github/workflows/Comment_on_Issues.yml index c43a6c184869..6b65991389d6 100644 --- a/.github/workflows/Comment_on_Issues.yml +++ b/.github/workflows/Comment_on_Issues.yml @@ -1,12 +1,12 @@ --- name: Add Comment -on: # yamllint disable-line rule:truthy +on: issues: types: - labeled jobs: add-comment_bug: - if: github.event.label.name == 'unconfirmed-by-user' + if: github.repository_owner == 'KelvinTegelaar' && github.event.label.name == 'unconfirmed-by-user' runs-on: ubuntu-latest permissions: issues: write @@ -17,23 +17,14 @@ jobs: issue-number: ${{ github.event.issue.number }} body: | Thank you for creating a bug. Please make sure your bug is indeed a unique case by checking current and past issues, and reading the complete documentation at https://docs.cipp.app/ - If your bug is a known documentation issue, it will be closed without notice by a contributor. To confirm that this is not a bug found in the documentation, please copy and paste the following comment: "I confirm that I have checked the documentation thoroughly and believe this to be an actual bug.". + If your bug is a known documentation issue, it will be closed without notice by a contributor. To confirm that this is not a bug found in the documentation, please copy and paste the following comment: "I confirm that I have checked the documentation thoroughly and believe this to be an actual bug." Without confirming, your report will be closed in 24 hours. If you'd like this bug to be assigned to you, please comment "I would like to work on this please!". add-comment_fr: - if: github.event.label.name == 'enhancement' + if: github.repository_owner == 'KelvinTegelaar' && github.event.label.name == 'enhancement' runs-on: ubuntu-latest permissions: issues: write steps: - name: Add Comment - uses: peter-evans/create-or-update-comment@a35cf36e5301d70b76f316e867e7788a55a31dae - with: - issue-number: ${{ github.event.issue.number }} - body: | - Thank you for creating a feature request! - Your current priority is set to "No Priority". No Priority Feature requests automatically get closed in two days if a contributor does not accept the FR. - - If you are a sponsor you can request an upgrade of priority. To upgrade the priority type "I would like to upgrade the priority". - If you want this feature to be integrated you can always do this yourself by checking out our contributions guide at https://docs.cipp.app/dev-documentation/contributing-to-the-code. Contributors to the CIPP project reserve the right to close feature requests at will. - If you'd like this feature request to be assigned to you, please comment "I would like to work on this please!". + uses: peter-evans/create-or-update diff --git a/.github/workflows/Label_Issues.yml b/.github/workflows/Label_Issues.yml index ecb261bd730a..a0ec41e47894 100644 --- a/.github/workflows/Label_Issues.yml +++ b/.github/workflows/Label_Issues.yml @@ -1,12 +1,12 @@ --- name: Label Issues -on: # yamllint disable-line rule:truthy +on: issues: types: - opened jobs: label_issues_bugs: - if: contains(github.event.issue.title,'Bug') + if: github.repository_owner == 'KelvinTegelaar' && contains(github.event.issue.title, 'Bug') runs-on: ubuntu-latest permissions: issues: write @@ -17,7 +17,7 @@ jobs: add-labels: 'unconfirmed-by-user' repo-token: ${{ secrets.GITHUB_TOKEN }} label_issues_frs: - if: contains(github.event.issue.title,'Feature') + if: github.repository_owner == 'KelvinTegelaar' && contains(github.event.issue.title, 'Feature') runs-on: ubuntu-latest permissions: issues: write diff --git a/.github/workflows/Node_Project_Check.yml b/.github/workflows/Node_Project_Check.yml index a1e9155aa4ba..b135c589ea7b 100644 --- a/.github/workflows/Node_Project_Check.yml +++ b/.github/workflows/Node_Project_Check.yml @@ -1,6 +1,6 @@ --- name: NodeJS Project Check -on: # yamllint disable-line rule:truthy +on: pull_request: branches: - main @@ -10,6 +10,7 @@ concurrency: cancel-in-progress: false jobs: install-build: + if: github.repository_owner == 'KelvinTegelaar' name: NPM Install and Build runs-on: ubuntu-latest strategy: diff --git a/.github/workflows/label_sponsor_requests.yml b/.github/workflows/label_sponsor_requests.yml index b6096b76b35e..479cad06c728 100644 --- a/.github/workflows/label_sponsor_requests.yml +++ b/.github/workflows/label_sponsor_requests.yml @@ -1,12 +1,12 @@ --- name: Label Issues -on: # yamllint disable-line rule:truthy +on: issues: types: - opened jobs: label_issues_bugs: - if: contains(github.event.issue.title,'Bug') + if: github.repository_owner == 'KelvinTegelaar' && contains(github.event.issue.title, 'Bug') runs-on: ubuntu-latest permissions: issues: write @@ -14,4 +14,4 @@ jobs: - name: Sponsor Labels uses: JasonEtco/is-sponsor-label-action@v1.2.0 with: - label: 'Sponsor Request' + label: 'Sponsor Request' From 5324f7790e6b000218554b6b5be1297a3395aff3 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Tue, 14 Nov 2023 11:16:04 +0100 Subject: [PATCH 144/205] Fixed alert removal --- src/views/tenant/administration/ListAlertsQueue.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/tenant/administration/ListAlertsQueue.js b/src/views/tenant/administration/ListAlertsQueue.js index 720e55a2fcc3..b2c21f394f67 100644 --- a/src/views/tenant/administration/ListAlertsQueue.js +++ b/src/views/tenant/administration/ListAlertsQueue.js @@ -260,7 +260,7 @@ const ListAlertsQueue = () => { label: 'Delete alerts', color: 'info', modal: true, - modalUrl: `/api/RemoveQueuedAlert?ID=!tenantid`, + modalUrl: `/api/RemoveQueuedAlert?ID=!tenantId`, modalMessage: 'Are you sure you want to delete these alerts?', }, ], From 3f3185ad0dcf02a3ce1813a3d7a9e17427b478e6 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Tue, 14 Nov 2023 17:04:57 +0100 Subject: [PATCH 145/205] added feature --- src/data/standards.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/data/standards.json b/src/data/standards.json index d85bddf66df7..c54724483eca 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -106,6 +106,20 @@ "addedComponent": null, "label": "Enable Passwordless with Location information and Number Matching" }, + { + "cat": "AAD", + "name": "standards.allowOTPTokens", + "helpText": "Allows you to use any OTP token generator", + "addedComponent": null, + "label": "Enable OTP via Authenticator." + }, + { + "cat": "AAD", + "name": "standards.allowOAuthTokens", + "helpText": "Allows you to use any OTP token generator", + "addedComponent": null, + "label": "Enable OTP Software oAuth tokens." + }, { "cat": "AAD", "name": "standards.PWcompanionAppAllowedState.Enabled", From a0589af7bfcb3faca612cefe70aaa817ea161698 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Tue, 14 Nov 2023 12:25:16 -0500 Subject: [PATCH 146/205] Mailbox Restore Actions --- .../email-exchange/tools/MailboxRestores.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/views/email-exchange/tools/MailboxRestores.js b/src/views/email-exchange/tools/MailboxRestores.js index 05459fa1e08d..9ee81e7ddf02 100644 --- a/src/views/email-exchange/tools/MailboxRestores.js +++ b/src/views/email-exchange/tools/MailboxRestores.js @@ -93,6 +93,27 @@ const Actions = (row, rowIndex, formatExtraData) => { label: 'Show Report', color: 'info', }, + { + label: 'Resume Restore Request', + color: 'info', + modal: true, + modalUrl: `/api/ExecMailboxRestore?TenantFilter=${tenant.defaultDomainName}&Identity=${row.Identity}&Action=Resume`, + modalMessage: 'Are you sure you want to resume this restore request?', + }, + { + label: 'Suspend Restore Request', + color: 'warning', + modal: true, + modalUrl: `/api/ExecMailboxRestore?TenantFilter=${tenant.defaultDomainName}&Identity=${row.Identity}&Action=Suspend`, + modalMessage: 'Are you sure you want to suspend this restore request?', + }, + { + label: 'Remove Restore Request', + color: 'danger', + modal: true, + modalUrl: `/api/ExecMailboxRestore?TenantFilter=${tenant.defaultDomainName}&Identity=${row.Identity}&Action=Remove`, + modalMessage: 'Are you sure you want to remove this restore request?', + }, ]} placement="end" visible={ocVisible} From 87748a0601ac67d3f27b5e186e0b8016e742baae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Tue, 14 Nov 2023 23:26:07 +0100 Subject: [PATCH 147/205] Various changes Add mailbox list button to home screen Make Legacy standards category Update tooltops for most standards Fix small typos --- src/data/standards.json | 92 +++++++++---------- src/views/home/Home.js | 5 + .../tenant/standards/ListAppliedStandards.js | 39 ++++++++ 3 files changed, 90 insertions(+), 46 deletions(-) diff --git a/src/data/standards.json b/src/data/standards.json index c54724483eca..421d855731de 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -60,24 +60,10 @@ { "name": "standards.DisableGuestDirectory", "cat": "Global", - "helpText": "", + "helpText": "See the standards documentation for more information about the implications of this standard", "addedComponent": null, "label": "Restrict guest user access to directory objects" }, - { - "name": "standards.ModernAuth", - "cat": "Global", - "helpText": "Modern Authentication is enabled by default. This standard is no longer required and can be safely disabled", - "addedComponent": null, - "label": "Enable Modern Authentication" - }, - { - "name": "standards.DisableBasicAuth", - "cat": "Global", - "helpText": "Basic Authentication is disabled by default. This standard is no longer required and can be safely disabled", - "addedComponent": null, - "label": "Disable Basic Authentication" - }, { "name": "standards.DisableBasicAuthSMTP", "cat": "Global", @@ -92,13 +78,6 @@ "addedComponent": null, "label": "Enable LAPs on the tenant" }, - { - "name": "standards.PWnumberMatchingRequiredState", - "cat": "AAD", - "helpText": "Passwordless with number matching is now enabled by default. This standard is no longer required and can be safely disabled", - "addedComponent": null, - "label": "Enable Passwordless with Number Matching" - }, { "cat": "AAD", "name": "standards.PWdisplayAppInformationRequiredState", @@ -109,7 +88,7 @@ { "cat": "AAD", "name": "standards.allowOTPTokens", - "helpText": "Allows you to use any OTP token generator", + "helpText": "Allows you to use MS authenticator OTP tokens", "addedComponent": null, "label": "Enable OTP via Authenticator." }, @@ -123,7 +102,7 @@ { "cat": "AAD", "name": "standards.PWcompanionAppAllowedState.Enabled", - "helpText": "", + "helpText": "Sets the state of Authenticator Lite, in Outlook for mobile", "addedComponent": { "type": "Select", "label": "Select value", @@ -144,7 +123,7 @@ { "cat": "AAD", "name": "standards.TAP.Enabled", - "helpText": "", + "helpText": "Enables TAP and sets the default TAP lifetime to 1 hour and maximum lifetime to 8 hours.", "addedComponent": { "type": "Select", "label": "Select TAP Lifetime", @@ -186,14 +165,14 @@ { "cat": "AAD", "name": "standards.DisableTenantCreation", - "helpText": "", + "helpText": "Restricts creation of M365 tenants to the Global Administrator or Tenant Creator roles", "addedComponent": null, "label": "Disable M365 Tenant creation by users" }, { "cat": "AAD", "name": "standards.OauthConsent.Enabled", - "helpText": "", + "helpText": "Disables users from being able to consent to applications, except for those specified in the field below", "addedComponent": { "type": "input", "name": "standards.OauthConsent.AllowedApps", @@ -207,17 +186,10 @@ "helpText": "", "label": "Allow users to consent to applications with low security risk (Prevent OAuth phishing. Lower impact, less secure.)" }, - { - "cat": "AAD", - "name": "standards.LegacyMFA", - "helpText": "", - "addedComponent": null, - "label": "Enable per-user MFA for all user (Legacy, Requires DAP.)" - }, { "cat": "AAD", "name": "standards.LegacyMFACleanup", - "helpText": "", + "helpText": "Removes legacy Per-User MFA if the tenant has Security Defaults or an All Users Conditional Access rule enabled.", "addedComponent": null, "label": "Remove Legacy MFA if SD or CA is active" }, @@ -238,14 +210,14 @@ { "cat": "AAD", "name": "standards.DisableSelfServiceLicenses", - "helpText": "", + "helpText": "This standard currently does not function and can be safely disabled", "addedComponent": null, "label": "Disable Self Service Licensing" }, { "cat": "AAD", "name": "standards.DisableM365GroupUsers", - "helpText": "", + "helpText": "Restricts M365 group creation to certain admin roles. This disables the ability to create Teams, Sharepoint sites, Planner, etc", "addedComponent": null, "label": "Disable M365 Group creation by users" }, @@ -259,7 +231,7 @@ { "cat": "AAD", "name": "standards.DisableGuests", - "helpText": "", + "helpText": "Blocks login for guest users that have not logged in for 90 days", "addedComponent": null, "label": "Disable Guest accounts that have not logged on for 90 days" }, @@ -273,7 +245,7 @@ { "name": "standards.OutBoundSpamAlert.Enabled", "cat": "Exchange", - "helpText": "", + "helpText": "Set the Outbound Spam Alert e-mail address.", "addedComponent": { "type": "input", "name": "standards.OutBoundSpamAlert.OutboundSpamContact", @@ -291,14 +263,14 @@ { "name": "standards.DisableSharedMailbox", "cat": "Exchange", - "helpText": "", + "helpText": "Blocks login for all accounts that are marked as a shared mailboxe", "addedComponent": null, "label": "Disable Shared Mailbox AAD accounts" }, { "name": "standards.DelegateSentItems", "cat": "Exchange", - "helpText": "", + "helpText": "Sets emails sent as and on behalf of shared mailboxes to also be stored in the shared mailbox sent items folder", "addedComponent": null, "label": "Set mailbox Sent Items delegation (Sent items for shared mailboxes)" }, @@ -326,7 +298,7 @@ { "name": "standards.SpoofWarn.disable", "cat": "Exchange", - "helpText": "", + "helpText": "Disables spoof warnings from external senders in Outlook.", "addedComponent": null, "label": "Disable Spoofing warnings for Outlook (This e-mail is external identifiers)" }, @@ -362,7 +334,7 @@ { "name": "standards.calDefault.Enabled", "cat": "Exchange", - "helpText": "", + "helpText": "Sets the default calendar sharing level for all calendars, for all users", "addedComponent": { "type": "Select", "label": "Select Sharing Level", @@ -445,7 +417,7 @@ { "name": "standards.sharingCapability.Enabled", "cat": "SharePoint", - "helpText": "", + "helpText": "Sets the default sharing level for OneDrive and Sharepoint. This is a tenant wide setting and overrules any settings set on the site level", "addedComponent": { "type": "Select", "label": "Select Sharing Level", @@ -492,14 +464,14 @@ { "name": "standards.DisableReshare", "cat": "SharePoint", - "helpText": "", + "helpText": "Disables the ability for external users to share files they dont own. Sharing links can only be made for People with existing access", "addedComponent": null, "label": "Disable Resharing by External Users" }, { "name": "standards.DeletedUserRentention", "cat": "SharePoint", - "helpText": "Sets the retenton period for deleted users OneDrive to 1 year/365 days", + "helpText": "Sets the retention period for deleted users OneDrive to 1 year/365 days", "addedComponent": null, "label": "Retain a deleted user OneDrive for 1 year" }, @@ -558,5 +530,33 @@ "helpText": "", "addedComponent": null, "label": "Transport Rule Templates" + }, + { + "name": "standards.ModernAuth", + "cat": "legacy", + "helpText": "Modern Authentication is enabled by default. This standard is no longer required and can be safely disabled", + "addedComponent": null, + "label": "Enable Modern Authentication" + }, + { + "name": "standards.DisableBasicAuth", + "cat": "legacy", + "helpText": "Basic Authentication is disabled by default. This standard is no longer required and can be safely disabled", + "addedComponent": null, + "label": "Disable Basic Authentication" + }, + { + "name": "standards.PWnumberMatchingRequiredState", + "cat": "legacy", + "helpText": "Passwordless with number matching is now enabled by default. This standard is no longer required and can be safely disabled", + "addedComponent": null, + "label": "Enable Passwordless with Number Matching" + }, + { + "cat": "legacy", + "name": "standards.LegacyMFA", + "helpText": "This standard is no longer works and can be safely disabled", + "addedComponent": null, + "label": "Enable per-user MFA for all user (Legacy, Requires DAP.)" } ] diff --git a/src/views/home/Home.js b/src/views/home/Home.js index 761be7b0d35d..21c5d46bd70f 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -106,6 +106,11 @@ const Home = () => { link: `/identity/administration/users?customerId=${currentTenant.customerId}`, icon: faUser, }, + { + label: 'List Mailboxes', + link: `/email/administration/mailboxes?customerId=${currentTenant.customerId}`, + icon: faMailBulk, + }, { label: 'List Groups', link: `/identity/administration/groups?customerId=${currentTenant.customerId}`, diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.js index ed0c7856a40a..eade8c4d0df1 100644 --- a/src/views/tenant/standards/ListAppliedStandards.js +++ b/src/views/tenant/standards/ListAppliedStandards.js @@ -541,6 +541,45 @@ const ListAppliedStandards = () => { +
    +
    Legacy Standards
    +
    + + {allStandardsList + .filter((obj) => obj.cat === 'legacy') + .map((item, key) => ( + <> + + + {item.addedComponent && ( + + {item.addedComponent.type === 'Select' ? ( + + ) : ( + + )} + + )} + + + ))} + {postResults.isSuccess && ( {postResults.data.Results} )} From 227206d10fe40778203794f4b9958b6c761ca588 Mon Sep 17 00:00:00 2001 From: rvdwegen Date: Tue, 14 Nov 2023 23:42:26 +0100 Subject: [PATCH 148/205] Add tenant offboarding feature --- src/_nav.js | 5 + src/adminRoutes.js | 8 + src/routes.js | 1 + .../tenant-offboarding-wizard.js | 200 ++++++++++++++++++ 4 files changed, 214 insertions(+) create mode 100644 src/views/tenant/administration/tenant-offboarding-wizard.js diff --git a/src/_nav.js b/src/_nav.js index 852e4334d8cb..252dfc86c2d4 100644 --- a/src/_nav.js +++ b/src/_nav.js @@ -137,6 +137,11 @@ const _nav = [ name: 'Enterprise Applications', to: '/tenant/administration/enterprise-apps', }, + { + component: CNavItem, + name: 'Tenant Offboarding', + to: '/tenant/administration/tenant-offboarding-wizard', + }, ], }, { diff --git a/src/adminRoutes.js b/src/adminRoutes.js index ceabcd1b7e57..e3e807e3a212 100644 --- a/src/adminRoutes.js +++ b/src/adminRoutes.js @@ -11,6 +11,9 @@ const GDAPRelationships = React.lazy(() => import('./views/tenant/administration/ListGDAPRelationships'), ) const appapproval = React.lazy(() => import('src/views/cipp/AppApproval')) +const TenantOffboardingWizard = React.lazy(() => + import('src/views/tenant/administration/tenant-offboarding-wizard'), +) const adminRoutes = [ { path: '/cipp', name: 'CIPP' }, @@ -38,6 +41,11 @@ const adminRoutes = [ { path: '/tenant/administration/appapproval', name: 'App Approval', component: appapproval }, { path: '/tenant/administration/gdap-status', name: 'GDAP Status', component: GDAPStatus }, { path: '/tenant/standards/apply-standard', name: 'Apply Standard', component: ApplyStandard }, + { + path: '/tenant/administration/tenant-offboarding-wizard', + name: 'Tenant Offboarding', + component: TenantOffboardingWizard, + }, ] export default adminRoutes diff --git a/src/routes.js b/src/routes.js index d305063a4109..ecb083880dcf 100644 --- a/src/routes.js +++ b/src/routes.js @@ -23,6 +23,7 @@ const DeployGroupTemplates = React.lazy(() => const GeoIPLookup = React.lazy(() => import('src/views/tenant/administration/GeoIPLookup')) const TenantLookup = React.lazy(() => import('src/views/tenant/administration/TenantLookup')) + const GroupTemplates = React.lazy(() => import('src/views/identity/administration/GroupTemplates')) const EditGroup = React.lazy(() => import('src/views/identity/administration/EditGroup')) diff --git a/src/views/tenant/administration/tenant-offboarding-wizard.js b/src/views/tenant/administration/tenant-offboarding-wizard.js new file mode 100644 index 000000000000..666a97781363 --- /dev/null +++ b/src/views/tenant/administration/tenant-offboarding-wizard.js @@ -0,0 +1,200 @@ +import React from 'react' +import { CCallout, CCol, CListGroup, CListGroupItem, CRow, CSpinner } from '@coreui/react' +import { Field, FormSpy } from 'react-final-form' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faExclamationTriangle, faTimes, faCheck } from '@fortawesome/free-solid-svg-icons' +import { useSelector } from 'react-redux' +import { CippWizard } from 'src/components/layout' +import PropTypes from 'prop-types' +import { RFFCFormCheck, RFFCFormInput, RFFCFormSwitch, RFFSelectSearch } from 'src/components/forms' +import { TenantSelector } from 'src/components/utilities' +import { useLazyGenericPostRequestQuery } from 'src/store/api/app' + +const Error = ({ name }) => ( + + touched && error ? ( + + + {error} + + ) : null + } + /> +) + +Error.propTypes = { + name: PropTypes.string.isRequired, +} + +const TenantOffboardingWizard = () => { + const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) + const currentSettings = useSelector((state) => state.app) + const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() + + const handleSubmit = async (values) => { + const shippedValues = { + TenantFilter: tenantDomain, + RemoveCSPGuestUsers: values.RemoveCSPGuestUsers ? values.RemoveCSPGuestUsers : '', + RemoveMultitenantCSPApps: values.RemoveMultitenantCSPApps + ? values.RemoveMultitenantCSPApps + : '', + TerminateGDAP: values.TerminateGDAP ? values.TerminateGDAP : '', + TerminateContract: values.TerminateContract ? values.TerminateContract : '', + } + + //alert(JSON.stringify(values, null, 2)) + genericPostRequest({ path: '/api/ExecOffboardTenant', values: shippedValues }) + } + + return ( + + + {console.log(currentSettings.offboardingDefaults)} +
    +

    Step 1

    +
    Choose a tenant
    +
    +
    + {(props) => } +
    +
    + +
    +

    Step 2

    +
    Choose tenant offboarding options
    +
    +
    +
    + + + + + + + + +
    +
    +
    + +
    +

    Step 3

    +
    Confirm and apply
    +
    +
    +
    + {postResults.isFetching && ( + + Loading + + )} + {postResults.isSuccess && ( + <> + + {postResults.data.Results.map((message, idx) => { + return
  • {message}
  • + })} +
    + + {postResults.data.Errors.map((message, idx) => { + return
  • {message}
  • + })} +
    + + )} + {!postResults.isSuccess && ( + + {(props) => ( + <> + + + + + These actions are irreversible! + + + +
    Selected Tenant:
    + {tenantDomain} +
    +
    +
    +
    +
    + + + + + Remove all guest users originating from the CSP tenant + + + + Remove all multitenant applications originating from CSP tenant + + + + Terminate all active GDAP relationships + + + + Terminate contract relationship + + + +
    +
    +
    + + )} +
    + )} +
    +
    +
    +
    + ) +} + +export default TenantOffboardingWizard From c5603aee481e14773a4cd7a4bc1489af2be7828a Mon Sep 17 00:00:00 2001 From: Roel van der Wegen Date: Wed, 15 Nov 2023 00:05:02 +0100 Subject: [PATCH 149/205] wording --- src/views/tenant/administration/tenant-offboarding-wizard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/tenant/administration/tenant-offboarding-wizard.js b/src/views/tenant/administration/tenant-offboarding-wizard.js index 666a97781363..87fc0c5ca1ba 100644 --- a/src/views/tenant/administration/tenant-offboarding-wizard.js +++ b/src/views/tenant/administration/tenant-offboarding-wizard.js @@ -57,7 +57,7 @@ const TenantOffboardingWizard = () => { > {console.log(currentSettings.offboardingDefaults)}
    From 4527baa779effd63f2c02a2f2cd6a0bb47aa4f91 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Wed, 15 Nov 2023 00:14:04 +0100 Subject: [PATCH 150/205] update imports --- src/adminRoutes.js | 2 +- ...nant-offboarding-wizard.js => TenantOffboardingWizard.js} | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) rename src/views/tenant/administration/{tenant-offboarding-wizard.js => TenantOffboardingWizard.js} (98%) diff --git a/src/adminRoutes.js b/src/adminRoutes.js index e3e807e3a212..9031558d3150 100644 --- a/src/adminRoutes.js +++ b/src/adminRoutes.js @@ -12,7 +12,7 @@ const GDAPRelationships = React.lazy(() => ) const appapproval = React.lazy(() => import('src/views/cipp/AppApproval')) const TenantOffboardingWizard = React.lazy(() => - import('src/views/tenant/administration/tenant-offboarding-wizard'), + import('src/views/tenant/administration/TenantOffboardingWizard'), ) const adminRoutes = [ diff --git a/src/views/tenant/administration/tenant-offboarding-wizard.js b/src/views/tenant/administration/TenantOffboardingWizard.js similarity index 98% rename from src/views/tenant/administration/tenant-offboarding-wizard.js rename to src/views/tenant/administration/TenantOffboardingWizard.js index 87fc0c5ca1ba..1024ea62c54f 100644 --- a/src/views/tenant/administration/tenant-offboarding-wizard.js +++ b/src/views/tenant/administration/TenantOffboardingWizard.js @@ -55,10 +55,7 @@ const TenantOffboardingWizard = () => { onSubmit={handleSubmit} wizardTitle="Tenant Offboarding Wizard" > - + {console.log(currentSettings.offboardingDefaults)}

    Step 1

    From ea60ab2ad8382ec5d8baa42caaddfe090a73b350 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Wed, 15 Nov 2023 01:40:10 +0100 Subject: [PATCH 151/205] add tenant exclusion standard --- .../tenant/standards/ListAppliedStandards.js | 50 +++++++++++++------ 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.js index eade8c4d0df1..1af40470d644 100644 --- a/src/views/tenant/standards/ListAppliedStandards.js +++ b/src/views/tenant/standards/ListAppliedStandards.js @@ -216,22 +216,40 @@ const ListAppliedStandards = () => { return (
    {' '} - {listStandardResults[0]?.appliedBy - ? `This standard has been applied at ${new Date( - listStandardResults[0].appliedAt + 'Z', - ).toLocaleDateString(undefined, { - year: 'numeric', - month: 'long', - day: 'numeric', - })} ${new Date( - listStandardResults[0].appliedAt + 'Z', - ).toLocaleTimeString(undefined, { - hour: '2-digit', - minute: '2-digit', - second: '2-digit', - hour12: false, - })} by ${listStandardResults[0].appliedBy}` - : 'This tenant does not yet have a standard applied'} + + {listStandardResults[0]?.appliedBy + ? `This standard has been applied at ${new Date( + listStandardResults[0].appliedAt + 'Z', + ).toLocaleDateString(undefined, { + year: 'numeric', + month: 'long', + day: 'numeric', + })} ${new Date( + listStandardResults[0].appliedAt + 'Z', + ).toLocaleTimeString(undefined, { + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + hour12: false, + })} by ${listStandardResults[0].appliedBy}` + : 'This tenant does not yet have a standard applied'} + + {tenantDomain !== 'AllTenants' && ( + <> +
    +
    Standard Settings
    +
    + + + + + )}
    Global Standards

    From b77868f5d8f4bd85b9bb503ff22a661c6a033497 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Wed, 15 Nov 2023 23:13:41 +0100 Subject: [PATCH 152/205] scheduler in offboarding wizard --- .../administration/OffboardingWizard.js | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/src/views/identity/administration/OffboardingWizard.js b/src/views/identity/administration/OffboardingWizard.js index 71e886944b03..29d3b369ee23 100644 --- a/src/views/identity/administration/OffboardingWizard.js +++ b/src/views/identity/administration/OffboardingWizard.js @@ -6,10 +6,19 @@ import { faExclamationTriangle, faTimes, faCheck } from '@fortawesome/free-solid import { useSelector } from 'react-redux' import { CippWizard } from 'src/components/layout' import PropTypes from 'prop-types' -import { RFFCFormCheck, RFFCFormInput, RFFCFormSwitch, RFFSelectSearch } from 'src/components/forms' +import { + Condition, + RFFCFormCheck, + RFFCFormInput, + RFFCFormSwitch, + RFFSelectSearch, +} from 'src/components/forms' import { TenantSelector } from 'src/components/utilities' import { useListUsersQuery } from 'src/store/api/users' import { useLazyGenericPostRequestQuery } from 'src/store/api/app' +import { useState } from 'react' +import DatePicker from 'react-datepicker' +import 'react-datepicker/dist/react-datepicker.css' const Error = ({ name }) => ( { + const currentDate = new Date() + const [startDate, setStartDate] = useState(currentDate) + const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) const { data: users = [], @@ -41,6 +53,7 @@ const OffboardingWizard = () => { const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const handleSubmit = async (values) => { + const unixTime = Math.floor(startDate.getTime() / 1000) const shippedValues = { TenantFilter: tenantDomain, OOO: values.OOO ? values.OOO : '', @@ -61,6 +74,10 @@ const OffboardingWizard = () => { removeMobile: values.RemoveMobile, keepCopy: values.keepCopy, removePermissions: values.removePermissions, + Scheduled: values.Scheduled.enabled ? { enabled: true, date: unixTime } : { enabled: false }, + PostExecution: values.Scheduled.enabled + ? { webhook: values.webhook, psa: values.psa, email: values.email } + : '', } //alert(JSON.stringify(values, null, 2)) @@ -194,6 +211,34 @@ const OffboardingWizard = () => { /> +
    + + + + + + + + + + setStartDate(date)} + /> + + + + + + + + +

    From 3dfbd8cbbab7659486012361de36a1a7f1c3ce57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Thu, 16 Nov 2023 01:29:54 +0100 Subject: [PATCH 153/205] Add configurable mailbox plan tenant standard --- src/data/standards.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/data/standards.json b/src/data/standards.json index 421d855731de..e3107a703478 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -330,6 +330,17 @@ "addedComponent": null, "label": "Enable 1 hour Activity based Timeout" }, + { + "name": "standards.MailboxPlanTenant.Enabled", + "cat": "Exchange", + "helpText": "Sets the default mailbox plan for new users. Valid values are 1KB to 150MB. Invalid values will be set to EXO standard of 35MB,36MB", + "addedComponent": { + "type": "input", + "name": "standards.MailboxPlanTenant.SendReceiveLimit", + "label": "Send limit and Receive limit, comma separated" + }, + "label": "Set tenant mailbox plan to standard values" + }, { "name": "standards.calDefault.Enabled", From 25f52c8a3f43529adeb825b2ea57615ef462f288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Bentsen=20Kj=C3=A6rg=C3=A5rd=20=28KBK=29?= Date: Thu, 16 Nov 2023 09:28:15 +0100 Subject: [PATCH 154/205] Standard namechange --- src/data/standards.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data/standards.json b/src/data/standards.json index e3107a703478..cd04d199339b 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -331,12 +331,12 @@ "label": "Enable 1 hour Activity based Timeout" }, { - "name": "standards.MailboxPlanTenant.Enabled", + "name": "standards.SendReceiveLimitTenant.Enabled", "cat": "Exchange", - "helpText": "Sets the default mailbox plan for new users. Valid values are 1KB to 150MB. Invalid values will be set to EXO standard of 35MB,36MB", + "helpText": "Sets the Send and Receive limits for new users. Valid values are 1KB to 150MB. Invalid values will be set to EXO standard of 35MB,36MB", "addedComponent": { "type": "input", - "name": "standards.MailboxPlanTenant.SendReceiveLimit", + "name": "standards.SendReceiveLimitTenant.SendReceiveLimit", "label": "Send limit and Receive limit, comma separated" }, "label": "Set tenant mailbox plan to standard values" From ddfb0b9940662014a304f681f4dc412c39b3c2d7 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 16 Nov 2023 10:56:08 +0100 Subject: [PATCH 155/205] updated text --- src/data/standards.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/standards.json b/src/data/standards.json index cd04d199339b..03f2f5afff2d 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -339,7 +339,7 @@ "name": "standards.SendReceiveLimitTenant.SendReceiveLimit", "label": "Send limit and Receive limit, comma separated" }, - "label": "Set tenant mailbox plan to standard values" + "label": "Set send/receive size limits" }, { From 76c47091541785341c6b2ff15df543085d85a8d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Bentsen=20Kj=C3=A6rg=C3=A5rd=20=28KBK=29?= Date: Thu, 16 Nov 2023 11:24:04 +0100 Subject: [PATCH 156/205] Typos --- src/data/standards.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data/standards.json b/src/data/standards.json index 03f2f5afff2d..f134b86ede11 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -55,7 +55,7 @@ "cat": "Global", "helpText": "", "addedComponent": null, - "label": "Enable Usernames instead of pseudo anonymised names in reports" + "label": "Enable Usernames instead of pseudo anonymized names in reports" }, { "name": "standards.DisableGuestDirectory", @@ -263,7 +263,7 @@ { "name": "standards.DisableSharedMailbox", "cat": "Exchange", - "helpText": "Blocks login for all accounts that are marked as a shared mailboxe", + "helpText": "Blocks login for all accounts that are marked as a shared mailbox", "addedComponent": null, "label": "Disable Shared Mailbox AAD accounts" }, @@ -475,7 +475,7 @@ { "name": "standards.DisableReshare", "cat": "SharePoint", - "helpText": "Disables the ability for external users to share files they dont own. Sharing links can only be made for People with existing access", + "helpText": "Disables the ability for external users to share files they don't own. Sharing links can only be made for People with existing access", "addedComponent": null, "label": "Disable Resharing by External Users" }, From 5e7e065b084d225497d635faf86b12c9c4e48680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Bentsen=20Kj=C3=A6rg=C3=A5rd=20=28KBK=29?= Date: Thu, 16 Nov 2023 11:33:13 +0100 Subject: [PATCH 157/205] America #2 UK #1 --- src/data/standards.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/standards.json b/src/data/standards.json index f134b86ede11..8679da3f113b 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -55,7 +55,7 @@ "cat": "Global", "helpText": "", "addedComponent": null, - "label": "Enable Usernames instead of pseudo anonymized names in reports" + "label": "Enable Usernames instead of pseudo anonymised names in reports" }, { "name": "standards.DisableGuestDirectory", From dfaef33954b38e3c000d96e9b3bd542297146b89 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 16 Nov 2023 13:22:00 +0100 Subject: [PATCH 158/205] Improved bec checks --- src/store/api/users.js | 6 +- src/views/identity/administration/ViewBEC.js | 71 ++++++++++---------- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/src/store/api/users.js b/src/store/api/users.js index 66cfd9bd48c6..8dc443ce1dc1 100644 --- a/src/store/api/users.js +++ b/src/store/api/users.js @@ -59,7 +59,11 @@ export const usersApi = baseApi.injectEndpoints({ queryFn: async (_args, _baseQueryApi, _options, baseQuery) => { const startRequest = await baseQuery({ path: '/api/execBECCheck', - params: { userId: _args.userId, tenantFilter: _args.tenantFilter }, + params: { + userId: _args.userId, + tenantFilter: _args.tenantFilter, + userName: _args.userName, + }, }) if (startRequest.error) { return { error: startRequest.error } diff --git a/src/views/identity/administration/ViewBEC.js b/src/views/identity/administration/ViewBEC.js index bfe147e850cb..142cc2f47399 100644 --- a/src/views/identity/administration/ViewBEC.js +++ b/src/views/identity/administration/ViewBEC.js @@ -33,7 +33,7 @@ const ViewBec = () => { const [execBecView, results] = useLazyExecBecCheckQuery() const { data: alerts = {}, isFetching, error, isSuccess } = results useEffect(() => { - execBecView({ tenantFilter: tenantDomain, userId: userId }) + execBecView({ tenantFilter: tenantDomain, userId: userId, userName: userName }) }, [execBecView, tenantDomain, userId]) const deviceColumns = [ @@ -104,72 +104,67 @@ const ViewBec = () => { selector: (row) => row.Status, sortable: true, }, + { + name: 'IP', + selector: (row) => row.IPAddress, + sortable: true, + }, ] const mailboxlogonColumns = [ { name: 'IP', - selector: (row) => row['ClientIP'], + selector: (row) => row['IPAddress'], sortable: true, }, { name: 'User', - selector: (row) => row['CreatedDateTime'], + selector: (row) => row['userPrincipalName'], sortable: true, }, { - name: 'User Agent', - selector: (row) => row['ClientInfoString'], + name: 'Application', + selector: (row) => row['AppDisplayName'], sortable: true, }, { name: 'Result', - selector: (row) => row['ResultStatus'], - sortable: true, - }, - { - name: 'Data', - selector: (row) => row['CreationTime'], + selector: (row) => row['Status'], sortable: true, }, ] const newUserColumns = [ { - name: 'Username', - selector: (row) => row['ObjectId'], + name: 'DisplayName', + selector: (row) => row['displayName'], sortable: true, }, { - name: 'Date', - selector: (row) => row['CreationTime'], + name: 'Username', + selector: (row) => row['userPrincipalName'], sortable: true, }, { - name: 'By', - selector: (row) => row['UserId'], + name: 'Date', + selector: (row) => row['CreatedDateTime'], sortable: true, }, ] const passwordColumns = [ { - name: 'Username', - selector: (row) => row['ObjectId'], + name: 'displayName', + selector: (row) => row['displayName'], sortable: true, }, { - name: 'Date', - selector: (row) => row['CreationTime'], - sortable: true, - }, - { - name: 'Operation', - selector: (row) => row['Operation'], + name: 'Username', + selector: (row) => row['userPrincipalName'], sortable: true, }, { - name: 'By', - selector: (row) => row['UserId'], + name: 'Date', + selector: (row) => row['lastPasswordChangeDateTime'], sortable: true, }, ] @@ -224,7 +219,7 @@ const ViewBec = () => { onConfirm: () => { execBecRemediate({ path: '/api/execBecRemediate', - values: { userId: userId, tenantFilter: tenantDomain }, + values: { userId: userId, tenantFilter: tenantDomain, userName: userName }, }) }, }) @@ -283,7 +278,11 @@ const ViewBec = () => { )} {execRemediateResults.isSuccess && ( - {execRemediateResults.data?.Results} + + {execRemediateResults.data?.Results.map((item) => { + return
  • {item}
  • + })} +
    )} @@ -305,7 +304,7 @@ const ViewBec = () => { - + {isFetching && } {isSuccess && ( @@ -343,7 +342,7 @@ const ViewBec = () => { - + {isFetching && } {isSuccess && ( @@ -361,7 +360,7 @@ const ViewBec = () => { - + {isFetching && } {isSuccess && ( @@ -379,7 +378,7 @@ const ViewBec = () => { - + {isFetching && } {isSuccess && ( @@ -397,7 +396,7 @@ const ViewBec = () => { - + {isFetching && } {isSuccess && ( @@ -415,7 +414,7 @@ const ViewBec = () => { - + {isFetching && } {isSuccess && ( From f5494e1da329b05a68c997a8e4474e45cbc91cbe Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Thu, 16 Nov 2023 13:24:45 +0100 Subject: [PATCH 159/205] text changes --- src/views/identity/administration/ViewBEC.js | 27 ++++++++------------ 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/views/identity/administration/ViewBEC.js b/src/views/identity/administration/ViewBEC.js index 142cc2f47399..ac0c8f7efaaa 100644 --- a/src/views/identity/administration/ViewBEC.js +++ b/src/views/identity/administration/ViewBEC.js @@ -315,7 +315,6 @@ const ViewBec = () => { striped responsive={true} tableProps={{ subHeaderComponent: false }} - wrapperClasses="table-responsive" reportName="none" /> )} @@ -324,21 +323,17 @@ const ViewBec = () => { {isFetching && } - - - {isSuccess && ( - - )} - + {isSuccess && ( + + )} From b235b64d59718e7deeb4370f17b4974e4989583e Mon Sep 17 00:00:00 2001 From: Kevin Grube Date: Thu, 16 Nov 2023 13:11:34 -0800 Subject: [PATCH 160/205] Rename files with JSX to .jsx, move index.html to root. Change entry point and remove CRA variables. --- index.html | 37 +++++++++++++ public/index.html | 55 ------------------- src/{App.js => App.jsx} | 0 src/{_nav.js => _nav.jsx} | 0 .../buttons/{CsvButton.js => CsvButton.jsx} | 0 .../buttons/{PdfButton.js => PdfButton.jsx} | 0 ...bleModalButton.js => TableModalButton.jsx} | 0 .../{TitleButton.js => TitleButton.jsx} | 0 ...onContentCard.js => ActionContentCard.jsx} | 2 +- ...ontentCard.js => DatatableContentCard.jsx} | 0 ...ontentCard.js => ListGroupContentCard.jsx} | 0 ...bleContentCard.js => TableContentCard.jsx} | 0 .../{RFFComponents.js => RFFComponents.jsx} | 0 ...eaderDropdown.js => AppHeaderDropdown.jsx} | 0 ...AppHeaderSearch.js => AppHeaderSearch.jsx} | 0 .../{AppBreadcrumb.js => AppBreadcrumb.jsx} | 0 .../layout/{AppFooter.js => AppFooter.jsx} | 0 .../layout/{AppHeader.js => AppHeader.jsx} | 5 +- .../layout/{AppSidebar.js => AppSidebar.jsx} | 0 .../{AppSidebarNav.js => AppSidebarNav.jsx} | 0 ...CippContentCard.js => CippContentCard.jsx} | 0 .../{CippMasonry.js => CippMasonry.jsx} | 0 .../layout/{CippPage.js => CippPage.jsx} | 0 .../layout/{CippWizard.js => CippWizard.jsx} | 0 .../tables/{CellBadge.js => CellBadge.jsx} | 0 .../{CellBoolean.js => CellBoolean.jsx} | 0 .../tables/{CellDate.js => CellDate.jsx} | 0 ...rivilege.js => CellDelegatedPrivilege.jsx} | 0 ...GenericFormat.js => CellGenericFormat.jsx} | 0 .../{CellLicense.js => CellLicense.jsx} | 0 .../tables/{CellLogo.js => CellLogo.jsx} | 0 .../{CellNullText.js => CellNullText.jsx} | 0 ...CellProgressBar.js => CellProgressBar.jsx} | 0 .../tables/{CellTable.js => CellTable.jsx} | 0 .../tables/{CellTip.js => CellTip.jsx} | 0 .../{CippDatatable.js => CippDatatable.jsx} | 0 ...fcanvasTable.js => CippOffcanvasTable.jsx} | 0 .../tables/{CippTable.js => CippTable.jsx} | 0 ...zardTableField.js => WizardTableField.jsx} | 4 +- ...sOffcanvas.js => CippActionsOffcanvas.jsx} | 0 .../{CippCamelCase.js => CippCamelCase.jsx} | 0 .../{CippCodeBlock.js => CippCodeBlock.jsx} | 0 ...CodeOffcanvas.js => CippCodeOffcanvas.jsx} | 0 ...CippFuzzySearch.js => CippFuzzySearch.jsx} | 9 +-- ...ListOffcanvas.js => CippListOffcanvas.jsx} | 0 .../{CippOffcanvas.js => CippOffcanvas.jsx} | 0 .../{CippProfile.js => CippProfile.jsx} | 0 ...ntOffcanvas.js => CippTenantOffcanvas.jsx} | 0 .../{ErrorBoundary.js => ErrorBoundary.jsx} | 0 .../{FastSwitcher.js => FastSwitcher.jsx} | 0 .../utilities/{Loading.js => Loading.jsx} | 0 .../utilities/{ModalRoot.js => ModalRoot.jsx} | 0 ...geSizeSwitcher.js => PageSizeSwitcher.jsx} | 0 .../{PrivateRoute.js => PrivateRoute.jsx} | 6 +- .../{ReportImage.js => ReportImage.jsx} | 0 .../{SharedModal.js => SharedModal.jsx} | 0 .../{StatusIcon.js => StatusIcon.jsx} | 0 ...ListSelector.js => TenantListSelector.jsx} | 0 .../{TenantSelector.js => TenantSelector.jsx} | 0 ...Multiple.js => TenantSelectorMultiple.jsx} | 0 .../{ThemeSwitcher.js => ThemeSwitcher.jsx} | 0 .../utilities/{Toasts.js => Toasts.jsx} | 0 ...UniversalSearch.js => UniversalSearch.jsx} | 0 .../{UsageLocation.js => UsageLocation.jsx} | 0 ...useConfirmModal.js => useConfirmModal.jsx} | 0 src/hooks/{useQuery.js => useQuery.jsx} | 0 src/{index.js => index.jsx} | 6 -- .../{DefaultLayout.js => DefaultLayout.jsx} | 0 .../cipp/{AppApproval.js => AppApproval.jsx} | 0 .../{CIPPSettings.js => CIPPSettings.jsx} | 0 src/views/cipp/{Logs.js => Logs.jsx} | 0 .../cipp/{Scheduler.js => Scheduler.jsx} | 0 src/views/cipp/{Setup.js => Setup.jsx} | 0 .../{UserSettings.js => UserSettings.jsx} | 0 .../{AddContact.js => AddContact.jsx} | 0 ...dSharedMailbox.js => AddSharedMailbox.jsx} | 0 .../{ContactsList.js => ContactsList.jsx} | 0 ...issions.js => EditCalendarPermissions.jsx} | 0 .../{EditContact.js => EditContact.jsx} | 0 ...missions.js => EditMailboxPermissions.jsx} | 0 ...MailboxRuleList.js => MailboxRuleList.jsx} | 0 .../{MailboxesList.js => MailboxesList.jsx} | 0 .../{QuarantineList.js => QuarantineList.jsx} | 0 ...MobileDevices.js => ViewMobileDevices.jsx} | 0 ...orTemplate.js => AddConnectorTemplate.jsx} | 0 .../{ConnectorList.js => ConnectorList.jsx} | 0 ...DeployConnector.js => DeployConnector.jsx} | 0 ...emplates.js => ListConnectorTemplates.jsx} | 0 ...js => MailboxClientAccessSettingsList.jsx} | 0 ...sticsList.js => MailboxStatisticsList.jsx} | 0 .../{MessageTrace.js => MessageTrace.jsx} | 0 ...liciesList.js => PhishingPoliciesList.jsx} | 0 ...unt.js => SharedMailboxEnabledAccount.jsx} | 0 ...rTemplate.js => AddSpamfilterTemplate.jsx} | 0 ...ploySpamfilter.js => DeploySpamfilter.jsx} | 0 ...mplates.js => ListSpamfilterTemplates.jsx} | 0 .../{Spamfilter.js => Spamfilter.jsx} | 0 ...toreWizard.js => MailboxRestoreWizard.jsx} | 0 ...MailboxRestores.js => MailboxRestores.jsx} | 0 ...rtTemplate.js => AddTransportTemplate.jsx} | 0 ...DeployTransport.js => DeployTransport.jsx} | 0 ...emplates.js => ListTransportTemplates.jsx} | 0 .../{TransportRules.js => TransportRules.jsx} | 0 ...hocoApp.js => ApplicationsAddChocoApp.jsx} | 0 ...AddOffice.js => ApplicationsAddOffice.jsx} | 0 ...ationsAddRMM.js => ApplicationsAddRMM.jsx} | 0 ...AddWinGet.js => ApplicationsAddWinGet.jsx} | 0 ...plicationsList.js => ApplicationsList.jsx} | 0 ...ationQueue.js => ListApplicationQueue.jsx} | 0 ...lotAddDevice.js => AutopilotAddDevice.jsx} | 0 ...tAddProfile.js => AutopilotAddProfile.jsx} | 0 ...atusPage.js => AutopilotAddStatusPage.jsx} | 0 ...istDevices.js => AutopilotListDevices.jsx} | 0 ...tProfiles.js => AutopilotListProfiles.jsx} | 0 ...sPages.js => AutopilotListStatusPages.jsx} | 0 .../intune/{Devices.js => Devices.jsx} | 0 .../{MEMAddPolicy.js => MEMAddPolicy.jsx} | 0 ...cyTemplate.js => MEMAddPolicyTemplate.jsx} | 0 .../{MEMCAPolicies.js => MEMCAPolicies.jsx} | 0 .../{MEMEditPolicy.js => MEMEditPolicy.jsx} | 0 ...MEMListPolicies.js => MEMListPolicies.jsx} | 0 ...emplates.js => MEMListPolicyTemplates.jsx} | 0 src/views/home/{Home.js => Home.jsx} | 6 +- .../{AddGroup.js => AddGroup.jsx} | 0 ...dGroupTemplate.js => AddGroupTemplate.jsx} | 0 .../{AddUser.js => AddUser.jsx} | 0 .../{Deleted.js => Deleted.jsx} | 0 ...oupTemplate.js => DeployGroupTemplate.jsx} | 0 .../{EditGroup.js => EditGroup.jsx} | 0 .../{EditUser.js => EditUser.jsx} | 0 .../{GroupTemplates.js => GroupTemplates.jsx} | 0 .../administration/{Groups.js => Groups.jsx} | 0 .../{InviteGuest.js => InviteGuest.jsx} | 0 ...oardingWizard.js => OffboardingWizard.jsx} | 0 .../administration/{Roles.js => Roles.jsx} | 0 ...365Management.js => User365Management.jsx} | 0 .../{UserActions.js => UserActions.jsx} | 0 .../{UserCAPs.js => UserCAPs.jsx} | 0 .../{UserDetails.js => UserDetails.jsx} | 0 .../{UserDevices.js => UserDevices.jsx} | 0 ...erEmailDetails.js => UserEmailDetails.jsx} | 0 ...ermissions.js => UserEmailPermissions.jsx} | 0 ...EmailSettings.js => UserEmailSettings.jsx} | 0 .../{UserEmailUsage.js => UserEmailUsage.jsx} | 0 .../{UserGroups.js => UserGroups.jsx} | 0 ...ginDetails.js => UserLastLoginDetails.jsx} | 0 ...boxRuleList.js => UserMailboxRuleList.jsx} | 0 ...OneDriveUsage.js => UserOneDriveUsage.jsx} | 0 .../{UserSigninLogs.js => UserSigninLogs.jsx} | 0 .../administration/{Users.js => Users.jsx} | 0 .../{ViewBEC.js => ViewBEC.jsx} | 0 .../{ViewGroup.js => ViewGroup.jsx} | 0 .../{ViewUser.js => ViewUser.jsx} | 0 ...nectReport.js => AzureADConnectReport.jsx} | 0 .../{InactiveUsers.js => InactiveUsers.jsx} | 0 .../reports/{MFAReport.js => MFAReport.jsx} | 0 .../reports/{SignIns.js => SignIns.jsx} | 0 .../{PageLogOut.js => PageLogOut.jsx} | 2 +- .../pages/license/{License.js => License.jsx} | 2 +- src/views/pages/login/{Login.js => Login.jsx} | 0 .../pages/login/{Logout.js => Logout.jsx} | 0 .../pages/page401/{Page401.js => Page401.jsx} | 2 +- .../pages/page403/{Page403.js => Page403.jsx} | 2 +- .../pages/page404/{Page404.js => Page404.jsx} | 2 +- .../pages/page500/{Page500.js => Page500.jsx} | 0 .../{DeployDefender.js => DeployDefender.jsx} | 0 .../{ListDefender.js => ListDefender.jsx} | 0 .../defender/{ListVuln.js => ListVuln.jsx} | 0 .../{ListAlerts.js => ListAlerts.jsx} | 0 .../{ListIncidents.js => ListIncidents.jsx} | 0 ...port.js => ListDeviceComplianceReport.jsx} | 0 .../{OneDriveList.js => OneDriveList.jsx} | 0 .../{SharepointList.js => SharepointList.jsx} | 0 .../{BusinessVoice.js => BusinessVoice.jsx} | 0 ...amApplications.js => TeamApplications.jsx} | 0 .../{TeamChannels.js => TeamChannels.jsx} | 0 .../teams/{TeamDetails.js => TeamDetails.jsx} | 0 ...GuestPolicies.js => TeamGuestPolicies.jsx} | 0 ...mberPolicies.js => TeamMemberPolicies.jsx} | 0 .../teams/{TeamMembers.js => TeamMembers.jsx} | 0 ...gSettings.js => TeamMessagingSettings.jsx} | 0 .../teams/{TeamOwners.js => TeamOwners.jsx} | 0 .../{TeamsActivity.js => TeamsActivity.jsx} | 0 .../{TeamsAddTeam.js => TeamsAddTeam.jsx} | 0 .../{TeamsListTeam.js => TeamsListTeam.jsx} | 0 ...ewTeamSettings.js => ViewTeamSettings.jsx} | 0 .../{AlertWizard.js => AlertWizard.jsx} | 0 .../{Domains.js => Domains.jsx} | 0 .../{EditTenant.js => EditTenant.jsx} | 0 ...APInviteWizard.js => GDAPInviteWizard.jsx} | 0 .../{GDAPRoleWizard.js => GDAPRoleWizard.jsx} | 0 .../{GDAPWizard.js => GDAPWizard.jsx} | 0 .../{GeoIPLookup.js => GeoIPLookup.jsx} | 0 .../{GraphExplorer.js => GraphExplorer.jsx} | 0 ...ListAlertsQueue.js => ListAlertsQueue.jsx} | 0 ...terpriseApps.js => ListEnterpriseApps.jsx} | 0 .../{ListGDAPQueue.js => ListGDAPQueue.jsx} | 0 ...tionships.js => ListGDAPRelationships.jsx} | 0 .../{ListGDAPRoles.js => ListGDAPRoles.jsx} | 0 .../{ListLicences.js => ListLicences.jsx} | 0 .../{ListOauthApps.js => ListOauthApps.jsx} | 0 .../{ServiceHealth.js => ServiceHealth.jsx} | 0 .../{TenantLookup.js => TenantLookup.jsx} | 0 ...gWizard.js => TenantOffboardingWizard.jsx} | 0 .../{Tenants.js => Tenants.jsx} | 0 .../{AddCATemplate.js => AddCATemplate.jsx} | 0 ...itionalAccess.js => ConditionalAccess.jsx} | 0 .../conditional/{DeployCA.js => DeployCA.jsx} | 0 ...medLocation.js => DeployNamedLocation.jsx} | 0 ...ListCATemplates.js => ListCATemplates.jsx} | 0 .../{NamedLocations.js => NamedLocations.jsx} | 0 .../{ApplyStandard.js => ApplyStandard.jsx} | 0 ...AReportBuilder.js => BPAReportBuilder.jsx} | 0 ...ceAnalyser.js => BestPracticeAnalyser.jsx} | 0 ...DomainsAnalyser.js => DomainsAnalyser.jsx} | 0 ...dividualDomain.js => IndividualDomain.jsx} | 0 ...dStandards.js => ListAppliedStandards.jsx} | 0 vite.config.js | 32 +++++++++++ 218 files changed, 89 insertions(+), 83 deletions(-) create mode 100644 index.html delete mode 100644 public/index.html rename src/{App.js => App.jsx} (100%) rename src/{_nav.js => _nav.jsx} (100%) rename src/components/buttons/{CsvButton.js => CsvButton.jsx} (100%) rename src/components/buttons/{PdfButton.js => PdfButton.jsx} (100%) rename src/components/buttons/{TableModalButton.js => TableModalButton.jsx} (100%) rename src/components/buttons/{TitleButton.js => TitleButton.jsx} (100%) rename src/components/contentcards/{ActionContentCard.js => ActionContentCard.jsx} (94%) rename src/components/contentcards/{DatatableContentCard.js => DatatableContentCard.jsx} (100%) rename src/components/contentcards/{ListGroupContentCard.js => ListGroupContentCard.jsx} (100%) rename src/components/contentcards/{TableContentCard.js => TableContentCard.jsx} (100%) rename src/components/forms/{RFFComponents.js => RFFComponents.jsx} (100%) rename src/components/header/{AppHeaderDropdown.js => AppHeaderDropdown.jsx} (100%) rename src/components/header/{AppHeaderSearch.js => AppHeaderSearch.jsx} (100%) rename src/components/layout/{AppBreadcrumb.js => AppBreadcrumb.jsx} (100%) rename src/components/layout/{AppFooter.js => AppFooter.jsx} (100%) rename src/components/layout/{AppHeader.js => AppHeader.jsx} (96%) rename src/components/layout/{AppSidebar.js => AppSidebar.jsx} (100%) rename src/components/layout/{AppSidebarNav.js => AppSidebarNav.jsx} (100%) rename src/components/layout/{CippContentCard.js => CippContentCard.jsx} (100%) rename src/components/layout/{CippMasonry.js => CippMasonry.jsx} (100%) rename src/components/layout/{CippPage.js => CippPage.jsx} (100%) rename src/components/layout/{CippWizard.js => CippWizard.jsx} (100%) rename src/components/tables/{CellBadge.js => CellBadge.jsx} (100%) rename src/components/tables/{CellBoolean.js => CellBoolean.jsx} (100%) rename src/components/tables/{CellDate.js => CellDate.jsx} (100%) rename src/components/tables/{CellDelegatedPrivilege.js => CellDelegatedPrivilege.jsx} (100%) rename src/components/tables/{CellGenericFormat.js => CellGenericFormat.jsx} (100%) rename src/components/tables/{CellLicense.js => CellLicense.jsx} (100%) rename src/components/tables/{CellLogo.js => CellLogo.jsx} (100%) rename src/components/tables/{CellNullText.js => CellNullText.jsx} (100%) rename src/components/tables/{CellProgressBar.js => CellProgressBar.jsx} (100%) rename src/components/tables/{CellTable.js => CellTable.jsx} (100%) rename src/components/tables/{CellTip.js => CellTip.jsx} (100%) rename src/components/tables/{CippDatatable.js => CippDatatable.jsx} (100%) rename src/components/tables/{CippOffcanvasTable.js => CippOffcanvasTable.jsx} (100%) rename src/components/tables/{CippTable.js => CippTable.jsx} (100%) rename src/components/tables/{WizardTableField.js => WizardTableField.jsx} (95%) rename src/components/utilities/{CippActionsOffcanvas.js => CippActionsOffcanvas.jsx} (100%) rename src/components/utilities/{CippCamelCase.js => CippCamelCase.jsx} (100%) rename src/components/utilities/{CippCodeBlock.js => CippCodeBlock.jsx} (100%) rename src/components/utilities/{CippCodeOffcanvas.js => CippCodeOffcanvas.jsx} (100%) rename src/components/utilities/{CippFuzzySearch.js => CippFuzzySearch.jsx} (69%) rename src/components/utilities/{CippListOffcanvas.js => CippListOffcanvas.jsx} (100%) rename src/components/utilities/{CippOffcanvas.js => CippOffcanvas.jsx} (100%) rename src/components/utilities/{CippProfile.js => CippProfile.jsx} (100%) rename src/components/utilities/{CippTenantOffcanvas.js => CippTenantOffcanvas.jsx} (100%) rename src/components/utilities/{ErrorBoundary.js => ErrorBoundary.jsx} (100%) rename src/components/utilities/{FastSwitcher.js => FastSwitcher.jsx} (100%) rename src/components/utilities/{Loading.js => Loading.jsx} (100%) rename src/components/utilities/{ModalRoot.js => ModalRoot.jsx} (100%) rename src/components/utilities/{PageSizeSwitcher.js => PageSizeSwitcher.jsx} (100%) rename src/components/utilities/{PrivateRoute.js => PrivateRoute.jsx} (92%) rename src/components/utilities/{ReportImage.js => ReportImage.jsx} (100%) rename src/components/utilities/{SharedModal.js => SharedModal.jsx} (100%) rename src/components/utilities/{StatusIcon.js => StatusIcon.jsx} (100%) rename src/components/utilities/{TenantListSelector.js => TenantListSelector.jsx} (100%) rename src/components/utilities/{TenantSelector.js => TenantSelector.jsx} (100%) rename src/components/utilities/{TenantSelectorMultiple.js => TenantSelectorMultiple.jsx} (100%) rename src/components/utilities/{ThemeSwitcher.js => ThemeSwitcher.jsx} (100%) rename src/components/utilities/{Toasts.js => Toasts.jsx} (100%) rename src/components/utilities/{UniversalSearch.js => UniversalSearch.jsx} (100%) rename src/components/utilities/{UsageLocation.js => UsageLocation.jsx} (100%) rename src/hooks/{useConfirmModal.js => useConfirmModal.jsx} (100%) rename src/hooks/{useQuery.js => useQuery.jsx} (100%) rename src/{index.js => index.jsx} (67%) rename src/layout/{DefaultLayout.js => DefaultLayout.jsx} (100%) rename src/views/cipp/{AppApproval.js => AppApproval.jsx} (100%) rename src/views/cipp/{CIPPSettings.js => CIPPSettings.jsx} (100%) rename src/views/cipp/{Logs.js => Logs.jsx} (100%) rename src/views/cipp/{Scheduler.js => Scheduler.jsx} (100%) rename src/views/cipp/{Setup.js => Setup.jsx} (100%) rename src/views/cipp/{UserSettings.js => UserSettings.jsx} (100%) rename src/views/email-exchange/administration/{AddContact.js => AddContact.jsx} (100%) rename src/views/email-exchange/administration/{AddSharedMailbox.js => AddSharedMailbox.jsx} (100%) rename src/views/email-exchange/administration/{ContactsList.js => ContactsList.jsx} (100%) rename src/views/email-exchange/administration/{EditCalendarPermissions.js => EditCalendarPermissions.jsx} (100%) rename src/views/email-exchange/administration/{EditContact.js => EditContact.jsx} (100%) rename src/views/email-exchange/administration/{EditMailboxPermissions.js => EditMailboxPermissions.jsx} (100%) rename src/views/email-exchange/administration/{MailboxRuleList.js => MailboxRuleList.jsx} (100%) rename src/views/email-exchange/administration/{MailboxesList.js => MailboxesList.jsx} (100%) rename src/views/email-exchange/administration/{QuarantineList.js => QuarantineList.jsx} (100%) rename src/views/email-exchange/administration/{ViewMobileDevices.js => ViewMobileDevices.jsx} (100%) rename src/views/email-exchange/connectors/{AddConnectorTemplate.js => AddConnectorTemplate.jsx} (100%) rename src/views/email-exchange/connectors/{ConnectorList.js => ConnectorList.jsx} (100%) rename src/views/email-exchange/connectors/{DeployConnector.js => DeployConnector.jsx} (100%) rename src/views/email-exchange/connectors/{ListConnectorTemplates.js => ListConnectorTemplates.jsx} (100%) rename src/views/email-exchange/reports/{MailboxClientAccessSettingsList.js => MailboxClientAccessSettingsList.jsx} (100%) rename src/views/email-exchange/reports/{MailboxStatisticsList.js => MailboxStatisticsList.jsx} (100%) rename src/views/email-exchange/reports/{MessageTrace.js => MessageTrace.jsx} (100%) rename src/views/email-exchange/reports/{PhishingPoliciesList.js => PhishingPoliciesList.jsx} (100%) rename src/views/email-exchange/reports/{SharedMailboxEnabledAccount.js => SharedMailboxEnabledAccount.jsx} (100%) rename src/views/email-exchange/spamfilter/{AddSpamfilterTemplate.js => AddSpamfilterTemplate.jsx} (100%) rename src/views/email-exchange/spamfilter/{DeploySpamfilter.js => DeploySpamfilter.jsx} (100%) rename src/views/email-exchange/spamfilter/{ListSpamfilterTemplates.js => ListSpamfilterTemplates.jsx} (100%) rename src/views/email-exchange/spamfilter/{Spamfilter.js => Spamfilter.jsx} (100%) rename src/views/email-exchange/tools/{MailboxRestoreWizard.js => MailboxRestoreWizard.jsx} (100%) rename src/views/email-exchange/tools/{MailboxRestores.js => MailboxRestores.jsx} (100%) rename src/views/email-exchange/transport/{AddTransportTemplate.js => AddTransportTemplate.jsx} (100%) rename src/views/email-exchange/transport/{DeployTransport.js => DeployTransport.jsx} (100%) rename src/views/email-exchange/transport/{ListTransportTemplates.js => ListTransportTemplates.jsx} (100%) rename src/views/email-exchange/transport/{TransportRules.js => TransportRules.jsx} (100%) rename src/views/endpoint/applications/{ApplicationsAddChocoApp.js => ApplicationsAddChocoApp.jsx} (100%) rename src/views/endpoint/applications/{ApplicationsAddOffice.js => ApplicationsAddOffice.jsx} (100%) rename src/views/endpoint/applications/{ApplicationsAddRMM.js => ApplicationsAddRMM.jsx} (100%) rename src/views/endpoint/applications/{ApplicationsAddWinGet.js => ApplicationsAddWinGet.jsx} (100%) rename src/views/endpoint/applications/{ApplicationsList.js => ApplicationsList.jsx} (100%) rename src/views/endpoint/applications/{ListApplicationQueue.js => ListApplicationQueue.jsx} (100%) rename src/views/endpoint/autopilot/{AutopilotAddDevice.js => AutopilotAddDevice.jsx} (100%) rename src/views/endpoint/autopilot/{AutopilotAddProfile.js => AutopilotAddProfile.jsx} (100%) rename src/views/endpoint/autopilot/{AutopilotAddStatusPage.js => AutopilotAddStatusPage.jsx} (100%) rename src/views/endpoint/autopilot/{AutopilotListDevices.js => AutopilotListDevices.jsx} (100%) rename src/views/endpoint/autopilot/{AutopilotListProfiles.js => AutopilotListProfiles.jsx} (100%) rename src/views/endpoint/autopilot/{AutopilotListStatusPages.js => AutopilotListStatusPages.jsx} (100%) rename src/views/endpoint/intune/{Devices.js => Devices.jsx} (100%) rename src/views/endpoint/intune/{MEMAddPolicy.js => MEMAddPolicy.jsx} (100%) rename src/views/endpoint/intune/{MEMAddPolicyTemplate.js => MEMAddPolicyTemplate.jsx} (100%) rename src/views/endpoint/intune/{MEMCAPolicies.js => MEMCAPolicies.jsx} (100%) rename src/views/endpoint/intune/{MEMEditPolicy.js => MEMEditPolicy.jsx} (100%) rename src/views/endpoint/intune/{MEMListPolicies.js => MEMListPolicies.jsx} (100%) rename src/views/endpoint/intune/{MEMListPolicyTemplates.js => MEMListPolicyTemplates.jsx} (100%) rename src/views/home/{Home.js => Home.jsx} (98%) rename src/views/identity/administration/{AddGroup.js => AddGroup.jsx} (100%) rename src/views/identity/administration/{AddGroupTemplate.js => AddGroupTemplate.jsx} (100%) rename src/views/identity/administration/{AddUser.js => AddUser.jsx} (100%) rename src/views/identity/administration/{Deleted.js => Deleted.jsx} (100%) rename src/views/identity/administration/{DeployGroupTemplate.js => DeployGroupTemplate.jsx} (100%) rename src/views/identity/administration/{EditGroup.js => EditGroup.jsx} (100%) rename src/views/identity/administration/{EditUser.js => EditUser.jsx} (100%) rename src/views/identity/administration/{GroupTemplates.js => GroupTemplates.jsx} (100%) rename src/views/identity/administration/{Groups.js => Groups.jsx} (100%) rename src/views/identity/administration/{InviteGuest.js => InviteGuest.jsx} (100%) rename src/views/identity/administration/{OffboardingWizard.js => OffboardingWizard.jsx} (100%) rename src/views/identity/administration/{Roles.js => Roles.jsx} (100%) rename src/views/identity/administration/{User365Management.js => User365Management.jsx} (100%) rename src/views/identity/administration/{UserActions.js => UserActions.jsx} (100%) rename src/views/identity/administration/{UserCAPs.js => UserCAPs.jsx} (100%) rename src/views/identity/administration/{UserDetails.js => UserDetails.jsx} (100%) rename src/views/identity/administration/{UserDevices.js => UserDevices.jsx} (100%) rename src/views/identity/administration/{UserEmailDetails.js => UserEmailDetails.jsx} (100%) rename src/views/identity/administration/{UserEmailPermissions.js => UserEmailPermissions.jsx} (100%) rename src/views/identity/administration/{UserEmailSettings.js => UserEmailSettings.jsx} (100%) rename src/views/identity/administration/{UserEmailUsage.js => UserEmailUsage.jsx} (100%) rename src/views/identity/administration/{UserGroups.js => UserGroups.jsx} (100%) rename src/views/identity/administration/{UserLastLoginDetails.js => UserLastLoginDetails.jsx} (100%) rename src/views/identity/administration/{UserMailboxRuleList.js => UserMailboxRuleList.jsx} (100%) rename src/views/identity/administration/{UserOneDriveUsage.js => UserOneDriveUsage.jsx} (100%) rename src/views/identity/administration/{UserSigninLogs.js => UserSigninLogs.jsx} (100%) rename src/views/identity/administration/{Users.js => Users.jsx} (100%) rename src/views/identity/administration/{ViewBEC.js => ViewBEC.jsx} (100%) rename src/views/identity/administration/{ViewGroup.js => ViewGroup.jsx} (100%) rename src/views/identity/administration/{ViewUser.js => ViewUser.jsx} (100%) rename src/views/identity/reports/{AzureADConnectReport.js => AzureADConnectReport.jsx} (100%) rename src/views/identity/reports/{InactiveUsers.js => InactiveUsers.jsx} (100%) rename src/views/identity/reports/{MFAReport.js => MFAReport.jsx} (100%) rename src/views/identity/reports/{SignIns.js => SignIns.jsx} (100%) rename src/views/pages/LogoutRedirect/{PageLogOut.js => PageLogOut.jsx} (96%) rename src/views/pages/license/{License.js => License.jsx} (99%) rename src/views/pages/login/{Login.js => Login.jsx} (100%) rename src/views/pages/login/{Logout.js => Logout.jsx} (100%) rename src/views/pages/page401/{Page401.js => Page401.jsx} (96%) rename src/views/pages/page403/{Page403.js => Page403.jsx} (95%) rename src/views/pages/page404/{Page404.js => Page404.jsx} (95%) rename src/views/pages/page500/{Page500.js => Page500.jsx} (100%) rename src/views/security/defender/{DeployDefender.js => DeployDefender.jsx} (100%) rename src/views/security/defender/{ListDefender.js => ListDefender.jsx} (100%) rename src/views/security/defender/{ListVuln.js => ListVuln.jsx} (100%) rename src/views/security/incidents/{ListAlerts.js => ListAlerts.jsx} (100%) rename src/views/security/incidents/{ListIncidents.js => ListIncidents.jsx} (100%) rename src/views/security/reports/{ListDeviceComplianceReport.js => ListDeviceComplianceReport.jsx} (100%) rename src/views/teams-share/onedrive/{OneDriveList.js => OneDriveList.jsx} (100%) rename src/views/teams-share/sharepoint/{SharepointList.js => SharepointList.jsx} (100%) rename src/views/teams-share/teams/{BusinessVoice.js => BusinessVoice.jsx} (100%) rename src/views/teams-share/teams/{TeamApplications.js => TeamApplications.jsx} (100%) rename src/views/teams-share/teams/{TeamChannels.js => TeamChannels.jsx} (100%) rename src/views/teams-share/teams/{TeamDetails.js => TeamDetails.jsx} (100%) rename src/views/teams-share/teams/{TeamGuestPolicies.js => TeamGuestPolicies.jsx} (100%) rename src/views/teams-share/teams/{TeamMemberPolicies.js => TeamMemberPolicies.jsx} (100%) rename src/views/teams-share/teams/{TeamMembers.js => TeamMembers.jsx} (100%) rename src/views/teams-share/teams/{TeamMessagingSettings.js => TeamMessagingSettings.jsx} (100%) rename src/views/teams-share/teams/{TeamOwners.js => TeamOwners.jsx} (100%) rename src/views/teams-share/teams/{TeamsActivity.js => TeamsActivity.jsx} (100%) rename src/views/teams-share/teams/{TeamsAddTeam.js => TeamsAddTeam.jsx} (100%) rename src/views/teams-share/teams/{TeamsListTeam.js => TeamsListTeam.jsx} (100%) rename src/views/teams-share/teams/{ViewTeamSettings.js => ViewTeamSettings.jsx} (100%) rename src/views/tenant/administration/{AlertWizard.js => AlertWizard.jsx} (100%) rename src/views/tenant/administration/{Domains.js => Domains.jsx} (100%) rename src/views/tenant/administration/{EditTenant.js => EditTenant.jsx} (100%) rename src/views/tenant/administration/{GDAPInviteWizard.js => GDAPInviteWizard.jsx} (100%) rename src/views/tenant/administration/{GDAPRoleWizard.js => GDAPRoleWizard.jsx} (100%) rename src/views/tenant/administration/{GDAPWizard.js => GDAPWizard.jsx} (100%) rename src/views/tenant/administration/{GeoIPLookup.js => GeoIPLookup.jsx} (100%) rename src/views/tenant/administration/{GraphExplorer.js => GraphExplorer.jsx} (100%) rename src/views/tenant/administration/{ListAlertsQueue.js => ListAlertsQueue.jsx} (100%) rename src/views/tenant/administration/{ListEnterpriseApps.js => ListEnterpriseApps.jsx} (100%) rename src/views/tenant/administration/{ListGDAPQueue.js => ListGDAPQueue.jsx} (100%) rename src/views/tenant/administration/{ListGDAPRelationships.js => ListGDAPRelationships.jsx} (100%) rename src/views/tenant/administration/{ListGDAPRoles.js => ListGDAPRoles.jsx} (100%) rename src/views/tenant/administration/{ListLicences.js => ListLicences.jsx} (100%) rename src/views/tenant/administration/{ListOauthApps.js => ListOauthApps.jsx} (100%) rename src/views/tenant/administration/{ServiceHealth.js => ServiceHealth.jsx} (100%) rename src/views/tenant/administration/{TenantLookup.js => TenantLookup.jsx} (100%) rename src/views/tenant/administration/{TenantOffboardingWizard.js => TenantOffboardingWizard.jsx} (100%) rename src/views/tenant/administration/{Tenants.js => Tenants.jsx} (100%) rename src/views/tenant/conditional/{AddCATemplate.js => AddCATemplate.jsx} (100%) rename src/views/tenant/conditional/{ConditionalAccess.js => ConditionalAccess.jsx} (100%) rename src/views/tenant/conditional/{DeployCA.js => DeployCA.jsx} (100%) rename src/views/tenant/conditional/{DeployNamedLocation.js => DeployNamedLocation.jsx} (100%) rename src/views/tenant/conditional/{ListCATemplates.js => ListCATemplates.jsx} (100%) rename src/views/tenant/conditional/{NamedLocations.js => NamedLocations.jsx} (100%) rename src/views/tenant/standards/{ApplyStandard.js => ApplyStandard.jsx} (100%) rename src/views/tenant/standards/{BPAReportBuilder.js => BPAReportBuilder.jsx} (100%) rename src/views/tenant/standards/{BestPracticeAnalyser.js => BestPracticeAnalyser.jsx} (100%) rename src/views/tenant/standards/{DomainsAnalyser.js => DomainsAnalyser.jsx} (100%) rename src/views/tenant/standards/{IndividualDomain.js => IndividualDomain.jsx} (100%) rename src/views/tenant/standards/{ListAppliedStandards.js => ListAppliedStandards.jsx} (100%) create mode 100644 vite.config.js diff --git a/index.html b/index.html new file mode 100644 index 000000000000..0715762939da --- /dev/null +++ b/index.html @@ -0,0 +1,37 @@ + + + + + + + + + + CIPP + + + + + + + + + + + +
    + + + diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 9a15c8cb64da..000000000000 --- a/public/index.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - CIPP - - - - - - - - - - - - -
    - - - diff --git a/src/App.js b/src/App.jsx similarity index 100% rename from src/App.js rename to src/App.jsx diff --git a/src/_nav.js b/src/_nav.jsx similarity index 100% rename from src/_nav.js rename to src/_nav.jsx diff --git a/src/components/buttons/CsvButton.js b/src/components/buttons/CsvButton.jsx similarity index 100% rename from src/components/buttons/CsvButton.js rename to src/components/buttons/CsvButton.jsx diff --git a/src/components/buttons/PdfButton.js b/src/components/buttons/PdfButton.jsx similarity index 100% rename from src/components/buttons/PdfButton.js rename to src/components/buttons/PdfButton.jsx diff --git a/src/components/buttons/TableModalButton.js b/src/components/buttons/TableModalButton.jsx similarity index 100% rename from src/components/buttons/TableModalButton.js rename to src/components/buttons/TableModalButton.jsx diff --git a/src/components/buttons/TitleButton.js b/src/components/buttons/TitleButton.jsx similarity index 100% rename from src/components/buttons/TitleButton.js rename to src/components/buttons/TitleButton.jsx diff --git a/src/components/contentcards/ActionContentCard.js b/src/components/contentcards/ActionContentCard.jsx similarity index 94% rename from src/components/contentcards/ActionContentCard.js rename to src/components/contentcards/ActionContentCard.jsx index 07f25307b483..a11d424a86cb 100644 --- a/src/components/contentcards/ActionContentCard.js +++ b/src/components/contentcards/ActionContentCard.jsx @@ -50,7 +50,7 @@ ActionContentCard.propTypes = { PropTypes.shape({ label: PropTypes.string.isRequired, link: PropTypes.string.isRequired, - icon: PropTypes.element, + icon: PropTypes.oneOfType([PropTypes.element, PropTypes.object, PropTypes.string]), color: PropTypes.string, target: PropTypes.string, onClick: PropTypes.func, diff --git a/src/components/contentcards/DatatableContentCard.js b/src/components/contentcards/DatatableContentCard.jsx similarity index 100% rename from src/components/contentcards/DatatableContentCard.js rename to src/components/contentcards/DatatableContentCard.jsx diff --git a/src/components/contentcards/ListGroupContentCard.js b/src/components/contentcards/ListGroupContentCard.jsx similarity index 100% rename from src/components/contentcards/ListGroupContentCard.js rename to src/components/contentcards/ListGroupContentCard.jsx diff --git a/src/components/contentcards/TableContentCard.js b/src/components/contentcards/TableContentCard.jsx similarity index 100% rename from src/components/contentcards/TableContentCard.js rename to src/components/contentcards/TableContentCard.jsx diff --git a/src/components/forms/RFFComponents.js b/src/components/forms/RFFComponents.jsx similarity index 100% rename from src/components/forms/RFFComponents.js rename to src/components/forms/RFFComponents.jsx diff --git a/src/components/header/AppHeaderDropdown.js b/src/components/header/AppHeaderDropdown.jsx similarity index 100% rename from src/components/header/AppHeaderDropdown.js rename to src/components/header/AppHeaderDropdown.jsx diff --git a/src/components/header/AppHeaderSearch.js b/src/components/header/AppHeaderSearch.jsx similarity index 100% rename from src/components/header/AppHeaderSearch.js rename to src/components/header/AppHeaderSearch.jsx diff --git a/src/components/layout/AppBreadcrumb.js b/src/components/layout/AppBreadcrumb.jsx similarity index 100% rename from src/components/layout/AppBreadcrumb.js rename to src/components/layout/AppBreadcrumb.jsx diff --git a/src/components/layout/AppFooter.js b/src/components/layout/AppFooter.jsx similarity index 100% rename from src/components/layout/AppFooter.js rename to src/components/layout/AppFooter.jsx diff --git a/src/components/layout/AppHeader.js b/src/components/layout/AppHeader.jsx similarity index 96% rename from src/components/layout/AppHeader.js rename to src/components/layout/AppHeader.jsx index 48dfc929c380..34637ee92ef9 100644 --- a/src/components/layout/AppHeader.js +++ b/src/components/layout/AppHeader.jsx @@ -146,10 +146,11 @@ const AppHeader = () => { dashboard.length >= 1 && dashboard.map((item, index) => (
    - + {item.Alert} Link
    diff --git a/src/components/layout/AppSidebar.js b/src/components/layout/AppSidebar.jsx similarity index 100% rename from src/components/layout/AppSidebar.js rename to src/components/layout/AppSidebar.jsx diff --git a/src/components/layout/AppSidebarNav.js b/src/components/layout/AppSidebarNav.jsx similarity index 100% rename from src/components/layout/AppSidebarNav.js rename to src/components/layout/AppSidebarNav.jsx diff --git a/src/components/layout/CippContentCard.js b/src/components/layout/CippContentCard.jsx similarity index 100% rename from src/components/layout/CippContentCard.js rename to src/components/layout/CippContentCard.jsx diff --git a/src/components/layout/CippMasonry.js b/src/components/layout/CippMasonry.jsx similarity index 100% rename from src/components/layout/CippMasonry.js rename to src/components/layout/CippMasonry.jsx diff --git a/src/components/layout/CippPage.js b/src/components/layout/CippPage.jsx similarity index 100% rename from src/components/layout/CippPage.js rename to src/components/layout/CippPage.jsx diff --git a/src/components/layout/CippWizard.js b/src/components/layout/CippWizard.jsx similarity index 100% rename from src/components/layout/CippWizard.js rename to src/components/layout/CippWizard.jsx diff --git a/src/components/tables/CellBadge.js b/src/components/tables/CellBadge.jsx similarity index 100% rename from src/components/tables/CellBadge.js rename to src/components/tables/CellBadge.jsx diff --git a/src/components/tables/CellBoolean.js b/src/components/tables/CellBoolean.jsx similarity index 100% rename from src/components/tables/CellBoolean.js rename to src/components/tables/CellBoolean.jsx diff --git a/src/components/tables/CellDate.js b/src/components/tables/CellDate.jsx similarity index 100% rename from src/components/tables/CellDate.js rename to src/components/tables/CellDate.jsx diff --git a/src/components/tables/CellDelegatedPrivilege.js b/src/components/tables/CellDelegatedPrivilege.jsx similarity index 100% rename from src/components/tables/CellDelegatedPrivilege.js rename to src/components/tables/CellDelegatedPrivilege.jsx diff --git a/src/components/tables/CellGenericFormat.js b/src/components/tables/CellGenericFormat.jsx similarity index 100% rename from src/components/tables/CellGenericFormat.js rename to src/components/tables/CellGenericFormat.jsx diff --git a/src/components/tables/CellLicense.js b/src/components/tables/CellLicense.jsx similarity index 100% rename from src/components/tables/CellLicense.js rename to src/components/tables/CellLicense.jsx diff --git a/src/components/tables/CellLogo.js b/src/components/tables/CellLogo.jsx similarity index 100% rename from src/components/tables/CellLogo.js rename to src/components/tables/CellLogo.jsx diff --git a/src/components/tables/CellNullText.js b/src/components/tables/CellNullText.jsx similarity index 100% rename from src/components/tables/CellNullText.js rename to src/components/tables/CellNullText.jsx diff --git a/src/components/tables/CellProgressBar.js b/src/components/tables/CellProgressBar.jsx similarity index 100% rename from src/components/tables/CellProgressBar.js rename to src/components/tables/CellProgressBar.jsx diff --git a/src/components/tables/CellTable.js b/src/components/tables/CellTable.jsx similarity index 100% rename from src/components/tables/CellTable.js rename to src/components/tables/CellTable.jsx diff --git a/src/components/tables/CellTip.js b/src/components/tables/CellTip.jsx similarity index 100% rename from src/components/tables/CellTip.js rename to src/components/tables/CellTip.jsx diff --git a/src/components/tables/CippDatatable.js b/src/components/tables/CippDatatable.jsx similarity index 100% rename from src/components/tables/CippDatatable.js rename to src/components/tables/CippDatatable.jsx diff --git a/src/components/tables/CippOffcanvasTable.js b/src/components/tables/CippOffcanvasTable.jsx similarity index 100% rename from src/components/tables/CippOffcanvasTable.js rename to src/components/tables/CippOffcanvasTable.jsx diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.jsx similarity index 100% rename from src/components/tables/CippTable.js rename to src/components/tables/CippTable.jsx diff --git a/src/components/tables/WizardTableField.js b/src/components/tables/WizardTableField.jsx similarity index 95% rename from src/components/tables/WizardTableField.js rename to src/components/tables/WizardTableField.jsx index 6dc929edb908..3e61e1e4d1a8 100644 --- a/src/components/tables/WizardTableField.js +++ b/src/components/tables/WizardTableField.jsx @@ -22,10 +22,10 @@ export default class WizardTableField extends React.Component { columns: [], } - handleSelect = ({ selectedRows }) => { + handleSelect = ({ selectedRows = [] }) => { // console.log(selectedRows) const { fieldProps, keyField } = this.props - if (selectedRows !== []) { + if (selectedRows.length > 0) { fieldProps.input.onChange(selectedRows) this.setState(() => ({ selected: selectedRows.map((el) => el[keyField]), diff --git a/src/components/utilities/CippActionsOffcanvas.js b/src/components/utilities/CippActionsOffcanvas.jsx similarity index 100% rename from src/components/utilities/CippActionsOffcanvas.js rename to src/components/utilities/CippActionsOffcanvas.jsx diff --git a/src/components/utilities/CippCamelCase.js b/src/components/utilities/CippCamelCase.jsx similarity index 100% rename from src/components/utilities/CippCamelCase.js rename to src/components/utilities/CippCamelCase.jsx diff --git a/src/components/utilities/CippCodeBlock.js b/src/components/utilities/CippCodeBlock.jsx similarity index 100% rename from src/components/utilities/CippCodeBlock.js rename to src/components/utilities/CippCodeBlock.jsx diff --git a/src/components/utilities/CippCodeOffcanvas.js b/src/components/utilities/CippCodeOffcanvas.jsx similarity index 100% rename from src/components/utilities/CippCodeOffcanvas.js rename to src/components/utilities/CippCodeOffcanvas.jsx diff --git a/src/components/utilities/CippFuzzySearch.js b/src/components/utilities/CippFuzzySearch.jsx similarity index 69% rename from src/components/utilities/CippFuzzySearch.js rename to src/components/utilities/CippFuzzySearch.jsx index 43021b80014e..e7efe8d0bc1a 100644 --- a/src/components/utilities/CippFuzzySearch.js +++ b/src/components/utilities/CippFuzzySearch.jsx @@ -1,11 +1,8 @@ -var _fuse = _interopRequireDefault(require('fuse.js')) - -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj } -} +// var _fuse = _interopRequireDefault(require('fuse.js')) +import Fuse from 'fuse.js' function CippfuzzySearch(options) { - var fuse = new _fuse['default'](options, { + const fuse = new Fuse(options, { keys: ['name', 'groupName', 'items.name'], threshold: 0.5, location: 0, diff --git a/src/components/utilities/CippListOffcanvas.js b/src/components/utilities/CippListOffcanvas.jsx similarity index 100% rename from src/components/utilities/CippListOffcanvas.js rename to src/components/utilities/CippListOffcanvas.jsx diff --git a/src/components/utilities/CippOffcanvas.js b/src/components/utilities/CippOffcanvas.jsx similarity index 100% rename from src/components/utilities/CippOffcanvas.js rename to src/components/utilities/CippOffcanvas.jsx diff --git a/src/components/utilities/CippProfile.js b/src/components/utilities/CippProfile.jsx similarity index 100% rename from src/components/utilities/CippProfile.js rename to src/components/utilities/CippProfile.jsx diff --git a/src/components/utilities/CippTenantOffcanvas.js b/src/components/utilities/CippTenantOffcanvas.jsx similarity index 100% rename from src/components/utilities/CippTenantOffcanvas.js rename to src/components/utilities/CippTenantOffcanvas.jsx diff --git a/src/components/utilities/ErrorBoundary.js b/src/components/utilities/ErrorBoundary.jsx similarity index 100% rename from src/components/utilities/ErrorBoundary.js rename to src/components/utilities/ErrorBoundary.jsx diff --git a/src/components/utilities/FastSwitcher.js b/src/components/utilities/FastSwitcher.jsx similarity index 100% rename from src/components/utilities/FastSwitcher.js rename to src/components/utilities/FastSwitcher.jsx diff --git a/src/components/utilities/Loading.js b/src/components/utilities/Loading.jsx similarity index 100% rename from src/components/utilities/Loading.js rename to src/components/utilities/Loading.jsx diff --git a/src/components/utilities/ModalRoot.js b/src/components/utilities/ModalRoot.jsx similarity index 100% rename from src/components/utilities/ModalRoot.js rename to src/components/utilities/ModalRoot.jsx diff --git a/src/components/utilities/PageSizeSwitcher.js b/src/components/utilities/PageSizeSwitcher.jsx similarity index 100% rename from src/components/utilities/PageSizeSwitcher.js rename to src/components/utilities/PageSizeSwitcher.jsx diff --git a/src/components/utilities/PrivateRoute.js b/src/components/utilities/PrivateRoute.jsx similarity index 92% rename from src/components/utilities/PrivateRoute.js rename to src/components/utilities/PrivateRoute.jsx index 98c9b7440d4d..b89f0d5aa8ee 100644 --- a/src/components/utilities/PrivateRoute.js +++ b/src/components/utilities/PrivateRoute.jsx @@ -15,10 +15,10 @@ export const PrivateRoute = ({ children, routeType }) => { } dispatch(updateAccessToken(profile)) - let roles - if (null !== profile.clientPrincipal) { + let roles = null + if (null !== profile?.clientPrincipal) { roles = profile?.clientPrincipal.userRoles - } else if (null === profile.clientPrincipal) { + } else if (null === profile?.clientPrincipal) { return } if (null === roles) { diff --git a/src/components/utilities/ReportImage.js b/src/components/utilities/ReportImage.jsx similarity index 100% rename from src/components/utilities/ReportImage.js rename to src/components/utilities/ReportImage.jsx diff --git a/src/components/utilities/SharedModal.js b/src/components/utilities/SharedModal.jsx similarity index 100% rename from src/components/utilities/SharedModal.js rename to src/components/utilities/SharedModal.jsx diff --git a/src/components/utilities/StatusIcon.js b/src/components/utilities/StatusIcon.jsx similarity index 100% rename from src/components/utilities/StatusIcon.js rename to src/components/utilities/StatusIcon.jsx diff --git a/src/components/utilities/TenantListSelector.js b/src/components/utilities/TenantListSelector.jsx similarity index 100% rename from src/components/utilities/TenantListSelector.js rename to src/components/utilities/TenantListSelector.jsx diff --git a/src/components/utilities/TenantSelector.js b/src/components/utilities/TenantSelector.jsx similarity index 100% rename from src/components/utilities/TenantSelector.js rename to src/components/utilities/TenantSelector.jsx diff --git a/src/components/utilities/TenantSelectorMultiple.js b/src/components/utilities/TenantSelectorMultiple.jsx similarity index 100% rename from src/components/utilities/TenantSelectorMultiple.js rename to src/components/utilities/TenantSelectorMultiple.jsx diff --git a/src/components/utilities/ThemeSwitcher.js b/src/components/utilities/ThemeSwitcher.jsx similarity index 100% rename from src/components/utilities/ThemeSwitcher.js rename to src/components/utilities/ThemeSwitcher.jsx diff --git a/src/components/utilities/Toasts.js b/src/components/utilities/Toasts.jsx similarity index 100% rename from src/components/utilities/Toasts.js rename to src/components/utilities/Toasts.jsx diff --git a/src/components/utilities/UniversalSearch.js b/src/components/utilities/UniversalSearch.jsx similarity index 100% rename from src/components/utilities/UniversalSearch.js rename to src/components/utilities/UniversalSearch.jsx diff --git a/src/components/utilities/UsageLocation.js b/src/components/utilities/UsageLocation.jsx similarity index 100% rename from src/components/utilities/UsageLocation.js rename to src/components/utilities/UsageLocation.jsx diff --git a/src/hooks/useConfirmModal.js b/src/hooks/useConfirmModal.jsx similarity index 100% rename from src/hooks/useConfirmModal.js rename to src/hooks/useConfirmModal.jsx diff --git a/src/hooks/useQuery.js b/src/hooks/useQuery.jsx similarity index 100% rename from src/hooks/useQuery.js rename to src/hooks/useQuery.jsx diff --git a/src/index.js b/src/index.jsx similarity index 67% rename from src/index.js rename to src/index.jsx index 975affa81577..97dca410bfd3 100644 --- a/src/index.js +++ b/src/index.jsx @@ -3,7 +3,6 @@ import 'core-js' import React from 'react' import ReactDOM from 'react-dom' import App from 'src/App' -import * as serviceWorker from 'src/serviceWorker' import { Provider } from 'react-redux' import { store, persistor } from 'src/store' import { PersistGate } from 'redux-persist/integration/react' @@ -19,8 +18,3 @@ ReactDOM.render( , document.getElementById('root'), ) - -// If you want your app to work offline and load faster, you can change -// unregister() to register() below. Note this comes with some pitfalls. -// Learn more about service workers: http://bit.ly/CRA-PWA -serviceWorker.unregister() diff --git a/src/layout/DefaultLayout.js b/src/layout/DefaultLayout.jsx similarity index 100% rename from src/layout/DefaultLayout.js rename to src/layout/DefaultLayout.jsx diff --git a/src/views/cipp/AppApproval.js b/src/views/cipp/AppApproval.jsx similarity index 100% rename from src/views/cipp/AppApproval.js rename to src/views/cipp/AppApproval.jsx diff --git a/src/views/cipp/CIPPSettings.js b/src/views/cipp/CIPPSettings.jsx similarity index 100% rename from src/views/cipp/CIPPSettings.js rename to src/views/cipp/CIPPSettings.jsx diff --git a/src/views/cipp/Logs.js b/src/views/cipp/Logs.jsx similarity index 100% rename from src/views/cipp/Logs.js rename to src/views/cipp/Logs.jsx diff --git a/src/views/cipp/Scheduler.js b/src/views/cipp/Scheduler.jsx similarity index 100% rename from src/views/cipp/Scheduler.js rename to src/views/cipp/Scheduler.jsx diff --git a/src/views/cipp/Setup.js b/src/views/cipp/Setup.jsx similarity index 100% rename from src/views/cipp/Setup.js rename to src/views/cipp/Setup.jsx diff --git a/src/views/cipp/UserSettings.js b/src/views/cipp/UserSettings.jsx similarity index 100% rename from src/views/cipp/UserSettings.js rename to src/views/cipp/UserSettings.jsx diff --git a/src/views/email-exchange/administration/AddContact.js b/src/views/email-exchange/administration/AddContact.jsx similarity index 100% rename from src/views/email-exchange/administration/AddContact.js rename to src/views/email-exchange/administration/AddContact.jsx diff --git a/src/views/email-exchange/administration/AddSharedMailbox.js b/src/views/email-exchange/administration/AddSharedMailbox.jsx similarity index 100% rename from src/views/email-exchange/administration/AddSharedMailbox.js rename to src/views/email-exchange/administration/AddSharedMailbox.jsx diff --git a/src/views/email-exchange/administration/ContactsList.js b/src/views/email-exchange/administration/ContactsList.jsx similarity index 100% rename from src/views/email-exchange/administration/ContactsList.js rename to src/views/email-exchange/administration/ContactsList.jsx diff --git a/src/views/email-exchange/administration/EditCalendarPermissions.js b/src/views/email-exchange/administration/EditCalendarPermissions.jsx similarity index 100% rename from src/views/email-exchange/administration/EditCalendarPermissions.js rename to src/views/email-exchange/administration/EditCalendarPermissions.jsx diff --git a/src/views/email-exchange/administration/EditContact.js b/src/views/email-exchange/administration/EditContact.jsx similarity index 100% rename from src/views/email-exchange/administration/EditContact.js rename to src/views/email-exchange/administration/EditContact.jsx diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.js b/src/views/email-exchange/administration/EditMailboxPermissions.jsx similarity index 100% rename from src/views/email-exchange/administration/EditMailboxPermissions.js rename to src/views/email-exchange/administration/EditMailboxPermissions.jsx diff --git a/src/views/email-exchange/administration/MailboxRuleList.js b/src/views/email-exchange/administration/MailboxRuleList.jsx similarity index 100% rename from src/views/email-exchange/administration/MailboxRuleList.js rename to src/views/email-exchange/administration/MailboxRuleList.jsx diff --git a/src/views/email-exchange/administration/MailboxesList.js b/src/views/email-exchange/administration/MailboxesList.jsx similarity index 100% rename from src/views/email-exchange/administration/MailboxesList.js rename to src/views/email-exchange/administration/MailboxesList.jsx diff --git a/src/views/email-exchange/administration/QuarantineList.js b/src/views/email-exchange/administration/QuarantineList.jsx similarity index 100% rename from src/views/email-exchange/administration/QuarantineList.js rename to src/views/email-exchange/administration/QuarantineList.jsx diff --git a/src/views/email-exchange/administration/ViewMobileDevices.js b/src/views/email-exchange/administration/ViewMobileDevices.jsx similarity index 100% rename from src/views/email-exchange/administration/ViewMobileDevices.js rename to src/views/email-exchange/administration/ViewMobileDevices.jsx diff --git a/src/views/email-exchange/connectors/AddConnectorTemplate.js b/src/views/email-exchange/connectors/AddConnectorTemplate.jsx similarity index 100% rename from src/views/email-exchange/connectors/AddConnectorTemplate.js rename to src/views/email-exchange/connectors/AddConnectorTemplate.jsx diff --git a/src/views/email-exchange/connectors/ConnectorList.js b/src/views/email-exchange/connectors/ConnectorList.jsx similarity index 100% rename from src/views/email-exchange/connectors/ConnectorList.js rename to src/views/email-exchange/connectors/ConnectorList.jsx diff --git a/src/views/email-exchange/connectors/DeployConnector.js b/src/views/email-exchange/connectors/DeployConnector.jsx similarity index 100% rename from src/views/email-exchange/connectors/DeployConnector.js rename to src/views/email-exchange/connectors/DeployConnector.jsx diff --git a/src/views/email-exchange/connectors/ListConnectorTemplates.js b/src/views/email-exchange/connectors/ListConnectorTemplates.jsx similarity index 100% rename from src/views/email-exchange/connectors/ListConnectorTemplates.js rename to src/views/email-exchange/connectors/ListConnectorTemplates.jsx diff --git a/src/views/email-exchange/reports/MailboxClientAccessSettingsList.js b/src/views/email-exchange/reports/MailboxClientAccessSettingsList.jsx similarity index 100% rename from src/views/email-exchange/reports/MailboxClientAccessSettingsList.js rename to src/views/email-exchange/reports/MailboxClientAccessSettingsList.jsx diff --git a/src/views/email-exchange/reports/MailboxStatisticsList.js b/src/views/email-exchange/reports/MailboxStatisticsList.jsx similarity index 100% rename from src/views/email-exchange/reports/MailboxStatisticsList.js rename to src/views/email-exchange/reports/MailboxStatisticsList.jsx diff --git a/src/views/email-exchange/reports/MessageTrace.js b/src/views/email-exchange/reports/MessageTrace.jsx similarity index 100% rename from src/views/email-exchange/reports/MessageTrace.js rename to src/views/email-exchange/reports/MessageTrace.jsx diff --git a/src/views/email-exchange/reports/PhishingPoliciesList.js b/src/views/email-exchange/reports/PhishingPoliciesList.jsx similarity index 100% rename from src/views/email-exchange/reports/PhishingPoliciesList.js rename to src/views/email-exchange/reports/PhishingPoliciesList.jsx diff --git a/src/views/email-exchange/reports/SharedMailboxEnabledAccount.js b/src/views/email-exchange/reports/SharedMailboxEnabledAccount.jsx similarity index 100% rename from src/views/email-exchange/reports/SharedMailboxEnabledAccount.js rename to src/views/email-exchange/reports/SharedMailboxEnabledAccount.jsx diff --git a/src/views/email-exchange/spamfilter/AddSpamfilterTemplate.js b/src/views/email-exchange/spamfilter/AddSpamfilterTemplate.jsx similarity index 100% rename from src/views/email-exchange/spamfilter/AddSpamfilterTemplate.js rename to src/views/email-exchange/spamfilter/AddSpamfilterTemplate.jsx diff --git a/src/views/email-exchange/spamfilter/DeploySpamfilter.js b/src/views/email-exchange/spamfilter/DeploySpamfilter.jsx similarity index 100% rename from src/views/email-exchange/spamfilter/DeploySpamfilter.js rename to src/views/email-exchange/spamfilter/DeploySpamfilter.jsx diff --git a/src/views/email-exchange/spamfilter/ListSpamfilterTemplates.js b/src/views/email-exchange/spamfilter/ListSpamfilterTemplates.jsx similarity index 100% rename from src/views/email-exchange/spamfilter/ListSpamfilterTemplates.js rename to src/views/email-exchange/spamfilter/ListSpamfilterTemplates.jsx diff --git a/src/views/email-exchange/spamfilter/Spamfilter.js b/src/views/email-exchange/spamfilter/Spamfilter.jsx similarity index 100% rename from src/views/email-exchange/spamfilter/Spamfilter.js rename to src/views/email-exchange/spamfilter/Spamfilter.jsx diff --git a/src/views/email-exchange/tools/MailboxRestoreWizard.js b/src/views/email-exchange/tools/MailboxRestoreWizard.jsx similarity index 100% rename from src/views/email-exchange/tools/MailboxRestoreWizard.js rename to src/views/email-exchange/tools/MailboxRestoreWizard.jsx diff --git a/src/views/email-exchange/tools/MailboxRestores.js b/src/views/email-exchange/tools/MailboxRestores.jsx similarity index 100% rename from src/views/email-exchange/tools/MailboxRestores.js rename to src/views/email-exchange/tools/MailboxRestores.jsx diff --git a/src/views/email-exchange/transport/AddTransportTemplate.js b/src/views/email-exchange/transport/AddTransportTemplate.jsx similarity index 100% rename from src/views/email-exchange/transport/AddTransportTemplate.js rename to src/views/email-exchange/transport/AddTransportTemplate.jsx diff --git a/src/views/email-exchange/transport/DeployTransport.js b/src/views/email-exchange/transport/DeployTransport.jsx similarity index 100% rename from src/views/email-exchange/transport/DeployTransport.js rename to src/views/email-exchange/transport/DeployTransport.jsx diff --git a/src/views/email-exchange/transport/ListTransportTemplates.js b/src/views/email-exchange/transport/ListTransportTemplates.jsx similarity index 100% rename from src/views/email-exchange/transport/ListTransportTemplates.js rename to src/views/email-exchange/transport/ListTransportTemplates.jsx diff --git a/src/views/email-exchange/transport/TransportRules.js b/src/views/email-exchange/transport/TransportRules.jsx similarity index 100% rename from src/views/email-exchange/transport/TransportRules.js rename to src/views/email-exchange/transport/TransportRules.jsx diff --git a/src/views/endpoint/applications/ApplicationsAddChocoApp.js b/src/views/endpoint/applications/ApplicationsAddChocoApp.jsx similarity index 100% rename from src/views/endpoint/applications/ApplicationsAddChocoApp.js rename to src/views/endpoint/applications/ApplicationsAddChocoApp.jsx diff --git a/src/views/endpoint/applications/ApplicationsAddOffice.js b/src/views/endpoint/applications/ApplicationsAddOffice.jsx similarity index 100% rename from src/views/endpoint/applications/ApplicationsAddOffice.js rename to src/views/endpoint/applications/ApplicationsAddOffice.jsx diff --git a/src/views/endpoint/applications/ApplicationsAddRMM.js b/src/views/endpoint/applications/ApplicationsAddRMM.jsx similarity index 100% rename from src/views/endpoint/applications/ApplicationsAddRMM.js rename to src/views/endpoint/applications/ApplicationsAddRMM.jsx diff --git a/src/views/endpoint/applications/ApplicationsAddWinGet.js b/src/views/endpoint/applications/ApplicationsAddWinGet.jsx similarity index 100% rename from src/views/endpoint/applications/ApplicationsAddWinGet.js rename to src/views/endpoint/applications/ApplicationsAddWinGet.jsx diff --git a/src/views/endpoint/applications/ApplicationsList.js b/src/views/endpoint/applications/ApplicationsList.jsx similarity index 100% rename from src/views/endpoint/applications/ApplicationsList.js rename to src/views/endpoint/applications/ApplicationsList.jsx diff --git a/src/views/endpoint/applications/ListApplicationQueue.js b/src/views/endpoint/applications/ListApplicationQueue.jsx similarity index 100% rename from src/views/endpoint/applications/ListApplicationQueue.js rename to src/views/endpoint/applications/ListApplicationQueue.jsx diff --git a/src/views/endpoint/autopilot/AutopilotAddDevice.js b/src/views/endpoint/autopilot/AutopilotAddDevice.jsx similarity index 100% rename from src/views/endpoint/autopilot/AutopilotAddDevice.js rename to src/views/endpoint/autopilot/AutopilotAddDevice.jsx diff --git a/src/views/endpoint/autopilot/AutopilotAddProfile.js b/src/views/endpoint/autopilot/AutopilotAddProfile.jsx similarity index 100% rename from src/views/endpoint/autopilot/AutopilotAddProfile.js rename to src/views/endpoint/autopilot/AutopilotAddProfile.jsx diff --git a/src/views/endpoint/autopilot/AutopilotAddStatusPage.js b/src/views/endpoint/autopilot/AutopilotAddStatusPage.jsx similarity index 100% rename from src/views/endpoint/autopilot/AutopilotAddStatusPage.js rename to src/views/endpoint/autopilot/AutopilotAddStatusPage.jsx diff --git a/src/views/endpoint/autopilot/AutopilotListDevices.js b/src/views/endpoint/autopilot/AutopilotListDevices.jsx similarity index 100% rename from src/views/endpoint/autopilot/AutopilotListDevices.js rename to src/views/endpoint/autopilot/AutopilotListDevices.jsx diff --git a/src/views/endpoint/autopilot/AutopilotListProfiles.js b/src/views/endpoint/autopilot/AutopilotListProfiles.jsx similarity index 100% rename from src/views/endpoint/autopilot/AutopilotListProfiles.js rename to src/views/endpoint/autopilot/AutopilotListProfiles.jsx diff --git a/src/views/endpoint/autopilot/AutopilotListStatusPages.js b/src/views/endpoint/autopilot/AutopilotListStatusPages.jsx similarity index 100% rename from src/views/endpoint/autopilot/AutopilotListStatusPages.js rename to src/views/endpoint/autopilot/AutopilotListStatusPages.jsx diff --git a/src/views/endpoint/intune/Devices.js b/src/views/endpoint/intune/Devices.jsx similarity index 100% rename from src/views/endpoint/intune/Devices.js rename to src/views/endpoint/intune/Devices.jsx diff --git a/src/views/endpoint/intune/MEMAddPolicy.js b/src/views/endpoint/intune/MEMAddPolicy.jsx similarity index 100% rename from src/views/endpoint/intune/MEMAddPolicy.js rename to src/views/endpoint/intune/MEMAddPolicy.jsx diff --git a/src/views/endpoint/intune/MEMAddPolicyTemplate.js b/src/views/endpoint/intune/MEMAddPolicyTemplate.jsx similarity index 100% rename from src/views/endpoint/intune/MEMAddPolicyTemplate.js rename to src/views/endpoint/intune/MEMAddPolicyTemplate.jsx diff --git a/src/views/endpoint/intune/MEMCAPolicies.js b/src/views/endpoint/intune/MEMCAPolicies.jsx similarity index 100% rename from src/views/endpoint/intune/MEMCAPolicies.js rename to src/views/endpoint/intune/MEMCAPolicies.jsx diff --git a/src/views/endpoint/intune/MEMEditPolicy.js b/src/views/endpoint/intune/MEMEditPolicy.jsx similarity index 100% rename from src/views/endpoint/intune/MEMEditPolicy.js rename to src/views/endpoint/intune/MEMEditPolicy.jsx diff --git a/src/views/endpoint/intune/MEMListPolicies.js b/src/views/endpoint/intune/MEMListPolicies.jsx similarity index 100% rename from src/views/endpoint/intune/MEMListPolicies.js rename to src/views/endpoint/intune/MEMListPolicies.jsx diff --git a/src/views/endpoint/intune/MEMListPolicyTemplates.js b/src/views/endpoint/intune/MEMListPolicyTemplates.jsx similarity index 100% rename from src/views/endpoint/intune/MEMListPolicyTemplates.js rename to src/views/endpoint/intune/MEMListPolicyTemplates.jsx diff --git a/src/views/home/Home.js b/src/views/home/Home.jsx similarity index 98% rename from src/views/home/Home.js rename to src/views/home/Home.jsx index 21c5d46bd70f..107fda99197a 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.jsx @@ -295,9 +295,9 @@ const Home = () => { }, []) .map((plan) => ( <> - {plan == 'exchange' &&
  • Exchange
  • } - {plan == 'AADPremiumService' &&
  • AAD Premium
  • } - {plan == 'WindowsDefenderATP' &&
  • Windows Defender
  • } + {plan === 'exchange' &&
  • Exchange
  • } + {plan === 'AADPremiumService' &&
  • AAD Premium
  • } + {plan === 'WindowsDefenderATP' &&
  • Windows Defender
  • } ))}
    diff --git a/src/views/identity/administration/AddGroup.js b/src/views/identity/administration/AddGroup.jsx similarity index 100% rename from src/views/identity/administration/AddGroup.js rename to src/views/identity/administration/AddGroup.jsx diff --git a/src/views/identity/administration/AddGroupTemplate.js b/src/views/identity/administration/AddGroupTemplate.jsx similarity index 100% rename from src/views/identity/administration/AddGroupTemplate.js rename to src/views/identity/administration/AddGroupTemplate.jsx diff --git a/src/views/identity/administration/AddUser.js b/src/views/identity/administration/AddUser.jsx similarity index 100% rename from src/views/identity/administration/AddUser.js rename to src/views/identity/administration/AddUser.jsx diff --git a/src/views/identity/administration/Deleted.js b/src/views/identity/administration/Deleted.jsx similarity index 100% rename from src/views/identity/administration/Deleted.js rename to src/views/identity/administration/Deleted.jsx diff --git a/src/views/identity/administration/DeployGroupTemplate.js b/src/views/identity/administration/DeployGroupTemplate.jsx similarity index 100% rename from src/views/identity/administration/DeployGroupTemplate.js rename to src/views/identity/administration/DeployGroupTemplate.jsx diff --git a/src/views/identity/administration/EditGroup.js b/src/views/identity/administration/EditGroup.jsx similarity index 100% rename from src/views/identity/administration/EditGroup.js rename to src/views/identity/administration/EditGroup.jsx diff --git a/src/views/identity/administration/EditUser.js b/src/views/identity/administration/EditUser.jsx similarity index 100% rename from src/views/identity/administration/EditUser.js rename to src/views/identity/administration/EditUser.jsx diff --git a/src/views/identity/administration/GroupTemplates.js b/src/views/identity/administration/GroupTemplates.jsx similarity index 100% rename from src/views/identity/administration/GroupTemplates.js rename to src/views/identity/administration/GroupTemplates.jsx diff --git a/src/views/identity/administration/Groups.js b/src/views/identity/administration/Groups.jsx similarity index 100% rename from src/views/identity/administration/Groups.js rename to src/views/identity/administration/Groups.jsx diff --git a/src/views/identity/administration/InviteGuest.js b/src/views/identity/administration/InviteGuest.jsx similarity index 100% rename from src/views/identity/administration/InviteGuest.js rename to src/views/identity/administration/InviteGuest.jsx diff --git a/src/views/identity/administration/OffboardingWizard.js b/src/views/identity/administration/OffboardingWizard.jsx similarity index 100% rename from src/views/identity/administration/OffboardingWizard.js rename to src/views/identity/administration/OffboardingWizard.jsx diff --git a/src/views/identity/administration/Roles.js b/src/views/identity/administration/Roles.jsx similarity index 100% rename from src/views/identity/administration/Roles.js rename to src/views/identity/administration/Roles.jsx diff --git a/src/views/identity/administration/User365Management.js b/src/views/identity/administration/User365Management.jsx similarity index 100% rename from src/views/identity/administration/User365Management.js rename to src/views/identity/administration/User365Management.jsx diff --git a/src/views/identity/administration/UserActions.js b/src/views/identity/administration/UserActions.jsx similarity index 100% rename from src/views/identity/administration/UserActions.js rename to src/views/identity/administration/UserActions.jsx diff --git a/src/views/identity/administration/UserCAPs.js b/src/views/identity/administration/UserCAPs.jsx similarity index 100% rename from src/views/identity/administration/UserCAPs.js rename to src/views/identity/administration/UserCAPs.jsx diff --git a/src/views/identity/administration/UserDetails.js b/src/views/identity/administration/UserDetails.jsx similarity index 100% rename from src/views/identity/administration/UserDetails.js rename to src/views/identity/administration/UserDetails.jsx diff --git a/src/views/identity/administration/UserDevices.js b/src/views/identity/administration/UserDevices.jsx similarity index 100% rename from src/views/identity/administration/UserDevices.js rename to src/views/identity/administration/UserDevices.jsx diff --git a/src/views/identity/administration/UserEmailDetails.js b/src/views/identity/administration/UserEmailDetails.jsx similarity index 100% rename from src/views/identity/administration/UserEmailDetails.js rename to src/views/identity/administration/UserEmailDetails.jsx diff --git a/src/views/identity/administration/UserEmailPermissions.js b/src/views/identity/administration/UserEmailPermissions.jsx similarity index 100% rename from src/views/identity/administration/UserEmailPermissions.js rename to src/views/identity/administration/UserEmailPermissions.jsx diff --git a/src/views/identity/administration/UserEmailSettings.js b/src/views/identity/administration/UserEmailSettings.jsx similarity index 100% rename from src/views/identity/administration/UserEmailSettings.js rename to src/views/identity/administration/UserEmailSettings.jsx diff --git a/src/views/identity/administration/UserEmailUsage.js b/src/views/identity/administration/UserEmailUsage.jsx similarity index 100% rename from src/views/identity/administration/UserEmailUsage.js rename to src/views/identity/administration/UserEmailUsage.jsx diff --git a/src/views/identity/administration/UserGroups.js b/src/views/identity/administration/UserGroups.jsx similarity index 100% rename from src/views/identity/administration/UserGroups.js rename to src/views/identity/administration/UserGroups.jsx diff --git a/src/views/identity/administration/UserLastLoginDetails.js b/src/views/identity/administration/UserLastLoginDetails.jsx similarity index 100% rename from src/views/identity/administration/UserLastLoginDetails.js rename to src/views/identity/administration/UserLastLoginDetails.jsx diff --git a/src/views/identity/administration/UserMailboxRuleList.js b/src/views/identity/administration/UserMailboxRuleList.jsx similarity index 100% rename from src/views/identity/administration/UserMailboxRuleList.js rename to src/views/identity/administration/UserMailboxRuleList.jsx diff --git a/src/views/identity/administration/UserOneDriveUsage.js b/src/views/identity/administration/UserOneDriveUsage.jsx similarity index 100% rename from src/views/identity/administration/UserOneDriveUsage.js rename to src/views/identity/administration/UserOneDriveUsage.jsx diff --git a/src/views/identity/administration/UserSigninLogs.js b/src/views/identity/administration/UserSigninLogs.jsx similarity index 100% rename from src/views/identity/administration/UserSigninLogs.js rename to src/views/identity/administration/UserSigninLogs.jsx diff --git a/src/views/identity/administration/Users.js b/src/views/identity/administration/Users.jsx similarity index 100% rename from src/views/identity/administration/Users.js rename to src/views/identity/administration/Users.jsx diff --git a/src/views/identity/administration/ViewBEC.js b/src/views/identity/administration/ViewBEC.jsx similarity index 100% rename from src/views/identity/administration/ViewBEC.js rename to src/views/identity/administration/ViewBEC.jsx diff --git a/src/views/identity/administration/ViewGroup.js b/src/views/identity/administration/ViewGroup.jsx similarity index 100% rename from src/views/identity/administration/ViewGroup.js rename to src/views/identity/administration/ViewGroup.jsx diff --git a/src/views/identity/administration/ViewUser.js b/src/views/identity/administration/ViewUser.jsx similarity index 100% rename from src/views/identity/administration/ViewUser.js rename to src/views/identity/administration/ViewUser.jsx diff --git a/src/views/identity/reports/AzureADConnectReport.js b/src/views/identity/reports/AzureADConnectReport.jsx similarity index 100% rename from src/views/identity/reports/AzureADConnectReport.js rename to src/views/identity/reports/AzureADConnectReport.jsx diff --git a/src/views/identity/reports/InactiveUsers.js b/src/views/identity/reports/InactiveUsers.jsx similarity index 100% rename from src/views/identity/reports/InactiveUsers.js rename to src/views/identity/reports/InactiveUsers.jsx diff --git a/src/views/identity/reports/MFAReport.js b/src/views/identity/reports/MFAReport.jsx similarity index 100% rename from src/views/identity/reports/MFAReport.js rename to src/views/identity/reports/MFAReport.jsx diff --git a/src/views/identity/reports/SignIns.js b/src/views/identity/reports/SignIns.jsx similarity index 100% rename from src/views/identity/reports/SignIns.js rename to src/views/identity/reports/SignIns.jsx diff --git a/src/views/pages/LogoutRedirect/PageLogOut.js b/src/views/pages/LogoutRedirect/PageLogOut.jsx similarity index 96% rename from src/views/pages/LogoutRedirect/PageLogOut.js rename to src/views/pages/LogoutRedirect/PageLogOut.jsx index 78a4d86f5e1e..fdf040816f5a 100644 --- a/src/views/pages/LogoutRedirect/PageLogOut.js +++ b/src/views/pages/LogoutRedirect/PageLogOut.jsx @@ -1,6 +1,6 @@ import React from 'react' import { CButton, CCol, CContainer, CRow } from '@coreui/react' -import { Helmet } from 'react-helmet' +import { Helmet } from 'react-helmet-async' import { useSearchParams } from 'react-router-dom' const Page401 = () => { diff --git a/src/views/pages/license/License.js b/src/views/pages/license/License.jsx similarity index 99% rename from src/views/pages/license/License.js rename to src/views/pages/license/License.jsx index 8ec6a56b2d62..b137abf265fe 100644 --- a/src/views/pages/license/License.js +++ b/src/views/pages/license/License.jsx @@ -1,6 +1,6 @@ import React from 'react' import { CCol, CContainer, CRow } from '@coreui/react' -import { Helmet } from 'react-helmet' +import { Helmet } from 'react-helmet-async' const Login = () => { return ( diff --git a/src/views/pages/login/Login.js b/src/views/pages/login/Login.jsx similarity index 100% rename from src/views/pages/login/Login.js rename to src/views/pages/login/Login.jsx diff --git a/src/views/pages/login/Logout.js b/src/views/pages/login/Logout.jsx similarity index 100% rename from src/views/pages/login/Logout.js rename to src/views/pages/login/Logout.jsx diff --git a/src/views/pages/page401/Page401.js b/src/views/pages/page401/Page401.jsx similarity index 96% rename from src/views/pages/page401/Page401.js rename to src/views/pages/page401/Page401.jsx index 3e6e44715453..b02c2d441055 100644 --- a/src/views/pages/page401/Page401.js +++ b/src/views/pages/page401/Page401.jsx @@ -1,6 +1,6 @@ import React from 'react' import { CButton, CCol, CContainer, CRow } from '@coreui/react' -import { Helmet } from 'react-helmet' +import { Helmet } from 'react-helmet-async' import { useSearchParams } from 'react-router-dom' const Page401 = () => { diff --git a/src/views/pages/page403/Page403.js b/src/views/pages/page403/Page403.jsx similarity index 95% rename from src/views/pages/page403/Page403.js rename to src/views/pages/page403/Page403.jsx index c747f80fcf6c..7804a4ef3ece 100644 --- a/src/views/pages/page403/Page403.js +++ b/src/views/pages/page403/Page403.jsx @@ -1,6 +1,6 @@ import React from 'react' import { CButton, CCol, CContainer, CRow } from '@coreui/react' -import { Helmet } from 'react-helmet' +import { Helmet } from 'react-helmet-async' const Page403 = () => { return ( diff --git a/src/views/pages/page404/Page404.js b/src/views/pages/page404/Page404.jsx similarity index 95% rename from src/views/pages/page404/Page404.js rename to src/views/pages/page404/Page404.jsx index 673ae4ad5a82..49427afd83fc 100644 --- a/src/views/pages/page404/Page404.js +++ b/src/views/pages/page404/Page404.jsx @@ -1,7 +1,7 @@ import React from 'react' import { CButton, CCol, CContainer, CRow } from '@coreui/react' import { FastSwitcher } from 'src/components/utilities' -import { Helmet } from 'react-helmet' +import { Helmet } from 'react-helmet-async' import { Link } from 'react-router-dom' const Page404 = () => { diff --git a/src/views/pages/page500/Page500.js b/src/views/pages/page500/Page500.jsx similarity index 100% rename from src/views/pages/page500/Page500.js rename to src/views/pages/page500/Page500.jsx diff --git a/src/views/security/defender/DeployDefender.js b/src/views/security/defender/DeployDefender.jsx similarity index 100% rename from src/views/security/defender/DeployDefender.js rename to src/views/security/defender/DeployDefender.jsx diff --git a/src/views/security/defender/ListDefender.js b/src/views/security/defender/ListDefender.jsx similarity index 100% rename from src/views/security/defender/ListDefender.js rename to src/views/security/defender/ListDefender.jsx diff --git a/src/views/security/defender/ListVuln.js b/src/views/security/defender/ListVuln.jsx similarity index 100% rename from src/views/security/defender/ListVuln.js rename to src/views/security/defender/ListVuln.jsx diff --git a/src/views/security/incidents/ListAlerts.js b/src/views/security/incidents/ListAlerts.jsx similarity index 100% rename from src/views/security/incidents/ListAlerts.js rename to src/views/security/incidents/ListAlerts.jsx diff --git a/src/views/security/incidents/ListIncidents.js b/src/views/security/incidents/ListIncidents.jsx similarity index 100% rename from src/views/security/incidents/ListIncidents.js rename to src/views/security/incidents/ListIncidents.jsx diff --git a/src/views/security/reports/ListDeviceComplianceReport.js b/src/views/security/reports/ListDeviceComplianceReport.jsx similarity index 100% rename from src/views/security/reports/ListDeviceComplianceReport.js rename to src/views/security/reports/ListDeviceComplianceReport.jsx diff --git a/src/views/teams-share/onedrive/OneDriveList.js b/src/views/teams-share/onedrive/OneDriveList.jsx similarity index 100% rename from src/views/teams-share/onedrive/OneDriveList.js rename to src/views/teams-share/onedrive/OneDriveList.jsx diff --git a/src/views/teams-share/sharepoint/SharepointList.js b/src/views/teams-share/sharepoint/SharepointList.jsx similarity index 100% rename from src/views/teams-share/sharepoint/SharepointList.js rename to src/views/teams-share/sharepoint/SharepointList.jsx diff --git a/src/views/teams-share/teams/BusinessVoice.js b/src/views/teams-share/teams/BusinessVoice.jsx similarity index 100% rename from src/views/teams-share/teams/BusinessVoice.js rename to src/views/teams-share/teams/BusinessVoice.jsx diff --git a/src/views/teams-share/teams/TeamApplications.js b/src/views/teams-share/teams/TeamApplications.jsx similarity index 100% rename from src/views/teams-share/teams/TeamApplications.js rename to src/views/teams-share/teams/TeamApplications.jsx diff --git a/src/views/teams-share/teams/TeamChannels.js b/src/views/teams-share/teams/TeamChannels.jsx similarity index 100% rename from src/views/teams-share/teams/TeamChannels.js rename to src/views/teams-share/teams/TeamChannels.jsx diff --git a/src/views/teams-share/teams/TeamDetails.js b/src/views/teams-share/teams/TeamDetails.jsx similarity index 100% rename from src/views/teams-share/teams/TeamDetails.js rename to src/views/teams-share/teams/TeamDetails.jsx diff --git a/src/views/teams-share/teams/TeamGuestPolicies.js b/src/views/teams-share/teams/TeamGuestPolicies.jsx similarity index 100% rename from src/views/teams-share/teams/TeamGuestPolicies.js rename to src/views/teams-share/teams/TeamGuestPolicies.jsx diff --git a/src/views/teams-share/teams/TeamMemberPolicies.js b/src/views/teams-share/teams/TeamMemberPolicies.jsx similarity index 100% rename from src/views/teams-share/teams/TeamMemberPolicies.js rename to src/views/teams-share/teams/TeamMemberPolicies.jsx diff --git a/src/views/teams-share/teams/TeamMembers.js b/src/views/teams-share/teams/TeamMembers.jsx similarity index 100% rename from src/views/teams-share/teams/TeamMembers.js rename to src/views/teams-share/teams/TeamMembers.jsx diff --git a/src/views/teams-share/teams/TeamMessagingSettings.js b/src/views/teams-share/teams/TeamMessagingSettings.jsx similarity index 100% rename from src/views/teams-share/teams/TeamMessagingSettings.js rename to src/views/teams-share/teams/TeamMessagingSettings.jsx diff --git a/src/views/teams-share/teams/TeamOwners.js b/src/views/teams-share/teams/TeamOwners.jsx similarity index 100% rename from src/views/teams-share/teams/TeamOwners.js rename to src/views/teams-share/teams/TeamOwners.jsx diff --git a/src/views/teams-share/teams/TeamsActivity.js b/src/views/teams-share/teams/TeamsActivity.jsx similarity index 100% rename from src/views/teams-share/teams/TeamsActivity.js rename to src/views/teams-share/teams/TeamsActivity.jsx diff --git a/src/views/teams-share/teams/TeamsAddTeam.js b/src/views/teams-share/teams/TeamsAddTeam.jsx similarity index 100% rename from src/views/teams-share/teams/TeamsAddTeam.js rename to src/views/teams-share/teams/TeamsAddTeam.jsx diff --git a/src/views/teams-share/teams/TeamsListTeam.js b/src/views/teams-share/teams/TeamsListTeam.jsx similarity index 100% rename from src/views/teams-share/teams/TeamsListTeam.js rename to src/views/teams-share/teams/TeamsListTeam.jsx diff --git a/src/views/teams-share/teams/ViewTeamSettings.js b/src/views/teams-share/teams/ViewTeamSettings.jsx similarity index 100% rename from src/views/teams-share/teams/ViewTeamSettings.js rename to src/views/teams-share/teams/ViewTeamSettings.jsx diff --git a/src/views/tenant/administration/AlertWizard.js b/src/views/tenant/administration/AlertWizard.jsx similarity index 100% rename from src/views/tenant/administration/AlertWizard.js rename to src/views/tenant/administration/AlertWizard.jsx diff --git a/src/views/tenant/administration/Domains.js b/src/views/tenant/administration/Domains.jsx similarity index 100% rename from src/views/tenant/administration/Domains.js rename to src/views/tenant/administration/Domains.jsx diff --git a/src/views/tenant/administration/EditTenant.js b/src/views/tenant/administration/EditTenant.jsx similarity index 100% rename from src/views/tenant/administration/EditTenant.js rename to src/views/tenant/administration/EditTenant.jsx diff --git a/src/views/tenant/administration/GDAPInviteWizard.js b/src/views/tenant/administration/GDAPInviteWizard.jsx similarity index 100% rename from src/views/tenant/administration/GDAPInviteWizard.js rename to src/views/tenant/administration/GDAPInviteWizard.jsx diff --git a/src/views/tenant/administration/GDAPRoleWizard.js b/src/views/tenant/administration/GDAPRoleWizard.jsx similarity index 100% rename from src/views/tenant/administration/GDAPRoleWizard.js rename to src/views/tenant/administration/GDAPRoleWizard.jsx diff --git a/src/views/tenant/administration/GDAPWizard.js b/src/views/tenant/administration/GDAPWizard.jsx similarity index 100% rename from src/views/tenant/administration/GDAPWizard.js rename to src/views/tenant/administration/GDAPWizard.jsx diff --git a/src/views/tenant/administration/GeoIPLookup.js b/src/views/tenant/administration/GeoIPLookup.jsx similarity index 100% rename from src/views/tenant/administration/GeoIPLookup.js rename to src/views/tenant/administration/GeoIPLookup.jsx diff --git a/src/views/tenant/administration/GraphExplorer.js b/src/views/tenant/administration/GraphExplorer.jsx similarity index 100% rename from src/views/tenant/administration/GraphExplorer.js rename to src/views/tenant/administration/GraphExplorer.jsx diff --git a/src/views/tenant/administration/ListAlertsQueue.js b/src/views/tenant/administration/ListAlertsQueue.jsx similarity index 100% rename from src/views/tenant/administration/ListAlertsQueue.js rename to src/views/tenant/administration/ListAlertsQueue.jsx diff --git a/src/views/tenant/administration/ListEnterpriseApps.js b/src/views/tenant/administration/ListEnterpriseApps.jsx similarity index 100% rename from src/views/tenant/administration/ListEnterpriseApps.js rename to src/views/tenant/administration/ListEnterpriseApps.jsx diff --git a/src/views/tenant/administration/ListGDAPQueue.js b/src/views/tenant/administration/ListGDAPQueue.jsx similarity index 100% rename from src/views/tenant/administration/ListGDAPQueue.js rename to src/views/tenant/administration/ListGDAPQueue.jsx diff --git a/src/views/tenant/administration/ListGDAPRelationships.js b/src/views/tenant/administration/ListGDAPRelationships.jsx similarity index 100% rename from src/views/tenant/administration/ListGDAPRelationships.js rename to src/views/tenant/administration/ListGDAPRelationships.jsx diff --git a/src/views/tenant/administration/ListGDAPRoles.js b/src/views/tenant/administration/ListGDAPRoles.jsx similarity index 100% rename from src/views/tenant/administration/ListGDAPRoles.js rename to src/views/tenant/administration/ListGDAPRoles.jsx diff --git a/src/views/tenant/administration/ListLicences.js b/src/views/tenant/administration/ListLicences.jsx similarity index 100% rename from src/views/tenant/administration/ListLicences.js rename to src/views/tenant/administration/ListLicences.jsx diff --git a/src/views/tenant/administration/ListOauthApps.js b/src/views/tenant/administration/ListOauthApps.jsx similarity index 100% rename from src/views/tenant/administration/ListOauthApps.js rename to src/views/tenant/administration/ListOauthApps.jsx diff --git a/src/views/tenant/administration/ServiceHealth.js b/src/views/tenant/administration/ServiceHealth.jsx similarity index 100% rename from src/views/tenant/administration/ServiceHealth.js rename to src/views/tenant/administration/ServiceHealth.jsx diff --git a/src/views/tenant/administration/TenantLookup.js b/src/views/tenant/administration/TenantLookup.jsx similarity index 100% rename from src/views/tenant/administration/TenantLookup.js rename to src/views/tenant/administration/TenantLookup.jsx diff --git a/src/views/tenant/administration/TenantOffboardingWizard.js b/src/views/tenant/administration/TenantOffboardingWizard.jsx similarity index 100% rename from src/views/tenant/administration/TenantOffboardingWizard.js rename to src/views/tenant/administration/TenantOffboardingWizard.jsx diff --git a/src/views/tenant/administration/Tenants.js b/src/views/tenant/administration/Tenants.jsx similarity index 100% rename from src/views/tenant/administration/Tenants.js rename to src/views/tenant/administration/Tenants.jsx diff --git a/src/views/tenant/conditional/AddCATemplate.js b/src/views/tenant/conditional/AddCATemplate.jsx similarity index 100% rename from src/views/tenant/conditional/AddCATemplate.js rename to src/views/tenant/conditional/AddCATemplate.jsx diff --git a/src/views/tenant/conditional/ConditionalAccess.js b/src/views/tenant/conditional/ConditionalAccess.jsx similarity index 100% rename from src/views/tenant/conditional/ConditionalAccess.js rename to src/views/tenant/conditional/ConditionalAccess.jsx diff --git a/src/views/tenant/conditional/DeployCA.js b/src/views/tenant/conditional/DeployCA.jsx similarity index 100% rename from src/views/tenant/conditional/DeployCA.js rename to src/views/tenant/conditional/DeployCA.jsx diff --git a/src/views/tenant/conditional/DeployNamedLocation.js b/src/views/tenant/conditional/DeployNamedLocation.jsx similarity index 100% rename from src/views/tenant/conditional/DeployNamedLocation.js rename to src/views/tenant/conditional/DeployNamedLocation.jsx diff --git a/src/views/tenant/conditional/ListCATemplates.js b/src/views/tenant/conditional/ListCATemplates.jsx similarity index 100% rename from src/views/tenant/conditional/ListCATemplates.js rename to src/views/tenant/conditional/ListCATemplates.jsx diff --git a/src/views/tenant/conditional/NamedLocations.js b/src/views/tenant/conditional/NamedLocations.jsx similarity index 100% rename from src/views/tenant/conditional/NamedLocations.js rename to src/views/tenant/conditional/NamedLocations.jsx diff --git a/src/views/tenant/standards/ApplyStandard.js b/src/views/tenant/standards/ApplyStandard.jsx similarity index 100% rename from src/views/tenant/standards/ApplyStandard.js rename to src/views/tenant/standards/ApplyStandard.jsx diff --git a/src/views/tenant/standards/BPAReportBuilder.js b/src/views/tenant/standards/BPAReportBuilder.jsx similarity index 100% rename from src/views/tenant/standards/BPAReportBuilder.js rename to src/views/tenant/standards/BPAReportBuilder.jsx diff --git a/src/views/tenant/standards/BestPracticeAnalyser.js b/src/views/tenant/standards/BestPracticeAnalyser.jsx similarity index 100% rename from src/views/tenant/standards/BestPracticeAnalyser.js rename to src/views/tenant/standards/BestPracticeAnalyser.jsx diff --git a/src/views/tenant/standards/DomainsAnalyser.js b/src/views/tenant/standards/DomainsAnalyser.jsx similarity index 100% rename from src/views/tenant/standards/DomainsAnalyser.js rename to src/views/tenant/standards/DomainsAnalyser.jsx diff --git a/src/views/tenant/standards/IndividualDomain.js b/src/views/tenant/standards/IndividualDomain.jsx similarity index 100% rename from src/views/tenant/standards/IndividualDomain.js rename to src/views/tenant/standards/IndividualDomain.jsx diff --git a/src/views/tenant/standards/ListAppliedStandards.js b/src/views/tenant/standards/ListAppliedStandards.jsx similarity index 100% rename from src/views/tenant/standards/ListAppliedStandards.js rename to src/views/tenant/standards/ListAppliedStandards.jsx diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 000000000000..593e346ac113 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,32 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import { resolve } from 'path' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + // default is dist + outDir: 'build', + }, + server: { + port: 3000, + host: true, + }, + css: { + preprocessorOptions: { + sass: { + additionalData: '', + sassOptions: { + quietDeps: true, + }, + }, + }, + }, + resolve: { + // needed for absolute paths + alias: { + src: resolve('src/'), + }, + }, +}) From 714239a6faeb3126a8eb8f314e84632d98c069b0 Mon Sep 17 00:00:00 2001 From: Kevin Grube Date: Thu, 16 Nov 2023 13:11:47 -0800 Subject: [PATCH 161/205] Bump node version to match package --- .node-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.node-version b/.node-version index b6a7d89c68e0..3c032078a4a2 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -16 +18 From d3afe1a4e6e9999e7dd88f2412e603da4ea875cf Mon Sep 17 00:00:00 2001 From: Kevin Grube Date: Thu, 16 Nov 2023 13:14:03 -0800 Subject: [PATCH 162/205] Update to react 18, update component libs. Override peerDeps for `react-final-form-listeners` and `react-masonry-component`. Replace `react-helmet` with `react-helmet-async` for react17/18 support. Add redux hotreload. Fix errorMiddleware error on long error payload message. Remove jest. --- jest.config.js | 15 - package-lock.json | 32623 ++++++---------------- package.json | 47 +- src/App.jsx | 2 +- src/index.jsx | 5 +- src/scss/style.scss | 5 +- src/serviceWorker.js | 123 - src/store/middleware/errorMiddleware.js | 2 +- src/store/store.js | 4 +- vite.config.js | 13 +- 10 files changed, 9174 insertions(+), 23665 deletions(-) delete mode 100644 jest.config.js delete mode 100644 src/serviceWorker.js diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index dd431212fe3f..000000000000 --- a/jest.config.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Copyright (c) 2013-present, creativeLabs Lukasz Holeczek. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -module.exports = { - collectCoverageFrom: [ - 'src/**/*.{js,jsx}', - '!**/*index.js', - '!src/serviceWorker.js', - '!src/polyfill.js', - ], -} diff --git a/package-lock.json b/package-lock.json index 7ecc83e4101a..ac6288c2dec0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,18 @@ { "name": "cipp", - "version": "2.6.1", + "version": "4.5.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cipp", - "version": "2.6.1", + "version": "4.5.5", "license": "AGPL-3.0", "dependencies": { "@coreui/chartjs": "^3.0.0", - "@coreui/coreui": "^4.1.0", - "@coreui/react": "^4.1.0", - "@coreui/react-chartjs": "^2.0.0", + "@coreui/coreui": "^4.3.0", + "@coreui/react": "^4.11.0", + "@coreui/react-chartjs": "^2.1.3", "@coreui/utils": "^1.3.1", "@fortawesome/fontawesome-svg-core": "^1.2.36", "@fortawesome/free-brands-svg-icons": "^5.15.4", @@ -21,13 +21,12 @@ "@fortawesome/react-fontawesome": "^0.1.16", "@monaco-editor/react": "^4.5.2", "@popperjs/core": "^2.10.2", - "@reduxjs/toolkit": "^1.7.0", + "@reduxjs/toolkit": "^1.9.7", "@rjsf/bootstrap-4": "^5.12.1", "@rjsf/core": "^5.12.1", "@rjsf/utils": "^5.12.1", "@rjsf/validator-ajv8": "^5.12.1", - "@wojtekmaj/enzyme-adapter-react-17": "^0.6.3", - "axios": "^0.24.0", + "axios": "^1.6.2", "buffer": "^6.0.3", "chart.js": "^3.5.1", "classnames": "^2.3.1", @@ -35,23 +34,24 @@ "enzyme": "^3.11.0", "final-form": "^4.20.4", "final-form-arrays": "^3.1.0", + "fuse.js": "^7.0.0", "fuzzysort": "^1.1.4", "javascript-time-ago": "^2.5.9", "jspdf": "^2.4.0", "jspdf-autotable": "^3.5.23", "moment": "^2.29.1", "prop-types": "^15.7.2", - "react": "^17.0.2", + "react": "^18.2.0", "react-app-polyfill": "^2.0.0", "react-bootstrap": "^1.6.5", - "react-copy-to-clipboard": "^5.0.4", + "react-copy-to-clipboard": "^5.1.0", "react-data-table-component": "^7.4.5", "react-datepicker": "^4.10.0", - "react-dom": "^17.0.2", - "react-final-form": "^6.5.7", + "react-dom": "^18.2.0", + "react-final-form": "^6.5.9", "react-final-form-arrays": "^3.1.4", "react-final-form-listeners": "^1.0.3", - "react-helmet": "^6.1.0", + "react-helmet-async": "^1.3.0", "react-hotkeys-hook": "^3.4.4", "react-loading-skeleton": "^3.1.0", "react-masonry-component": "^6.3.0", @@ -71,6 +71,7 @@ }, "devDependencies": { "@types/react-helmet": "^6.1.5", + "@vitejs/plugin-react": "^4.1.1", "auto-changelog": "~2.3.0", "eslint": "^8.0.0", "eslint-config-prettier": "^8.3.0", @@ -79,64 +80,70 @@ "husky": "^7.0.4", "postcss-scss": "^4.0.3", "prettier": "2.4.1", - "react-scripts": "^5.0.0", "redux-immutable-state-invariant": "^2.1.0", "sass": "^1.64.2", "stylelint": "^14.3.0", "stylelint-config-sass-guidelines": "^9.0.1", - "stylelint-order": "^5.0.0" + "stylelint-order": "^5.0.0", + "vite": "^4.5.0" }, "engines": { "node": "18", - "npm": ">=7" + "npm": ">=8" } }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "license": "Apache-2.0", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "license": "MIT", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.17.0", - "license": "MIT", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.5", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -146,6 +153,11 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/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==" + }, "node_modules/@babel/eslint-parser": { "version": "7.17.0", "dev": true, @@ -192,29 +204,25 @@ } }, "node_modules/@babel/generator": { - "version": "7.17.3", - "license": "MIT", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.23.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "license": "MIT", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -233,21 +241,33 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "license": "MIT", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.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==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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==" + }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.17.9", "dev": true, @@ -302,11 +322,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.7" - }, + "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==", "engines": { "node": ">=6.9.0" } @@ -323,21 +341,23 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "license": "MIT", + "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==", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "license": "MIT", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -355,30 +375,32 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "license": "MIT", + "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==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.6", - "license": "MIT", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { @@ -393,8 +415,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "license": "MIT", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "engines": { "node": ">=6.9.0" } @@ -428,10 +451,11 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "license": "MIT", + "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==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -449,25 +473,36 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "license": "MIT", + "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==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "license": "MIT", + "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==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "license": "MIT", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "engines": { "node": ">=6.9.0" } @@ -487,23 +522,25 @@ } }, "node_modules/@babel/helpers": { - "version": "7.17.2", - "license": "MIT", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.10", - "license": "MIT", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -511,8 +548,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.3", - "license": "MIT", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -813,17 +851,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "dev": true, @@ -899,17 +926,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "dev": true, @@ -922,10 +938,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "license": "MIT", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1403,20 +1420,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.17.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-transform-react-display-name": { "version": "7.16.7", "dev": true, @@ -1463,6 +1466,36 @@ "@babel/core": "^7.0.0-0" } }, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-react-pure-annotations": { "version": "7.16.7", "dev": true, @@ -1807,29 +1840,31 @@ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" }, "node_modules/@babel/template": { - "version": "7.16.7", - "license": "MIT", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.17.3", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@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.3", + "@babel/types": "^7.23.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1838,61 +1873,59 @@ } }, "node_modules/@babel/types": { - "version": "7.17.0", - "license": "MIT", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, "node_modules/@coreui/chartjs": { - "version": "3.0.0", - "license": "MIT", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@coreui/chartjs/-/chartjs-3.1.2.tgz", + "integrity": "sha512-d3MGk3KZNAt29VRKP/XYiGmT56KTqtuOhLEg5HNwb7P7ZmEgOJoHxFHVCVE4I36hfgQCjZZVknsuk2ZTfF/2fw==", "dependencies": { - "@coreui/coreui": "4.0.0", - "chart.js": "^3.4.0" - } - }, - "node_modules/@coreui/chartjs/node_modules/@coreui/coreui": { - "version": "4.0.0", - "license": "MIT", - "peerDependencies": { - "@popperjs/core": "^2.9.2" + "@coreui/coreui": "^4.2.6", + "chart.js": "^3.9.1" } }, "node_modules/@coreui/coreui": { - "version": "4.1.0", - "license": "MIT", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@coreui/coreui/-/coreui-4.3.0.tgz", + "integrity": "sha512-2bx5E9YT17td4K7hZapudypSPx7a5jYg8NpSCTLRStPTWOBlL5XVF7fz3yUn2S6DQE1VmnbrXQpuS5LzmptRLQ==", + "dependencies": { + "postcss-combine-duplicated-selectors": "^10.0.3" + }, "peerDependencies": { - "@popperjs/core": "^2.11.0" + "@popperjs/core": "^2.11.6" } }, "node_modules/@coreui/react": { - "version": "4.1.2", - "license": "MIT", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@coreui/react/-/react-4.11.0.tgz", + "integrity": "sha512-RFa3yBUHyIBvl1XX5hVb8MYqj24fU1FogAxZUtA+9yRrssiBs3Uy1W/AqMKnLiSArKyUm07Khjxe7I3Hc1iPdA==", "peerDependencies": { - "react": "^17", - "react-dom": "^17" + "@coreui/coreui": "4.3.0", + "react": ">=17", + "react-dom": ">=17" } }, "node_modules/@coreui/react-chartjs": { - "version": "2.0.3", - "license": "MIT", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@coreui/react-chartjs/-/react-chartjs-2.1.3.tgz", + "integrity": "sha512-Boj2LhlGlAVIdPRDDIyF5nbupIg9ohhpdLXW28ch0A0ZMpJvf0AwBoibV4Uo6agcN7jSq2uvgudNC3aJTMg/8w==", "dependencies": { - "@coreui/chartjs": "^3.0.0", - "chart.js": "^3.7.0" + "@coreui/chartjs": "^3.1.1", + "chart.js": "3.9.1" }, "peerDependencies": { - "react": "^17", - "react-dom": "^17" + "react": ">=17", + "react-dom": ">=17" } }, "node_modules/@coreui/utils": { @@ -1903,185 +1936,65 @@ "npm": ">= 5.6.0" } }, - "node_modules/@csstools/normalize.css": { - "version": "12.0.0", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/@csstools/postcss-color-function": { - "version": "1.0.2", + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", "dev": true, "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" } }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "1.0.0", - "dev": true, - "license": "CC0-1.0", + "node_modules/@emotion/babel-plugin": { + "version": "11.9.2", + "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/runtime": "^7.13.10", + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.5", + "@emotion/serialize": "^1.0.2", + "babel-plugin-macros": "^2.6.1", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.0.13" }, "peerDependencies": { - "postcss": "^8.3" + "@babel/core": "^7.0.0" } }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.0", - "dev": true, - "license": "CC0-1.0", + "node_modules/@emotion/babel-plugin/node_modules/@emotion/memoize": { + "version": "0.7.5", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/babel-plugin-macros": { + "version": "2.8.0", + "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" } }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "1.0.0", - "dev": true, - "license": "CC0-1.0", + "node_modules/@emotion/babel-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "license": "MIT", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.0", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "1.0.0", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "1.0.1", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.2.0", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "2.0.2", - "dev": true, - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2", - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@emotion/babel-plugin": { - "version": "11.9.2", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/runtime": "^7.13.10", - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.5", - "@emotion/serialize": "^1.0.2", - "babel-plugin-macros": "^2.6.1", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.0.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/@emotion/memoize": { - "version": "0.7.5", - "license": "MIT" - }, - "node_modules/@emotion/babel-plugin/node_modules/babel-plugin-macros": { - "version": "2.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "node_modules/@emotion/babel-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" }, "engines": { "node": ">=8" @@ -2186,2916 +2099,2777 @@ "version": "0.2.5", "license": "MIT" }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.3.0", - "hasInstallScript": true, - "license": "MIT", + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "1.3.0", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.3.0" - }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/@fortawesome/free-brands-svg-icons": { - "version": "5.15.4", - "hasInstallScript": true, - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/@fortawesome/free-brands-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "hasInstallScript": true, - "license": "MIT", + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/@fortawesome/free-regular-svg-icons": { - "version": "5.15.4", - "hasInstallScript": true, - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/@fortawesome/free-regular-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "hasInstallScript": true, - "license": "MIT", + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "5.15.4", - "hasInstallScript": true, - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/@fortawesome/free-solid-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "hasInstallScript": true, - "license": "MIT", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/react-fontawesome": { - "version": "0.1.17", - "license": "MIT", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "~1 || >=1.3.0-beta1", - "react": ">=16.x" + "node": ">=12" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.10.0" + "node": ">=12" } }, - "node_modules/@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=12" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@jest/console": { - "version": "27.5.1", + "node_modules/@eslint/eslintrc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", + "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "type-fest": "^0.20.2" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "argparse": "^2.0.1" }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.3.0", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "1.3.0", + "hasInstallScript": true, "license": "MIT", + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.3.0" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "5.15.4", + "hasInstallScript": true, + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "has-flag": "^4.0.0" + "@fortawesome/fontawesome-common-types": "^0.2.36" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/@jest/core": { - "version": "27.5.1", - "dev": true, + "node_modules/@fortawesome/free-brands-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "engines": { + "node": ">=6" } }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "5.15.4", + "hasInstallScript": true, + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "color-convert": "^2.0.1" + "@fortawesome/fontawesome-common-types": "^0.2.36" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6" } }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "node_modules/@fortawesome/free-regular-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6" } }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "5.15.4", + "hasInstallScript": true, + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "color-name": "~1.1.4" + "@fortawesome/fontawesome-common-types": "^0.2.36" }, "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, + "node_modules/@fortawesome/free-solid-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "hasInstallScript": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/@fortawesome/react-fontawesome": { + "version": "0.1.17", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "prop-types": "^15.8.1" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || >=1.3.0-beta1", + "react": ">=16.x" } }, - "node_modules/@jest/environment": { - "version": "27.5.1", + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10.10.0" } }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@jest/globals": { - "version": "27.5.1", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "dev": true, - "license": "MIT", + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "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==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "peer": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", + "node_modules/@juggle/resize-observer": { + "version": "3.3.1", + "license": "Apache-2.0" + }, + "node_modules/@monaco-editor/loader": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.3.tgz", + "integrity": "sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q==", "dependencies": { - "has-flag": "^4.0.0" + "state-local": "^1.0.6" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "monaco-editor": ">= 0.21.0 < 1" } }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "dev": true, - "license": "MIT", + "node_modules/@monaco-editor/react": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.5.2.tgz", + "integrity": "sha512-emcWu6vg1OpXPiYll4aPOaXe8bwYB4UaaNTwtArFLgMoNGBzRZb2Xn0Bra2HMIFM7QLgs7fCGunHO5LkfT2LBA==", "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" + "@monaco-editor/loader": "^1.3.3" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "peerDependencies": { + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@jest/test-result": { - "version": "27.5.1", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 8" } }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", "dev": true, "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 8" } }, - "node_modules/@jest/transform": { - "version": "27.5.1", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 8" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/popperjs" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", + "node_modules/@react-icons/all-files": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@react-icons/all-files/-/all-files-4.1.0.tgz", + "integrity": "sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", + "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } } }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", + "node_modules/@reduxjs/toolkit/node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "@babel/runtime": "^7.9.2" } }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" + "node_modules/@restart/context": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", + "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", + "peerDependencies": { + "react": ">=16.3.2" + } }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node_modules/@restart/hooks": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.11.tgz", + "integrity": "sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw==", + "dependencies": { + "dequal": "^2.0.3" + }, + "peerDependencies": { + "react": ">=16.8.0" } }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", + "node_modules/@rjsf/bootstrap-4": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/bootstrap-4/-/bootstrap-4-5.12.1.tgz", + "integrity": "sha512-aUnijxIlYWza8klJ+GvgoYk4gFSaQQV97LLdujMQY096iLm12ryxWLEjyLyPPNOymyp4kdkNO4FCTiWMs2bh3Q==", "dependencies": { - "has-flag": "^4.0.0" + "@react-icons/all-files": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "peerDependencies": { + "@rjsf/core": "^5.8.x", + "@rjsf/utils": "^5.8.x", + "react": "^16.14.0 || >=17", + "react-bootstrap": "^1.6.5" } }, - "node_modules/@jest/types": { - "version": "27.5.1", - "dev": true, - "license": "MIT", + "node_modules/@rjsf/core": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.12.1.tgz", + "integrity": "sha512-1YFhZ90/uHRx1akQmDdIjBxGMjs/5gtuTLUFwl6GbOwTm2fhZRh3qXRFyTXz81Oy6TGcbrxBJEYvFg2iHjYKCA==", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "markdown-to-jsx": "^7.3.2", + "nanoid": "^3.3.6", + "prop-types": "^15.8.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=14" + }, + "peerDependencies": { + "@rjsf/utils": "^5.8.x", + "react": "^16.14.0 || >=17" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", + "node_modules/@rjsf/utils": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.12.1.tgz", + "integrity": "sha512-/k8+7WdLwhaYsOQvH5BQINipj2IJvjEW3QQv4jQQ7sXtkpdUjieZayRfaE8DHfRdm9HjgJURJFDy3EODkWPl6A==", "dependencies": { - "color-convert": "^2.0.1" + "json-schema-merge-allof": "^0.8.1", + "jsonpointer": "^5.0.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-is": "^18.2.0" }, "engines": { - "node": ">=8" + "node": ">=14" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "react": "^16.14.0 || >=17" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", + "node_modules/@rjsf/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@rjsf/validator-ajv8": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.12.1.tgz", + "integrity": "sha512-m4QO44yp60LTIfd4RPUu/h07B8U9umbD3I4Nh4iv9oyUudncaZFFXRopKcBm08v30VkN0tjMwuu0SxGDpzMtHA==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21" }, "engines": { - "node": ">=10" + "node": ">=14" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@rjsf/utils": "^5.8.x" } }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", + "node_modules/@rjsf/validator-ajv8/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { - "color-name": "~1.1.4" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=7.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", + "node_modules/@rjsf/validator-ajv8/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.1.2", "dev": true, "license": "MIT" }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@babel/types": "^7.0.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "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==", + "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "license": "MIT", - "engines": { - "node": ">=6.0.0" + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" } }, - "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==", - "engines": { - "node": ">=6.0.0" + "node_modules/@types/eslint": { + "version": "7.29.0", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "license": "MIT", + "peer": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "license": "MIT" + "node_modules/@types/estree": { + "version": "0.0.51", + "license": "MIT", + "peer": true }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "node_modules/@types/hast": { + "version": "2.3.4", + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@types/unist": "*" } }, - "node_modules/@juggle/resize-observer": { + "node_modules/@types/hoist-non-react-statics": { "version": "3.3.1", - "license": "Apache-2.0" + "license": "MIT", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.3", - "dev": true, - "license": "MIT" + "node_modules/@types/invariant": { + "version": "2.2.35", + "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", + "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" }, - "node_modules/@monaco-editor/loader": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.3.tgz", - "integrity": "sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q==", + "node_modules/@types/json-schema": { + "version": "7.0.9", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "17.0.21", + "license": "MIT" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/papaparse": { + "version": "5.3.2", + "license": "MIT", "dependencies": { - "state-local": "^1.0.6" - }, - "peerDependencies": { - "monaco-editor": ">= 0.21.0 < 1" + "@types/node": "*" } }, - "node_modules/@monaco-editor/react": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.5.2.tgz", - "integrity": "sha512-emcWu6vg1OpXPiYll4aPOaXe8bwYB4UaaNTwtArFLgMoNGBzRZb2Xn0Bra2HMIFM7QLgs7fCGunHO5LkfT2LBA==", + "node_modules/@types/parse-json": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.4", + "license": "MIT" + }, + "node_modules/@types/raf": { + "version": "3.4.0", + "license": "MIT", + "optional": true + }, + "node_modules/@types/react": { + "version": "17.0.39", + "license": "MIT", "dependencies": { - "@monaco-editor/loader": "^1.3.3" - }, - "peerDependencies": { - "monaco-editor": ">= 0.25.0 < 1", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", + "node_modules/@types/react-helmet": { + "version": "6.1.5", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" + "@types/react": "*" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, + "node_modules/@types/react-redux": { + "version": "7.1.23", "license": "MIT", - "engines": { - "node": ">= 8" + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", + "node_modules/@types/react-transition-group": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" + "@types/react": "*" } }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.7", + "node_modules/@types/scheduler": { + "version": "0.16.2", + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "2.0.6", + "license": "MIT" + }, + "node_modules/@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.30.7", "dev": true, "license": "MIT", "dependencies": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/type-utils": "5.30.7", + "@typescript-eslint/utils": "5.30.7", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": ">= 10.13" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <3.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { + "typescript": { "optional": true } } }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { - "version": "0.7.3", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.30.7", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7" + }, "engines": { - "node": ">= 8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/popperjs" + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@react-icons/all-files": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@react-icons/all-files/-/all-files-4.1.0.tgz", - "integrity": "sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==", - "peerDependencies": { - "react": "*" + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.30.7", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@reduxjs/toolkit": { - "version": "1.8.0", - "license": "MIT", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.30.7", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "immer": "^9.0.7", - "redux": "^4.1.2", - "redux-thunk": "^2.4.1", - "reselect": "^4.1.5" + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || 18.0.0-beta", - "react-redux": "^7.2.1 || ^8.0.0-beta" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { + "typescript": { "optional": true } } }, - "node_modules/@reduxjs/toolkit/node_modules/redux": { - "version": "4.1.2", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "5.30.7", + "dev": true, "license": "MIT", "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/@restart/context": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", - "peerDependencies": { - "react": ">=16.3.2" - } - }, - "node_modules/@restart/hooks": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.11.tgz", - "integrity": "sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw==", - "dependencies": { - "dequal": "^2.0.3" + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "react": ">=16.8.0" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@rjsf/bootstrap-4": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/bootstrap-4/-/bootstrap-4-5.12.1.tgz", - "integrity": "sha512-aUnijxIlYWza8klJ+GvgoYk4gFSaQQV97LLdujMQY096iLm12ryxWLEjyLyPPNOymyp4kdkNO4FCTiWMs2bh3Q==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.30.7", + "dev": true, + "license": "MIT", "dependencies": { - "@react-icons/all-files": "^4.1.0" + "@typescript-eslint/types": "5.30.7", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=14" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "@rjsf/core": "^5.8.x", - "@rjsf/utils": "^5.8.x", - "react": "^16.14.0 || >=17", - "react-bootstrap": "^1.6.5" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@rjsf/core": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.12.1.tgz", - "integrity": "sha512-1YFhZ90/uHRx1akQmDdIjBxGMjs/5gtuTLUFwl6GbOwTm2fhZRh3qXRFyTXz81Oy6TGcbrxBJEYvFg2iHjYKCA==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-scope": { + "version": "5.1.1", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "markdown-to-jsx": "^7.3.2", - "nanoid": "^3.3.6", - "prop-types": "^15.8.1" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@rjsf/utils": "^5.8.x", - "react": "^16.14.0 || >=17" + "node": ">=8.0.0" } }, - "node_modules/@rjsf/utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.12.1.tgz", - "integrity": "sha512-/k8+7WdLwhaYsOQvH5BQINipj2IJvjEW3QQv4jQQ7sXtkpdUjieZayRfaE8DHfRdm9HjgJURJFDy3EODkWPl6A==", - "dependencies": { - "json-schema-merge-allof": "^0.8.1", - "jsonpointer": "^5.0.1", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "react-is": "^18.2.0" - }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.14.0 || >=17" + "node": ">=4.0" } }, - "node_modules/@rjsf/utils/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/@rjsf/validator-ajv8": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.12.1.tgz", - "integrity": "sha512-m4QO44yp60LTIfd4RPUu/h07B8U9umbD3I4Nh4iv9oyUudncaZFFXRopKcBm08v30VkN0tjMwuu0SxGDpzMtHA==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, "dependencies": { - "ajv": "^8.12.0", - "ajv-formats": "^2.1.1", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21" + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=14" + "bin": { + "semver": "bin/semver.js" }, - "peerDependencies": { - "@rjsf/utils": "^5.8.x" + "engines": { + "node": ">=10" } }, - "node_modules/@rjsf/validator-ajv8/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.19.0", + "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "@typescript-eslint/utils": "5.19.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@rjsf/validator-ajv8/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", + "node_modules/@typescript-eslint/parser": { + "version": "5.30.7", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "debug": "^4.3.4" }, "engines": { - "node": ">= 10.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "@types/babel__core": { + "typescript": { "optional": true } } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.30.7", "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7" }, "engines": { - "node": ">= 10.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { + "version": "5.30.7", "dev": true, "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.30.7", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": ">= 8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "dev": true, - "license": "MIT" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.30.7", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@typescript-eslint/types": "5.30.7", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", + "node_modules/@typescript-eslint/parser/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.19.0", "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0" + }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", + "node_modules/@typescript-eslint/type-utils": { + "version": "5.30.7", "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "5.30.7", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.30.7", "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7" + }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "5.30.7", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.30.7", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { + "version": "5.30.7", "dev": true, "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.30.7", "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.30.7", + "eslint-visitor-keys": "^3.3.0" + }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-scope": { + "version": "5.1.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@svgr/babel-preset": { - "version": "5.5.0", + "node_modules/@typescript-eslint/type-utils/node_modules/estraverse": { + "version": "4.3.0", "dev": true, - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - }, + "license": "BSD-2-Clause", "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "node": ">=4.0" } }, - "node_modules/@svgr/core": { - "version": "5.5.0", + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "MIT", "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", + "node_modules/@typescript-eslint/types": { + "version": "5.19.0", "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.6" - }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.19.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "MIT", "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", + "node_modules/@typescript-eslint/utils": { + "version": "5.19.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.19.0", + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/typescript-estree": "5.19.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, "engines": { - "node": ">= 6" + "node": ">=8.0.0" } }, - "node_modules/@trysound/sax": { - "version": "0.2.0", + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", "dev": true, - "license": "ISC", + "license": "BSD-2-Clause", "engines": { - "node": ">=10.13.0" + "node": ">=4.0" } }, - "node_modules/@types/babel__core": { - "version": "7.1.18", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.19.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@typescript-eslint/types": "5.19.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", + "node_modules/@vitejs/plugin-react": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.1.1.tgz", + "integrity": "sha512-Jie2HERK+uh27e+ORXXwEP5h0Y2lS9T2PRGbfebiHGlwzDO0dEnd2aNtOR/qjBlPb1YgxwAONeblL1xqLikLag==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.0.0" + "@babel/core": "^7.23.2", + "@babel/plugin-transform-react-jsx-self": "^7.22.5", + "@babel/plugin-transform-react-jsx-source": "^7.22.5", + "@types/babel__core": "^7.20.3", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0" } }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "dev": true, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "dev": true, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", "license": "MIT", - "dependencies": { - "@babel/types": "^7.3.0" - } + "peer": true }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "dev": true, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } + "peer": true }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "dev": true, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", "license": "MIT", - "dependencies": { - "@types/node": "*" - } + "peer": true }, - "node_modules/@types/connect": { - "version": "3.4.35", - "dev": true, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@types/node": "*" + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "dev": true, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } + "peer": true }, - "node_modules/@types/eslint": { - "version": "7.29.0", + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.13", - "dev": true, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "dev": true, - "license": "MIT", + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "license": "Apache-2.0", + "peer": true, "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" + "@xtuc/long": "4.2.2" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "dev": true, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", "license": "MIT", - "dependencies": { - "@types/node": "*" - } + "peer": true }, - "node_modules/@types/hast": { - "version": "2.3.4", + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@types/unist": "*" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.8", - "dev": true, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@types/node": "*" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, - "node_modules/@types/invariant": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@types/istanbul-lib-coverage": "*" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@types/istanbul-lib-report": "*" + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "dev": true, - "license": "MIT" + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "license": "BSD-3-Clause", + "peer": true }, - "node_modules/@types/node": { - "version": "17.0.21", - "license": "MIT" + "node_modules/@xtuc/long": { + "version": "4.2.2", + "license": "Apache-2.0", + "peer": true }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "dev": true, - "license": "MIT" + "node_modules/abab": { + "version": "2.0.5", + "license": "BSD-3-Clause" }, - "node_modules/@types/papaparse": { - "version": "5.3.2", - "license": "MIT", - "dependencies": { - "@types/node": "*" + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.4.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.4", - "license": "MIT" - }, - "node_modules/@types/q": { - "version": "1.5.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/raf": { - "version": "3.4.0", - "license": "MIT", - "optional": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "17.0.39", + "node_modules/acorn-import-assertions": { + "version": "1.8.0", "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "peer": true, + "peerDependencies": { + "acorn": "^8" } }, - "node_modules/@types/react-helmet": { - "version": "6.1.5", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@types/react-redux": { - "version": "7.1.23", + "node_modules/ajv": { + "version": "6.12.6", "license": "MIT", "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@types/react-transition-group": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", - "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", + "node_modules/ajv-formats": { + "version": "2.1.1", + "license": "MIT", "dependencies": { - "@types/react": "*" + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "dev": true, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.10.0", "license": "MIT", "dependencies": { - "@types/node": "*" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@types/retry": { - "version": "0.12.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", "license": "MIT" }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "dev": true, + "node_modules/ajv-keywords": { + "version": "3.5.2", "license": "MIT", - "dependencies": { - "@types/express": "*" + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" } }, - "node_modules/@types/serve-static": { - "version": "1.13.10", + "node_modules/ansi-regex": { + "version": "5.0.1", "dev": true, "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" + "engines": { + "node": ">=8" } }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/trusted-types": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" - }, - "node_modules/@types/ws": { - "version": "8.5.2", - "dev": true, - "license": "MIT", + "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==", "dependencies": { - "@types/node": "*" + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@types/yargs": { - "version": "16.0.4", + "node_modules/anymatch": { + "version": "3.1.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@types/yargs-parser": "*" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.30.7", + "node_modules/aria-query": { + "version": "4.2.2", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/type-utils": "5.30.7", - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=6.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.7", + "node_modules/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.30.7", + "node_modules/array-union": { + "version": "2.1.0", "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=8" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/array.prototype.filter": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.30.7", - "dev": true, + "node_modules/array.prototype.flat": { + "version": "1.2.5", "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.7", + "node_modules/array.prototype.flatmap": { + "version": "1.3.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-scope": { - "version": "5.1.1", + "node_modules/arrify": { + "version": "1.0.1", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { - "version": "4.3.0", + "node_modules/asap": { + "version": "2.0.6", + "license": "MIT" + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/atob": { + "version": "2.1.2", + "license": "(MIT OR Apache-2.0)", "bin": { - "semver": "bin/semver.js" + "atob": "bin/atob.js" }, "engines": { - "node": ">=10" + "node": ">= 4.5.0" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.19.0", + "node_modules/auto-changelog": { + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "5.19.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "commander": "^5.0.0", + "handlebars": "^4.7.3", + "node-fetch": "^2.6.0", + "parse-github-url": "^1.0.2", + "semver": "^6.3.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "bin": { + "auto-changelog": "src/index.js" }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "engines": { + "node": ">=8.3" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.30.7", + "node_modules/axe-core": { + "version": "4.4.1", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "debug": "^4.3.4" - }, + "license": "MPL-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=4" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "license": "MIT", + "node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.30.7", + "node_modules/axobject-query": { + "version": "2.2.0", "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } + "license": "Apache-2.0" }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.7", + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "object.assign": "^4.1.0" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.7", + "node_modules/babel-plugin-macros": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=10", + "npm": ">=6" } }, - "node_modules/@typescript-eslint/parser/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.19.0", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.30.7", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@babel/helper-define-polyfill-provider": "^0.3.1" }, "peerDependencies": { - "eslint": "*" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-styled-components": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "styled-components": ">= 2" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.7", + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "5.30.7", + "node_modules/balanced-match": { + "version": "1.0.2", "dev": true, + "license": "MIT" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", "license": "MIT", + "optional": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">= 0.6.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.7", + "node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/batch-processor": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "5.30.7", + "node_modules/boolbase": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.7", + "node_modules/braces": { + "version": "3.0.2", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" + "fill-range": "^7.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=8" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "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" + } + ], "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "node_modules/btoa": { + "version": "1.2.1", + "license": "(MIT OR Apache-2.0)", "bin": { - "semver": "bin/semver.js" + "btoa": "bin/btoa.js" }, "engines": { - "node": ">=10" + "node": ">= 0.4.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.19.0", - "dev": true, + "node_modules/buffer": { + "version": "6.0.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.19.0", - "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "node_modules/buffer-from": { + "version": "1.1.2", + "license": "MIT", + "peer": true }, - "node_modules/@typescript-eslint/utils": { - "version": "5.19.0", - "dev": true, + "node_modules/call-bind": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/typescript-estree": "5.19.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/callsites": { + "version": "3.1.0", + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=6" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.19.0", + "node_modules/camelcase-keys": { + "version": "6.2.2", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.19.0", - "eslint-visitor-keys": "^3.0.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "dev": true, "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "engines": { + "node": ">=6" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", + "node_modules/camelize": { + "version": "1.0.0", "license": "MIT" }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", + "node_modules/can-use-dom": { + "version": "0.1.0", "license": "MIT" }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "license": "MIT" + "node_modules/caniuse-lite": { + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", + "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", + "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" + } + ] }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", + "node_modules/canvg": { + "version": "3.0.10", "license": "MIT", + "optional": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "@babel/runtime": "^7.12.5", + "@types/raf": "^3.4.0", + "core-js": "^3.8.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^6.0.3" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "license": "Apache-2.0", + "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==", "dependencies": { - "@xtuc/long": "4.2.2" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", + "node_modules/character-entities": { + "version": "1.2.4", "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", + "node_modules/character-entities-legacy": { + "version": "1.1.4", "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", + "node_modules/character-reference-invalid": { + "version": "1.1.4", "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", + "node_modules/charcodes": { + "version": "0.2.0", + "dev": true, "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "engines": { + "node": ">=6" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } + "node_modules/chart.js": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", + "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==" }, - "node_modules/@wojtekmaj/enzyme-adapter-react-17": { - "version": "0.6.6", + "node_modules/cheerio": { + "version": "1.0.0-rc.10", "license": "MIT", "dependencies": { - "@wojtekmaj/enzyme-adapter-utils": "^0.1.2", - "enzyme-shallow-equal": "^1.0.0", - "has": "^1.0.0", - "prop-types": "^15.7.0", - "react-is": "^17.0.0", - "react-test-renderer": "^17.0.0" + "cheerio-select": "^1.5.0", + "dom-serializer": "^1.3.2", + "domhandler": "^4.2.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "tslib": "^2.2.0" }, - "peerDependencies": { - "enzyme": "^3.0.0", - "react": "^17.0.0-0", - "react-dom": "^17.0.0-0" + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "node_modules/@wojtekmaj/enzyme-adapter-utils": { - "version": "0.1.4", - "license": "MIT", + "node_modules/cheerio-select": { + "version": "1.5.0", + "license": "BSD-2-Clause", "dependencies": { - "function.prototype.name": "^1.1.0", - "has": "^1.0.0", - "object.fromentries": "^2.0.0", - "prop-types": "^15.7.0" + "css-select": "^4.1.3", + "css-what": "^5.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0", + "domutils": "^2.7.0" }, - "peerDependencies": { - "react": "^17.0.0-0" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "license": "Apache-2.0" - }, - "node_modules/abab": { - "version": "2.0.5", - "license": "BSD-3-Clause" - }, - "node_modules/accepts": { - "version": "1.3.8", + "node_modules/chokidar": { + "version": "3.5.3", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 0.6" + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "bin": { - "acorn": "bin/acorn" + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" }, "engines": { - "node": ">=0.4.0" + "node": ">= 6" } }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "dev": true, + "node_modules/chrome-trace-event": { + "version": "1.0.3", "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" + "peer": true, + "engines": { + "node": ">=6.0" } }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, + "node_modules/clone-regexp": { + "version": "2.2.0", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "is-regexp": "^2.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=6" } }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "license": "MIT", - "peerDependencies": { - "acorn": "^8" + "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==", + "dependencies": { + "color-name": "1.1.3" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } + "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/acorn-node": { - "version": "1.8.2", + "node_modules/colord": { + "version": "2.9.2", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } + "license": "MIT" }, - "node_modules/acorn-node/node_modules/acorn": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.8" } }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "dev": true, + "node_modules/comma-separated-tokens": { + "version": "1.0.8", "license": "MIT", - "engines": { - "node": ">=0.4.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/address": { - "version": "1.1.2", + "node_modules/commander": { + "version": "5.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.12.0" + "node": ">= 6" } }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "dev": true, - "license": "MIT", + "node_modules/compute-gcd": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", + "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "dev": true, - "license": "MIT", + "node_modules/compute-lcm": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", + "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" + "compute-gcd": "^1.2.1", + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" }, - "node_modules/ajv-formats": { - "version": "2.1.1", + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "1.8.0", "license": "MIT", "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "safe-buffer": "~5.1.1" } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.10.0", + "node_modules/copy-to-clipboard": { + "version": "3.3.1", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "toggle-selection": "^1.0.6" } }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", + "node_modules/core-js": { + "version": "3.21.1", + "hasInstallScript": true, "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", + "node_modules/core-js-compat": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", + "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" + "browserslist": "^4.21.9" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/ansi-html-community": { - "version": "0.0.8", + "node_modules/core-js-pure": { + "version": "3.21.1", "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/cosmiconfig": { + "version": "7.0.1", "dev": true, "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/create-react-class": { + "version": "15.7.0", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, - "node_modules/anymatch": { - "version": "3.1.2", + "node_modules/cross-spawn": { + "version": "7.0.3", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, - "node_modules/arg": { - "version": "5.0.2", - "dev": true, - "license": "MIT" + "node_modules/css-color-keywords": { + "version": "1.0.0", + "license": "ISC", + "engines": { + "node": ">=4" + } }, - "node_modules/argparse": { - "version": "1.0.10", + "node_modules/css-functions-list": { + "version": "3.1.0", "dev": true, "license": "MIT", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "license": "MIT", + "optional": true, "dependencies": { - "sprintf-js": "~1.0.2" + "utrie": "^1.0.2" } }, - "node_modules/aria-query": { - "version": "4.2.2", - "dev": true, - "license": "Apache-2.0", + "node_modules/css-select": { + "version": "4.2.1", + "license": "BSD-2-Clause", "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" }, - "engines": { - "node": ">=6.0" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/array-flatten": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", - "dev": true, + "node_modules/css-to-react-native": { + "version": "3.0.0", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-what": { + "version": "5.1.0", + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.4" + "node": ">= 6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/array-union": { - "version": "2.1.0", - "dev": true, + "node_modules/cssesc": { + "version": "3.0.0", "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/array.prototype.filter": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, + "node_modules/csstype": { + "version": "3.0.10", + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", "engines": { - "node": ">= 0.4" + "node": ">=0.11" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/date-fns" } }, - "node_modules/array.prototype.flat": { - "version": "1.2.5", + "node_modules/debug": { + "version": "4.3.4", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "ms": "2.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.0", + "node_modules/decamelize": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/arrify": { + "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "dev": true, "license": "MIT", @@ -5103,538 +4877,579 @@ "node": ">=0.10.0" } }, - "node_modules/asap": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", + "node_modules/deep-is": { + "version": "0.1.4", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/astral-regex": { - "version": "2.0.0", - "dev": true, + "node_modules/deepmerge": { + "version": "4.2.2", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "dev": true, - "license": "MIT" + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/at-least-node": { + "node_modules/delayed-stream": { "version": "1.0.0", - "dev": true, - "license": "ISC", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { - "node": ">= 4.0.0" + "node": ">=0.4.0" } }, - "node_modules/atob": { - "version": "2.1.2", - "license": "(MIT OR Apache-2.0)", - "bin": { - "atob": "bin/atob.js" - }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "engines": { - "node": ">= 4.5.0" + "node": ">=6" } }, - "node_modules/auto-changelog": { - "version": "2.3.0", + "node_modules/desandro-matches-selector": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "commander": "^5.0.0", - "handlebars": "^4.7.3", - "node-fetch": "^2.6.0", - "parse-github-url": "^1.0.2", - "semver": "^6.3.0" - }, - "bin": { - "auto-changelog": "src/index.js" + "path-type": "^4.0.0" }, "engines": { - "node": ">=8.3" + "node": ">=8" } }, - "node_modules/autoprefixer": { - "version": "10.4.2", + "node_modules/discontinuous-range": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "esutils": "^2.0.2" }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axe-core": { - "version": "4.4.1", - "dev": true, - "license": "MPL-2.0", "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/axios": { - "version": "0.24.0", + "node_modules/dom-helpers": { + "version": "5.2.1", "license": "MIT", "dependencies": { - "follow-redirects": "^1.14.4" + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, - "node_modules/axobject-query": { - "version": "2.2.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "dev": true, + "node_modules/dom-serializer": { + "version": "1.3.2", "license": "MIT", "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { + "node_modules/domelementtype": { + "version": "2.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { "version": "4.3.0", - "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "color-convert": "^2.0.1" + "domelementtype": "^2.2.0" }, "engines": { - "node": ">=8" + "node": ">= 4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", + "node_modules/dompurify": { + "version": "2.3.6", + "license": "(MPL-2.0 OR Apache-2.0)", + "optional": true + }, + "node_modules/domutils": { + "version": "2.8.0", + "license": "BSD-2-Clause", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, + "node_modules/electron-to-chromium": { + "version": "1.4.464", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.464.tgz", + "integrity": "sha512-guZ84yoou4+ILNdj0XEbmGs6DEWj6zpVOWYpY09GU66yEb0DSYvP/biBPzHn0GuW/3RC/pnaYNUWlQE1fJYtgA==" + }, + "node_modules/element-resize-detector": { + "version": "1.2.4", "license": "MIT", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "batch-processor": "1.0.0" } }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", + "node_modules/emoji-regex": { + "version": "9.2.2", "dev": true, "license": "MIT" }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "peer": true, "dependencies": { - "has-flag": "^4.0.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=8" + "node": ">=10.13.0" } }, - "node_modules/babel-loader": { - "version": "8.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" + "node_modules/entities": { + "version": "2.2.0", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, + "node_modules/enzyme": { + "version": "3.11.0", + "license": "MIT", "dependencies": { - "minimist": "^1.2.0" + "array.prototype.flat": "^1.2.3", + "cheerio": "^1.0.0-rc.3", + "enzyme-shallow-equal": "^1.0.1", + "function.prototype.name": "^1.1.2", + "has": "^1.0.3", + "html-element-map": "^1.2.0", + "is-boolean-object": "^1.0.1", + "is-callable": "^1.1.5", + "is-number-object": "^1.0.4", + "is-regex": "^1.0.5", + "is-string": "^1.0.5", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.7.0", + "object-is": "^1.0.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.1", + "object.values": "^1.1.1", + "raf": "^3.4.1", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.2.1" }, - "bin": { - "json5": "lib/cli.js" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, + "node_modules/enzyme-shallow-equal": { + "version": "1.0.4", + "license": "MIT", "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "has": "^1.0.3", + "object-is": "^1.1.2" }, - "engines": { - "node": ">=4.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "dev": true, + "node_modules/error-ex": { + "version": "1.3.2", "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.19.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" }, "engines": { - "node": ">= 8.9.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "license": "MIT", + "peer": true + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "object.assign": "^4.1.0" + "has": "^1.0.3" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "dev": true, + "node_modules/escalade": { + "version": "3.1.1", "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", + "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "dev": true, "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" + "@eslint/eslintrc": "^1.3.1", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=10", - "npm": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.8", + "node_modules/eslint-config-prettier": { + "version": "8.5.0", "dev": true, "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, "peerDependencies": { - "@babel/core": "^7.1.0" + "eslint": ">=7.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^8.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", + "node_modules/eslint-config-react-app/node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "debug": "^3.2.7", + "resolve": "^1.20.0" } }, - "node_modules/babel-plugin-styled-components": { - "version": "2.0.6", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "lodash": "^4.17.11", - "picomatch": "^2.3.0" - }, - "peerDependencies": { - "styled-components": ">= 2" + "ms": "^2.1.1" } }, - "node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "license": "MIT" - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "dev": true, - "license": "MIT" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", + "node_modules/eslint-module-utils": { + "version": "2.7.3", "dev": true, "license": "MIT", "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "debug": "^3.2.7", + "find-up": "^2.1.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=4" } }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "ms": "^2.1.1" } }, - "node_modules/babel-preset-react-app": { - "version": "10.0.1", + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/balanced-match": { - "version": "1.0.2", + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", "dev": true, - "license": "MIT" - }, - "node_modules/base64-arraybuffer": { - "version": "1.0.2", "license": "MIT", - "optional": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, "engines": { - "node": ">= 0.6.0" + "node": ">=4" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/batch": { - "version": "0.6.1", - "dev": true, - "license": "MIT" - }, - "node_modules/batch-processor": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/bfj": { - "version": "7.0.2", + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", "dev": true, "license": "MIT", "dependencies": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" + "p-try": "^1.0.0" }, "engines": { - "node": ">= 8.0.0" + "node": ">=4" } }, - "node_modules/big.js": { - "version": "5.2.2", + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", "dev": true, "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "dev": true, - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.19.2", + "node_modules/eslint-module-utils/node_modules/path-exists": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", + "node_modules/eslint-plugin-import": { + "version": "2.26.0", "dev": true, "license": "MIT", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, "engines": { - "node": ">= 0.8" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/body-parser/node_modules/debug": { + "node_modules/eslint-plugin-import/node_modules/debug": { "version": "2.6.9", "dev": true, "license": "MIT", @@ -5642,4526 +5457,3956 @@ "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "esutils": "^2.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/body-parser/node_modules/ms": { + "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "dev": true, "license": "MIT" }, - "node_modules/bonjour-service": { - "version": "1.0.11", + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", "dev": true, "license": "MIT", "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.4" + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } } }, - "node_modules/boolbase": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.5.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/braces": { - "version": "3.0.2", + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "prettier-linter-helpers": "^1.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "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" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "node": ">=6.0.0" }, - "bin": { - "browserslist": "cli.js" + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/bser": { - "version": "2.1.1", + "node_modules/eslint-plugin-react": { + "version": "7.31.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz", + "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "license": "(MIT OR Apache-2.0)", - "bin": { - "btoa": "bin/btoa.js" + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.1", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.7" }, "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "3.2.0", + "node_modules/eslint-plugin-react-hooks": { + "version": "4.4.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/bytes": { - "version": "3.0.0", + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/call-bind": { - "version": "1.0.2", + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.3", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", + "node_modules/eslint-plugin-testing-library": { + "version": "5.3.1", + "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.13.0" + }, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" } }, - "node_modules/camel-case": { - "version": "4.1.2", + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, - "license": "MIT", "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/camelcase": { - "version": "6.3.0", + "node_modules/eslint-utils": { + "version": "3.0.0", "dev": true, "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, "engines": { - "node": ">=10" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/camelcase-keys": { - "version": "6.2.2", + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "5.3.1", + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelize": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/can-use-dom": { - "version": "0.1.0", - "license": "MIT" + "license": "Python-2.0" }, - "node_modules/caniuse-api": { - "version": "3.0.0", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001517", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", - "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", - "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" - } - ] - }, - "node_modules/canvg": { - "version": "3.0.10", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "@babel/runtime": "^7.12.5", - "@types/raf": "^3.4.0", - "core-js": "^3.8.3", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "rgbcolor": "^1.0.1", - "stackblur-canvas": "^2.0.0", - "svg-pathdata": "^6.0.3" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10.0.0" + "node": ">=7.0.0" } }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/chalk": { - "version": "2.4.2", - "license": "MIT", + "node_modules/eslint/node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/char-regex": { - "version": "1.0.2", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/character-entities": { - "version": "1.2.4", + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/charcodes": { - "version": "0.2.0", - "dev": true, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/chart.js": { - "version": "3.7.1", - "license": "MIT" - }, - "node_modules/check-types": { - "version": "11.1.2", + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "MIT" - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.10", - "license": "MIT", - "dependencies": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" - }, "engines": { - "node": ">= 6" + "node": ">=10" }, "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cheerio-select": { - "version": "1.5.0", - "license": "BSD-2-Clause", + "node_modules/espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, "dependencies": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/fb55" + "url": "https://opencollective.com/eslint" } }, - "node_modules/chokidar": { - "version": "3.5.3", + "node_modules/esquery": { + "version": "1.4.0", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": ">=0.10" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", + "node_modules/esrecurse": { + "version": "4.3.0", + "license": "BSD-2-Clause", "dependencies": { - "is-glob": "^4.0.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 6" + "node": ">=4.0" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "license": "MIT", + "node_modules/estraverse": { + "version": "5.3.0", + "license": "BSD-2-Clause", "engines": { - "node": ">=6.0" + "node": ">=4.0" } }, - "node_modules/ci-info": { - "version": "3.3.0", + "node_modules/esutils": { + "version": "2.0.3", "dev": true, - "license": "MIT" + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "dev": true, + "node_modules/ev-emitter": { + "version": "1.1.1", "license": "MIT" }, - "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" - }, - "node_modules/clean-css": { - "version": "5.2.4", - "dev": true, + "node_modules/events": { + "version": "3.3.0", "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, + "peer": true, "engines": { - "node": ">= 10.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "node": ">=0.8.x" } }, - "node_modules/clone-regexp": { - "version": "2.2.0", + "node_modules/execall": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "is-regexp": "^2.0.0" + "clone-regexp": "^2.1.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/co": { - "version": "4.6.0", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.2.0", "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } + "license": "Apache-2.0" }, - "node_modules/coa": { - "version": "2.0.2", + "node_modules/fast-glob": { + "version": "3.2.11", "dev": true, "license": "MIT", "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">= 4.0" + "node": ">=8.6.0" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", "dev": true, - "license": "MIT" - }, - "node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", + "license": "ISC", "dependencies": { - "color-name": "1.1.3" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/color-name": { - "version": "1.1.3", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", "license": "MIT" }, - "node_modules/colord": { - "version": "2.9.2", + "node_modules/fast-levenshtein": { + "version": "2.0.6", "dev": true, "license": "MIT" }, - "node_modules/colorette": { - "version": "2.0.16", + "node_modules/fastest-levenshtein": { + "version": "1.0.12", "dev": true, "license": "MIT" }, - "node_modules/combined-stream": { - "version": "1.0.8", + "node_modules/fastq": { + "version": "1.13.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "reusify": "^1.0.4" } }, - "node_modules/comma-separated-tokens": { - "version": "1.0.8", + "node_modules/fault": { + "version": "1.0.4", "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/commander": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "dev": true, - "license": "ISC" + "node_modules/fflate": { + "version": "0.4.8", + "license": "MIT" }, - "node_modules/common-tags": { - "version": "1.8.2", + "node_modules/file-entry-cache": { + "version": "6.0.1", "dev": true, "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, "engines": { - "node": ">=4.0.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/compressible": { - "version": "2.0.18", + "node_modules/fill-range": { + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "mime-db": ">= 1.43.0 < 2" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/compression": { - "version": "1.7.4", - "dev": true, - "license": "MIT", + "node_modules/final-form": { + "version": "4.20.10", + "resolved": "https://registry.npmjs.org/final-form/-/final-form-4.20.10.tgz", + "integrity": "sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==", "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "@babel/runtime": "^7.10.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/final-form" } }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node_modules/final-form-arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-3.1.0.tgz", + "integrity": "sha512-TWBvun+AopgBLw9zfTFHBllnKMVNEwCEyDawphPuBGGqNsuhGzhT7yewHys64KFFwzIs6KEteGLpKOwvTQEscQ==", + "peerDependencies": { + "final-form": "^4.20.8" } }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "dev": true, + "node_modules/find-root": { + "version": "1.1.0", "license": "MIT" }, - "node_modules/compute-gcd": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", - "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", - "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "node_modules/compute-lcm": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", - "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "compute-gcd": "^1.2.1", - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "dev": true, - "license": "MIT" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "dev": true, + "node_modules/fizzy-ui-utils": { + "version": "2.0.7", "license": "MIT", - "engines": { - "node": ">=0.8" + "dependencies": { + "desandro-matches-selector": "^2.0.0" } }, - "node_modules/content-disposition": { - "version": "0.5.4", + "node_modules/flat-cache": { + "version": "3.0.4", "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "5.2.1" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">= 0.6" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", + "node_modules/flatted": { + "version": "3.2.5", "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT" - }, - "node_modules/content-type": { - "version": "1.0.4", - "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "license": "MIT", + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "safe-buffer": "~5.1.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/cookie": { - "version": "0.4.2", - "dev": true, - "license": "MIT", + "node_modules/format": { + "version": "0.2.2", "engines": { - "node": ">= 0.6" + "node": ">=0.4.x" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", + "node_modules/fs.realpath": { + "version": "1.0.0", "dev": true, - "license": "MIT" - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.1", - "license": "MIT", - "dependencies": { - "toggle-selection": "^1.0.6" - } + "license": "ISC" }, - "node_modules/core-js": { - "version": "3.21.1", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/core-js-compat": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", - "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", - "dev": true, + "node_modules/function-bind": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "license": "MIT", "dependencies": { - "browserslist": "^4.21.9" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/core-js-pure": { - "version": "3.21.1", + "node_modules/functional-red-black-tree": { + "version": "1.0.1", "dev": true, - "hasInstallScript": true, + "license": "MIT" + }, + "node_modules/functions-have-names": { + "version": "1.2.2", "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, + "node_modules/fuse.js": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", + "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", "engines": { "node": ">=10" } }, - "node_modules/create-react-class": { - "version": "15.7.0", + "node_modules/fuzzysort": { + "version": "1.2.1", + "license": "MIT" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", "license": "MIT", - "dependencies": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, + "node_modules/get-intrinsic": { + "version": "1.1.1", "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" }, - "engines": { - "node": ">= 8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", + "node_modules/get-size": { + "version": "2.0.3", + "license": "MIT" + }, + "node_modules/get-stdin": { + "version": "8.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "dev": true, - "license": "CC0-1.0", + "node_modules/get-symbol-description": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { - "node": "^12 || ^14 || >=16" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/css-color-keywords": { - "version": "1.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.1.4", - "dev": true, + "node_modules/glob": { + "version": "7.2.0", + "dev": true, "license": "ISC", "dependencies": { - "timsort": "^0.3.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 10" + "node": "*" }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-functions-list": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.22" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", + "node_modules/glob-parent": { + "version": "6.0.2", "dev": true, - "license": "CC0-1.0", + "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" + "is-glob": "^4.0.3" }, "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": ">=10.13.0" } }, - "node_modules/css-line-break": { - "version": "2.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "utrie": "^1.0.2" - } + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "peer": true }, - "node_modules/css-loader": { - "version": "6.6.0", + "node_modules/global-modules": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.5", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "global-prefix": "^3.0.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "node": ">=6" } }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/global-prefix": { + "version": "3.0.0", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "isexe": "^2.0.0" }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } + "bin": { + "which": "bin/which" } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.10.0", - "dev": true, + "node_modules/globals": { + "version": "11.12.0", "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=4" } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", + "node_modules/globby": { + "version": "11.1.0", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, - "peerDependencies": { - "ajv": "^8.8.2" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", + "node_modules/globjoin": { + "version": "0.1.4", "dev": true, "license": "MIT" }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", + "node_modules/graceful-fs": { + "version": "4.2.9", + "license": "ISC", + "peer": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.7", "dev": true, "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "dev": true, - "license": "CC0-1.0", "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" + "handlebars": "bin/handlebars" }, "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.2.1", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" + "node": ">=0.4.7" }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", + "node_modules/hard-rejection": { + "version": "2.1.0", "dev": true, - "license": "MIT" - }, - "node_modules/css-to-react-native": { - "version": "3.0.0", "license": "MIT", - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" + "engines": { + "node": ">=6" } }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "dev": true, + "node_modules/has": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" + "function-bind": "^1.1.1" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4.0" } }, - "node_modules/css-what": { - "version": "5.1.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, + "node_modules/has-bigints": { + "version": "1.0.1", + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/fb55" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cssdb": { - "version": "6.4.0", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/cssesc": { + "node_modules/has-flag": { "version": "3.0.0", - "dev": true, "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, "engines": { "node": ">=4" } }, - "node_modules/cssnano": { - "version": "5.1.0", - "dev": true, - "license": "MIT", + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dependencies": { - "cssnano-preset-default": "^5.2.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" + "get-intrinsic": "^1.1.1" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.0", - "postcss-discard-comments": "^5.1.0", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.0", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.0", - "postcss-merge-rules": "^5.1.0", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.0", - "postcss-minify-params": "^5.1.0", - "postcss-minify-selectors": "^5.2.0", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.0", - "postcss-normalize-repeat-style": "^5.1.0", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.0", - "postcss-ordered-values": "^5.1.0", - "postcss-reduce-initial": "^5.1.0", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "dev": true, + "node_modules/has-symbols": { + "version": "1.0.3", "license": "MIT", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.2.15" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/csso": { - "version": "4.2.0", - "dev": true, + "node_modules/has-tostringtag": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "css-tree": "^1.1.2" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "dev": true, + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "6.0.0", "license": "MIT", "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/cssom": { - "version": "0.4.4", - "dev": true, - "license": "MIT" + "node_modules/highlight.js": { + "version": "10.7.3", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } }, - "node_modules/cssstyle": { - "version": "2.3.0", - "dev": true, + "node_modules/history": { + "version": "5.3.0", "license": "MIT", "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" + "@babel/runtime": "^7.7.6" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "dev": true, - "license": "MIT" + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } }, - "node_modules/csstype": { - "version": "3.0.10", + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", "license": "MIT" }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/data-urls": { - "version": "2.0.0", + "node_modules/hosted-git-info": { + "version": "4.1.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/data-urls/node_modules/tr46": { - "version": "2.1.0", - "dev": true, + "node_modules/hotkeys-js": { + "version": "3.8.7", + "license": "MIT" + }, + "node_modules/html-element-map": { + "version": "1.3.1", "license": "MIT", "dependencies": { - "punycode": "^2.1.1" + "array.prototype.filter": "^1.0.0", + "call-bind": "^1.0.2" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "8.7.0", + "node_modules/html-tags": { + "version": "3.2.0", "dev": true, "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/date-fns": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", - "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", "engines": { - "node": ">=0.11" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/debug": { - "version": "4.3.4", + "node_modules/html2canvas": { + "version": "1.4.1", "license": "MIT", + "optional": true, "dependencies": { - "ms": "2.1.2" + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true + "node": ">=8.0.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "node_modules/decamelize": { - "version": "1.2.0", + "node_modules/husky": { + "version": "7.0.4", "dev": true, "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "dev": true, + "node_modules/iconv-lite": { + "version": "0.6.3", "license": "MIT", "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", + "node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 4" } }, - "node_modules/decimal.js": { - "version": "10.3.1", - "dev": true, - "license": "MIT" + "node_modules/imagesloaded": { + "version": "4.1.4", + "license": "MIT", + "dependencies": { + "ev-emitter": "^1.0.0" + } }, - "node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } }, - "node_modules/deep-is": { - "version": "0.1.4", + "node_modules/immutable": { + "version": "4.0.0", "dev": true, "license": "MIT" }, - "node_modules/deepmerge": { - "version": "4.2.2", + "node_modules/import-fresh": { + "version": "3.3.0", "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "execa": "^5.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "dev": true, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, + "node_modules/import-lazy": { + "version": "4.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/defined": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/delayed-stream": { - "version": "1.0.0", + "node_modules/imurmurhash": { + "version": "0.1.4", "dev": true, "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=0.8.19" } }, - "node_modules/depd": { - "version": "1.1.2", + "node_modules/indent-string": { + "version": "4.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/desandro-matches-selector": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/destroy": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/detect-newline": { - "version": "3.1.0", + "node_modules/inflight": { + "version": "1.0.6", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/detect-node": { - "version": "2.1.0", + "node_modules/inherits": { + "version": "2.0.4", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/detect-port-alt": { - "version": "1.1.6", + "node_modules/ini": { + "version": "1.3.8", "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" }, "engines": { - "node": ">= 4.2.1" + "node": ">= 0.4" } }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "dev": true, + "node_modules/invariant": { + "version": "2.2.4", "license": "MIT", "dependencies": { - "ms": "2.0.0" + "loose-envify": "^1.0.0" } }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" + "node_modules/is-alphabetical": { + "version": "1.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/detective": { - "version": "5.2.1", - "dev": true, + "node_modules/is-alphanumerical": { + "version": "1.0.4", "license": "MIT", "dependencies": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - }, - "bin": { - "detective": "bin/detective.js" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" }, - "engines": { - "node": ">=0.8.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/didyoumean": { - "version": "1.2.2", - "dev": true, - "license": "Apache-2.0" + "node_modules/is-arrayish": { + "version": "0.2.1", + "license": "MIT" }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "dev": true, + "node_modules/is-bigint": { + "version": "1.0.4", "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dir-glob": { - "version": "3.0.1", + "node_modules/is-binary-path": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/discontinuous-range": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/dlv": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", - "dev": true, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "license": "MIT", "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" + "node": ">= 0.4" }, - "engines": { - "node": ">=6.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dom-converter": { - "version": "0.2.0", - "dev": true, + "node_modules/is-callable": { + "version": "1.2.4", "license": "MIT", - "dependencies": { - "utila": "~0.4" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dom-helpers": { - "version": "5.2.1", + "node_modules/is-core-module": { + "version": "2.9.0", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dom-serializer": { - "version": "1.3.2", + "node_modules/is-date-object": { + "version": "1.0.5", "license": "MIT", "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/domelementtype": { - "version": "2.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" + "node_modules/is-decimal": { + "version": "1.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/domexception": { - "version": "2.0.1", + "node_modules/is-extglob": { + "version": "2.1.1", "dev": true, "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/domhandler": { - "version": "4.3.0", - "license": "BSD-2-Clause", + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", "dependencies": { - "domelementtype": "^2.2.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/dompurify": { - "version": "2.3.6", - "license": "(MPL-2.0 OR Apache-2.0)", - "optional": true + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/domutils": { - "version": "2.8.0", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "node_modules/is-negative-zero": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dot-case": { - "version": "3.0.4", + "node_modules/is-number": { + "version": "7.0.0", "dev": true, "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "license": "MIT", "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dotenv": { - "version": "10.0.0", + "node_modules/is-plain-obj": { + "version": "1.1.0", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/dotenv-expand": { - "version": "5.1.0", + "node_modules/is-plain-object": { + "version": "5.0.0", "dev": true, - "license": "BSD-2-Clause" + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/duplexer": { - "version": "0.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/ejs": { - "version": "3.1.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.464", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.464.tgz", - "integrity": "sha512-guZ84yoou4+ILNdj0XEbmGs6DEWj6zpVOWYpY09GU66yEb0DSYvP/biBPzHn0GuW/3RC/pnaYNUWlQE1fJYtgA==" - }, - "node_modules/element-resize-detector": { - "version": "1.2.4", + "node_modules/is-regex": { + "version": "1.1.4", "license": "MIT", "dependencies": { - "batch-processor": "1.0.0" - } - }, - "node_modules/emittery": { - "version": "0.8.1", - "dev": true, - "license": "MIT", + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", + "node_modules/is-regexp": { + "version": "2.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=6" } }, - "node_modules/encodeurl": { + "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "call-bind": "^1.0.2" }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "license": "BSD-2-Clause", "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/enzyme": { - "version": "3.11.0", + "node_modules/is-string": { + "version": "1.0.7", "license": "MIT", "dependencies": { - "array.prototype.flat": "^1.2.3", - "cheerio": "^1.0.0-rc.3", - "enzyme-shallow-equal": "^1.0.1", - "function.prototype.name": "^1.1.2", - "has": "^1.0.3", - "html-element-map": "^1.2.0", - "is-boolean-object": "^1.0.1", - "is-callable": "^1.1.5", - "is-number-object": "^1.0.4", - "is-regex": "^1.0.5", - "is-string": "^1.0.5", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.7.0", - "object-is": "^1.0.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.1", - "object.values": "^1.1.1", - "raf": "^3.4.1", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.2.1" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/enzyme-shallow-equal": { + "node_modules/is-subset": { + "version": "0.1.1", + "license": "MIT" + }, + "node_modules/is-symbol": { "version": "1.0.4", "license": "MIT", "dependencies": { - "has": "^1.0.3", - "object-is": "^1.1.2" + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/error-ex": { - "version": "1.3.2", + "node_modules/is-weakref": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/error-stack-parser": { - "version": "2.0.7", + "node_modules/isexe": { + "version": "2.0.0", "dev": true, - "license": "MIT", + "license": "ISC" + }, + "node_modules/javascript-time-ago": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.5.9.tgz", + "integrity": "sha512-pQ8mNco/9g9TqWXWWjP0EWl6i/lAQScOyEeXy5AB+f7MfLSdgyV9BJhiOD1zrIac/lrxPYOWNbyl/IW8CW5n0A==", "dependencies": { - "stackframe": "^1.1.1" + "relative-time-format": "^1.1.6" } }, - "node_modules/es-abstract": { - "version": "1.19.5", + "node_modules/jest-worker": { + "version": "27.5.1", "license": "MIT", + "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 10.13.0" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "license": "MIT" - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "dev": true, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", "license": "MIT", - "dependencies": { - "has": "^1.0.3" + "peer": true, + "engines": { + "node": ">=8" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", "license": "MIT", + "peer": true, "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "dev": true, + "node_modules/js-tokens": { + "version": "4.0.0", "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", + "node_modules/jsesc": { + "version": "2.5.2", "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": ">=4" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "dev": true, - "license": "MIT", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "license": "MIT" + }, + "node_modules/json-schema-compare": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", + "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" + "lodash": "^4.17.4" } }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "dev": true, - "license": "MIT", + "node_modules/json-schema-merge-allof": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", + "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "compute-lcm": "^1.1.2", + "json-schema-compare": "^0.2.2", + "lodash": "^4.17.20" }, "engines": { - "node": ">= 0.8.0" + "node": ">=12.0.0" } }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } + "license": "MIT" }, - "node_modules/eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "node_modules/json-stringify-safe": { + "version": "5.0.1", "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.1", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", - "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } + "license": "ISC" }, - "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "dev": true, - "license": "MIT", + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" + "json5": "lib/cli.js" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" + "node": ">=6" } }, - "node_modules/eslint-config-react-app/node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" + "node": ">=0.10.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "dev": true, + "node_modules/jspdf": { + "version": "2.5.1", "license": "MIT", "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" + "@babel/runtime": "^7.14.0", + "atob": "^2.1.2", + "btoa": "^1.2.1", + "fflate": "^0.4.8" + }, + "optionalDependencies": { + "canvg": "^3.0.6", + "core-js": "^3.6.0", + "dompurify": "^2.2.0", + "html2canvas": "^1.0.0-rc.5" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "dev": true, + "node_modules/jspdf-autotable": { + "version": "3.5.23", "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "peerDependencies": { + "jspdf": "^2.3.1" } }, - "node_modules/eslint-module-utils": { - "version": "2.7.3", + "node_modules/jsx-ast-utils": { + "version": "3.2.2", "dev": true, "license": "MIT", "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "array-includes": "^3.1.4", + "object.assign": "^4.1.2" }, "engines": { - "node": ">=4" + "node": ">=4.0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", + "node_modules/kind-of": { + "version": "6.0.3", "dev": true, "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", + "node_modules/known-css-properties": { + "version": "0.25.0", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", + "node_modules/language-subtag-registry": { + "version": "0.3.21", "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } + "license": "ODC-By-1.0" }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", + "node_modules/language-tags": { + "version": "1.0.5", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" + "language-subtag-registry": "~0.3.2" } }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", + "node_modules/levn": { + "version": "0.4.1", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^1.1.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "node_modules/lines-and-columns": { + "version": "1.2.4", + "license": "MIT" }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, + "node_modules/loader-runner": { + "version": "4.2.0", "license": "MIT", + "peer": true, "engines": { - "node": ">=4" + "node": ">=6.11.5" } }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", + "node_modules/locate-path": { + "version": "6.0.0", "dev": true, "license": "MIT", "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT" }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", + "node_modules/lodash.debounce": { + "version": "4.0.8", + "license": "MIT" + }, + "node_modules/lodash.escape": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", "dev": true, "license": "MIT" }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", + "node_modules/lodash.throttle": { + "version": "4.1.1", + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", "license": "MIT", "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "dev": true, + "node_modules/lowlight": { + "version": "1.20.0", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=4.0" + "fault": "^1.0.0", + "highlight.js": "~10.7.0" }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/eslint-plugin-prettier": { - "version": "4.0.0", + "node_modules/lru-cache": { + "version": "6.0.0", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "node": ">=10" } }, - "node_modules/eslint-plugin-react": { - "version": "7.31.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz", - "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==", + "node_modules/map-obj": { + "version": "4.3.0", "dev": true, - "dependencies": { - "array-includes": "^3.1.5", - "array.prototype.flatmap": "^1.3.0", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.1", - "object.values": "^1.1.5", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.7" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.4.0", - "dev": true, - "license": "MIT", + "node_modules/markdown-to-jsx": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", + "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", "engines": { - "node": ">=10" + "node": ">= 10" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "react": ">= 0.14.0" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", + "node_modules/masonry-layout": { + "version": "4.2.2", + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" + "get-size": "^2.0.2", + "outlayer": "^2.1.0" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", + "node_modules/mathml-tag-names": { + "version": "2.1.3", "dev": true, "license": "MIT", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.3.1", + "node_modules/memoize-one": { + "version": "5.2.1", + "license": "MIT" + }, + "node_modules/meow": { + "version": "9.0.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^5.13.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" + "node": ">=10" }, - "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "license": "MIT", + "peer": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 8" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", + "node_modules/micromatch": { + "version": "4.0.5", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "node": ">=8.6" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", + "node_modules/mime-db": { + "version": "1.51.0", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.6" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "dev": true, - "license": "Apache-2.0", + "node_modules/mime-types": { + "version": "2.1.34", + "license": "MIT", + "dependencies": { + "mime-db": "1.51.0" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.6" } }, - "node_modules/eslint-webpack-plugin": { - "version": "3.1.1", + "node_modules/min-indent": { + "version": "1.0.1", "dev": true, "license": "MIT", - "dependencies": { - "@types/eslint": "^7.28.2", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" + "node": ">=4" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/minimatch": { + "version": "3.1.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "color-convert": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "*" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", + "node_modules/minimist": { + "version": "1.2.6", "dev": true, - "license": "Python-2.0" + "license": "MIT" }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", + "node_modules/minimist-options": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 6" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, + "node_modules/moment": { + "version": "2.29.4", "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": "*" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" + "node_modules/monaco-editor": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", + "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==", + "peer": true }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/moo": { + "version": "0.5.1", + "license": "BSD-3-Clause" }, - "node_modules/eslint/node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/natural-compare": { + "version": "1.4.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, + "node_modules/nearley": { + "version": "2.20.1", "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/nearley/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.6.7", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" + "node": "4.x || >=6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=10" } }, - "node_modules/esprima": { - "version": "4.0.1", + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "BSD-2-Clause", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "semver": "bin/semver.js" }, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/esquery": { - "version": "1.4.0", + "node_modules/normalize-path": { + "version": "3.0.0", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, + "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", + "node_modules/nth-check": { + "version": "2.0.1", "license": "BSD-2-Clause", "dependencies": { - "estraverse": "^5.2.0" + "boolbase": "^1.0.0" }, - "engines": { - "node": ">=4.0" + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "license": "BSD-2-Clause", + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/estree-walker": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" + "node_modules/object-inspect": { + "version": "1.12.0", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/etag": { - "version": "1.8.1", - "dev": true, + "node_modules/object-is": { + "version": "1.1.5", "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ev-emitter": { + "node_modules/object-keys": { "version": "1.1.1", - "license": "MIT" - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", "license": "MIT", "engines": { - "node": ">=0.8.x" + "node": ">= 0.4" } }, - "node_modules/execa": { - "version": "5.1.1", - "dev": true, + "node_modules/object.assign": { + "version": "4.1.2", "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/execall": { - "version": "2.0.0", - "dev": true, + "node_modules/object.entries": { + "version": "1.1.5", "license": "MIT", "dependencies": { - "clone-regexp": "^2.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/exit": { - "version": "0.1.2", + "node_modules/object.fromentries": { + "version": "2.0.5", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/expect": { - "version": "27.5.1", + "node_modules/object.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express": { - "version": "4.17.3", - "dev": true, + "node_modules/object.values": { + "version": "1.1.5", "license": "MIT", "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" }, "engines": { - "node": ">= 0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", + "node_modules/once": { + "version": "1.4.0", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "wrappy": "1" + } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", + "node_modules/optionator": { + "version": "0.9.1", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "dev": true, - "license": "Apache-2.0" + "node_modules/outlayer": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "ev-emitter": "^1.0.0", + "fizzy-ui-utils": "^2.0.0", + "get-size": "^2.0.2" + } }, - "node_modules/fast-glob": { - "version": "3.2.11", + "node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8.6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", + "node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", + "node_modules/p-try": { + "version": "2.2.0", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "dev": true, + "node_modules/papaparse": { + "version": "5.3.1", "license": "MIT" }, - "node_modules/fastq": { - "version": "1.13.0", - "dev": true, - "license": "ISC", + "node_modules/parent-module": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/fault": { - "version": "1.0.4", + "node_modules/parse-entities": { + "version": "2.0.0", "license": "MIT", "dependencies": { - "format": "^0.2.0" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/faye-websocket": { - "version": "0.11.4", + "node_modules/parse-github-url": { + "version": "1.0.2", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" + "license": "MIT", + "bin": { + "parse-github-url": "cli.js" }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "dev": true, - "license": "Apache-2.0", + "node_modules/parse-json": { + "version": "5.2.0", + "license": "MIT", "dependencies": { - "bser": "2.1.1" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fflate": { - "version": "0.4.8", + "node_modules/parse5": { + "version": "6.0.1", "license": "MIT" }, - "node_modules/file-entry-cache": { + "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", - "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "parse5": "^6.0.1" } }, - "node_modules/file-loader": { - "version": "6.2.0", + "node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "node": ">=8" } }, - "node_modules/filelist": { - "version": "1.0.2", + "node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^3.0.4" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/filesize": { - "version": "8.0.7", + "node_modules/path-key": { + "version": "3.1.1", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "engines": { - "node": ">= 0.4.0" + "node": ">=8" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "dev": true, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { "node": ">=8" } }, - "node_modules/final-form": { - "version": "4.20.10", - "resolved": "https://registry.npmjs.org/final-form/-/final-form-4.20.10.tgz", - "integrity": "sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==", - "dependencies": { - "@babel/runtime": "^7.10.0" - }, + "node_modules/performance-now": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=8.6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/final-form" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/final-form-arrays": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-3.1.0.tgz", - "integrity": "sha512-TWBvun+AopgBLw9zfTFHBllnKMVNEwCEyDawphPuBGGqNsuhGzhT7yewHys64KFFwzIs6KEteGLpKOwvTQEscQ==", - "peerDependencies": { - "final-form": "^4.20.8" + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "node_modules/finalhandler": { - "version": "1.1.2", - "dev": true, - "license": "MIT", + "node_modules/postcss-combine-duplicated-selectors": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/postcss-combine-duplicated-selectors/-/postcss-combine-duplicated-selectors-10.0.3.tgz", + "integrity": "sha512-IP0BmwFloCskv7DV7xqvzDXqMHpwdczJa6ZvIW8abgHdcIHs9mCJX2ltFhu3EwA51ozp13DByng30+Ke+eIExA==", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "postcss-selector-parser": "^6.0.4" }, "engines": { - "node": ">= 0.8" + "node": "^10.0.0 || ^12.0.0 || >=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } + "license": "MIT" }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", "dev": true, "license": "MIT" }, - "node_modules/find-cache-dir": { - "version": "3.3.2", + "node_modules/postcss-safe-parser": { + "version": "6.0.0", "dev": true, "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=12.0" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" } }, - "node_modules/find-root": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", + "node_modules/postcss-scss": { + "version": "4.0.3", "dev": true, "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=12.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" } }, - "node_modules/fizzy-ui-utils": { - "version": "2.0.7", + "node_modules/postcss-selector-parser": { + "version": "6.0.10", "license": "MIT", "dependencies": { - "desandro-matches-selector": "^2.0.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "node_modules/flat-cache": { - "version": "3.0.4", + "node_modules/postcss-sorting": { + "version": "7.0.1", "dev": true, "license": "MIT", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "peerDependencies": { + "postcss": "^8.3.9" } }, - "node_modules/flatted": { - "version": "3.2.5", - "dev": true, - "license": "ISC" + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "license": "MIT" }, - "node_modules/follow-redirects": { - "version": "1.14.9", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, "license": "MIT", "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">= 0.8.0" } }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.2", + "node_modules/prettier": { + "version": "2.4.1", "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } + "node": ">=10.13.0" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "fast-diff": "^1.1.2" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "node_modules/prismjs": { + "version": "1.27.0", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=6" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, + "node_modules/promise": { + "version": "8.1.0", "license": "MIT", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "asap": "~2.0.6" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "dev": true, + "node_modules/prop-types": { + "version": "15.8.1", "license": "MIT", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "dev": true, - "license": "MIT", + "node_modules/prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "react-is": "^16.3.2", + "warning": "^4.0.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react": ">=0.14.0" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "node_modules/prop-types-extra/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==" }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "dev": true, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, + "node_modules/property-information": { + "version": "5.6.0", "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" + "xtend": "^4.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/punycode": { + "version": "2.1.1", "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "4.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/form-data": { - "version": "3.0.1", - "dev": true, + "node_modules/raf": { + "version": "3.4.1", "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" + "performance-now": "^2.1.0" } }, - "node_modules/format": { - "version": "0.2.2", - "engines": { - "node": ">=0.4.x" - } + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "license": "CC0-1.0" }, - "node_modules/forwarded": { - "version": "0.2.0", - "dev": true, + "node_modules/randexp": { + "version": "0.4.6", "license": "MIT", + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.12" } }, - "node_modules/fraction.js": { - "version": "4.1.3", - "dev": true, + "node_modules/randombytes": { + "version": "2.1.0", "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" } }, - "node_modules/fresh": { - "version": "0.5.2", - "dev": true, - "license": "MIT", + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/fs-extra": { - "version": "10.0.1", - "dev": true, + "node_modules/react-app-polyfill": { + "version": "2.0.0", "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "core-js": "^3.6.5", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "whatwg-fetch": "^3.4.1" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "dev": true, - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" + "node_modules/react-bootstrap": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.7.tgz", + "integrity": "sha512-IzCYXuLSKDEjGFglbFWk0/iHmdhdcJzTmtS6lXxc0kaNFx2PFgrQf5jKnx5sarF2tiXh9Tgx3pSt3pdK7YwkMA==", + "dependencies": { + "@babel/runtime": "^7.14.0", + "@restart/context": "^2.1.4", + "@restart/hooks": "^0.4.7", + "@types/invariant": "^2.2.33", + "@types/prop-types": "^15.7.3", + "@types/react": ">=16.14.8", + "@types/react-transition-group": "^4.4.1", + "@types/warning": "^3.0.0", + "classnames": "^2.3.1", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "prop-types-extra": "^1.1.0", + "react-overlays": "^5.1.2", + "react-transition-group": "^4.4.1", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node_modules/react-copy-to-clipboard": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", + "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", + "dependencies": { + "copy-to-clipboard": "^3.3.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": "^15.3.0 || 16 || 17 || 18" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" + "node_modules/react-data-table-component": { + "version": "7.4.7", + "license": "Apache-2.0", + "dependencies": { + "deepmerge": "^4.2.2" + }, + "peerDependencies": { + "react": ">= 16.8.3", + "styled-components": ">= 4" + } }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "license": "MIT", + "node_modules/react-datepicker": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.10.0.tgz", + "integrity": "sha512-6IfBCZyWj54ZZGLmEZJ9c4Yph0s9MVfEGDC2evOvf9AmVz+RRcfP2Czqad88Ff9wREbcbqa4dk7IFYeXF1d3Ag==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "@popperjs/core": "^2.9.2", + "classnames": "^2.2.6", + "date-fns": "^2.24.0", + "prop-types": "^15.7.2", + "react-onclickoutside": "^6.12.2", + "react-popper": "^2.3.0" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "react": "^16.9.0 || ^17 || ^18", + "react-dom": "^16.9.0 || ^17 || ^18" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "react": "^18.2.0" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "dev": true, + "node_modules/react-fast-compare": { + "version": "3.2.0", "license": "MIT" }, - "node_modules/functions-have-names": { - "version": "1.2.2", - "license": "MIT", + "node_modules/react-final-form": { + "version": "6.5.9", + "resolved": "https://registry.npmjs.org/react-final-form/-/react-final-form-6.5.9.tgz", + "integrity": "sha512-x3XYvozolECp3nIjly+4QqxdjSSWfcnpGEL5K8OBT6xmGrq5kBqbA6+/tOqoom9NwqIPPbxPNsOViFlbKgowbA==", + "dependencies": { + "@babel/runtime": "^7.15.4" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/final-form" + }, + "peerDependencies": { + "final-form": "^4.20.4", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/fuse.js": { - "version": "3.6.1", - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=6" + "node_modules/react-final-form-arrays": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/react-final-form-arrays/-/react-final-form-arrays-3.1.4.tgz", + "integrity": "sha512-siVFAolUAe29rMR6u8VwepoysUcUdh6MLV2OWnCtKpsPRUdT9VUgECjAPaVMAH2GROZNiVB9On1H9MMrm9gdpg==", + "dependencies": { + "@babel/runtime": "^7.19.4" + }, + "peerDependencies": { + "final-form": "^4.15.0", + "final-form-arrays": ">=1.0.4", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-final-form": "^6.2.1" } }, - "node_modules/fuzzysort": { - "version": "1.2.1", - "license": "MIT" - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", + "node_modules/react-final-form-listeners": { + "version": "1.0.3", "license": "MIT", - "engines": { - "node": ">=6.9.0" + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "final-form": ">=4.0.0", + "prop-types": "^15.6.0", + "react": "^15.3.0 || ^16.0.0 || ^17.0.0", + "react-final-form": ">=3.0.0" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" + "node_modules/react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/get-intrinsic": { - "version": "1.1.1", + "node_modules/react-hotkeys-hook": { + "version": "3.4.4", "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "hotkeys-js": "3.8.7" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "react": ">=16.8.1", + "react-dom": ">=16.8.1" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "dev": true, - "license": "ISC" + "node_modules/react-is": { + "version": "17.0.2", + "license": "MIT" }, - "node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-loading-skeleton": { + "version": "3.1.0", "license": "MIT", - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "react": ">=16.8.0" } }, - "node_modules/get-size": { - "version": "2.0.3", - "license": "MIT" - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "dev": true, + "node_modules/react-masonry-component": { + "version": "6.3.0", "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "create-react-class": "^15.6.2", + "element-resize-detector": "^1.1.9", + "imagesloaded": "^4.0.0", + "lodash": "^4.17.4", + "masonry-layout": "^4.2.0", + "prop-types": "^15.5.8" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0-0 || ^16.0.0-0 || ^17.0.0" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, + "node_modules/react-media-hook": { + "version": "0.4.9", "license": "MIT", - "engines": { - "node": ">=10" - }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/react-onclickoutside": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz", + "integrity": "sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A==", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "individual", + "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" + }, + "peerDependencies": { + "react": "^15.5.x || ^16.x || ^17.x || ^18.x", + "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "license": "MIT", + "node_modules/react-overlays": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" + "@babel/runtime": "^7.13.8", + "@popperjs/core": "^2.11.6", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dom-helpers": "^5.2.0", + "prop-types": "^15.7.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "react": ">=16.3.0", + "react-dom": ">=16.3.0" } }, - "node_modules/glob": { - "version": "7.2.0", - "dev": true, - "license": "ISC", + "node_modules/react-papaparse": { + "version": "3.18.2", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@types/papaparse": "^5.3.1", + "papaparse": "^5.3.1" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8", + "npm": ">=5" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", + "node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", "dependencies": { - "is-glob": "^4.0.3" + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" }, - "engines": { - "node": ">=10.13.0" + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/global-modules": { - "version": "2.0.0", - "dev": true, + "node_modules/react-redux": { + "version": "7.2.6", "license": "MIT", "dependencies": { - "global-prefix": "^3.0.0" + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "react": "^16.8.3 || ^17" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } } }, - "node_modules/global-prefix": { - "version": "3.0.0", + "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", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "dev": true, - "license": "ISC", + "node_modules/react-router": { + "version": "6.2.2", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" + "history": "^5.2.0" }, - "bin": { - "which": "bin/which" + "peerDependencies": { + "react": ">=16.8" } }, - "node_modules/globals": { - "version": "11.12.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, + "node_modules/react-router-dom": { + "version": "6.2.2", "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" + "history": "^5.2.0", + "react-router": "6.2.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" } }, - "node_modules/globjoin": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "license": "ISC" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "dev": true, + "node_modules/react-select": { + "version": "5.3.0", "license": "MIT", "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.1.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^5.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/handle-thing": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/handlebars": { - "version": "4.7.7", - "dev": true, + "node_modules/react-select-search": { + "version": "3.0.9", "license": "MIT", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, "optionalDependencies": { - "uglify-js": "^3.1.4" + "fuse.js": "^3.4.5" + }, + "peerDependencies": { + "prop-types": "^15.7.2", + "react": "^17.0.1", + "react-dom": "^17.0.1" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "dev": true, - "license": "MIT", + "node_modules/react-select-search/node_modules/fuse.js": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", + "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", + "optional": true, "engines": { "node": ">=6" } }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "dev": true, - "license": "(Apache-2.0 OR MPL-1.1)" - }, - "node_modules/has": { - "version": "1.0.3", + "node_modules/react-syntax-highlighter": { + "version": "15.4.5", "license": "MIT", "dependencies": { - "function-bind": "^1.1.1" + "@babel/runtime": "^7.3.1", + "highlight.js": "^10.4.1", + "lowlight": "^1.17.0", + "prismjs": "^1.25.0", + "refractor": "^3.2.0" }, - "engines": { - "node": ">= 0.4.0" + "peerDependencies": { + "react": ">= 0.14.0" } }, - "node_modules/has-bigints": { - "version": "1.0.1", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/react-time-ago": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/react-time-ago/-/react-time-ago-7.2.1.tgz", + "integrity": "sha512-X5zwJDZHa1fsMwMvh8mrHN31g85s84zMCp+d7YL6IX50kNnr6YMAS2wpt1BmO9OxBV2Ue5J1ptD6JI8Zjd35HA==", + "dependencies": { + "memoize-one": "^6.0.0", + "prop-types": "^15.8.1", + "raf": "^3.4.1" + }, + "peerDependencies": { + "javascript-time-ago": "^2.3.7", + "react": ">=0.16.8", + "react-dom": ">=0.16.8" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } + "node_modules/react-time-ago/node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "dependencies": { - "get-intrinsic": "^1.1.1" + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" } }, - "node_modules/has-symbols": { - "version": "1.0.3", + "node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", + "node_modules/read-pkg-up": { + "version": "7.0.1", + "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hastscript": { - "version": "6.0.0", + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "dev": true, "license": "MIT", "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "license": "BSD-3-Clause", "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/history": { - "version": "5.3.0", + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@babel/runtime": "^7.7.6" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, - "node_modules/hoopy": { - "version": "0.1.4", + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", "dev": true, "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">= 6.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hosted-git-info": { + "node_modules/read-pkg-up/node_modules/p-locate": { "version": "4.1.0", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/hotkeys-js": { - "version": "3.8.7", - "license": "MIT" - }, - "node_modules/hpack.js": { - "version": "2.1.6", + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" } }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } + "license": "ISC" }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "safe-buffer": "~5.1.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/html-element-map": { - "version": "1.3.1", - "license": "MIT", - "dependencies": { - "array.prototype.filter": "^1.0.0", - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" } }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/html-entities": { - "version": "2.3.2", - "dev": true, - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", + "node_modules/readdirp": { + "version": "3.6.0", "dev": true, "license": "MIT", "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=12" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "8.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" + "node": ">=8.10.0" } }, - "node_modules/html-tags": { - "version": "3.2.0", + "node_modules/redent": { + "version": "3.0.0", "dev": true, "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/html-webpack-plugin": { - "version": "5.5.0", - "dev": true, + "node_modules/redux": { + "version": "4.1.1", "license": "MIT", "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" + "@babel/runtime": "^7.9.2" } }, - "node_modules/html2canvas": { - "version": "1.4.1", + "node_modules/redux-immutable-state-invariant": { + "version": "2.1.0", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "css-line-break": "^2.1.0", - "text-segmentation": "^1.0.3" - }, - "engines": { - "node": ">=8.0.0" + "invariant": "^2.1.0", + "json-stringify-safe": "^5.0.1" } }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], + "node_modules/redux-persist": { + "version": "6.0.0", "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "peerDependencies": { + "redux": ">4.0.0" } }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "dev": true, - "license": "MIT" + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "peerDependencies": { + "redux": "^4" + } }, - "node_modules/http-errors": { - "version": "1.8.1", - "dev": true, + "node_modules/refractor": { + "version": "3.6.0", "license": "MIT", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" + "hastscript": "^6.0.0", + "parse-entities": "^2.0.0", + "prismjs": "~1.27.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/http-parser-js": { - "version": "0.5.5", + "node_modules/regenerate": { + "version": "1.4.2", "dev": true, "license": "MIT" }, - "node_modules/http-proxy": { - "version": "1.18.1", + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", "dev": true, "license": "MIT", "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "regenerate": "^1.4.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", "dev": true, "license": "MIT", "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" + "@babel/runtime": "^7.8.4" } }, - "node_modules/http-proxy-middleware": { - "version": "2.0.3", + "node_modules/regexp.prototype.flags": { + "version": "1.4.2", "dev": true, "license": "MIT", "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", + "node_modules/regexpp": { + "version": "3.2.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", + "node_modules/regexpu-core": { + "version": "5.0.1", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "6", - "debug": "4" + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/human-signals": { - "version": "2.1.0", + "node_modules/regjsgen": { + "version": "0.6.0", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } + "license": "MIT" }, - "node_modules/husky": { - "version": "7.0.4", + "node_modules/regjsparser": { + "version": "0.8.4", "dev": true, - "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "jsesc": "~0.5.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/icss-utils": { - "version": "5.1.0", + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "bin": { + "jsesc": "bin/jsesc" } }, - "node_modules/idb": { - "version": "6.1.5", - "dev": true, - "license": "ISC" + "node_modules/relative-time-format": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/relative-time-format/-/relative-time-format-1.1.6.tgz", + "integrity": "sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ==" }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "dev": true, + "node_modules/require-from-string": { + "version": "2.0.2", "license": "MIT", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" }, - "node_modules/imagesloaded": { - "version": "4.1.4", + "node_modules/resolve": { + "version": "1.22.1", "license": "MIT", "dependencies": { - "ev-emitter": "^1.0.0" - } - }, - "node_modules/immer": { - "version": "9.0.12", - "license": "MIT", + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/immutable": { - "version": "4.0.0", + "node_modules/resolve-from": { + "version": "5.0.0", "dev": true, - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "3.3.0", "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", + "node_modules/ret": { + "version": "0.1.15", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.12" } }, - "node_modules/import-lazy": { - "version": "4.0.0", + "node_modules/reusify": { + "version": "1.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/import-local": { - "version": "3.1.0", + "node_modules/rgbcolor": { + "version": "1.0.1", + "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", + "optional": true, + "engines": { + "node": ">= 0.8.15" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" + "glob": "^7.1.3" }, "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" + "rimraf": "bin.js" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" + "node_modules/rst-selector-parser": { + "version": "2.2.3", + "license": "BSD-3-Clause", + "dependencies": { + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" } }, - "node_modules/indent-string": { - "version": "4.0.0", + "node_modules/run-parallel": { + "version": "1.2.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "queue-microtask": "^1.2.2" } }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" + "node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" }, - "node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" }, - "node_modules/internal-slot": { - "version": "1.0.3", - "license": "MIT", + "node_modules/sass": { + "version": "1.64.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.2.tgz", + "integrity": "sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg==", + "dev": true, "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" }, "engines": { - "node": ">= 0.4" + "node": ">=14.0.0" } }, - "node_modules/invariant": { - "version": "2.2.4", - "license": "MIT", + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "dependencies": { - "loose-envify": "^1.0.0" + "loose-envify": "^1.1.0" } }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "dev": true, + "node_modules/schema-utils": { + "version": "3.1.1", "license": "MIT", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, "engines": { - "node": ">= 10" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "license": "MIT", + "node_modules/serialize-javascript": { + "version": "6.0.0", + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "randombytes": "^2.1.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", + "node_modules/shallowequal": { + "version": "1.1.0", "license": "MIT" }, - "node_modules/is-bigint": { - "version": "1.0.4", + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "shebang-regex": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", + "node_modules/shebang-regex": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", + "node_modules/side-channel": { + "version": "1.0.4", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-callable": { - "version": "1.2.4", + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/simplebar": { + "version": "5.3.6", "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@juggle/resize-observer": "^3.3.1", + "can-use-dom": "^0.1.0", + "core-js": "^3.0.1", + "lodash.debounce": "^4.0.8", + "lodash.memoize": "^4.1.2", + "lodash.throttle": "^4.1.1" } }, - "node_modules/is-core-module": { - "version": "2.9.0", + "node_modules/simplebar-react": { + "version": "2.3.6", "license": "MIT", "dependencies": { - "has": "^1.0.3" + "prop-types": "^15.6.1", + "simplebar": "^5.3.6" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "react": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0", + "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0" } }, - "node_modules/is-date-object": { - "version": "1.0.5", + "node_modules/slash": { + "version": "3.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-decimal": { - "version": "1.0.4", + "node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/is-docker": { - "version": "2.2.1", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "license": "MIT", - "bin": { - "is-docker": "cli.js" + "dependencies": { + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-extglob": { - "version": "2.1.1", + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", "dev": true, "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", + "node_modules/source-map-js": { + "version": "1.0.2", + "license": "BSD-3-Clause", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, + "node_modules/source-map-loader": { + "version": "3.0.1", "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", + "node_modules/source-map-support": { + "version": "0.5.21", + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "1.1.5", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-module": { - "version": "1.0.0", + "node_modules/spdx-correct": { + "version": "3.1.1", "dev": true, - "license": "MIT" - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/is-number": { - "version": "7.0.0", + "node_modules/spdx-exceptions": { + "version": "2.3.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } + "license": "CC-BY-3.0" }, - "node_modules/is-number-object": { - "version": "1.0.6", + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/is-obj": { - "version": "1.0.1", + "node_modules/spdx-license-ids": { + "version": "3.0.11", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "license": "CC0-1.0" }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "dev": true, + "node_modules/stackblur-canvas": { + "version": "2.5.0", "license": "MIT", + "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.1.14" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", + "node_modules/state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", "dev": true, "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", "dev": true, "license": "MIT" }, - "node_modules/is-regex": { - "version": "1.1.4", + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-regexp": { - "version": "2.1.0", - "dev": true, + "node_modules/string.prototype.trim": { + "version": "1.2.5", "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-root": { - "version": "2.1.0", - "dev": true, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", + "node_modules/strip-ansi": { + "version": "6.0.1", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "ansi-regex": "^5.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "node_modules/is-string": { - "version": "1.0.7", + "node_modules/strip-indent": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "min-indent": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-subset": { - "version": "0.1.1", - "license": "MIT" + "node_modules/style-search": { + "version": "0.1.0", + "dev": true, + "license": "ISC" }, - "node_modules/is-symbol": { - "version": "1.0.4", + "node_modules/styled-components": { + "version": "5.3.3", "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-is": ">= 16.8.0" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", + "node_modules/stylelint": { + "version": "14.9.1", "dev": true, - "license": "MIT" - }, - "node_modules/is-weakref": { - "version": "1.0.2", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "@csstools/selector-specificity": "^2.0.1", + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "execall": "^2.0.0", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.25.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.14", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/stylelint" } }, - "node_modules/is-wsl": { - "version": "2.2.0", + "node_modules/stylelint-config-sass-guidelines": { + "version": "9.0.1", "dev": true, "license": "MIT", "dependencies": { - "is-docker": "^2.0.0" + "postcss-scss": "^4.0.2", + "stylelint-order": "^5.0.0", + "stylelint-scss": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^14.0.1" } }, - "node_modules/isarray": { - "version": "1.0.0", + "node_modules/stylelint-order": { + "version": "5.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "postcss": "^8.3.11", + "postcss-sorting": "^7.0.1" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } }, - "node_modules/isexe": { + "node_modules/stylelint-scss": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { "version": "2.0.0", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "4.0.1", "dev": true, - "license": "BSD-3-Clause", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "dev": true, - "license": "BSD-3-Clause", + "node_modules/stylis": { + "version": "4.0.13", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", + "node_modules/supports-hyperlinks": { + "version": "2.2.0", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { + "node_modules/supports-hyperlinks/node_modules/has-flag": { "version": "4.0.0", "dev": true, "license": "MIT", @@ -10169,7 +9414,7 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { + "node_modules/supports-hyperlinks/node_modules/supports-color": { "version": "7.2.0", "dev": true, "license": "MIT", @@ -10180,15872 +9425,3946 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, + "node_modules/svg-pathdata": { + "version": "6.0.3", + "license": "MIT", + "optional": true, "engines": { - "node": ">=8" + "node": ">=12.0.0" } }, - "node_modules/jake": { - "version": "10.8.5", + "node_modules/svg-tags": { + "version": "1.0.0", + "dev": true + }, + "node_modules/table": { + "version": "6.8.0", "dev": true, - "license": "Apache-2.0", + "license": "BSD-3-Clause", "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=10" + "node": ">=10.0.0" } }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/table/node_modules/ajv": { + "version": "8.10.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/jake/node_modules/async": { - "version": "3.2.3", + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", "dev": true, "license": "MIT" }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, + "node_modules/tapable": { + "version": "2.2.1", "license": "MIT", + "peer": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", + "node_modules/terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "peer": true, "dependencies": { - "has-flag": "^4.0.0" + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" }, "engines": { - "node": ">=8" - } - }, - "node_modules/javascript-time-ago": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.5.9.tgz", - "integrity": "sha512-pQ8mNco/9g9TqWXWWjP0EWl6i/lAQScOyEeXy5AB+f7MfLSdgyV9BJhiOD1zrIac/lrxPYOWNbyl/IW8CW5n0A==", - "dependencies": { - "relative-time-format": "^1.1.6" + "node": ">=10" } }, - "node_modules/jest": { - "version": "27.5.1", - "dev": true, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", "license": "MIT", + "peer": true, "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "webpack": "^5.1.0" }, "peerDependenciesMeta": { - "node-notifier": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { "optional": true } } }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "dev": true, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } + "peer": true }, - "node_modules/jest-circus": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, + "node_modules/text-segmentation": { + "version": "1.0.3", "license": "MIT", + "optional": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "utrie": "^1.0.2" } }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", + "node_modules/text-table": { + "version": "0.2.0", "dev": true, + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/to-regex-range": { + "version": "5.0.1", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "is-number": "^7.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=8.0" } }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", + "node_modules/toggle-selection": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/tr46": { + "version": "0.0.3", "dev": true, "license": "MIT" }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/trim-newlines": { + "version": "3.0.1", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/tsconfig-paths": { + "version": "3.14.1", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/jest-cli": { - "version": "27.5.1", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" + "minimist": "^1.2.0" }, "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "json5": "lib/cli.js" } }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tsutils": { + "version": "3.21.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "tslib": "^1.8.1" }, "engines": { - "node": ">=10" + "node": ">= 6" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.8.0" } }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/typescript": { + "version": "4.6.3", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=8" + "node": ">=4.2.0" } }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/uglify-js": { + "version": "3.15.2", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" }, "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, - "node_modules/jest-config": { - "version": "27.5.1", - "dev": true, + "node_modules/unbox-primitive": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "react": ">=15.0.0" } }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/jest-diff": { - "version": "27.5.1", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "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" + } + ], "dependencies": { - "color-convert": "^2.0.1" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "update-browserslist-db": "cli.js" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "punycode": "^2.1.0" } }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/utrie": { + "version": "1.0.2", "license": "MIT", + "optional": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "base64-arraybuffer": "^1.0.2" } }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", + "node_modules/v8-compile-cache": { + "version": "2.3.0", "dev": true, "license": "MIT" }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "dev": true, - "license": "MIT", + "node_modules/validate.io-array": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", + "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==" + }, + "node_modules/validate.io-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", + "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" + }, + "node_modules/validate.io-integer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", + "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "validate.io-number": "^1.0.3" } }, - "node_modules/jest-each": { - "version": "27.5.1", - "dev": true, - "license": "MIT", + "node_modules/validate.io-integer-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", + "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "validate.io-array": "^1.0.3", + "validate.io-integer": "^1.0.4" } }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/validate.io-number": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", + "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" + }, + "node_modules/vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" }, "engines": { - "node": ">=8" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", + "node_modules/vite/node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10" + "node": ">=14.18.0", + "npm": ">=8.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", "dependencies": { - "color-name": "~1.1.4" + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" }, "engines": { - "node": ">=7.0.0" + "node": ">=10.13.0" } }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", + "node_modules/webpack": { + "version": "5.77.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.77.0.tgz", + "integrity": "sha512-sbGNjBr5Ya5ss91yzjeJTLKyfiwo5C628AFjEa6WSXcZa4E+F57om3Cc8xLb1Jh0b243AWuSYRf3dn7HVeFQ9Q==", + "peer": true, "dependencies": { - "has-flag": "^4.0.0" + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" }, "engines": { - "node": ">=8" + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "dev": true, + "node_modules/webpack-sources": { + "version": "3.2.3", "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, + "peer": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=10.13.0" } }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "dev": true, - "license": "MIT", + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "license": "BSD-2-Clause", + "peer": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8.0.0" } }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "dev": true, - "license": "MIT", + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "peer": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4.0" } }, - "node_modules/jest-haste-map": { - "version": "27.5.1", + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } + "license": "BSD-2-Clause" }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/which": { + "version": "2.0.2", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "color-convert": "^2.0.1" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "node-which": "bin/node-which" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">= 8" } }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/word-wrap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", + "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", + "node_modules/wordwrap": { + "version": "1.0.0", "dev": true, "license": "MIT" }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/wrappy": { + "version": "1.0.2", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "ISC" }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/xtend": { + "version": "4.0.2", "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.4" } }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", + "node_modules/yallist": { + "version": "4.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } + "license": "ISC" }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, + "node_modules/yaml": { + "version": "1.10.2", + "license": "ISC", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 6" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/yargs-parser": { + "version": "20.2.9", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "ISC", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=10" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", + "node_modules/yocto-queue": { + "version": "0.1.0", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" } }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" + "@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==" }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "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==" + } } }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", + "@babel/eslint-parser": { + "version": "7.17.0", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" + "requires": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" }, - "engines": { - "node": ">=8" + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true + }, + "estraverse": { + "version": "4.3.0", + "dev": true + } } }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "@babel/generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", + "requires": { + "@babel/types": "^7.23.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" } }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" + "@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, - "engines": { - "node": ">=7.0.0" + "dependencies": { + "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==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } } }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", + "@babel/helper-create-class-features-plugin": { + "version": "7.17.9", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" } }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" } }, - "node_modules/jest-mock": { - "version": "27.5.1", + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", + "@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==" + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "requires": { + "@babel/types": "^7.16.7" } }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "@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==", + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "@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==", + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "requires": { + "@babel/types": "^7.17.0" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@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==", + "requires": { + "@babel/types": "^7.22.15" } }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "@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==", + "requires": { + "@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" } }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/types": "^7.16.7" } }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" + "@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/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" } }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", + "@babel/helper-replace-supers": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, - "node_modules/jest-runner": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "@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==", + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@babel/types": "^7.16.0" } }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "@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==", + "requires": { + "@babel/types": "^7.22.5" } }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" + }, + "@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==" + }, + "@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==" + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" } }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" + "@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" + } }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" } }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", + "@babel/parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-runtime": { - "version": "27.5.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" } }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", + "@babel/plugin-proposal-class-properties": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", + "@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", + "@babel/plugin-proposal-decorators": { + "version": "7.17.9", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + } }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, - "node_modules/jest-serializer": { - "version": "27.5.1", + "@babel/plugin-proposal-json-strings": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, - "node_modules/jest-snapshot": { - "version": "27.5.1", + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" } }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "@babel/plugin-proposal-private-methods": { + "version": "7.16.11", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, - "node_modules/jest-util": { - "version": "27.5.1", + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" } }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", + "@babel/plugin-syntax-decorators": { + "version": "7.17.0", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" } }, - "node_modules/jest-validate": { - "version": "27.5.1", + "@babel/plugin-syntax-flow": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/jest-watch-typeahead": { - "version": "1.0.0", + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "jest": "^27.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { - "version": "6.0.1", + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { - "version": "4.3.0", + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/jest-watch-typeahead/node_modules/chalk": { - "version": "4.1.2", + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, - "node_modules/jest-watch-typeahead/node_modules/char-regex": { - "version": "2.0.1", + "@babel/plugin-syntax-typescript": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watch-typeahead/node_modules/color-convert": { - "version": "2.0.1", + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watch-typeahead/node_modules/color-name": { - "version": "1.1.4", + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } }, - "node_modules/jest-watch-typeahead/node_modules/has-flag": { - "version": "4.0.0", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", + "@babel/plugin-transform-block-scoping": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", + "@babel/plugin-transform-classes": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" } }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.0.1", + "@babel/plugin-transform-computed-properties": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watch-typeahead/node_modules/supports-color": { - "version": "7.2.0", + "@babel/plugin-transform-destructuring": { + "version": "7.17.3", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watcher": { - "version": "27.5.1", + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", + "@babel/plugin-transform-flow-strip-types": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-flow": "^7.16.7" } }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", + "@babel/plugin-transform-for-of": { + "version": "7.16.7", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", + "@babel/plugin-transform-function-name": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", + "@babel/plugin-transform-literals": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" + "@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "@babel/plugin-transform-modules-commonjs": { + "version": "7.16.8", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, - "node_modules/jsdom": { - "version": "16.7.0", + "@babel/plugin-transform-modules-umd": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jsdom/node_modules/tr46": { - "version": "2.1.0", + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" } }, - "node_modules/jsdom/node_modules/whatwg-url": { - "version": "8.7.0", + "@babel/plugin-transform-new-target": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", + "@babel/plugin-transform-parameters": { + "version": "7.16.7", "dev": true, - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-schema-compare": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", - "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", - "dependencies": { - "lodash": "^4.17.4" - } - }, - "node_modules/json-schema-merge-allof": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", - "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", - "dependencies": { - "compute-lcm": "^1.1.2", - "json-schema-compare": "^0.2.2", - "lodash": "^4.17.20" - }, - "engines": { - "node": ">=12.0.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", "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==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jsonfile": { - "version": "6.1.0", + "@babel/plugin-transform-react-display-name": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "engines": { - "node": ">=0.10.0" + "@babel/plugin-transform-react-jsx": { + "version": "7.17.3", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.17.0" } }, - "node_modules/jspdf": { - "version": "2.5.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.14.0", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "fflate": "^0.4.8" - }, - "optionalDependencies": { - "canvg": "^3.0.6", - "core-js": "^3.6.0", - "dompurify": "^2.2.0", - "html2canvas": "^1.0.0-rc.5" + "@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.16.7" } }, - "node_modules/jspdf-autotable": { - "version": "3.5.23", - "license": "MIT", - "peerDependencies": { - "jspdf": "^2.3.1" + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/jsx-ast-utils": { - "version": "3.2.2", + "@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==", "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.4", - "object.assign": "^4.1.2" - }, - "engines": { - "node": ">=4.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/kind-of": { - "version": "6.0.3", + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/kleur": { - "version": "3.0.3", + "@babel/plugin-transform-regenerator": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "requires": { + "regenerator-transform": "^0.14.2" } }, - "node_modules/klona": { - "version": "2.0.5", + "@babel/plugin-transform-reserved-words": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/known-css-properties": { - "version": "0.25.0", + "@babel/plugin-transform-runtime": { + "version": "7.17.0", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + } }, - "node_modules/language-subtag-registry": { - "version": "0.3.21", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", "dev": true, - "license": "ODC-By-1.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } }, - "node_modules/language-tags": { - "version": "1.0.5", + "@babel/plugin-transform-spread": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "language-subtag-registry": "~0.3.2" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" } }, - "node_modules/leven": { - "version": "3.1.0", + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/levn": { - "version": "0.4.1", + "@babel/plugin-transform-template-literals": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/lilconfig": { - "version": "2.0.6", + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "license": "MIT" - }, - "node_modules/loader-runner": { - "version": "4.2.0", - "license": "MIT", - "engines": { - "node": ">=6.11.5" + "@babel/plugin-transform-typescript": { + "version": "7.16.8", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" } }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/locate-path": { - "version": "6.0.0", + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, - "node_modules/lodash": { - "version": "4.17.21", - "license": "MIT" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "license": "MIT" - }, - "node_modules/lodash.escape": { - "version": "4.0.1", - "license": "MIT" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "license": "MIT" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", + "@babel/preset-env": { + "version": "7.16.11", "dev": true, - "license": "MIT" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "license": "MIT" + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + } }, - "node_modules/lodash.truncate": { - "version": "4.4.2", + "@babel/preset-modules": { + "version": "0.1.5", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } }, - "node_modules/lodash.uniq": { - "version": "4.5.0", + "@babel/preset-react": { + "version": "7.16.7", "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" } }, - "node_modules/lower-case": { - "version": "2.0.2", + "@babel/preset-typescript": { + "version": "7.16.7", "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" } }, - "node_modules/lowlight": { - "version": "1.20.0", - "license": "MIT", - "dependencies": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" + "@babel/runtime": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", + "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", + "requires": { + "regenerator-runtime": "^0.14.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + } } }, - "node_modules/magic-string": { - "version": "0.25.9", + "@babel/runtime-corejs3": { + "version": "7.17.9", "dev": true, - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.8" + "requires": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, - "node_modules/makeerror": { - "version": "1.0.12", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" + "@babel/traverse": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@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.3", + "@babel/types": "^7.23.3", + "debug": "^4.1.0", + "globals": "^11.1.0" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@babel/types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" } }, - "node_modules/markdown-to-jsx": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", - "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "react": ">= 0.14.0" + "@coreui/chartjs": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@coreui/chartjs/-/chartjs-3.1.2.tgz", + "integrity": "sha512-d3MGk3KZNAt29VRKP/XYiGmT56KTqtuOhLEg5HNwb7P7ZmEgOJoHxFHVCVE4I36hfgQCjZZVknsuk2ZTfF/2fw==", + "requires": { + "@coreui/coreui": "^4.2.6", + "chart.js": "^3.9.1" } }, - "node_modules/masonry-layout": { - "version": "4.2.2", - "license": "MIT", - "dependencies": { - "get-size": "^2.0.2", - "outlayer": "^2.1.0" + "@coreui/coreui": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@coreui/coreui/-/coreui-4.3.0.tgz", + "integrity": "sha512-2bx5E9YT17td4K7hZapudypSPx7a5jYg8NpSCTLRStPTWOBlL5XVF7fz3yUn2S6DQE1VmnbrXQpuS5LzmptRLQ==", + "requires": { + "postcss-combine-duplicated-selectors": "^10.0.3" } }, - "node_modules/mathml-tag-names": { + "@coreui/react": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@coreui/react/-/react-4.11.0.tgz", + "integrity": "sha512-RFa3yBUHyIBvl1XX5hVb8MYqj24fU1FogAxZUtA+9yRrssiBs3Uy1W/AqMKnLiSArKyUm07Khjxe7I3Hc1iPdA==", + "requires": {} + }, + "@coreui/react-chartjs": { "version": "2.1.3", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "resolved": "https://registry.npmjs.org/@coreui/react-chartjs/-/react-chartjs-2.1.3.tgz", + "integrity": "sha512-Boj2LhlGlAVIdPRDDIyF5nbupIg9ohhpdLXW28ch0A0ZMpJvf0AwBoibV4Uo6agcN7jSq2uvgudNC3aJTMg/8w==", + "requires": { + "@coreui/chartjs": "^3.1.1", + "chart.js": "3.9.1" } }, - "node_modules/mdn-data": { - "version": "2.0.4", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "@coreui/utils": { + "version": "1.3.1" }, - "node_modules/memfs": { - "version": "3.4.1", + "@csstools/selector-specificity": { + "version": "2.0.2", "dev": true, - "license": "Unlicense", - "dependencies": { - "fs-monkey": "1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } + "requires": {} }, - "node_modules/memoize-one": { - "version": "5.2.1", - "license": "MIT" - }, - "node_modules/meow": { - "version": "9.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" + "@emotion/babel-plugin": { + "version": "11.9.2", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/runtime": "^7.13.10", + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.5", + "@emotion/serialize": "^1.0.2", + "babel-plugin-macros": "^2.6.1", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.0.13" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@emotion/memoize": { + "version": "0.7.5" + }, + "babel-plugin-macros": { + "version": "2.8.0", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "cosmiconfig": { + "version": "6.0.0", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0" + }, + "source-map": { + "version": "0.5.7" + } } }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@emotion/cache": { + "version": "11.7.1", + "requires": { + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.1.0", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "4.0.13" } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "license": "MIT" + "@emotion/hash": { + "version": "0.8.0" }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "@emotion/is-prop-valid": { + "version": "0.8.8", + "requires": { + "@emotion/memoize": "0.7.4" } }, - "node_modules/methods": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "@emotion/memoize": { + "version": "0.7.4" }, - "node_modules/micromatch": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" + "@emotion/react": { + "version": "11.9.0", + "requires": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/cache": "^11.7.1", + "@emotion/serialize": "^1.0.3", + "@emotion/utils": "^1.1.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" } }, - "node_modules/mime": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" + "@emotion/serialize": { + "version": "1.0.3", + "requires": { + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" } }, - "node_modules/mime-db": { - "version": "1.51.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "@emotion/sheet": { + "version": "1.1.0" }, - "node_modules/mime-types": { - "version": "2.1.34", - "license": "MIT", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } + "@emotion/stylis": { + "version": "0.8.5" }, - "node_modules/mimic-fn": { - "version": "2.1.0", + "@emotion/unitless": { + "version": "0.7.5" + }, + "@emotion/utils": { + "version": "1.1.0" + }, + "@emotion/weak-memoize": { + "version": "0.2.5" + }, + "@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } + "optional": true }, - "node_modules/min-indent": { - "version": "1.0.1", + "@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "optional": true }, - "node_modules/mini-css-extract-plugin": { - "version": "2.5.3", + "@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", "dev": true, - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } + "optional": true }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.10.0", + "@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } + "optional": true }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", + "@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } + "optional": true }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", + "@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", "dev": true, - "license": "MIT" + "optional": true }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", + "@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } + "optional": true }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", + "@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", "dev": true, - "license": "ISC" + "optional": true }, - "node_modules/minimatch": { - "version": "3.1.2", + "@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } + "optional": true }, - "node_modules/minimist": { - "version": "1.2.6", + "@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", "dev": true, - "license": "MIT" + "optional": true }, - "node_modules/minimist-options": { - "version": "4.1.0", + "@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", "dev": true, - "license": "MIT", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } + "optional": true }, - "node_modules/mkdirp": { - "version": "0.5.5", + "@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/moment": { - "version": "2.29.4", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/monaco-editor": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", - "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==", - "peer": true - }, - "node_modules/moo": { - "version": "0.5.1", - "license": "BSD-3-Clause" + "optional": true }, - "node_modules/ms": { - "version": "2.1.2", - "license": "MIT" + "@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "dev": true, + "optional": true }, - "node_modules/multicast-dns": { - "version": "7.2.4", + "@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", "dev": true, - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } + "optional": true }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } + "@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "dev": true, + "optional": true }, - "node_modules/natural-compare": { - "version": "1.4.0", + "@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", "dev": true, - "license": "MIT" + "optional": true }, - "node_modules/nearley": { - "version": "2.20.1", - "license": "MIT", - "dependencies": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "bin": { - "nearley-railroad": "bin/nearley-railroad.js", - "nearley-test": "bin/nearley-test.js", - "nearley-unparse": "bin/nearley-unparse.js", - "nearleyc": "bin/nearleyc.js" - }, - "funding": { - "type": "individual", - "url": "https://nearley.js.org/#give-to-nearley" - } + "@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "dev": true, + "optional": true }, - "node_modules/nearley/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" + "@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "dev": true, + "optional": true }, - "node_modules/negotiator": { - "version": "0.6.3", + "@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "optional": true }, - "node_modules/neo-async": { - "version": "2.6.2", - "license": "MIT" + "@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "dev": true, + "optional": true }, - "node_modules/no-case": { - "version": "3.0.4", + "@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", "dev": true, - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } + "optional": true }, - "node_modules/node-fetch": { - "version": "2.6.7", + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } + "optional": true }, - "node_modules/node-forge": { + "@eslint/eslintrc": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", + "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } } }, - "node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" + "@fortawesome/fontawesome-common-types": { + "version": "0.3.0" }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "@fortawesome/fontawesome-svg-core": { + "version": "1.3.0", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.3.0" + } }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "@fortawesome/free-brands-svg-icons": { + "version": "5.15.4", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.36" }, - "engines": { - "node": ">=10" + "dependencies": { + "@fortawesome/fontawesome-common-types": { + "version": "0.2.36" + } } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@fortawesome/free-regular-svg-icons": { + "version": "5.15.4", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.36" }, - "engines": { - "node": ">=10" + "dependencies": { + "@fortawesome/fontawesome-common-types": { + "version": "0.2.36" + } } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "@fortawesome/free-solid-svg-icons": { + "version": "5.15.4", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.36" + }, + "dependencies": { + "@fortawesome/fontawesome-common-types": { + "version": "0.2.36" + } } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "@fortawesome/react-fontawesome": { + "version": "0.1.17", + "requires": { + "prop-types": "^15.8.1" } }, - "node_modules/normalize-url": { - "version": "6.1.0", + "@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true }, - "node_modules/nth-check": { - "version": "2.0.1", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true }, - "node_modules/nwsapi": { - "version": "2.2.0", - "dev": true, - "license": "MIT" + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" }, - "node_modules/object-inspect": { - "version": "1.12.0", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "@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==" }, - "node_modules/object-is": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, - "node_modules/object.assign": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/object.entries": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" + "@juggle/resize-observer": { + "version": "3.3.1" + }, + "@monaco-editor/loader": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.3.tgz", + "integrity": "sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q==", + "requires": { + "state-local": "^1.0.6" } }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@monaco-editor/react": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.5.2.tgz", + "integrity": "sha512-emcWu6vg1OpXPiYll4aPOaXe8bwYB4UaaNTwtArFLgMoNGBzRZb2Xn0Bra2HMIFM7QLgs7fCGunHO5LkfT2LBA==", + "requires": { + "@monaco-editor/loader": "^1.3.3" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", + "@nodelib/fs.scandir": { + "version": "2.1.5", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "node_modules/object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", "dev": true, - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" } }, - "node_modules/object.values": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, - "node_modules/obuf": { - "version": "1.1.2", - "dev": true, - "license": "MIT" + "@react-icons/all-files": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@react-icons/all-files/-/all-files-4.1.0.tgz", + "integrity": "sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==", + "requires": {} }, - "node_modules/on-finished": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" + "@reduxjs/toolkit": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", + "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", + "requires": { + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" }, - "engines": { - "node": ">= 0.8" + "dependencies": { + "redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "requires": { + "@babel/runtime": "^7.9.2" + } + } } }, - "node_modules/on-headers": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "@restart/context": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", + "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", + "requires": {} }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" + "@restart/hooks": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.11.tgz", + "integrity": "sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw==", + "requires": { + "dequal": "^2.0.3" } }, - "node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@rjsf/bootstrap-4": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/bootstrap-4/-/bootstrap-4-5.12.1.tgz", + "integrity": "sha512-aUnijxIlYWza8klJ+GvgoYk4gFSaQQV97LLdujMQY096iLm12ryxWLEjyLyPPNOymyp4kdkNO4FCTiWMs2bh3Q==", + "requires": { + "@react-icons/all-files": "^4.1.0" } }, - "node_modules/open": { - "version": "8.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@rjsf/core": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.12.1.tgz", + "integrity": "sha512-1YFhZ90/uHRx1akQmDdIjBxGMjs/5gtuTLUFwl6GbOwTm2fhZRh3qXRFyTXz81Oy6TGcbrxBJEYvFg2iHjYKCA==", + "requires": { + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "markdown-to-jsx": "^7.3.2", + "nanoid": "^3.3.6", + "prop-types": "^15.8.1" } }, - "node_modules/optionator": { - "version": "0.9.1", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "@rjsf/utils": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.12.1.tgz", + "integrity": "sha512-/k8+7WdLwhaYsOQvH5BQINipj2IJvjEW3QQv4jQQ7sXtkpdUjieZayRfaE8DHfRdm9HjgJURJFDy3EODkWPl6A==", + "requires": { + "json-schema-merge-allof": "^0.8.1", + "jsonpointer": "^5.0.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-is": "^18.2.0" }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/outlayer": { - "version": "2.1.1", - "license": "MIT", "dependencies": { - "ev-emitter": "^1.0.0", - "fizzy-ui-utils": "^2.0.0", - "get-size": "^2.0.2" + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } } }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" + "@rjsf/validator-ajv8": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.12.1.tgz", + "integrity": "sha512-m4QO44yp60LTIfd4RPUu/h07B8U9umbD3I4Nh4iv9oyUudncaZFFXRopKcBm08v30VkN0tjMwuu0SxGDpzMtHA==", + "requires": { + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } } }, - "node_modules/p-locate": { - "version": "5.0.0", + "@rushstack/eslint-patch": { + "version": "1.1.2", + "dev": true + }, + "@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/p-retry": { - "version": "4.6.1", + "@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/types": "^7.0.0" } }, - "node_modules/p-try": { - "version": "2.2.0", + "@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==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/papaparse": { - "version": "5.3.1", - "license": "MIT" - }, - "node_modules/param-case": { - "version": "3.0.4", + "@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "requires": { + "@babel/types": "^7.20.7" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" + "@types/eslint": { + "version": "7.29.0", + "peer": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/parse-entities": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "@types/eslint-scope": { + "version": "3.7.3", + "peer": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/parse-github-url": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "bin": { - "parse-github-url": "cli.js" - }, - "engines": { - "node": ">=0.10.0" + "@types/estree": { + "version": "0.0.51", + "peer": true + }, + "@types/hast": { + "version": "2.3.4", + "requires": { + "@types/unist": "*" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" } }, - "node_modules/parse5": { - "version": "6.0.1", - "license": "MIT" + "@types/invariant": { + "version": "2.2.35", + "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", + "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "parse5": "^6.0.1" - } + "@types/json-schema": { + "version": "7.0.9" }, - "node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "@types/json5": { + "version": "0.0.29", + "dev": true }, - "node_modules/pascal-case": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } + "@types/minimist": { + "version": "1.2.2", + "dev": true }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "@types/node": { + "version": "17.0.21" }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "@types/papaparse": { + "version": "5.3.2", + "requires": { + "@types/node": "*" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } + "@types/parse-json": { + "version": "4.0.0" }, - "node_modules/performance-now": { - "version": "2.1.0", - "license": "MIT" + "@types/prop-types": { + "version": "15.7.4" }, - "node_modules/picocolors": { - "version": "1.0.0", - "license": "ISC" + "@types/raf": { + "version": "3.4.0", + "optional": true }, - "node_modules/picomatch": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "@types/react": { + "version": "17.0.39", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" } }, - "node_modules/pify": { - "version": "2.3.0", + "@types/react-helmet": { + "version": "6.1.5", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@types/react": "*" } }, - "node_modules/pirates": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" + "@types/react-redux": { + "version": "7.1.23", + "requires": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@types/react-transition-group": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", + "requires": { + "@types/react": "*" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "@types/scheduler": { + "version": "0.16.2" }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } + "@types/unist": { + "version": "2.0.6" }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", + "@typescript-eslint/eslint-plugin": { + "version": "5.30.7", "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" + "requires": { + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/type-utils": "5.30.7", + "@typescript-eslint/utils": "5.30.7", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "dev": true, - "license": "MIT", "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" + "@typescript-eslint/scope-manager": { + "version": "5.30.7", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7" + } + }, + "@typescript-eslint/types": { + "version": "5.30.7", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.30.7", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.30.7", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.30.7", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.7", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", + "@typescript-eslint/experimental-utils": { + "version": "5.19.0", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" + "requires": { + "@typescript-eslint/utils": "5.19.0" } }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", + "@typescript-eslint/parser": { + "version": "5.30.7", "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "requires": { + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "debug": "^4.3.4" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "dev": true, - "license": "MIT", "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" + "@typescript-eslint/scope-manager": { + "version": "5.30.7", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7" + } + }, + "@typescript-eslint/types": { + "version": "5.30.7", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.30.7", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.30.7", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.7", + "eslint-visitor-keys": "^3.3.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", + "@typescript-eslint/scope-manager": { + "version": "5.19.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "requires": { + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0" } }, - "node_modules/postcss": { - "version": "8.4.14", + "@typescript-eslint/type-utils": { + "version": "5.30.7", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "requires": { + "@typescript-eslint/utils": "5.30.7", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "5.30.7", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7" + } }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" + "@typescript-eslint/types": { + "version": "5.30.7", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.30.7", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.30.7", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.30.7", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.30.7", + "eslint-visitor-keys": "^3.3.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.2" - }, - "peerDependencies": { - "postcss": "^8.0.2" - } + "@typescript-eslint/types": { + "version": "5.19.0", + "dev": true }, - "node_modules/postcss-browser-comments": { - "version": "4.0.0", + "@typescript-eslint/typescript-estree": { + "version": "5.19.0", "dev": true, - "license": "CC0-1.0", - "engines": { - "node": ">=8" + "requires": { + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/visitor-keys": "5.19.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, - "peerDependencies": { - "browserslist": ">=4", - "postcss": ">=8" + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, - "node_modules/postcss-calc": { - "version": "8.2.4", + "@typescript-eslint/utils": { + "version": "5.19.0", "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.19.0", + "@typescript-eslint/types": "5.19.0", + "@typescript-eslint/typescript-estree": "5.19.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, - "peerDependencies": { - "postcss": "^8.2.2" + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "dev": true + } } }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.2", + "@typescript-eslint/visitor-keys": { + "version": "5.19.0", "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "requires": { + "@typescript-eslint/types": "5.19.0", + "eslint-visitor-keys": "^3.0.0" } }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.3", + "@vitejs/plugin-react": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.1.1.tgz", + "integrity": "sha512-Jie2HERK+uh27e+ORXXwEP5h0Y2lS9T2PRGbfebiHGlwzDO0dEnd2aNtOR/qjBlPb1YgxwAONeblL1xqLikLag==", "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "requires": { + "@babel/core": "^7.23.2", + "@babel/plugin-transform-react-jsx-self": "^7.22.5", + "@babel/plugin-transform-react-jsx-source": "^7.22.5", + "@types/babel__core": "^7.20.3", + "react-refresh": "^0.14.0" } }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.0.2", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" + "@webassemblyjs/ast": { + "version": "1.11.1", + "peer": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, - "node_modules/postcss-colormin": { - "version": "5.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "peer": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "peer": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "peer": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "peer": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/postcss-convert-values": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "peer": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, - "node_modules/postcss-custom-media": { - "version": "8.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "peer": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/postcss-custom-properties": { - "version": "12.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "@webassemblyjs/leb128": { + "version": "1.11.1", + "peer": true, + "requires": { + "@xtuc/long": "4.2.2" } }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.2" + "@webassemblyjs/utf8": { + "version": "1.11.1", + "peer": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.4", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/postcss-discard-comments": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/postcss-discard-empty": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", + "@xtuc/ieee754": { + "version": "1.2.0", + "peer": true + }, + "@xtuc/long": { + "version": "4.2.2", + "peer": true + }, + "abab": { + "version": "2.0.5" + }, + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" + }, + "acorn-import-assertions": { + "version": "1.8.0", + "peer": true, + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.0", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" + "ajv-formats": { + "version": "2.1.1", + "requires": { + "ajv": "^8.0.0" }, - "peerDependencies": { - "postcss": "^8.4" + "dependencies": { + "ajv": { + "version": "8.10.0", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0" + } } }, - "node_modules/postcss-env-function": { - "version": "4.0.5", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "ajv-keywords": { + "version": "3.5.2", + "peer": true, + "requires": {} + }, + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "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==", + "requires": { + "color-convert": "^1.9.0" } }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", + "anymatch": { + "version": "3.1.2", "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.4" + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", + "aria-query": { + "version": "4.2.2", "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" } }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" } }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.0" - } + "array-union": { + "version": "2.1.0", + "dev": true }, - "node_modules/postcss-gap-properties": { - "version": "3.0.3", - "dev": true, - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "array.prototype.filter": { + "version": "1.0.1", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" } }, - "node_modules/postcss-image-set-function": { - "version": "4.0.6", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "array.prototype.flat": { + "version": "1.2.5", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" } }, - "node_modules/postcss-import": { - "version": "14.1.0", + "array.prototype.flatmap": { + "version": "1.3.0", "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, - "node_modules/postcss-initial": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.0" - } + "arrify": { + "version": "1.0.1", + "dev": true }, - "node_modules/postcss-js": { - "version": "4.0.0", + "asap": { + "version": "2.0.6" + }, + "ast-types-flow": { + "version": "0.0.7", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "atob": { + "version": "2.1.2" + }, + "auto-changelog": { + "version": "2.3.0", "dev": true, - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" + "requires": { + "commander": "^5.0.0", + "handlebars": "^4.7.3", + "node-fetch": "^2.6.0", + "parse-github-url": "^1.0.2", + "semver": "^6.3.0" } }, - "node_modules/postcss-lab-function": { - "version": "4.1.1", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "axe-core": { + "version": "4.4.1", + "dev": true + }, + "axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/postcss-load-config": { - "version": "3.1.4", + "axobject-query": { + "version": "2.2.0", + "dev": true + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", "dev": true, - "license": "MIT", - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } + "requires": { + "object.assign": "^4.1.0" } }, - "node_modules/postcss-loader": { - "version": "6.2.1", + "babel-plugin-macros": { + "version": "3.1.0", "dev": true, - "license": "MIT", - "dependencies": { + "requires": { + "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" + "resolve": "^1.19.0" } }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" } }, - "node_modules/postcss-logical": { - "version": "5.0.4", + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", "dev": true, - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" } }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" } }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "babel-plugin-styled-components": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" } }, - "node_modules/postcss-merge-rules": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "dev": true }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", + "babel-preset-react-app": { + "version": "10.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "requires": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } + "balanced-match": { + "version": "1.0.2", + "dev": true }, - "node_modules/postcss-minify-params": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } + "base64-arraybuffer": { + "version": "1.0.2", + "optional": true }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } + "base64-js": { + "version": "1.5.1" }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } + "batch-processor": { + "version": "1.0.0" }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } + "binary-extensions": { + "version": "2.2.0", + "dev": true }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } + "boolbase": { + "version": "1.0.0" }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", + "brace-expansion": { + "version": "1.1.11", "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/postcss-nested": { - "version": "5.0.6", + "braces": { + "version": "3.0.2", "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.6" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" + "requires": { + "fill-range": "^7.0.1" } }, - "node_modules/postcss-nesting": { - "version": "10.1.2", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.8" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" + "browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "requires": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" } }, - "node_modules/postcss-normalize": { - "version": "10.0.1", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "browserslist": ">= 4", - "postcss": ">= 8" - } + "btoa": { + "version": "1.2.1" }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "buffer": { + "version": "6.0.3", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } + "buffer-from": { + "version": "1.1.2", + "peer": true }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "call-bind": { + "version": "1.0.2", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } + "callsites": { + "version": "3.1.0" }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", + "camelcase-keys": { + "version": "6.2.2", "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "dev": true, - "license": "MIT", "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "camelcase": { + "version": "5.3.1", + "dev": true + } } }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } + "camelize": { + "version": "1.0.0" }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } + "can-use-dom": { + "version": "0.1.0" }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } + "caniuse-lite": { + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", + "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==" }, - "node_modules/postcss-opacity-percentage": { - "version": "1.1.2", - "dev": true, - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "license": "MIT", - "engines": { - "node": "^12 || ^14 || >=16" + "canvg": { + "version": "3.0.10", + "optional": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@types/raf": "^3.4.0", + "core-js": "^3.8.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^6.0.3" } }, - "node_modules/postcss-ordered-values": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.3", - "dev": true, - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "character-entities": { + "version": "1.2.4" + }, + "character-entities-legacy": { + "version": "1.1.4" + }, + "character-reference-invalid": { + "version": "1.1.4" + }, + "charcodes": { + "version": "0.2.0", + "dev": true + }, + "chart.js": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", + "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==" + }, + "cheerio": { + "version": "1.0.0-rc.10", + "requires": { + "cheerio-select": "^1.5.0", + "dom-serializer": "^1.3.2", + "domhandler": "^4.2.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "tslib": "^2.2.0" } }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8" + "cheerio-select": { + "version": "1.5.0", + "requires": { + "css-select": "^4.1.3", + "css-what": "^5.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0", + "domutils": "^2.7.0" } }, - "node_modules/postcss-place": { - "version": "7.0.4", + "chokidar": { + "version": "3.5.3", "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, - "peerDependencies": { - "postcss": "^8.4" + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, - "node_modules/postcss-preset-env": { - "version": "7.4.2", + "chrome-trace-event": { + "version": "1.0.3", + "peer": true + }, + "classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, + "clone-regexp": { + "version": "2.2.0", "dev": true, - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-color-function": "^1.0.2", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.3", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.4.0", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-color-functional-notation": "^4.2.2", - "postcss-color-hex-alpha": "^8.0.3", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "requires": { + "is-regexp": "^2.0.0" } }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.1", - "dev": true, - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "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==", + "requires": { + "color-name": "1.1.3" } }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "colord": { + "version": "2.9.2", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" } }, - "node_modules/postcss-reduce-transforms": { + "comma-separated-tokens": { + "version": "1.0.8" + }, + "commander": { "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "dev": true + }, + "compute-gcd": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", + "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", + "requires": { + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" } }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.3" + "compute-lcm": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", + "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", + "requires": { + "compute-gcd": "^1.2.1", + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" } }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "dev": true, - "license": "MIT" + "concat-map": { + "version": "0.0.1", + "dev": true }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" + "confusing-browser-globals": { + "version": "1.0.11", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "requires": { + "safe-buffer": "~5.1.1" } }, - "node_modules/postcss-scss": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" + "copy-to-clipboard": { + "version": "3.3.1", + "requires": { + "toggle-selection": "^1.0.6" } }, - "node_modules/postcss-selector-not": { - "version": "5.0.0", + "core-js": { + "version": "3.21.1" + }, + "core-js-compat": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", + "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "requires": { + "browserslist": "^4.21.9" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } + "core-js-pure": { + "version": "3.21.1", + "dev": true }, - "node_modules/postcss-sorting": { + "cosmiconfig": { "version": "7.0.1", "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.3.9" + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" } }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "create-react-class": { + "version": "15.7.0", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, - "node_modules/postcss-svgo/node_modules/commander": { - "version": "7.2.0", + "cross-spawn": { + "version": "7.0.3", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "node_modules/postcss-svgo/node_modules/css-tree": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } + "css-color-keywords": { + "version": "1.0.0" }, - "node_modules/postcss-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "dev": true, - "license": "CC0-1.0" + "css-functions-list": { + "version": "3.1.0", + "dev": true }, - "node_modules/postcss-svgo/node_modules/svgo": { - "version": "2.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" + "css-line-break": { + "version": "2.1.0", + "optional": true, + "requires": { + "utrie": "^1.0.2" } }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "css-select": { + "version": "4.2.1", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" + "css-to-react-native": { + "version": "3.0.0", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" } }, - "node_modules/prettier": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" + "css-what": { + "version": "5.1.0" + }, + "cssesc": { + "version": "3.0.0" + }, + "csstype": { + "version": "3.0.10" + }, + "damerau-levenshtein": { + "version": "1.0.8", + "dev": true + }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" + }, + "debug": { + "version": "4.3.4", + "requires": { + "ms": "2.1.2" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", + "decamelize": { + "version": "1.2.0", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, - "engines": { - "node": ">=6.0.0" + "dependencies": { + "map-obj": { + "version": "1.0.1", + "dev": true + } } }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "deep-is": { + "version": "0.1.4", + "dev": true + }, + "deepmerge": { + "version": "4.2.2" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, - "node_modules/pretty-error": { - "version": "4.0.0", + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" + }, + "desandro-matches-selector": { + "version": "2.0.2" + }, + "dir-glob": { + "version": "3.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" + "requires": { + "path-type": "^4.0.0" } }, - "node_modules/pretty-format": { - "version": "27.5.1", + "discontinuous-range": { + "version": "1.0.0" + }, + "doctrine": { + "version": "3.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "requires": { + "esutils": "^2.0.2" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "dom-helpers": { + "version": "5.2.1", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, - "node_modules/prismjs": { - "version": "1.27.0", - "license": "MIT", - "engines": { - "node": ">=6" + "dom-serializer": { + "version": "1.3.2", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" + "domelementtype": { + "version": "2.2.0" }, - "node_modules/promise": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "asap": "~2.0.6" + "domhandler": { + "version": "4.3.0", + "requires": { + "domelementtype": "^2.2.0" } }, - "node_modules/prompts": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } + "dompurify": { + "version": "2.3.6", + "optional": true }, - "node_modules/prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "dependencies": { - "react-is": "^16.3.2", - "warning": "^4.0.0" - }, - "peerDependencies": { - "react": ">=0.14.0" + "domutils": { + "version": "2.8.0", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" } }, - "node_modules/prop-types-extra/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==" - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" + "electron-to-chromium": { + "version": "1.4.464", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.464.tgz", + "integrity": "sha512-guZ84yoou4+ILNdj0XEbmGs6DEWj6zpVOWYpY09GU66yEb0DSYvP/biBPzHn0GuW/3RC/pnaYNUWlQE1fJYtgA==" }, - "node_modules/property-information": { - "version": "5.6.0", - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "element-resize-detector": { + "version": "1.2.4", + "requires": { + "batch-processor": "1.0.0" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } + "emoji-regex": { + "version": "9.2.2", + "dev": true }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" + "enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "peer": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" } }, - "node_modules/psl": { - "version": "1.8.0", - "dev": true, - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } + "entities": { + "version": "2.2.0" }, - "node_modules/q": { - "version": "1.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" + "enzyme": { + "version": "3.11.0", + "requires": { + "array.prototype.flat": "^1.2.3", + "cheerio": "^1.0.0-rc.3", + "enzyme-shallow-equal": "^1.0.1", + "function.prototype.name": "^1.1.2", + "has": "^1.0.3", + "html-element-map": "^1.2.0", + "is-boolean-object": "^1.0.1", + "is-callable": "^1.1.5", + "is-number-object": "^1.0.4", + "is-regex": "^1.0.5", + "is-string": "^1.0.5", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.7.0", + "object-is": "^1.0.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.1", + "object.values": "^1.1.1", + "raf": "^3.4.1", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.2.1" } }, - "node_modules/qs": { - "version": "6.9.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "enzyme-shallow-equal": { + "version": "1.0.4", + "requires": { + "has": "^1.0.3", + "object-is": "^1.1.2" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "error-ex": { + "version": "1.3.2", + "requires": { + "is-arrayish": "^0.2.1" } }, - "node_modules/raf": { - "version": "3.4.1", - "license": "MIT", - "dependencies": { - "performance-now": "^2.1.0" + "es-abstract": { + "version": "1.19.5", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" } }, - "node_modules/railroad-diagrams": { - "version": "1.0.0", - "license": "CC0-1.0" + "es-array-method-boxes-properly": { + "version": "1.0.0" }, - "node_modules/randexp": { - "version": "0.4.6", - "license": "MIT", - "dependencies": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - }, - "engines": { - "node": ">=0.12" - } + "es-module-lexer": { + "version": "0.9.3", + "peer": true }, - "node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" + "es-shim-unscopables": { + "version": "1.0.0", + "dev": true, + "requires": { + "has": "^1.0.3" } }, - "node_modules/range-parser": { + "es-to-primitive": { "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "node_modules/raw-body": { - "version": "2.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } + "escalade": { + "version": "3.1.1" }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, - "node_modules/react": { - "version": "17.0.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-app-polyfill": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "core-js": "^3.6.5", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "whatwg-fetch": "^3.4.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-bootstrap": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.7.tgz", - "integrity": "sha512-IzCYXuLSKDEjGFglbFWk0/iHmdhdcJzTmtS6lXxc0kaNFx2PFgrQf5jKnx5sarF2tiXh9Tgx3pSt3pdK7YwkMA==", - "dependencies": { - "@babel/runtime": "^7.14.0", - "@restart/context": "^2.1.4", - "@restart/hooks": "^0.4.7", - "@types/invariant": "^2.2.33", - "@types/prop-types": "^15.7.3", - "@types/react": ">=16.14.8", - "@types/react-transition-group": "^4.4.1", - "@types/warning": "^3.0.0", - "classnames": "^2.3.1", - "dom-helpers": "^5.2.1", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "prop-types-extra": "^1.1.0", - "react-overlays": "^5.1.2", - "react-transition-group": "^4.4.1", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/react-copy-to-clipboard": { - "version": "5.0.4", - "license": "MIT", - "dependencies": { - "copy-to-clipboard": "^3", - "prop-types": "^15.5.8" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/react-data-table-component": { - "version": "7.4.7", - "license": "Apache-2.0", - "dependencies": { - "deepmerge": "^4.2.2" - }, - "peerDependencies": { - "react": ">= 16.8.3", - "styled-components": ">= 4" - } - }, - "node_modules/react-datepicker": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.10.0.tgz", - "integrity": "sha512-6IfBCZyWj54ZZGLmEZJ9c4Yph0s9MVfEGDC2evOvf9AmVz+RRcfP2Czqad88Ff9wREbcbqa4dk7IFYeXF1d3Ag==", - "dependencies": { - "@popperjs/core": "^2.9.2", - "classnames": "^2.2.6", - "date-fns": "^2.24.0", - "prop-types": "^15.7.2", - "react-onclickoutside": "^6.12.2", - "react-popper": "^2.3.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17 || ^18", - "react-dom": "^16.9.0 || ^17 || ^18" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/react-dev-utils/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/react-dev-utils/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/react-dev-utils/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/react-dev-utils/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "dev": true, - "license": "MIT" - }, - "node_modules/react-fast-compare": { - "version": "3.2.0", - "license": "MIT" - }, - "node_modules/react-final-form": { - "version": "6.5.8", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/final-form" - }, - "peerDependencies": { - "final-form": "^4.20.4", - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/react-final-form-arrays": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/react-final-form-arrays/-/react-final-form-arrays-3.1.4.tgz", - "integrity": "sha512-siVFAolUAe29rMR6u8VwepoysUcUdh6MLV2OWnCtKpsPRUdT9VUgECjAPaVMAH2GROZNiVB9On1H9MMrm9gdpg==", - "dependencies": { - "@babel/runtime": "^7.19.4" - }, - "peerDependencies": { - "final-form": "^4.15.0", - "final-form-arrays": ">=1.0.4", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-final-form": "^6.2.1" - } - }, - "node_modules/react-final-form-listeners": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "peerDependencies": { - "final-form": ">=4.0.0", - "prop-types": "^15.6.0", - "react": "^15.3.0 || ^16.0.0 || ^17.0.0", - "react-final-form": ">=3.0.0" - } - }, - "node_modules/react-helmet": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.1.1", - "react-side-effect": "^2.1.0" - }, - "peerDependencies": { - "react": ">=16.3.0" - } - }, - "node_modules/react-hotkeys-hook": { - "version": "3.4.4", - "license": "MIT", - "dependencies": { - "hotkeys-js": "3.8.7" - }, - "peerDependencies": { - "react": ">=16.8.1", - "react-dom": ">=16.8.1" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "license": "MIT" - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-loading-skeleton": { - "version": "3.1.0", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/react-masonry-component": { - "version": "6.3.0", - "license": "MIT", - "dependencies": { - "create-react-class": "^15.6.2", - "element-resize-detector": "^1.1.9", - "imagesloaded": "^4.0.0", - "lodash": "^4.17.4", - "masonry-layout": "^4.2.0", - "prop-types": "^15.5.8" - }, - "peerDependencies": { - "react": "^0.14.0 || ^15.0.0-0 || ^16.0.0-0 || ^17.0.0" - } - }, - "node_modules/react-media-hook": { - "version": "0.4.9", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/react-onclickoutside": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.2.tgz", - "integrity": "sha512-NMXGa223OnsrGVp5dJHkuKxQ4czdLmXSp5jSV9OqiCky9LOpPATn3vLldc+q5fK3gKbEHvr7J1u0yhBh/xYkpA==", - "funding": { - "type": "individual", - "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" - }, - "peerDependencies": { - "react": "^15.5.x || ^16.x || ^17.x || ^18.x", - "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" - } - }, - "node_modules/react-overlays": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", - "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", - "dependencies": { - "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.11.6", - "@restart/hooks": "^0.4.7", - "@types/warning": "^3.0.0", - "dom-helpers": "^5.2.0", - "prop-types": "^15.7.2", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" - }, - "peerDependencies": { - "react": ">=16.3.0", - "react-dom": ">=16.3.0" - } - }, - "node_modules/react-papaparse": { - "version": "3.18.2", - "license": "MIT", - "dependencies": { - "@types/papaparse": "^5.3.1", - "papaparse": "^5.3.1" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - } - }, - "node_modules/react-popper": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", - "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", - "dependencies": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" - }, - "peerDependencies": { - "@popperjs/core": "^2.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" - } - }, - "node_modules/react-redux": { - "version": "7.2.6", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "peerDependencies": { - "react": "^16.8.3 || ^17" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-refresh": { - "version": "0.11.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "6.2.2", - "license": "MIT", - "dependencies": { - "history": "^5.2.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.2.2", - "license": "MIT", - "dependencies": { - "history": "^5.2.0", - "react-router": "6.2.2" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-scripts": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - }, - "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/react-scripts/node_modules/react-app-polyfill": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-scripts/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/react-select": { - "version": "5.3.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.0", - "@emotion/cache": "^11.4.0", - "@emotion/react": "^11.1.1", - "@types/react-transition-group": "^4.4.0", - "memoize-one": "^5.0.0", - "prop-types": "^15.6.0", - "react-transition-group": "^4.3.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-select-search": { - "version": "3.0.9", - "license": "MIT", - "optionalDependencies": { - "fuse.js": "^3.4.5" - }, - "peerDependencies": { - "prop-types": "^15.7.2", - "react": "^17.0.1", - "react-dom": "^17.0.1" - } - }, - "node_modules/react-shallow-renderer": { - "version": "16.14.1", - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0" - } - }, - "node_modules/react-side-effect": { - "version": "2.1.1", - "license": "MIT", - "peerDependencies": { - "react": "^16.3.0 || ^17.0.0" - } - }, - "node_modules/react-syntax-highlighter": { - "version": "15.4.5", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "highlight.js": "^10.4.1", - "lowlight": "^1.17.0", - "prismjs": "^1.25.0", - "refractor": "^3.2.0" - }, - "peerDependencies": { - "react": ">= 0.14.0" - } - }, - "node_modules/react-test-renderer": { - "version": "17.0.2", - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^17.0.2", - "react-shallow-renderer": "^16.13.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-time-ago": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/react-time-ago/-/react-time-ago-7.2.1.tgz", - "integrity": "sha512-X5zwJDZHa1fsMwMvh8mrHN31g85s84zMCp+d7YL6IX50kNnr6YMAS2wpt1BmO9OxBV2Ue5J1ptD6JI8Zjd35HA==", - "dependencies": { - "memoize-one": "^6.0.0", - "prop-types": "^15.8.1", - "raf": "^3.4.1" - }, - "peerDependencies": { - "javascript-time-ago": "^2.3.7", - "react": ">=0.16.8", - "react-dom": ">=0.16.8" - } - }, - "node_modules/react-time-ago/node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redux": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/redux-immutable-state-invariant": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "invariant": "^2.1.0", - "json-stringify-safe": "^5.0.1" - } - }, - "node_modules/redux-persist": { - "version": "6.0.0", - "license": "MIT", - "peerDependencies": { - "redux": ">4.0.0" - } - }, - "node_modules/redux-thunk": { - "version": "2.4.1", - "license": "MIT", - "peerDependencies": { - "redux": "^4" - } - }, - "node_modules/refractor": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/relative-time-format": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/relative-time-format/-/relative-time-format-1.1.6.tgz", - "integrity": "sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ==" - }, - "node_modules/renderkid": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/reselect": { - "version": "4.1.5", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.1", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=8.9" - }, - "peerDependencies": { - "rework": "1.0.1", - "rework-visit": "1.0.0" - }, - "peerDependenciesMeta": { - "rework": { - "optional": true - }, - "rework-visit": { - "optional": true - } - } - }, - "node_modules/resolve-url-loader/node_modules/picocolors": { - "version": "0.2.1", - "dev": true, - "license": "ISC" - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.39", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "license": "MIT", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rgbcolor": { - "version": "1.0.1", - "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", - "optional": true, - "engines": { - "node": ">= 0.8.15" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.70.1", - "dev": true, - "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rst-selector-parser": { - "version": "2.2.3", - "license": "BSD-3-Clause", - "dependencies": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/sanitize.css": { - "version": "13.0.0", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/sass": { - "version": "1.64.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.2.tgz", - "integrity": "sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg==", - "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-loader": { - "version": "12.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "dev": true, - "license": "ISC" - }, - "node_modules/saxes": { - "version": "5.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scheduler": { - "version": "0.20.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/schema-utils": { - "version": "3.1.1", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.17.2", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-static": { - "version": "1.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "dev": true, - "license": "ISC" - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.7.3", - "dev": true, - "license": "MIT" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/simplebar": { - "version": "5.3.6", - "license": "MIT", - "dependencies": { - "@juggle/resize-observer": "^3.3.1", - "can-use-dom": "^0.1.0", - "core-js": "^3.0.1", - "lodash.debounce": "^4.0.8", - "lodash.memoize": "^4.1.2", - "lodash.throttle": "^4.1.1" - } - }, - "node_modules/simplebar-react": { - "version": "2.3.6", - "license": "MIT", - "dependencies": { - "prop-types": "^15.6.1", - "simplebar": "^5.3.6" - }, - "peerDependencies": { - "react": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0", - "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/sockjs": { - "version": "0.3.24", - "dev": true, - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "dev": true, - "license": "MIT" - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/spdy": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stable": { - "version": "0.1.8", - "dev": true, - "license": "MIT" - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackblur-canvas": { - "version": "2.5.0", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.14" - } - }, - "node_modules/stackframe": { - "version": "1.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/state-local": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" - }, - "node_modules/statuses": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stringify-object/node_modules/is-regexp": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-loader": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/style-search": { - "version": "0.1.0", - "dev": true, - "license": "ISC" - }, - "node_modules/styled-components": { - "version": "5.3.3", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.4.5", - "@emotion/is-prop-valid": "^0.8.8", - "@emotion/stylis": "^0.8.4", - "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1.12.0", - "css-to-react-native": "^3.0.0", - "hoist-non-react-statics": "^3.0.0", - "shallowequal": "^1.1.0", - "supports-color": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0", - "react-is": ">= 16.8.0" - } - }, - "node_modules/stylehacks": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/stylelint": { - "version": "14.9.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@csstools/selector-specificity": "^2.0.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.2", - "cosmiconfig": "^7.0.1", - "css-functions-list": "^3.1.0", - "debug": "^4.3.4", - "execall": "^2.0.0", - "fast-glob": "^3.2.11", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.0", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.25.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.14", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^2.2.0", - "svg-tags": "^1.0.0", - "table": "^6.8.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - } - }, - "node_modules/stylelint-config-sass-guidelines": { - "version": "9.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-scss": "^4.0.2", - "stylelint-order": "^5.0.0", - "stylelint-scss": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^14.0.1" - } - }, - "node_modules/stylelint-order": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^8.3.11", - "postcss-sorting": "^7.0.1" - }, - "peerDependencies": { - "stylelint": "^14.0.0" - } - }, - "node_modules/stylelint-scss": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" - }, - "peerDependencies": { - "stylelint": "^14.5.1" - } - }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/stylelint/node_modules/write-file-atomic": { - "version": "4.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/stylis": { - "version": "4.0.13", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/svg-pathdata": { - "version": "6.0.3", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "dev": true - }, - "node_modules/svgo": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/table": { - "version": "6.8.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.10.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwindcss": { - "version": "3.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "detective": "^5.2.1", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "lilconfig": "^2.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.14", - "postcss-import": "^14.1.0", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.4", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.1" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/tailwindcss/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwindcss/node_modules/quick-lru": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "license": "MIT", - "dependencies": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-segmentation": { - "version": "1.0.3", - "license": "MIT", - "optional": true, - "dependencies": { - "utrie": "^1.0.2" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/throat": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/thunky": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/timsort": { - "version": "0.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "dev": true, - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.6.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.15.2", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/uncontrollable": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", - "dependencies": { - "@babel/runtime": "^7.6.3", - "@types/react": ">=16.9.11", - "invariant": "^2.2.4", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">=15.0.0" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/upath": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "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" - } - ], - "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", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utila": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/utrie": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "dependencies": { - "base64-arraybuffer": "^1.0.2" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate.io-array": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==" - }, - "node_modules/validate.io-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", - "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" - }, - "node_modules/validate.io-integer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", - "dependencies": { - "validate.io-number": "^1.0.3" - } - }, - "node_modules/validate.io-integer-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", - "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", - "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-integer": "^1.0.4" - } - }, - "node_modules/validate.io-number": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" - }, - "node_modules/vary": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "dev": true, - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.77.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.77.0.tgz", - "integrity": "sha512-sbGNjBr5Ya5ss91yzjeJTLKyfiwo5C628AFjEa6WSXcZa4E+F57om3Cc8xLb1Jh0b243AWuSYRf3dn7HVeFQ9Q==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.10.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.10.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-manifest-plugin": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "peerDependencies": { - "webpack": "^4.44.2 || ^5.47.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.4.24", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "license": "MIT" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/whatwg-url/node_modules/webidl-conversions": { - "version": "3.0.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/workbox-background-sync": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "idb": "^6.1.4", - "workbox-core": "6.5.3" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "6.5.3" - } - }, - "node_modules/workbox-build": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.5.3", - "workbox-broadcast-update": "6.5.3", - "workbox-cacheable-response": "6.5.3", - "workbox-core": "6.5.3", - "workbox-expiration": "6.5.3", - "workbox-google-analytics": "6.5.3", - "workbox-navigation-preload": "6.5.3", - "workbox-precaching": "6.5.3", - "workbox-range-requests": "6.5.3", - "workbox-recipes": "6.5.3", - "workbox-routing": "6.5.3", - "workbox-strategies": "6.5.3", - "workbox-streams": "6.5.3", - "workbox-sw": "6.5.3", - "workbox-window": "6.5.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.11.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/workbox-build/node_modules/fs-extra": { - "version": "9.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.8.0-beta.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/tr46": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/workbox-build/node_modules/webidl-conversions": { - "version": "4.0.2", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/workbox-build/node_modules/whatwg-url": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "6.5.3" - } - }, - "node_modules/workbox-core": { - "version": "6.5.3", - "dev": true, - "license": "MIT" - }, - "node_modules/workbox-expiration": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "idb": "^6.1.4", - "workbox-core": "6.5.3" - } - }, - "node_modules/workbox-google-analytics": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-background-sync": "6.5.3", - "workbox-core": "6.5.3", - "workbox-routing": "6.5.3", - "workbox-strategies": "6.5.3" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "6.5.3" - } - }, - "node_modules/workbox-precaching": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "6.5.3", - "workbox-routing": "6.5.3", - "workbox-strategies": "6.5.3" - } - }, - "node_modules/workbox-range-requests": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "6.5.3" - } - }, - "node_modules/workbox-recipes": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-cacheable-response": "6.5.3", - "workbox-core": "6.5.3", - "workbox-expiration": "6.5.3", - "workbox-precaching": "6.5.3", - "workbox-routing": "6.5.3", - "workbox-strategies": "6.5.3" - } - }, - "node_modules/workbox-routing": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "6.5.3" - } - }, - "node_modules/workbox-strategies": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "6.5.3" - } - }, - "node_modules/workbox-streams": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "workbox-core": "6.5.3", - "workbox-routing": "6.5.3" - } - }, - "node_modules/workbox-sw": { - "version": "6.5.3", - "dev": true, - "license": "MIT" - }, - "node_modules/workbox-webpack-plugin": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.5.3" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.9.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/workbox-window": { - "version": "6.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.3" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.2", - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, - "@babel/code-frame": { - "version": "7.16.7", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.0" - }, - "@babel/core": { - "version": "7.17.5", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - } - }, - "@babel/eslint-parser": { - "version": "7.17.0", - "dev": true, - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "dev": true - }, - "estraverse": { - "version": "4.3.0", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.17.3", - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7" - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.7", - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.17.9", - "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "dev": true, - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.17.6", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.7", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7" - }, - "@babel/helper-validator-option": { - "version": "7.16.7" - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.17.2", - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - } - }, - "@babel/highlight": { - "version": "7.16.10", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.3" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.17.9", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.9", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.17.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.17.0", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - } - }, - "@babel/preset-typescript": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" - } - }, - "@babel/runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", - "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", - "requires": { - "regenerator-runtime": "^0.14.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - } - } - }, - "@babel/runtime-corejs3": { - "version": "7.17.9", - "dev": true, - "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.3", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.0", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true - }, - "@coreui/chartjs": { - "version": "3.0.0", - "requires": { - "@coreui/coreui": "4.0.0", - "chart.js": "^3.4.0" - }, - "dependencies": { - "@coreui/coreui": { - "version": "4.0.0", - "requires": {} - } - } - }, - "@coreui/coreui": { - "version": "4.1.0", - "requires": {} - }, - "@coreui/react": { - "version": "4.1.2", - "requires": {} - }, - "@coreui/react-chartjs": { - "version": "2.0.3", - "requires": { - "@coreui/chartjs": "^3.0.0", - "chart.js": "^3.7.0" - } - }, - "@coreui/utils": { - "version": "1.3.1" - }, - "@csstools/normalize.css": { - "version": "12.0.0", - "dev": true - }, - "@csstools/postcss-color-function": { - "version": "1.0.2", - "dev": true, - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-font-format-keywords": { - "version": "1.0.0", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-hwb-function": { - "version": "1.0.0", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-ic-unit": { - "version": "1.0.0", - "dev": true, - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-is-pseudo-class": { - "version": "2.0.0", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "@csstools/postcss-normalize-display-values": { - "version": "1.0.0", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-oklab-function": { - "version": "1.0.1", - "dev": true, - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-progressive-custom-properties": { - "version": "1.2.0", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/selector-specificity": { - "version": "2.0.2", - "dev": true, - "requires": {} - }, - "@emotion/babel-plugin": { - "version": "11.9.2", - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/runtime": "^7.13.10", - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.5", - "@emotion/serialize": "^1.0.2", - "babel-plugin-macros": "^2.6.1", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.0.13" - }, - "dependencies": { - "@emotion/memoize": { - "version": "0.7.5" - }, - "babel-plugin-macros": { - "version": "2.8.0", - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "cosmiconfig": { - "version": "6.0.0", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "escape-string-regexp": { - "version": "4.0.0" - }, - "source-map": { - "version": "0.5.7" - } - } - }, - "@emotion/cache": { - "version": "11.7.1", - "requires": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.1.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "4.0.13" - } - }, - "@emotion/hash": { - "version": "0.8.0" - }, - "@emotion/is-prop-valid": { - "version": "0.8.8", - "requires": { - "@emotion/memoize": "0.7.4" - } - }, - "@emotion/memoize": { - "version": "0.7.4" - }, - "@emotion/react": { - "version": "11.9.0", - "requires": { - "@babel/runtime": "^7.13.10", - "@emotion/babel-plugin": "^11.7.1", - "@emotion/cache": "^11.7.1", - "@emotion/serialize": "^1.0.3", - "@emotion/utils": "^1.1.0", - "@emotion/weak-memoize": "^0.2.5", - "hoist-non-react-statics": "^3.3.1" - } - }, - "@emotion/serialize": { - "version": "1.0.3", - "requires": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", - "csstype": "^3.0.2" - } - }, - "@emotion/sheet": { - "version": "1.1.0" - }, - "@emotion/stylis": { - "version": "0.8.5" - }, - "@emotion/unitless": { - "version": "0.7.5" - }, - "@emotion/utils": { - "version": "1.1.0" - }, - "@emotion/weak-memoize": { - "version": "0.2.5" - }, - "@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@fortawesome/fontawesome-common-types": { - "version": "0.3.0" - }, - "@fortawesome/fontawesome-svg-core": { - "version": "1.3.0", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.3.0" - } - }, - "@fortawesome/free-brands-svg-icons": { - "version": "5.15.4", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, - "dependencies": { - "@fortawesome/fontawesome-common-types": { - "version": "0.2.36" - } - } - }, - "@fortawesome/free-regular-svg-icons": { - "version": "5.15.4", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, - "dependencies": { - "@fortawesome/fontawesome-common-types": { - "version": "0.2.36" - } - } - }, - "@fortawesome/free-solid-svg-icons": { - "version": "5.15.4", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, - "dependencies": { - "@fortawesome/fontawesome-common-types": { - "version": "0.2.36" - } - } - }, - "@fortawesome/react-fontawesome": { - "version": "0.1.17", - "requires": { - "prop-types": "^15.8.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@jest/console": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/environment": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - } - }, - "@jest/fake-timers": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "@jest/globals": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - } - }, - "@jest/reporters": { - "version": "27.5.1", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "27.5.1", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/types": { - "version": "27.5.1", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.0.5" - }, - "@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==" - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@juggle/resize-observer": { - "version": "3.3.1" - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.3", - "dev": true - }, - "@monaco-editor/loader": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.3.tgz", - "integrity": "sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q==", - "requires": { - "state-local": "^1.0.6" - } - }, - "@monaco-editor/react": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.5.2.tgz", - "integrity": "sha512-emcWu6vg1OpXPiYll4aPOaXe8bwYB4UaaNTwtArFLgMoNGBzRZb2Xn0Bra2HMIFM7QLgs7fCGunHO5LkfT2LBA==", - "requires": { - "@monaco-editor/loader": "^1.3.3" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.7", - "dev": true, - "requires": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "dev": true - } - } - }, - "@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" - }, - "@react-icons/all-files": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@react-icons/all-files/-/all-files-4.1.0.tgz", - "integrity": "sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==", - "requires": {} - }, - "@reduxjs/toolkit": { - "version": "1.8.0", - "requires": { - "immer": "^9.0.7", - "redux": "^4.1.2", - "redux-thunk": "^2.4.1", - "reselect": "^4.1.5" - }, - "dependencies": { - "redux": { - "version": "4.1.2", - "requires": { - "@babel/runtime": "^7.9.2" - } - } - } - }, - "@restart/context": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", - "requires": {} - }, - "@restart/hooks": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.11.tgz", - "integrity": "sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw==", - "requires": { - "dequal": "^2.0.3" - } - }, - "@rjsf/bootstrap-4": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/bootstrap-4/-/bootstrap-4-5.12.1.tgz", - "integrity": "sha512-aUnijxIlYWza8klJ+GvgoYk4gFSaQQV97LLdujMQY096iLm12ryxWLEjyLyPPNOymyp4kdkNO4FCTiWMs2bh3Q==", - "requires": { - "@react-icons/all-files": "^4.1.0" - } - }, - "@rjsf/core": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.12.1.tgz", - "integrity": "sha512-1YFhZ90/uHRx1akQmDdIjBxGMjs/5gtuTLUFwl6GbOwTm2fhZRh3qXRFyTXz81Oy6TGcbrxBJEYvFg2iHjYKCA==", - "requires": { - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "markdown-to-jsx": "^7.3.2", - "nanoid": "^3.3.6", - "prop-types": "^15.8.1" - } - }, - "@rjsf/utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.12.1.tgz", - "integrity": "sha512-/k8+7WdLwhaYsOQvH5BQINipj2IJvjEW3QQv4jQQ7sXtkpdUjieZayRfaE8DHfRdm9HjgJURJFDy3EODkWPl6A==", - "requires": { - "json-schema-merge-allof": "^0.8.1", - "jsonpointer": "^5.0.1", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "react-is": "^18.2.0" - }, - "dependencies": { - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - } - } - }, - "@rjsf/validator-ajv8": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.12.1.tgz", - "integrity": "sha512-m4QO44yp60LTIfd4RPUu/h07B8U9umbD3I4Nh4iv9oyUudncaZFFXRopKcBm08v30VkN0tjMwuu0SxGDpzMtHA==", - "requires": { - "ajv": "^8.12.0", - "ajv-formats": "^2.1.1", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - } - } - }, - "@rollup/plugin-babel": { - "version": "5.3.1", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "dev": true - } - } - }, - "@rushstack/eslint-patch": { - "version": "1.1.2", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.3", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "dev": true, - "requires": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "dev": true - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "dev": true - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "dev": true - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "dev": true - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "dev": true - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "dev": true - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "dev": true - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "dev": true - }, - "@svgr/babel-preset": { - "version": "5.5.0", - "dev": true, - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - } - }, - "@svgr/core": { - "version": "5.5.0", - "dev": true, - "requires": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "dev": true, - "requires": { - "@babel/types": "^7.12.6" - } - }, - "@svgr/plugin-jsx": { - "version": "5.5.0", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - } - }, - "@svgr/plugin-svgo": { - "version": "5.5.0", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "5.5.0", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "dev": true - }, - "@trysound/sax": { - "version": "0.2.0", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.18", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bonjour": { - "version": "3.5.10", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/eslint": { - "version": "7.29.0", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.3", - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51" - }, - "@types/express": { - "version": "4.17.13", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.28", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/hast": { - "version": "2.3.4", - "requires": { - "@types/unist": "*" - } - }, - "@types/hoist-non-react-statics": { - "version": "3.3.1", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/html-minifier-terser": { - "version": "6.1.0", - "dev": true - }, - "@types/http-proxy": { - "version": "1.17.8", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/invariant": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9" - }, - "@types/json5": { - "version": "0.0.29", - "dev": true - }, - "@types/mime": { - "version": "1.3.2", - "dev": true - }, - "@types/minimist": { - "version": "1.2.2", - "dev": true - }, - "@types/node": { - "version": "17.0.21" - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "dev": true - }, - "@types/papaparse": { - "version": "5.3.2", - "requires": { - "@types/node": "*" - } - }, - "@types/parse-json": { - "version": "4.0.0" - }, - "@types/prettier": { - "version": "2.4.4", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.4" - }, - "@types/q": { - "version": "1.5.5", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "dev": true - }, - "@types/raf": { - "version": "3.4.0", - "optional": true - }, - "@types/range-parser": { - "version": "1.2.4", - "dev": true - }, - "@types/react": { - "version": "17.0.39", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-helmet": { - "version": "6.1.5", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-redux": { - "version": "7.1.23", - "requires": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "@types/react-transition-group": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", - "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", - "requires": { - "@types/react": "*" - } - }, - "@types/resolve": { - "version": "1.17.1", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/retry": { - "version": "0.12.1", - "dev": true - }, - "@types/scheduler": { - "version": "0.16.2" - }, - "@types/serve-index": { - "version": "1.9.1", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/serve-static": { - "version": "1.13.10", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/sockjs": { - "version": "0.3.33", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "dev": true - }, - "@types/trusted-types": { - "version": "2.0.2", - "dev": true - }, - "@types/unist": { - "version": "2.0.6" - }, - "@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" - }, - "@types/ws": { - "version": "8.5.2", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/type-utils": "5.30.7", - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - } - }, - "@typescript-eslint/types": { - "version": "5.30.7", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.30.7", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/experimental-utils": { - "version": "5.19.0", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.19.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "debug": "^4.3.4" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - } - }, - "@typescript-eslint/types": { - "version": "5.30.7", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.19.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - } - }, - "@typescript-eslint/types": { - "version": "5.30.7", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.30.7", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/types": { - "version": "5.19.0", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.19.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/utils": { - "version": "5.19.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/typescript-estree": "5.19.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.19.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.19.0", - "eslint-visitor-keys": "^3.0.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1" - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@wojtekmaj/enzyme-adapter-react-17": { - "version": "0.6.6", - "requires": { - "@wojtekmaj/enzyme-adapter-utils": "^0.1.2", - "enzyme-shallow-equal": "^1.0.0", - "has": "^1.0.0", - "prop-types": "^15.7.0", - "react-is": "^17.0.0", - "react-test-renderer": "^17.0.0" - } - }, - "@wojtekmaj/enzyme-adapter-utils": { - "version": "0.1.4", - "requires": { - "function.prototype.name": "^1.1.0", - "has": "^1.0.0", - "object.fromentries": "^2.0.0", - "prop-types": "^15.7.0" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0" - }, - "@xtuc/long": { - "version": "4.2.2" - }, - "abab": { - "version": "2.0.5" - }, - "accepts": { - "version": "1.3.8", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" - }, - "acorn-globals": { - "version": "6.0.0", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "dev": true - } - } - }, - "acorn-import-assertions": { - "version": "1.8.0", - "requires": {} - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-node": { - "version": "1.8.2", - "dev": true, - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "dev": true - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "dev": true - }, - "address": { - "version": "1.1.2", - "dev": true - }, - "adjust-sourcemap-loader": { - "version": "4.0.0", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - } - }, - "agent-base": { - "version": "6.0.2", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0" - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "requires": {} - }, - "ansi-escapes": { - "version": "4.3.2", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-html-community": { - "version": "0.0.8", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "5.0.2", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "4.2.2", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "array-flatten": { - "version": "2.1.2", - "dev": true - }, - "array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "array.prototype.filter": { - "version": "1.0.1", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "array.prototype.flat": { - "version": "1.2.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - } - }, - "arrify": { - "version": "1.0.1", - "dev": true - }, - "asap": { - "version": "2.0.6" - }, - "ast-types-flow": { - "version": "0.0.7", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "dev": true - }, - "atob": { - "version": "2.1.2" - }, - "auto-changelog": { - "version": "2.3.0", - "dev": true, - "requires": { - "commander": "^5.0.0", - "handlebars": "^4.7.3", - "node-fetch": "^2.6.0", - "parse-github-url": "^1.0.2", - "semver": "^6.3.0" - } - }, - "autoprefixer": { - "version": "10.4.2", - "dev": true, - "requires": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "axe-core": { - "version": "4.4.1", - "dev": true - }, - "axios": { - "version": "0.24.0", - "requires": { - "follow-redirects": "^1.14.4" - } - }, - "axobject-query": { - "version": "2.2.0", - "dev": true - }, - "babel-jest": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-loader": { - "version": "8.2.3", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "3.1.0", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.8", - "dev": true, - "requires": {} - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "babel-plugin-styled-components": { - "version": "2.0.6", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "lodash": "^4.17.11", - "picomatch": "^2.3.0" - } - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0" - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "dev": true - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.5.1", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "babel-preset-react-app": { - "version": "10.0.1", - "dev": true, - "requires": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "balanced-match": { - "version": "1.0.2", - "dev": true - }, - "base64-arraybuffer": { - "version": "1.0.2", - "optional": true - }, - "base64-js": { - "version": "1.5.1" - }, - "batch": { - "version": "0.6.1", - "dev": true - }, - "batch-processor": { - "version": "1.0.0" - }, - "bfj": { - "version": "7.0.2", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "dev": true - }, - "bluebird": { - "version": "3.7.2", - "dev": true - }, - "body-parser": { - "version": "1.19.2", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "dev": true - }, - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "bonjour-service": { - "version": "1.0.11", - "dev": true, - "requires": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.4" - } - }, - "boolbase": { - "version": "1.0.0" - }, - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "dev": true - }, - "browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "requires": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - } - }, - "bser": { - "version": "2.1.1", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "btoa": { - "version": "1.2.1" - }, - "buffer": { - "version": "6.0.3", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-from": { - "version": "1.1.2" - }, - "builtin-modules": { - "version": "3.2.0", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0" - }, - "camel-case": { - "version": "4.1.2", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.3.0", - "dev": true - }, - "camelcase-css": { - "version": "2.0.1", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "dev": true - } - } - }, - "camelize": { - "version": "1.0.0" - }, - "can-use-dom": { - "version": "0.1.0" - }, - "caniuse-api": { - "version": "3.0.0", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001517", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", - "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==" - }, - "canvg": { - "version": "3.0.10", - "optional": true, - "requires": { - "@babel/runtime": "^7.12.5", - "@types/raf": "^3.4.0", - "core-js": "^3.8.3", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "rgbcolor": "^1.0.1", - "stackblur-canvas": "^2.0.0", - "svg-pathdata": "^6.0.3" - } - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "char-regex": { - "version": "1.0.2", - "dev": true - }, - "character-entities": { - "version": "1.2.4" - }, - "character-entities-legacy": { - "version": "1.1.4" - }, - "character-reference-invalid": { - "version": "1.1.4" - }, - "charcodes": { - "version": "0.2.0", - "dev": true - }, - "chart.js": { - "version": "3.7.1" - }, - "check-types": { - "version": "11.1.2", - "dev": true - }, - "cheerio": { - "version": "1.0.0-rc.10", - "requires": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" - } - }, - "cheerio-select": { - "version": "1.5.0", - "requires": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" - } - }, - "chokidar": { - "version": "3.5.3", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3" - }, - "ci-info": { - "version": "3.3.0", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "dev": true - }, - "classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" - }, - "clean-css": { - "version": "5.2.4", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "cliui": { - "version": "7.0.4", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone-regexp": { - "version": "2.2.0", - "dev": true, - "requires": { - "is-regexp": "^2.0.0" - } - }, - "co": { - "version": "4.6.0", - "dev": true - }, - "coa": { - "version": "2.0.2", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "collect-v8-coverage": { - "version": "1.0.1", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" - }, - "colord": { - "version": "2.9.2", - "dev": true - }, - "colorette": { - "version": "2.0.16", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "comma-separated-tokens": { - "version": "1.0.8" - }, - "commander": { - "version": "5.1.0", - "dev": true - }, - "common-path-prefix": { - "version": "3.0.0", - "dev": true - }, - "common-tags": { - "version": "1.8.2", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "compute-gcd": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", - "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", - "requires": { - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "compute-lcm": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", - "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", - "requires": { - "compute-gcd": "^1.2.1", - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "dev": true - }, - "confusing-browser-globals": { - "version": "1.0.11", - "dev": true - }, - "connect-history-api-fallback": { - "version": "2.0.0", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.4", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.2", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "dev": true - }, - "copy-to-clipboard": { - "version": "3.3.1", - "requires": { - "toggle-selection": "^1.0.6" - } - }, - "core-js": { - "version": "3.21.1" - }, - "core-js-compat": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", - "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", - "dev": true, - "requires": { - "browserslist": "^4.21.9" - } - }, - "core-js-pure": { - "version": "3.21.1", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.1", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "create-react-class": { - "version": "15.7.0", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "dev": true - }, - "css-blank-pseudo": { - "version": "3.0.3", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-color-keywords": { - "version": "1.0.0" - }, - "css-declaration-sorter": { - "version": "6.1.4", - "dev": true, - "requires": { - "timsort": "^0.3.0" - } - }, - "css-functions-list": { - "version": "3.1.0", - "dev": true - }, - "css-has-pseudo": { - "version": "3.0.4", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-line-break": { - "version": "2.1.0", - "optional": true, - "requires": { - "utrie": "^1.0.2" - } - }, - "css-loader": { - "version": "6.6.0", - "dev": true, - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.5", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "css-minimizer-webpack-plugin": { - "version": "3.4.1", - "dev": true, - "requires": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "css-prefers-color-scheme": { - "version": "6.0.3", - "dev": true, - "requires": {} - }, - "css-select": { - "version": "4.2.1", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "dev": true - }, - "css-to-react-native": { - "version": "3.0.0", - "requires": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "5.1.0" - }, - "cssdb": { - "version": "6.4.0", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "dev": true - }, - "cssnano": { - "version": "5.1.0", - "dev": true, - "requires": { - "cssnano-preset-default": "^5.2.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.2.0", - "dev": true, - "requires": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.0", - "postcss-discard-comments": "^5.1.0", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.0", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.0", - "postcss-merge-rules": "^5.1.0", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.0", - "postcss-minify-params": "^5.1.0", - "postcss-minify-selectors": "^5.2.0", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.0", - "postcss-normalize-repeat-style": "^5.1.0", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.0", - "postcss-ordered-values": "^5.1.0", - "postcss-reduce-initial": "^5.1.0", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.0" - } - }, - "cssnano-utils": { - "version": "3.1.0", - "dev": true, - "requires": {} - }, - "csso": { - "version": "4.2.0", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "dev": true - } - } - }, - "cssom": { - "version": "0.4.4", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "dev": true - } - } - }, - "csstype": { - "version": "3.0.10" - }, - "damerau-levenshtein": { - "version": "1.0.8", - "dev": true - }, - "data-urls": { - "version": "2.0.0", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "dependencies": { - "tr46": { - "version": "2.1.0", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "whatwg-url": { - "version": "8.7.0", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - } - } - }, - "date-fns": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", - "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" - }, - "debug": { - "version": "4.3.4", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "dev": true - } - } - }, - "decimal.js": { - "version": "10.3.1", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "dev": true - }, - "deepmerge": { - "version": "4.2.2" - }, - "default-gateway": { - "version": "6.0.3", - "dev": true, - "requires": { - "execa": "^5.0.0" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defined": { - "version": "1.0.0", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "dev": true - }, - "depd": { - "version": "1.1.2", - "dev": true - }, - "dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" - }, - "desandro-matches-selector": { - "version": "2.0.2" - }, - "destroy": { - "version": "1.0.4", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "dev": true - }, - "detect-node": { - "version": "2.1.0", - "dev": true - }, - "detect-port-alt": { - "version": "1.1.6", - "dev": true, - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "detective": { - "version": "5.2.1", - "dev": true, - "requires": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - } - }, - "didyoumean": { - "version": "1.2.2", - "dev": true - }, - "diff-sequences": { - "version": "27.5.1", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "discontinuous-range": { - "version": "1.0.0" - }, - "dlv": { - "version": "1.1.3", - "dev": true - }, - "dns-equal": { - "version": "1.0.0", - "dev": true - }, - "dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", - "dev": true, - "requires": { - "@leichtgewicht/ip-codec": "^2.0.1" - } - }, - "doctrine": { - "version": "3.0.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-converter": { - "version": "0.2.0", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "5.2.1", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "dom-serializer": { - "version": "1.3.2", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0" - }, - "domexception": { - "version": "2.0.1", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "dev": true - } - } - }, - "domhandler": { - "version": "4.3.0", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "dompurify": { - "version": "2.3.6", - "optional": true - }, - "domutils": { - "version": "2.8.0", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dotenv": { - "version": "10.0.0", - "dev": true - }, - "dotenv-expand": { - "version": "5.1.0", - "dev": true - }, - "duplexer": { - "version": "0.1.2", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "dev": true - }, - "ejs": { - "version": "3.1.8", - "dev": true, - "requires": { - "jake": "^10.8.5" - } - }, - "electron-to-chromium": { - "version": "1.4.464", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.464.tgz", - "integrity": "sha512-guZ84yoou4+ILNdj0XEbmGs6DEWj6zpVOWYpY09GU66yEb0DSYvP/biBPzHn0GuW/3RC/pnaYNUWlQE1fJYtgA==" - }, - "element-resize-detector": { - "version": "1.2.4", - "requires": { - "batch-processor": "1.0.0" - } - }, - "emittery": { - "version": "0.8.1", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "dev": true - }, - "enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "2.2.0" - }, - "enzyme": { - "version": "3.11.0", - "requires": { - "array.prototype.flat": "^1.2.3", - "cheerio": "^1.0.0-rc.3", - "enzyme-shallow-equal": "^1.0.1", - "function.prototype.name": "^1.1.2", - "has": "^1.0.3", - "html-element-map": "^1.2.0", - "is-boolean-object": "^1.0.1", - "is-callable": "^1.1.5", - "is-number-object": "^1.0.4", - "is-regex": "^1.0.5", - "is-string": "^1.0.5", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.7.0", - "object-is": "^1.0.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.1", - "object.values": "^1.1.1", - "raf": "^3.4.1", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.2.1" - } - }, - "enzyme-shallow-equal": { - "version": "1.0.4", - "requires": { - "has": "^1.0.3", - "object-is": "^1.1.2" - } - }, - "error-ex": { - "version": "1.3.2", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.7", - "dev": true, - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.19.5", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0" - }, - "es-module-lexer": { - "version": "0.9.3" - }, - "es-shim-unscopables": { - "version": "1.0.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1" - }, - "escape-html": { - "version": "1.0.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5" - }, - "escodegen": { - "version": "2.0.0", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.1", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", - "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "8.5.0", - "dev": true, - "requires": {} - }, - "eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "dev": true, - "requires": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, - "dependencies": { - "eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dev": true, - "requires": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - } - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "dev": true, - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.3", - "dev": true, - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "dev": true - } - } - }, - "eslint-plugin-import": { - "version": "2.26.0", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "eslint-plugin-jest": { - "version": "25.7.0", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "dev": true, - "requires": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - } - }, - "eslint-plugin-prettier": { - "version": "4.0.0", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, - "eslint-plugin-react": { - "version": "7.31.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz", - "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==", - "dev": true, - "requires": { - "array-includes": "^3.1.5", - "array.prototype.flatmap": "^1.3.0", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.1", - "object.values": "^1.1.5", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.7" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.3", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.4.0", - "dev": true, - "requires": {} - }, - "eslint-plugin-testing-library": { - "version": "5.3.1", - "dev": true, - "requires": { - "@typescript-eslint/utils": "^5.13.0" - } - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "dev": true - }, - "eslint-webpack-plugin": { - "version": "3.1.1", - "dev": true, - "requires": { - "@types/eslint": "^7.28.2", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - } - }, - "espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esprima": { - "version": "4.0.1", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0" - }, - "estree-walker": { - "version": "1.0.1", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "dev": true - }, - "etag": { - "version": "1.8.1", - "dev": true - }, - "ev-emitter": { - "version": "1.1.1" - }, - "eventemitter3": { - "version": "4.0.7", - "dev": true - }, - "events": { - "version": "3.3.0" - }, - "execa": { - "version": "5.1.1", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "execall": { - "version": "2.0.0", - "dev": true, - "requires": { - "clone-regexp": "^2.1.0" - } - }, - "exit": { - "version": "0.1.2", - "dev": true - }, - "expect": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "express": { - "version": "4.17.3", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "dev": true - }, - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "dev": true - } - } - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-diff": { - "version": "1.2.0", - "dev": true - }, - "fast-glob": { - "version": "3.2.11", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0" - }, - "fast-levenshtein": { - "version": "2.0.6", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fault": { - "version": "1.0.4", - "requires": { - "format": "^0.2.0" - } - }, - "faye-websocket": { - "version": "0.11.4", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.1", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fflate": { - "version": "0.4.8" - }, - "file-entry-cache": { - "version": "6.0.1", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-loader": { - "version": "6.2.0", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - } - }, - "filelist": { - "version": "1.0.2", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "filesize": { - "version": "8.0.7", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "final-form": { - "version": "4.20.10", - "resolved": "https://registry.npmjs.org/final-form/-/final-form-4.20.10.tgz", - "integrity": "sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==", - "requires": { - "@babel/runtime": "^7.10.0" - } - }, - "final-form-arrays": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-3.1.0.tgz", - "integrity": "sha512-TWBvun+AopgBLw9zfTFHBllnKMVNEwCEyDawphPuBGGqNsuhGzhT7yewHys64KFFwzIs6KEteGLpKOwvTQEscQ==", - "requires": {} - }, - "finalhandler": { - "version": "1.1.2", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-root": { - "version": "1.1.0" - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "fizzy-ui-utils": { - "version": "2.0.7", - "requires": { - "desandro-matches-selector": "^2.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.5", - "dev": true - }, - "follow-redirects": { - "version": "1.14.9" - }, - "fork-ts-checker-webpack-plugin": { - "version": "6.5.2", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "cosmiconfig": { - "version": "6.0.0", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "schema-utils": { - "version": "2.7.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "dev": true - } - } - }, - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "format": { - "version": "0.2.2" - }, - "forwarded": { - "version": "0.2.0", - "dev": true - }, - "fraction.js": { - "version": "4.1.3", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "dev": true - }, - "fs-extra": { - "version": "10.0.1", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1" - }, - "function.prototype.name": { - "version": "1.1.5", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "dev": true - }, - "functions-have-names": { - "version": "1.2.2" - }, - "fuse.js": { - "version": "3.6.1", - "optional": true - }, - "fuzzysort": { - "version": "1.2.1" - }, - "gensync": { - "version": "1.0.0-beta.2" - }, - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "dev": true - }, - "get-size": { - "version": "2.0.3" - }, - "get-stdin": { - "version": "8.0.0", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "global-modules": { - "version": "2.0.0", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0" - }, - "globby": { - "version": "11.1.0", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "globjoin": { - "version": "0.1.4", - "dev": true - }, - "graceful-fs": { - "version": "4.2.9" - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "gzip-size": { - "version": "6.0.0", - "dev": true, - "requires": { - "duplexer": "^0.1.2" - } - }, - "handle-thing": { - "version": "2.0.1", - "dev": true - }, - "handlebars": { - "version": "4.7.7", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "dev": true - }, - "harmony-reflect": { - "version": "1.6.2", - "dev": true - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1" - }, - "has-flag": { - "version": "3.0.0" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3" - }, - "has-tostringtag": { - "version": "1.0.0", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hast-util-parse-selector": { - "version": "2.2.5" - }, - "hastscript": { - "version": "6.0.0", - "requires": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "he": { - "version": "1.2.0", - "dev": true - }, - "highlight.js": { - "version": "10.7.3" - }, - "history": { - "version": "5.3.0", - "requires": { - "@babel/runtime": "^7.7.6" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "react-is": { - "version": "16.13.1" - } - } - }, - "hoopy": { - "version": "0.1.4", - "dev": true - }, - "hosted-git-info": { - "version": "4.1.0", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "hotkeys-js": { - "version": "3.8.7" - }, - "hpack.js": { - "version": "2.1.6", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "html-element-map": { - "version": "1.3.1", - "requires": { - "array.prototype.filter": "^1.0.0", - "call-bind": "^1.0.2" - } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-entities": { - "version": "2.3.2", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "dev": true - }, - "html-minifier-terser": { - "version": "6.1.0", - "dev": true, - "requires": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "dev": true - } - } - }, - "html-tags": { - "version": "3.2.0", - "dev": true - }, - "html-webpack-plugin": { - "version": "5.5.0", - "dev": true, - "requires": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - } - }, - "html2canvas": { - "version": "1.4.1", - "optional": true, - "requires": { - "css-line-break": "^2.1.0", - "text-segmentation": "^1.0.3" - } - }, - "htmlparser2": { - "version": "6.1.0", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-deceiver": { - "version": "1.2.7", - "dev": true - }, - "http-errors": { - "version": "1.8.1", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "http-parser-js": { - "version": "0.5.5", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "2.0.3", - "dev": true, - "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "is-plain-obj": { - "version": "3.0.0", - "dev": true - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "dev": true - }, - "husky": { - "version": "7.0.4", - "dev": true - }, - "iconv-lite": { - "version": "0.6.3", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "icss-utils": { - "version": "5.1.0", - "dev": true, - "requires": {} - }, - "idb": { - "version": "6.1.5", - "dev": true - }, - "identity-obj-proxy": { - "version": "3.0.0", - "dev": true, - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "ieee754": { - "version": "1.2.1" - }, - "ignore": { - "version": "5.2.0", - "dev": true - }, - "imagesloaded": { - "version": "4.1.4", - "requires": { - "ev-emitter": "^1.0.0" - } - }, - "immer": { - "version": "9.0.12" - }, - "immutable": { - "version": "4.0.0", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0" - } - } - }, - "import-lazy": { - "version": "4.0.0", - "dev": true - }, - "import-local": { - "version": "3.1.0", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "dev": true - }, - "ini": { - "version": "1.3.8", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "invariant": { - "version": "2.2.4", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ipaddr.js": { - "version": "2.0.1", - "dev": true - }, - "is-alphabetical": { - "version": "1.0.4" - }, - "is-alphanumerical": { - "version": "1.0.4", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1" - }, - "is-bigint": { - "version": "1.0.4", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4" - }, - "is-core-module": { - "version": "2.9.0", - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-decimal": { - "version": "1.0.4" - }, - "is-docker": { - "version": "2.2.1", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4" - }, - "is-module": { - "version": "1.0.0", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2" - }, - "is-number": { - "version": "7.0.0", - "dev": true - }, - "is-number-object": { - "version": "1.0.6", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "dev": true - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "2.1.0", - "dev": true - }, - "is-root": { - "version": "2.1.0", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-subset": { - "version": "0.1.1" - }, - "is-symbol": { - "version": "1.0.4", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-wsl": { - "version": "2.2.0", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.1.0", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.4", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jake": { - "version": "10.8.5", - "dev": true, - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "async": { - "version": "3.2.3", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "javascript-time-ago": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.5.9.tgz", - "integrity": "sha512-pQ8mNco/9g9TqWXWWjP0EWl6i/lAQScOyEeXy5AB+f7MfLSdgyV9BJhiOD1zrIac/lrxPYOWNbyl/IW8CW5n0A==", - "requires": { - "relative-time-format": "^1.1.6" - } - }, - "jest": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - } - }, - "jest-changed-files": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-cli": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-config": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-diff": { - "version": "27.5.1", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "27.5.1", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "dev": true - }, - "jest-haste-map": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "dev": true, - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-mock": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.5.1", - "dev": true - }, - "jest-resolve": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - } - }, - "jest-runner": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runtime": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-serializer": { - "version": "27.5.1", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-snapshot": { - "version": "27.5.1", + "eslint": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", + "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", "dev": true, "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", + "@eslint/eslintrc": "^1.3.1", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" }, "dependencies": { "ansi-styles": { @@ -26055,6 +13374,10 @@ "color-convert": "^2.0.1" } }, + "argparse": { + "version": "2.0.1", + "dev": true + }, "chalk": { "version": "4.1.2", "dev": true, @@ -26074,17 +13397,28 @@ "version": "1.1.4", "dev": true }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, "has-flag": { "version": "4.0.0", "dev": true }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "js-yaml": { + "version": "4.1.0", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "argparse": "^2.0.1" } }, "supports-color": { @@ -26093,1416 +13427,1279 @@ "requires": { "has-flag": "^4.0.0" } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true } } }, - "jest-util": { - "version": "27.5.1", + "eslint-config-prettier": { + "version": "8.5.0", + "dev": true, + "requires": {} + }, + "eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", + "eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" } } } }, - "jest-validate": { - "version": "27.5.1", + "eslint-import-resolver-node": { + "version": "0.3.6", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "debug": "^3.2.7", + "resolve": "^1.20.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", + "debug": { + "version": "3.2.7", "dev": true, "requires": { - "has-flag": "^4.0.0" + "ms": "^2.1.1" } } } }, - "jest-watch-typeahead": { - "version": "1.0.0", + "eslint-module-utils": { + "version": "2.7.3", "dev": true, "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" + "debug": "^3.2.7", + "find-up": "^2.1.0" }, "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", + "debug": { + "version": "3.2.7", "dev": true, "requires": { - "color-convert": "^2.0.1" + "ms": "^2.1.1" } }, - "chalk": { - "version": "4.1.2", + "find-up": { + "version": "2.1.0", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "locate-path": "^2.0.0" } }, - "char-regex": { - "version": "2.0.1", - "dev": true - }, - "color-convert": { - "version": "2.0.1", + "locate-path": { + "version": "2.0.0", "dev": true, "requires": { - "color-name": "~1.1.4" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "slash": { - "version": "4.0.0", - "dev": true - }, - "string-length": { - "version": "5.0.1", + "p-limit": { + "version": "1.3.0", "dev": true, "requires": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" + "p-try": "^1.0.0" } }, - "strip-ansi": { - "version": "7.0.1", + "p-locate": { + "version": "2.0.0", "dev": true, "requires": { - "ansi-regex": "^6.0.1" + "p-limit": "^1.1.0" } }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + "p-try": { + "version": "1.0.0", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "dev": true } } }, - "jest-watcher": { - "version": "27.5.1", + "eslint-plugin-import": { + "version": "2.26.0", "dev": true, "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } }, - "supports-color": { - "version": "7.2.0", + "doctrine": { + "version": "2.1.0", "dev": true, "requires": { - "has-flag": "^4.0.0" + "esutils": "^2.0.2" } + }, + "ms": { + "version": "2.0.0", + "dev": true } } }, - "jest-worker": { - "version": "27.5.1", + "eslint-plugin-jest": { + "version": "25.7.0", + "dev": true, "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0" - }, - "supports-color": { - "version": "8.1.1", - "requires": { - "has-flag": "^4.0.0" - } - } + "@typescript-eslint/experimental-utils": "^5.0.0" } }, - "js-tokens": { - "version": "4.0.0" + "eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "dev": true, + "requires": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + } }, - "js-yaml": { - "version": "3.14.1", + "eslint-plugin-prettier": { + "version": "4.0.0", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "prettier-linter-helpers": "^1.0.0" } }, - "jsdom": { - "version": "16.7.0", + "eslint-plugin-react": { + "version": "7.31.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz", + "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==", "dev": true, "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "tr46": { + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.1", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.7" + }, + "dependencies": { + "doctrine": { "version": "2.1.0", "dev": true, "requires": { - "punycode": "^2.1.1" + "esutils": "^2.0.2" } }, - "whatwg-url": { - "version": "8.7.0", + "resolve": { + "version": "2.0.0-next.3", "dev": true, "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" } } } }, - "jsesc": { - "version": "2.5.2" + "eslint-plugin-react-hooks": { + "version": "4.4.0", + "dev": true, + "requires": {} }, - "json-parse-even-better-errors": { - "version": "2.3.1" + "eslint-plugin-testing-library": { + "version": "5.3.1", + "dev": true, + "requires": { + "@typescript-eslint/utils": "^5.13.0" + } }, - "json-schema": { - "version": "0.4.0", + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", "dev": true }, - "json-schema-compare": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", - "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", + "espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, "requires": { - "lodash": "^4.17.4" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" } }, - "json-schema-merge-allof": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", - "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", + "esquery": { + "version": "1.4.0", + "dev": true, "requires": { - "compute-lcm": "^1.1.2", - "json-schema-compare": "^0.2.2", - "lodash": "^4.17.20" + "estraverse": "^5.1.0" } }, - "json-schema-traverse": { - "version": "0.4.1" + "esrecurse": { + "version": "4.3.0", + "requires": { + "estraverse": "^5.2.0" + } }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true + "estraverse": { + "version": "5.3.0" }, - "json-stringify-safe": { - "version": "5.0.1", + "esutils": { + "version": "2.0.3", "dev": true }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + "ev-emitter": { + "version": "1.1.1" }, - "jsonfile": { - "version": "6.1.0", + "events": { + "version": "3.3.0", + "peer": true + }, + "execall": { + "version": "2.0.0", "dev": true, "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "clone-regexp": "^2.1.0" } }, - "jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" - }, - "jspdf": { - "version": "2.5.1", - "requires": { - "@babel/runtime": "^7.14.0", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "canvg": "^3.0.6", - "core-js": "^3.6.0", - "dompurify": "^2.2.0", - "fflate": "^0.4.8", - "html2canvas": "^1.0.0-rc.5" - } + "fast-deep-equal": { + "version": "3.1.3" }, - "jspdf-autotable": { - "version": "3.5.23", - "requires": {} + "fast-diff": { + "version": "1.2.0", + "dev": true }, - "jsx-ast-utils": { - "version": "3.2.2", + "fast-glob": { + "version": "3.2.11", "dev": true, "requires": { - "array-includes": "^3.1.4", - "object.assign": "^4.1.2" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, - "kind-of": { - "version": "6.0.3", - "dev": true + "fast-json-stable-stringify": { + "version": "2.1.0" }, - "kleur": { - "version": "3.0.3", + "fast-levenshtein": { + "version": "2.0.6", "dev": true }, - "klona": { - "version": "2.0.5", + "fastest-levenshtein": { + "version": "1.0.12", "dev": true }, - "known-css-properties": { - "version": "0.25.0", - "dev": true + "fastq": { + "version": "1.13.0", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } }, - "language-subtag-registry": { - "version": "0.3.21", - "dev": true + "fault": { + "version": "1.0.4", + "requires": { + "format": "^0.2.0" + } + }, + "fflate": { + "version": "0.4.8" }, - "language-tags": { - "version": "1.0.5", + "file-entry-cache": { + "version": "6.0.1", "dev": true, "requires": { - "language-subtag-registry": "~0.3.2" + "flat-cache": "^3.0.4" } }, - "leven": { - "version": "3.1.0", - "dev": true - }, - "levn": { - "version": "0.4.1", + "fill-range": { + "version": "7.0.1", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "to-regex-range": "^5.0.1" } }, - "lilconfig": { - "version": "2.0.6", - "dev": true + "final-form": { + "version": "4.20.10", + "resolved": "https://registry.npmjs.org/final-form/-/final-form-4.20.10.tgz", + "integrity": "sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==", + "requires": { + "@babel/runtime": "^7.10.0" + } }, - "lines-and-columns": { - "version": "1.2.4" + "final-form-arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-3.1.0.tgz", + "integrity": "sha512-TWBvun+AopgBLw9zfTFHBllnKMVNEwCEyDawphPuBGGqNsuhGzhT7yewHys64KFFwzIs6KEteGLpKOwvTQEscQ==", + "requires": {} }, - "loader-runner": { - "version": "4.2.0" + "find-root": { + "version": "1.1.0" }, - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "find-up": { + "version": "5.0.0", "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, - "locate-path": { - "version": "6.0.0", + "fizzy-ui-utils": { + "version": "2.0.7", + "requires": { + "desandro-matches-selector": "^2.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", "dev": true, "requires": { - "p-locate": "^5.0.0" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, - "lodash": { - "version": "4.17.21" + "flatted": { + "version": "3.2.5", + "dev": true }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" }, - "lodash.debounce": { - "version": "4.0.8" + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } }, - "lodash.escape": { - "version": "4.0.1" + "format": { + "version": "0.2.2" }, - "lodash.flattendeep": { - "version": "4.4.0" + "fs.realpath": { + "version": "1.0.0", + "dev": true }, - "lodash.isequal": { - "version": "4.5.0" + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true }, - "lodash.memoize": { - "version": "4.1.2" + "function-bind": { + "version": "1.1.1" }, - "lodash.merge": { - "version": "4.6.2", - "dev": true + "function.prototype.name": { + "version": "1.1.5", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } }, - "lodash.sortby": { - "version": "4.7.0", + "functional-red-black-tree": { + "version": "1.0.1", "dev": true }, - "lodash.throttle": { - "version": "4.1.1" + "functions-have-names": { + "version": "1.2.2" }, - "lodash.truncate": { - "version": "4.4.2", - "dev": true + "fuse.js": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", + "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==" }, - "lodash.uniq": { - "version": "4.5.0", - "dev": true + "fuzzysort": { + "version": "1.2.1" }, - "loose-envify": { - "version": "1.4.0", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } + "gensync": { + "version": "1.0.0-beta.2" }, - "lower-case": { - "version": "2.0.2", - "dev": true, + "get-intrinsic": { + "version": "1.1.1", "requires": { - "tslib": "^2.0.3" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" } }, - "lowlight": { - "version": "1.20.0", + "get-size": { + "version": "2.0.3" + }, + "get-stdin": { + "version": "8.0.0", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", "requires": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" } }, - "lru-cache": { - "version": "6.0.0", + "glob": { + "version": "7.2.0", "dev": true, "requires": { - "yallist": "^4.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "magic-string": { - "version": "0.25.9", + "glob-parent": { + "version": "6.0.2", "dev": true, "requires": { - "sourcemap-codec": "^1.4.8" + "is-glob": "^4.0.3" } }, - "make-dir": { - "version": "3.1.0", + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "peer": true + }, + "global-modules": { + "version": "2.0.0", "dev": true, "requires": { - "semver": "^6.0.0" + "global-prefix": "^3.0.0" } }, - "makeerror": { - "version": "1.0.12", + "global-prefix": { + "version": "3.0.0", "dev": true, "requires": { - "tmpl": "1.0.5" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "map-obj": { - "version": "4.3.0", - "dev": true - }, - "markdown-to-jsx": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", - "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", - "requires": {} + "globals": { + "version": "11.12.0" }, - "masonry-layout": { - "version": "4.2.2", + "globby": { + "version": "11.1.0", + "dev": true, "requires": { - "get-size": "^2.0.2", - "outlayer": "^2.1.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" } }, - "mathml-tag-names": { - "version": "2.1.3", - "dev": true - }, - "mdn-data": { - "version": "2.0.4", - "dev": true - }, - "media-typer": { - "version": "0.3.0", + "globjoin": { + "version": "0.1.4", "dev": true }, - "memfs": { - "version": "3.4.1", - "dev": true, - "requires": { - "fs-monkey": "1.0.3" - } - }, - "memoize-one": { - "version": "5.2.1" + "graceful-fs": { + "version": "4.2.9", + "peer": true }, - "meow": { - "version": "9.0.0", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "type-fest": { - "version": "0.18.1", - "dev": true - } + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "handlebars": { + "version": "4.7.7", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" } }, - "merge-descriptors": { - "version": "1.0.1", + "hard-rejection": { + "version": "2.1.0", "dev": true }, - "merge-stream": { - "version": "2.0.0" + "has": { + "version": "1.0.3", + "requires": { + "function-bind": "^1.1.1" + } }, - "merge2": { - "version": "1.4.1", - "dev": true + "has-bigints": { + "version": "1.0.1" }, - "methods": { - "version": "1.1.2", - "dev": true + "has-flag": { + "version": "3.0.0" }, - "micromatch": { - "version": "4.0.5", - "dev": true, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "get-intrinsic": "^1.1.1" } }, - "mime": { - "version": "1.6.0", - "dev": true + "has-symbols": { + "version": "1.0.3" }, - "mime-db": { - "version": "1.51.0" + "has-tostringtag": { + "version": "1.0.0", + "requires": { + "has-symbols": "^1.0.2" + } }, - "mime-types": { - "version": "2.1.34", + "hast-util-parse-selector": { + "version": "2.2.5" + }, + "hastscript": { + "version": "6.0.0", "requires": { - "mime-db": "1.51.0" + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" } }, - "mimic-fn": { - "version": "2.1.0", - "dev": true + "highlight.js": { + "version": "10.7.3" }, - "min-indent": { - "version": "1.0.1", - "dev": true + "history": { + "version": "5.3.0", + "requires": { + "@babel/runtime": "^7.7.6" + } }, - "mini-css-extract-plugin": { - "version": "2.5.3", - "dev": true, + "hoist-non-react-statics": { + "version": "3.3.2", "requires": { - "schema-utils": "^4.0.0" + "react-is": "^16.7.0" }, "dependencies": { - "ajv": { - "version": "8.10.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } + "react-is": { + "version": "16.13.1" } } }, - "minimalistic-assert": { - "version": "1.0.1", - "dev": true - }, - "minimatch": { - "version": "3.1.2", + "hosted-git-info": { + "version": "4.1.0", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "lru-cache": "^6.0.0" } }, - "minimist": { - "version": "1.2.6", + "hotkeys-js": { + "version": "3.8.7" + }, + "html-element-map": { + "version": "1.3.1", + "requires": { + "array.prototype.filter": "^1.0.0", + "call-bind": "^1.0.2" + } + }, + "html-tags": { + "version": "3.2.0", "dev": true }, - "minimist-options": { - "version": "4.1.0", - "dev": true, + "html2canvas": { + "version": "1.4.1", + "optional": true, "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" } }, - "mkdirp": { - "version": "0.5.5", - "dev": true, + "htmlparser2": { + "version": "6.1.0", "requires": { - "minimist": "^1.2.5" + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "moment": { - "version": "2.29.4" + "husky": { + "version": "7.0.4", + "dev": true }, - "monaco-editor": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", - "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==", - "peer": true + "iconv-lite": { + "version": "0.6.3", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } }, - "moo": { - "version": "0.5.1" + "ieee754": { + "version": "1.2.1" }, - "ms": { - "version": "2.1.2" + "ignore": { + "version": "5.2.0", + "dev": true }, - "multicast-dns": { - "version": "7.2.4", - "dev": true, + "imagesloaded": { + "version": "4.1.4", "requires": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" + "ev-emitter": "^1.0.0" } }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + "immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" }, - "natural-compare": { - "version": "1.4.0", + "immutable": { + "version": "4.0.0", "dev": true }, - "nearley": { - "version": "2.20.1", + "import-fresh": { + "version": "3.3.0", "requires": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "dependencies": { - "commander": { - "version": "2.20.3" + "resolve-from": { + "version": "4.0.0" } } }, - "negotiator": { - "version": "0.6.3", + "import-lazy": { + "version": "4.0.0", "dev": true }, - "neo-async": { - "version": "2.6.2" - }, - "no-case": { - "version": "3.0.4", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-fetch": { - "version": "2.6.7", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "1.3.1", + "imurmurhash": { + "version": "0.1.4", "dev": true }, - "node-int64": { - "version": "0.4.0", + "indent-string": { + "version": "4.0.0", "dev": true }, - "node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - }, - "normalize-package-data": { - "version": "3.0.3", + "inflight": { + "version": "1.0.6", "dev": true, "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "once": "^1.3.0", + "wrappy": "1" } }, - "normalize-path": { - "version": "3.0.0", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", + "inherits": { + "version": "2.0.4", "dev": true }, - "normalize-url": { - "version": "6.1.0", + "ini": { + "version": "1.3.8", "dev": true }, - "npm-run-path": { - "version": "4.0.1", - "dev": true, + "internal-slot": { + "version": "1.0.3", "requires": { - "path-key": "^3.0.0" + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" } }, - "nth-check": { - "version": "2.0.1", + "invariant": { + "version": "2.2.4", "requires": { - "boolbase": "^1.0.0" + "loose-envify": "^1.0.0" } }, - "nwsapi": { - "version": "2.2.0", - "dev": true - }, - "object-assign": { - "version": "4.1.1" + "is-alphabetical": { + "version": "1.0.4" }, - "object-hash": { - "version": "3.0.0", - "dev": true + "is-alphanumerical": { + "version": "1.0.4", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } }, - "object-inspect": { - "version": "1.12.0" + "is-arrayish": { + "version": "0.2.1" }, - "object-is": { - "version": "1.1.5", + "is-bigint": { + "version": "1.0.4", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "has-bigints": "^1.0.1" } }, - "object-keys": { - "version": "1.1.1" - }, - "object.assign": { - "version": "4.1.2", + "is-binary-path": { + "version": "2.1.0", + "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "binary-extensions": "^2.0.0" } }, - "object.entries": { - "version": "1.1.5", + "is-boolean-object": { + "version": "1.1.2", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "has-tostringtag": "^1.0.0" } }, - "object.fromentries": { - "version": "2.0.5", + "is-callable": { + "version": "1.2.4" + }, + "is-core-module": { + "version": "2.9.0", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "has": "^1.0.3" } }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "dev": true, + "is-date-object": { + "version": "1.0.5", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "has-tostringtag": "^1.0.0" } }, - "object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "is-decimal": { + "version": "1.0.4" + }, + "is-extglob": { + "version": "2.1.1", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true + }, + "is-glob": { + "version": "4.0.3", "dev": true, "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "is-extglob": "^2.1.1" } }, - "object.values": { - "version": "1.1.5", + "is-hexadecimal": { + "version": "1.0.4" + }, + "is-negative-zero": { + "version": "2.0.2" + }, + "is-number": { + "version": "7.0.0", + "dev": true + }, + "is-number-object": { + "version": "1.0.6", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "has-tostringtag": "^1.0.0" } }, - "obuf": { - "version": "1.1.2", + "is-plain-obj": { + "version": "1.1.0", "dev": true }, - "on-finished": { - "version": "2.3.0", - "dev": true, + "is-plain-object": { + "version": "5.0.0", + "dev": true + }, + "is-regex": { + "version": "1.1.4", "requires": { - "ee-first": "1.1.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, - "on-headers": { - "version": "1.0.2", + "is-regexp": { + "version": "2.1.0", "dev": true }, - "once": { - "version": "1.4.0", - "dev": true, + "is-shared-array-buffer": { + "version": "1.0.2", "requires": { - "wrappy": "1" + "call-bind": "^1.0.2" } }, - "onetime": { - "version": "5.1.2", - "dev": true, + "is-string": { + "version": "1.0.7", "requires": { - "mimic-fn": "^2.1.0" + "has-tostringtag": "^1.0.0" } }, - "open": { - "version": "8.4.0", - "dev": true, + "is-subset": { + "version": "0.1.1" + }, + "is-symbol": { + "version": "1.0.4", "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "has-symbols": "^1.0.2" } }, - "optionator": { - "version": "0.9.1", - "dev": true, + "is-weakref": { + "version": "1.0.2", "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "call-bind": "^1.0.2" } }, - "outlayer": { - "version": "2.1.1", + "isexe": { + "version": "2.0.0", + "dev": true + }, + "javascript-time-ago": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.5.9.tgz", + "integrity": "sha512-pQ8mNco/9g9TqWXWWjP0EWl6i/lAQScOyEeXy5AB+f7MfLSdgyV9BJhiOD1zrIac/lrxPYOWNbyl/IW8CW5n0A==", "requires": { - "ev-emitter": "^1.0.0", - "fizzy-ui-utils": "^2.0.0", - "get-size": "^2.0.2" + "relative-time-format": "^1.1.6" } }, - "p-limit": { - "version": "3.1.0", - "dev": true, + "jest-worker": { + "version": "27.5.1", + "peer": true, "requires": { - "yocto-queue": "^0.1.0" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "peer": true + }, + "supports-color": { + "version": "8.1.1", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "p-locate": { - "version": "5.0.0", - "dev": true, + "js-tokens": { + "version": "4.0.0" + }, + "jsesc": { + "version": "2.5.2" + }, + "json-parse-even-better-errors": { + "version": "2.3.1" + }, + "json-schema-compare": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", + "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", "requires": { - "p-limit": "^3.0.2" + "lodash": "^4.17.4" } }, - "p-retry": { - "version": "4.6.1", - "dev": true, + "json-schema-merge-allof": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", + "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", "requires": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" + "compute-lcm": "^1.1.2", + "json-schema-compare": "^0.2.2", + "lodash": "^4.17.20" } }, - "p-try": { - "version": "2.2.0", + "json-schema-traverse": { + "version": "0.4.1" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", "dev": true }, - "papaparse": { - "version": "5.3.1" + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" + }, + "jspdf": { + "version": "2.5.1", + "requires": { + "@babel/runtime": "^7.14.0", + "atob": "^2.1.2", + "btoa": "^1.2.1", + "canvg": "^3.0.6", + "core-js": "^3.6.0", + "dompurify": "^2.2.0", + "fflate": "^0.4.8", + "html2canvas": "^1.0.0-rc.5" + } + }, + "jspdf-autotable": { + "version": "3.5.23", + "requires": {} }, - "param-case": { - "version": "3.0.4", + "jsx-ast-utils": { + "version": "3.2.2", "dev": true, "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "array-includes": "^3.1.4", + "object.assign": "^4.1.2" } }, - "parent-module": { - "version": "1.0.1", - "requires": { - "callsites": "^3.0.0" - } + "kind-of": { + "version": "6.0.3", + "dev": true }, - "parse-entities": { - "version": "2.0.0", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } + "known-css-properties": { + "version": "0.25.0", + "dev": true }, - "parse-github-url": { - "version": "1.0.2", + "language-subtag-registry": { + "version": "0.3.21", "dev": true }, - "parse-json": { - "version": "5.2.0", + "language-tags": { + "version": "1.0.5", + "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "language-subtag-registry": "~0.3.2" } }, - "parse5": { - "version": "6.0.1" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", + "levn": { + "version": "0.4.1", + "dev": true, "requires": { - "parse5": "^6.0.1" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "parseurl": { - "version": "1.3.3", - "dev": true + "lines-and-columns": { + "version": "1.2.4" }, - "pascal-case": { - "version": "3.1.2", + "loader-runner": { + "version": "4.2.0", + "peer": true + }, + "locate-path": { + "version": "6.0.0", "dev": true, "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "p-locate": "^5.0.0" } }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "dev": true + "lodash": { + "version": "4.17.21" }, - "path-parse": { - "version": "1.0.7" + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, - "path-to-regexp": { - "version": "0.1.7", - "dev": true + "lodash.debounce": { + "version": "4.0.8" }, - "path-type": { - "version": "4.0.0" + "lodash.escape": { + "version": "4.0.1" }, - "performance-now": { - "version": "2.1.0" + "lodash.flattendeep": { + "version": "4.4.0" }, - "picocolors": { - "version": "1.0.0" + "lodash.isequal": { + "version": "4.5.0" }, - "picomatch": { - "version": "2.3.1" + "lodash.memoize": { + "version": "4.1.2" }, - "pify": { - "version": "2.3.0", + "lodash.merge": { + "version": "4.6.2", "dev": true }, - "pirates": { - "version": "4.0.5", + "lodash.throttle": { + "version": "4.1.1" + }, + "lodash.truncate": { + "version": "4.4.2", "dev": true }, - "pkg-dir": { - "version": "4.2.0", - "dev": true, + "loose-envify": { + "version": "1.4.0", "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } + "js-tokens": "^3.0.0 || ^4.0.0" } }, - "pkg-up": { - "version": "3.1.0", - "dev": true, + "lowlight": { + "version": "1.20.0", "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "dev": true - } + "fault": "^1.0.0", + "highlight.js": "~10.7.0" } }, - "postcss": { - "version": "8.4.14", + "lru-cache": { + "version": "6.0.0", "dev": true, "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "yallist": "^4.0.0" } }, - "postcss-attribute-case-insensitive": { - "version": "5.0.0", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.2" - } + "map-obj": { + "version": "4.3.0", + "dev": true }, - "postcss-browser-comments": { - "version": "4.0.0", - "dev": true, + "markdown-to-jsx": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", + "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", "requires": {} }, - "postcss-calc": { - "version": "8.2.4", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-functional-notation": { + "masonry-layout": { "version": "4.2.2", - "dev": true, "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-hex-alpha": { - "version": "8.0.3", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" + "get-size": "^2.0.2", + "outlayer": "^2.1.0" } }, - "postcss-color-rebeccapurple": { - "version": "7.0.2", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } + "mathml-tag-names": { + "version": "2.1.3", + "dev": true }, - "postcss-colormin": { - "version": "5.3.0", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - } + "memoize-one": { + "version": "5.2.1" }, - "postcss-convert-values": { - "version": "5.1.0", + "meow": { + "version": "9.0.0", "dev": true, "requires": { - "postcss-value-parser": "^4.2.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "type-fest": { + "version": "0.18.1", + "dev": true + } } }, - "postcss-custom-media": { - "version": "8.0.0", - "dev": true, - "requires": {} - }, - "postcss-custom-properties": { - "version": "12.1.4", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } + "merge-stream": { + "version": "2.0.0", + "peer": true }, - "postcss-custom-selectors": { - "version": "6.0.0", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } + "merge2": { + "version": "1.4.1", + "dev": true }, - "postcss-dir-pseudo-class": { - "version": "6.0.4", + "micromatch": { + "version": "4.0.5", "dev": true, "requires": { - "postcss-selector-parser": "^6.0.9" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, - "postcss-discard-comments": { - "version": "5.1.0", - "dev": true, - "requires": {} - }, - "postcss-discard-duplicates": { - "version": "5.1.0", - "dev": true, - "requires": {} - }, - "postcss-discard-empty": { - "version": "5.1.0", - "dev": true, - "requires": {} - }, - "postcss-discard-overridden": { - "version": "5.1.0", - "dev": true, - "requires": {} + "mime-db": { + "version": "1.51.0" }, - "postcss-double-position-gradients": { - "version": "3.1.0", - "dev": true, + "mime-types": { + "version": "2.1.34", "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" + "mime-db": "1.51.0" } }, - "postcss-env-function": { - "version": "4.0.5", + "min-indent": { + "version": "1.0.1", + "dev": true + }, + "minimatch": { + "version": "3.1.2", "dev": true, "requires": { - "postcss-value-parser": "^4.2.0" + "brace-expansion": "^1.1.7" } }, - "postcss-flexbugs-fixes": { - "version": "5.0.2", - "dev": true, - "requires": {} + "minimist": { + "version": "1.2.6", + "dev": true }, - "postcss-focus-visible": { - "version": "6.0.4", + "minimist-options": { + "version": "4.1.0", "dev": true, "requires": { - "postcss-selector-parser": "^6.0.9" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" } }, - "postcss-focus-within": { - "version": "5.0.4", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.9" - } + "moment": { + "version": "2.29.4" }, - "postcss-font-variant": { - "version": "5.0.0", - "dev": true, - "requires": {} + "monaco-editor": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", + "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==", + "peer": true }, - "postcss-gap-properties": { - "version": "3.0.3", - "dev": true, - "requires": {} + "moo": { + "version": "0.5.1" }, - "postcss-image-set-function": { - "version": "4.0.6", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } + "ms": { + "version": "2.1.2" }, - "postcss-import": { - "version": "14.1.0", - "dev": true, - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" }, - "postcss-initial": { - "version": "4.0.1", - "dev": true, - "requires": {} + "natural-compare": { + "version": "1.4.0", + "dev": true }, - "postcss-js": { - "version": "4.0.0", - "dev": true, + "nearley": { + "version": "2.20.1", "requires": { - "camelcase-css": "^2.0.1" + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "dependencies": { + "commander": { + "version": "2.20.3" + } } }, - "postcss-lab-function": { - "version": "4.1.1", - "dev": true, - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } + "neo-async": { + "version": "2.6.2" }, - "postcss-load-config": { - "version": "3.1.4", + "node-fetch": { + "version": "2.6.7", "dev": true, "requires": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" + "whatwg-url": "^5.0.0" } }, - "postcss-loader": { - "version": "6.2.1", + "node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "normalize-package-data": { + "version": "3.0.3", "dev": true, "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "dependencies": { "semver": { @@ -27516,287 +14713,211 @@ } } }, - "postcss-logical": { - "version": "5.0.4", - "dev": true, - "requires": {} - }, - "postcss-media-minmax": { - "version": "5.0.0", - "dev": true, - "requires": {} - }, - "postcss-media-query-parser": { - "version": "0.2.3", + "normalize-path": { + "version": "3.0.0", "dev": true }, - "postcss-merge-longhand": { - "version": "5.1.0", - "dev": true, + "nth-check": { + "version": "2.0.1", "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" + "boolbase": "^1.0.0" } }, - "postcss-merge-rules": { - "version": "5.1.0", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - } + "object-assign": { + "version": "4.1.1" }, - "postcss-minify-font-values": { - "version": "5.1.0", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } + "object-inspect": { + "version": "1.12.0" }, - "postcss-minify-gradients": { - "version": "5.1.0", - "dev": true, + "object-is": { + "version": "1.1.5", "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, - "postcss-minify-params": { - "version": "5.1.0", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } + "object-keys": { + "version": "1.1.1" }, - "postcss-minify-selectors": { - "version": "5.2.0", - "dev": true, + "object.assign": { + "version": "4.1.2", "requires": { - "postcss-selector-parser": "^6.0.5" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "dev": true, - "requires": {} - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "dev": true, + "object.entries": { + "version": "1.1.5", "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, - "postcss-modules-scope": { - "version": "3.0.0", + "object.fromentries": { + "version": "2.0.5", "dev": true, "requires": { - "postcss-selector-parser": "^6.0.4" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, - "postcss-modules-values": { - "version": "4.0.0", + "object.hasown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "dev": true, "requires": { - "icss-utils": "^5.0.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, - "postcss-nested": { - "version": "5.0.6", - "dev": true, + "object.values": { + "version": "1.1.5", "requires": { - "postcss-selector-parser": "^6.0.6" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, - "postcss-nesting": { - "version": "10.1.2", + "once": { + "version": "1.4.0", "dev": true, "requires": { - "postcss-selector-parser": "^6.0.8" + "wrappy": "1" } }, - "postcss-normalize": { - "version": "10.0.1", + "optionator": { + "version": "0.9.1", "dev": true, "requires": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, - "postcss-normalize-charset": { - "version": "5.1.0", - "dev": true, - "requires": {} - }, - "postcss-normalize-display-values": { - "version": "5.1.0", - "dev": true, + "outlayer": { + "version": "2.1.1", "requires": { - "postcss-value-parser": "^4.2.0" + "ev-emitter": "^1.0.0", + "fizzy-ui-utils": "^2.0.0", + "get-size": "^2.0.2" } }, - "postcss-normalize-positions": { - "version": "5.1.0", + "p-limit": { + "version": "3.1.0", "dev": true, "requires": { - "postcss-value-parser": "^4.2.0" + "yocto-queue": "^0.1.0" } }, - "postcss-normalize-repeat-style": { - "version": "5.1.0", + "p-locate": { + "version": "5.0.0", "dev": true, "requires": { - "postcss-value-parser": "^4.2.0" + "p-limit": "^3.0.2" } }, - "postcss-normalize-string": { - "version": "5.1.0", - "dev": true, + "p-try": { + "version": "2.2.0", + "dev": true + }, + "papaparse": { + "version": "5.3.1" + }, + "parent-module": { + "version": "1.0.1", "requires": { - "postcss-value-parser": "^4.2.0" + "callsites": "^3.0.0" } }, - "postcss-normalize-timing-functions": { - "version": "5.1.0", - "dev": true, + "parse-entities": { + "version": "2.0.0", "requires": { - "postcss-value-parser": "^4.2.0" + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" } }, - "postcss-normalize-unicode": { - "version": "5.1.0", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - } + "parse-github-url": { + "version": "1.0.2", + "dev": true }, - "postcss-normalize-url": { - "version": "5.1.0", - "dev": true, + "parse-json": { + "version": "5.2.0", "requires": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, - "postcss-normalize-whitespace": { - "version": "5.1.0", - "dev": true, + "parse5": { + "version": "6.0.1" + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", "requires": { - "postcss-value-parser": "^4.2.0" + "parse5": "^6.0.1" } }, - "postcss-opacity-percentage": { - "version": "1.1.2", + "path-exists": { + "version": "4.0.0", "dev": true }, - "postcss-ordered-values": { - "version": "5.1.0", - "dev": true, - "requires": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } + "path-is-absolute": { + "version": "1.0.1", + "dev": true }, - "postcss-overflow-shorthand": { - "version": "3.0.3", - "dev": true, - "requires": {} + "path-key": { + "version": "3.1.1", + "dev": true }, - "postcss-page-break": { - "version": "3.0.4", - "dev": true, - "requires": {} + "path-parse": { + "version": "1.0.7" }, - "postcss-place": { - "version": "7.0.4", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-preset-env": { - "version": "7.4.2", - "dev": true, - "requires": { - "@csstools/postcss-color-function": "^1.0.2", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.3", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.4.0", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-color-functional-notation": "^4.2.2", - "postcss-color-hex-alpha": "^8.0.3", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "7.1.1", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.9" - } + "path-type": { + "version": "4.0.0" }, - "postcss-reduce-initial": { - "version": "5.1.0", - "dev": true, + "performance-now": { + "version": "2.1.0" + }, + "picocolors": { + "version": "1.0.0" + }, + "picomatch": { + "version": "2.3.1" + }, + "postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" } }, - "postcss-reduce-transforms": { - "version": "5.1.0", - "dev": true, + "postcss-combine-duplicated-selectors": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/postcss-combine-duplicated-selectors/-/postcss-combine-duplicated-selectors-10.0.3.tgz", + "integrity": "sha512-IP0BmwFloCskv7DV7xqvzDXqMHpwdczJa6ZvIW8abgHdcIHs9mCJX2ltFhu3EwA51ozp13DByng30+Ke+eIExA==", "requires": { - "postcss-value-parser": "^4.2.0" + "postcss-selector-parser": "^6.0.4" } }, - "postcss-replace-overflow-wrap": { - "version": "4.0.0", - "dev": true, - "requires": {} + "postcss-media-query-parser": { + "version": "0.2.3", + "dev": true }, "postcss-resolve-nested-selector": { "version": "0.1.1", @@ -27812,16 +14933,8 @@ "dev": true, "requires": {} }, - "postcss-selector-not": { - "version": "5.0.0", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, "postcss-selector-parser": { "version": "6.0.10", - "dev": true, "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -27832,52 +14945,6 @@ "dev": true, "requires": {} }, - "postcss-svgo": { - "version": "5.1.0", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "dev": true - }, - "css-tree": { - "version": "1.1.3", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "dev": true - }, - "svgo": { - "version": "2.8.0", - "dev": true, - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - } - } - } - }, - "postcss-unique-selectors": { - "version": "5.1.0", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, "postcss-value-parser": { "version": "4.2.0" }, @@ -27896,54 +14963,15 @@ "fast-diff": "^1.1.2" } }, - "pretty-bytes": { - "version": "5.6.0", - "dev": true - }, - "pretty-error": { - "version": "4.0.0", - "dev": true, - "requires": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, "prismjs": { "version": "1.27.0" }, - "process-nextick-args": { - "version": "2.0.1", - "dev": true - }, "promise": { "version": "8.1.0", "requires": { "asap": "~2.0.6" } }, - "prompts": { - "version": "2.4.2", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, "prop-types": { "version": "15.8.1", "requires": { @@ -27979,41 +15007,14 @@ "xtend": "^4.0.0" } }, - "proxy-addr": { - "version": "2.0.7", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "dev": true - } - } - }, - "psl": { - "version": "1.8.0", - "dev": true + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "punycode": { "version": "2.1.1" }, - "q": { - "version": "1.5.1", - "dev": true - }, - "qs": { - "version": "6.9.7", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, "queue-microtask": { "version": "1.2.3", "dev": true @@ -28040,42 +15041,17 @@ }, "randombytes": { "version": "2.1.0", + "peer": true, "requires": { "safe-buffer": "^5.1.0" } }, - "range-parser": { - "version": "1.2.1", - "dev": true - }, - "raw-body": { - "version": "2.4.3", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, "react": { - "version": "17.0.2", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "react-app-polyfill": { @@ -28114,10 +15090,12 @@ } }, "react-copy-to-clipboard": { - "version": "5.0.4", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", + "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", "requires": { - "copy-to-clipboard": "^3", - "prop-types": "^15.5.8" + "copy-to-clipboard": "^3.3.1", + "prop-types": "^15.8.1" } }, "react-data-table-component": { @@ -28139,102 +15117,22 @@ "react-popper": "^2.3.0" } }, - "react-dev-utils": { - "version": "12.0.1", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "react-dom": { - "version": "17.0.2", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" + "scheduler": "^0.23.0" } }, - "react-error-overlay": { - "version": "6.0.11", - "dev": true - }, "react-fast-compare": { "version": "3.2.0" }, "react-final-form": { - "version": "6.5.8", + "version": "6.5.9", + "resolved": "https://registry.npmjs.org/react-final-form/-/react-final-form-6.5.9.tgz", + "integrity": "sha512-x3XYvozolECp3nIjly+4QqxdjSSWfcnpGEL5K8OBT6xmGrq5kBqbA6+/tOqoom9NwqIPPbxPNsOViFlbKgowbA==", "requires": { "@babel/runtime": "^7.15.4" } @@ -28253,13 +15151,16 @@ "@babel/runtime": "^7.12.5" } }, - "react-helmet": { - "version": "6.1.0", + "react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", "requires": { - "object-assign": "^4.1.1", + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", "prop-types": "^15.7.2", - "react-fast-compare": "^3.1.1", - "react-side-effect": "^2.1.0" + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" } }, "react-hotkeys-hook": { @@ -28296,9 +15197,9 @@ "requires": {} }, "react-onclickoutside": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.2.tgz", - "integrity": "sha512-NMXGa223OnsrGVp5dJHkuKxQ4czdLmXSp5jSV9OqiCky9LOpPATn3vLldc+q5fK3gKbEHvr7J1u0yhBh/xYkpA==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz", + "integrity": "sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A==", "requires": {} }, "react-overlays": { @@ -28344,7 +15245,9 @@ } }, "react-refresh": { - "version": "0.11.0", + "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 }, "react-router": { @@ -28360,83 +15263,6 @@ "react-router": "6.2.2" } }, - "react-scripts": { - "version": "5.0.1", - "dev": true, - "requires": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "fsevents": "^2.3.2", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "dependencies": { - "react-app-polyfill": { - "version": "3.0.0", - "dev": true, - "requires": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "react-select": { "version": "5.3.0", "requires": { @@ -28453,19 +15279,16 @@ "version": "3.0.9", "requires": { "fuse.js": "^3.4.5" + }, + "dependencies": { + "fuse.js": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", + "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", + "optional": true + } } }, - "react-shallow-renderer": { - "version": "16.14.1", - "requires": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0" - } - }, - "react-side-effect": { - "version": "2.1.1", - "requires": {} - }, "react-syntax-highlighter": { "version": "15.4.5", "requires": { @@ -28476,15 +15299,6 @@ "refractor": "^3.2.0" } }, - "react-test-renderer": { - "version": "17.0.2", - "requires": { - "object-assign": "^4.1.1", - "react-is": "^17.0.2", - "react-shallow-renderer": "^16.13.1", - "scheduler": "^0.20.2" - } - }, "react-time-ago": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/react-time-ago/-/react-time-ago-7.2.1.tgz", @@ -28513,13 +15327,6 @@ "prop-types": "^15.6.2" } }, - "read-cache": { - "version": "1.0.0", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, "read-pkg": { "version": "5.2.0", "dev": true, @@ -28600,15 +15407,6 @@ } } }, - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "readdirp": { "version": "3.6.0", "dev": true, @@ -28616,15 +15414,6 @@ "picomatch": "^2.2.1" } }, - "recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "dev": true, - "requires": { - "minimatch": "^3.0.5" - } - }, "redent": { "version": "3.0.0", "dev": true, @@ -28652,7 +15441,9 @@ "requires": {} }, "redux-thunk": { - "version": "2.4.1", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", "requires": {} }, "refractor": { @@ -28684,10 +15475,6 @@ "@babel/runtime": "^7.8.4" } }, - "regex-parser": { - "version": "2.2.11", - "dev": true - }, "regexp.prototype.flags": { "version": "1.4.2", "dev": true, @@ -28729,39 +15516,18 @@ } } }, - "relateurl": { - "version": "0.2.7", - "dev": true - }, "relative-time-format": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/relative-time-format/-/relative-time-format-1.1.6.tgz", "integrity": "sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ==" }, - "renderkid": { - "version": "3.0.0", - "dev": true, - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "dev": true - }, "require-from-string": { "version": "2.0.2" }, - "requires-port": { - "version": "1.0.0", - "dev": true - }, "reselect": { - "version": "4.1.5" + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" }, "resolve": { "version": "1.22.1", @@ -28771,53 +15537,13 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-cwd": { - "version": "3.0.0", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, "resolve-from": { "version": "5.0.0", "dev": true }, - "resolve-url-loader": { - "version": "4.0.0", - "dev": true, - "requires": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } - } - }, - "resolve.exports": { - "version": "1.1.0", - "dev": true - }, "ret": { "version": "0.1.15" }, - "retry": { - "version": "0.13.1", - "dev": true - }, "reusify": { "version": "1.0.4", "dev": true @@ -28833,52 +15559,6 @@ "glob": "^7.1.3" } }, - "rollup": { - "version": "2.70.1", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "rollup-plugin-terser": { - "version": "7.0.2", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "jest-worker": { - "version": "26.6.2", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "rst-selector-parser": { "version": "2.2.3", "requires": { @@ -28899,10 +15579,6 @@ "safer-buffer": { "version": "2.1.2" }, - "sanitize.css": { - "version": "13.0.0", - "dev": true - }, "sass": { "version": "1.64.2", "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.2.tgz", @@ -28914,158 +15590,35 @@ "source-map-js": ">=0.6.2 <2.0.0" } }, - "sass-loader": { - "version": "12.6.0", - "dev": true, - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "sax": { - "version": "1.2.4", - "dev": true - }, - "saxes": { - "version": "5.0.1", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, "scheduler": { - "version": "0.20.2", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "schema-utils": { "version": "3.1.1", + "peer": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } }, - "select-hose": { - "version": "2.0.0", - "dev": true - }, - "selfsigned": { - "version": "2.0.1", - "dev": true, - "requires": { - "node-forge": "^1" - } - }, "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, - "send": { - "version": "0.17.2", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "ms": { - "version": "2.1.3", - "dev": true - } - } - }, "serialize-javascript": { "version": "6.0.0", + "peer": true, "requires": { "randombytes": "^2.1.0" } }, - "serve-index": { - "version": "1.9.1", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "dev": true - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.2", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "dev": true - }, "shallowequal": { "version": "1.1.0" }, @@ -29080,10 +15633,6 @@ "version": "3.0.0", "dev": true }, - "shell-quote": { - "version": "1.7.3", - "dev": true - }, "side-channel": { "version": "1.0.4", "requires": { @@ -29114,10 +15663,6 @@ "simplebar": "^5.3.6" } }, - "sisteransi": { - "version": "1.0.5", - "dev": true - }, "slash": { "version": "3.0.0", "dev": true @@ -29151,19 +15696,6 @@ } } }, - "sockjs": { - "version": "0.3.24", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "source-list-map": { - "version": "2.0.1", - "dev": true - }, "source-map": { "version": "0.6.1" }, @@ -29180,15 +15712,12 @@ }, "source-map-support": { "version": "0.5.21", + "peer": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "sourcemap-codec": { - "version": "1.4.8", - "dev": true - }, "space-separated-tokens": { "version": "1.1.5" }, @@ -29197,107 +15726,34 @@ "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "sprintf-js": { - "version": "1.0.3", - "dev": true + "spdx-license-ids": "^3.0.0" + } }, - "stable": { - "version": "0.1.8", + "spdx-exceptions": { + "version": "2.3.0", "dev": true }, - "stack-utils": { - "version": "2.0.5", + "spdx-expression-parse": { + "version": "3.0.1", "dev": true, "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "dev": true - } + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, + "spdx-license-ids": { + "version": "3.0.11", + "dev": true + }, "stackblur-canvas": { "version": "2.5.0", "optional": true }, - "stackframe": { - "version": "1.2.1", - "dev": true - }, "state-local": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" }, - "statuses": { - "version": "1.5.0", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "dev": true - } - } - }, - "string-length": { - "version": "4.0.2", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, "string-natural-compare": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", @@ -29355,21 +15811,6 @@ "define-properties": "^1.1.3" } }, - "stringify-object": { - "version": "3.3.0", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "dependencies": { - "is-regexp": { - "version": "1.0.0", - "dev": true - } - } - }, "strip-ansi": { "version": "6.0.1", "dev": true, @@ -29377,18 +15818,6 @@ "ansi-regex": "^5.0.1" } }, - "strip-bom": { - "version": "4.0.0", - "dev": true - }, - "strip-comments": { - "version": "2.0.1", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "dev": true - }, "strip-indent": { "version": "3.0.0", "dev": true, @@ -29400,11 +15829,6 @@ "version": "3.1.1", "dev": true }, - "style-loader": { - "version": "3.3.1", - "dev": true, - "requires": {} - }, "style-search": { "version": "0.1.0", "dev": true @@ -29424,14 +15848,6 @@ "supports-color": "^5.5.0" } }, - "stylehacks": { - "version": "5.1.0", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - } - }, "stylelint": { "version": "14.9.1", "dev": true, @@ -29553,10 +15969,6 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0" }, - "svg-parser": { - "version": "2.0.4", - "dev": true - }, "svg-pathdata": { "version": "6.0.3", "optional": true @@ -29565,74 +15977,6 @@ "version": "1.0.0", "dev": true }, - "svgo": { - "version": "1.3.2", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "css-select": { - "version": "2.1.0", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "dev": true - }, - "dom-serializer": { - "version": "0.2.2", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "domutils": { - "version": "1.7.0", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "dev": true - } - } - }, - "nth-check": { - "version": "1.0.2", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - } - } - }, - "symbol-tree": { - "version": "3.2.4", - "dev": true - }, "table": { "version": "6.8.0", "dev": true, @@ -29660,79 +16004,15 @@ } } }, - "tailwindcss": { - "version": "3.1.6", - "dev": true, - "requires": { - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "detective": "^5.2.1", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "lilconfig": "^2.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.14", - "postcss-import": "^14.1.0", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.4", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.1" - }, - "dependencies": { - "color-name": { - "version": "1.1.4", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "dev": true - } - } - }, "tapable": { - "version": "2.2.1" - }, - "temp-dir": { - "version": "2.0.0", - "dev": true - }, - "tempy": { - "version": "0.6.0", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "dev": true - } - } - }, - "terminal-link": { - "version": "2.1.1", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } + "version": "2.2.1", + "peer": true }, "terser": { "version": "5.14.2", "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "peer": true, "requires": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -29741,12 +16021,14 @@ }, "dependencies": { "commander": { - "version": "2.20.3" + "version": "2.20.3", + "peer": true } } }, "terser-webpack-plugin": { "version": "5.3.1", + "peer": true, "requires": { "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", @@ -29755,15 +16037,6 @@ "terser": "^5.7.2" } }, - "test-exclude": { - "version": "6.0.0", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, "text-segmentation": { "version": "1.0.3", "optional": true, @@ -29775,22 +16048,6 @@ "version": "0.2.0", "dev": true }, - "throat": { - "version": "6.0.1", - "dev": true - }, - "thunky": { - "version": "1.1.0", - "dev": true - }, - "timsort": { - "version": "0.3.0", - "dev": true - }, - "tmpl": { - "version": "1.0.5", - "dev": true - }, "to-fast-properties": { "version": "2.0.0" }, @@ -29804,30 +16061,6 @@ "toggle-selection": { "version": "1.0.6" }, - "toidentifier": { - "version": "1.0.1", - "dev": true - }, - "tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "dependencies": { - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true - } - } - }, "tr46": { "version": "0.0.3", "dev": true @@ -29836,10 +16069,6 @@ "version": "3.0.1", "dev": true }, - "tryer": { - "version": "1.0.1", - "dev": true - }, "tsconfig-paths": { "version": "3.14.1", "dev": true, @@ -29890,29 +16119,6 @@ "prelude-ls": "^1.2.1" } }, - "type-detect": { - "version": "4.0.8", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, "typescript": { "version": "4.6.3", "dev": true, @@ -29963,29 +16169,6 @@ "version": "2.0.0", "dev": true }, - "unique-string": { - "version": "2.0.0", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "dev": true - }, - "upath": { - "version": "1.2.0", - "dev": true - }, "update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", @@ -30001,37 +16184,8 @@ "punycode": "^2.1.0" } }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "util-deprecate": { - "version": "1.0.2", - "dev": true - }, - "util.promisify": { - "version": "1.0.1", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "dev": true + "version": "1.0.2" }, "utrie": { "version": "1.0.2", @@ -30040,29 +16194,10 @@ "base64-arraybuffer": "^1.0.2" } }, - "uuid": { - "version": "8.3.2", - "dev": true - }, "v8-compile-cache": { "version": "2.3.0", "dev": true }, - "v8-to-istanbul": { - "version": "8.1.1", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "dev": true - } - } - }, "validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -30103,29 +16238,27 @@ "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" }, - "vary": { - "version": "1.1.2", - "dev": true - }, - "w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", + "vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", "dev": true, "requires": { - "makeerror": "1.0.12" + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "dependencies": { + "rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + } } }, "warning": { @@ -30140,26 +16273,17 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "peer": true, "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, - "wbuf": { - "version": "1.7.3", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "dev": true - }, "webpack": { "version": "5.77.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.77.0.tgz", "integrity": "sha512-sbGNjBr5Ya5ss91yzjeJTLKyfiwo5C628AFjEa6WSXcZa4E+F57om3Cc8xLb1Jh0b243AWuSYRf3dn7HVeFQ9Q==", + "peer": true, "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -30189,190 +16313,25 @@ "dependencies": { "eslint-scope": { "version": "5.1.1", + "peer": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "estraverse": { - "version": "4.3.0" - } - } - }, - "webpack-dev-middleware": { - "version": "5.3.1", - "dev": true, - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "webpack-dev-server": { - "version": "4.9.3", - "dev": true, - "requires": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "ws": { - "version": "8.5.0", - "dev": true, - "requires": {} - } - } - }, - "webpack-manifest-plugin": { - "version": "4.1.1", - "dev": true, - "requires": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "dependencies": { - "webpack-sources": { - "version": "2.3.1", - "dev": true, - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } + "version": "4.3.0", + "peer": true } } }, "webpack-sources": { - "version": "3.2.3" - }, - "websocket-driver": { - "version": "0.7.4", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } + "version": "3.2.3", + "peer": true }, "whatwg-fetch": { "version": "3.6.2" }, - "whatwg-mimetype": { - "version": "2.3.0", - "dev": true - }, "whatwg-url": { "version": "5.0.0", "dev": true, @@ -30414,308 +16373,13 @@ "version": "1.0.0", "dev": true }, - "workbox-background-sync": { - "version": "6.5.3", - "dev": true, - "requires": { - "idb": "^6.1.4", - "workbox-core": "6.5.3" - } - }, - "workbox-broadcast-update": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-core": "6.5.3" - } - }, - "workbox-build": { - "version": "6.5.3", - "dev": true, - "requires": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.5.3", - "workbox-broadcast-update": "6.5.3", - "workbox-cacheable-response": "6.5.3", - "workbox-core": "6.5.3", - "workbox-expiration": "6.5.3", - "workbox-google-analytics": "6.5.3", - "workbox-navigation-preload": "6.5.3", - "workbox-precaching": "6.5.3", - "workbox-range-requests": "6.5.3", - "workbox-recipes": "6.5.3", - "workbox-routing": "6.5.3", - "workbox-strategies": "6.5.3", - "workbox-streams": "6.5.3", - "workbox-sw": "6.5.3", - "workbox-window": "6.5.3" - }, - "dependencies": { - "@apideck/better-ajv-errors": { - "version": "0.3.3", - "dev": true, - "requires": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - } - }, - "ajv": { - "version": "8.11.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "dev": true - }, - "source-map": { - "version": "0.8.0-beta.0", - "dev": true, - "requires": { - "whatwg-url": "^7.0.0" - } - }, - "tr46": { - "version": "1.0.1", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "dev": true - }, - "whatwg-url": { - "version": "7.1.0", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "workbox-cacheable-response": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-core": "6.5.3" - } - }, - "workbox-core": { - "version": "6.5.3", - "dev": true - }, - "workbox-expiration": { - "version": "6.5.3", - "dev": true, - "requires": { - "idb": "^6.1.4", - "workbox-core": "6.5.3" - } - }, - "workbox-google-analytics": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-background-sync": "6.5.3", - "workbox-core": "6.5.3", - "workbox-routing": "6.5.3", - "workbox-strategies": "6.5.3" - } - }, - "workbox-navigation-preload": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-core": "6.5.3" - } - }, - "workbox-precaching": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-core": "6.5.3", - "workbox-routing": "6.5.3", - "workbox-strategies": "6.5.3" - } - }, - "workbox-range-requests": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-core": "6.5.3" - } - }, - "workbox-recipes": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-cacheable-response": "6.5.3", - "workbox-core": "6.5.3", - "workbox-expiration": "6.5.3", - "workbox-precaching": "6.5.3", - "workbox-routing": "6.5.3", - "workbox-strategies": "6.5.3" - } - }, - "workbox-routing": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-core": "6.5.3" - } - }, - "workbox-strategies": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-core": "6.5.3" - } - }, - "workbox-streams": { - "version": "6.5.3", - "dev": true, - "requires": { - "workbox-core": "6.5.3", - "workbox-routing": "6.5.3" - } - }, - "workbox-sw": { - "version": "6.5.3", - "dev": true - }, - "workbox-webpack-plugin": { - "version": "6.5.3", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.5.3" - }, - "dependencies": { - "webpack-sources": { - "version": "1.4.3", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "workbox-window": { - "version": "6.5.3", - "dev": true, - "requires": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.3" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - } - } - }, "wrappy": { "version": "1.0.2", "dev": true }, - "write-file-atomic": { - "version": "3.0.3", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.7", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "dev": true - }, "xtend": { "version": "4.0.2" }, - "y18n": { - "version": "5.0.8", - "dev": true - }, "yallist": { "version": "4.0.0", "dev": true @@ -30723,19 +16387,6 @@ "yaml": { "version": "1.10.2" }, - "yargs": { - "version": "16.2.0", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, "yargs-parser": { "version": "20.2.9", "dev": true diff --git a/package.json b/package.json index 486ca94f90ba..fcb71fdc32f4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cipp", - "version": "2.6.1", + "version": "4.5.5", "description": "The CyberDrain Improved Partner Portal is a portal to help manage administration for Microsoft Partners.", "homepage": "https://cipp.app/", "bugs": { @@ -10,28 +10,26 @@ "type": "git", "url": "git@github.com:KelvinTegelaar/CIPP.git" }, + "type": "module", "license": "AGPL-3.0", "author": "CIPP Contributors", "scripts": { - "build": "react-scripts build", + "build": "vite build", "changelog": "auto-changelog --starting-version 3.0.0 --commit-limit false --hide-credit", - "eject": "react-scripts eject", "lint": "eslint \"src/**/*.js\"", - "start": "react-scripts start", - "test": "react-scripts test", - "test:cov": "npm test -- --coverage --watchAll=false", - "test:debug": "react-scripts --inspect-brk test --runInBand", + "start": "vite", "start-swa": "swa start --swa-config-location .vscode http://127.0.0.1:3000 --api-location http://127.0.0.1:7071", - "prepare": "husky install" + "prepare": "husky install", + "preview": "vite preview" }, "config": { "coreui_library_short_version": "4.1" }, "dependencies": { "@coreui/chartjs": "^3.0.0", - "@coreui/coreui": "^4.1.0", - "@coreui/react": "^4.1.0", - "@coreui/react-chartjs": "^2.0.0", + "@coreui/coreui": "^4.3.0", + "@coreui/react": "^4.11.0", + "@coreui/react-chartjs": "^2.1.3", "@coreui/utils": "^1.3.1", "@fortawesome/fontawesome-svg-core": "^1.2.36", "@fortawesome/free-brands-svg-icons": "^5.15.4", @@ -40,13 +38,12 @@ "@fortawesome/react-fontawesome": "^0.1.16", "@monaco-editor/react": "^4.5.2", "@popperjs/core": "^2.10.2", - "@reduxjs/toolkit": "^1.7.0", + "@reduxjs/toolkit": "^1.9.7", "@rjsf/bootstrap-4": "^5.12.1", "@rjsf/core": "^5.12.1", "@rjsf/utils": "^5.12.1", "@rjsf/validator-ajv8": "^5.12.1", - "@wojtekmaj/enzyme-adapter-react-17": "^0.6.3", - "axios": "^0.24.0", + "axios": "^1.6.2", "buffer": "^6.0.3", "chart.js": "^3.5.1", "classnames": "^2.3.1", @@ -54,23 +51,24 @@ "enzyme": "^3.11.0", "final-form": "^4.20.4", "final-form-arrays": "^3.1.0", + "fuse.js": "^7.0.0", "fuzzysort": "^1.1.4", "javascript-time-ago": "^2.5.9", "jspdf": "^2.4.0", "jspdf-autotable": "^3.5.23", "moment": "^2.29.1", "prop-types": "^15.7.2", - "react": "^17.0.2", + "react": "^18.2.0", "react-app-polyfill": "^2.0.0", "react-bootstrap": "^1.6.5", - "react-copy-to-clipboard": "^5.0.4", + "react-copy-to-clipboard": "^5.1.0", "react-data-table-component": "^7.4.5", "react-datepicker": "^4.10.0", - "react-dom": "^17.0.2", - "react-final-form": "^6.5.7", + "react-dom": "^18.2.0", + "react-final-form": "^6.5.9", "react-final-form-arrays": "^3.1.4", "react-final-form-listeners": "^1.0.3", - "react-helmet": "^6.1.0", + "react-helmet-async": "^1.3.0", "react-hotkeys-hook": "^3.4.4", "react-loading-skeleton": "^3.1.0", "react-masonry-component": "^6.3.0", @@ -90,6 +88,7 @@ }, "devDependencies": { "@types/react-helmet": "^6.1.5", + "@vitejs/plugin-react": "^4.1.1", "auto-changelog": "~2.3.0", "eslint": "^8.0.0", "eslint-config-prettier": "^8.3.0", @@ -98,15 +97,19 @@ "husky": "^7.0.4", "postcss-scss": "^4.0.3", "prettier": "2.4.1", - "react-scripts": "^5.0.0", "redux-immutable-state-invariant": "^2.1.0", "sass": "^1.64.2", "stylelint": "^14.3.0", "stylelint-config-sass-guidelines": "^9.0.1", - "stylelint-order": "^5.0.0" + "stylelint-order": "^5.0.0", + "vite": "^4.5.0" }, "engines": { "node": "18", - "npm": ">=7" + "npm": ">=8" + }, + "overrides": { + "react": "^18.2.0", + "react-dom": "^18.2.0" } } diff --git a/src/App.jsx b/src/App.jsx index f3fa887346d6..db95409b5c98 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -3,7 +3,7 @@ import { BrowserRouter, Route, Routes, Navigate } from 'react-router-dom' import { PrivateRoute, FullScreenLoading, ErrorBoundary } from 'src/components/utilities' import 'src/scss/style.scss' import routes from 'src/routes' -import { Helmet } from 'react-helmet' +import { Helmet } from 'react-helmet-async' import adminRoutes from './adminRoutes' import Skeleton from 'react-loading-skeleton' import TimeAgo from 'javascript-time-ago' diff --git a/src/index.jsx b/src/index.jsx index 97dca410bfd3..bf2f4c7912c8 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -7,12 +7,15 @@ import { Provider } from 'react-redux' import { store, persistor } from 'src/store' import { PersistGate } from 'redux-persist/integration/react' import { FullScreenLoading } from 'src/components/utilities' +import { HelmetProvider } from 'react-helmet-async' ReactDOM.render( } persistor={persistor}> - + + + , diff --git a/src/scss/style.scss b/src/scss/style.scss index 42c5106d5ab2..5079ee294e3f 100644 --- a/src/scss/style.scss +++ b/src/scss/style.scss @@ -5,10 +5,11 @@ $enable-ltr: true; $enable-rtl: true; // Import CoreUI for React components library -@import '~@coreui/coreui/scss/coreui'; +@import '@coreui/coreui/scss/coreui'; + // Import Chart.js custom tooltips styles -@import '~@coreui/chartjs/scss/coreui-chartjs'; +@import '@coreui/chartjs/scss/coreui-chartjs'; @import 'layout'; // If you want to add custom CSS you can put it here. diff --git a/src/serviceWorker.js b/src/serviceWorker.js deleted file mode 100644 index d4f72f2c4b98..000000000000 --- a/src/serviceWorker.js +++ /dev/null @@ -1,123 +0,0 @@ -// In production, we register a service worker to serve assets from local cache. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on the "N+1" visit to a page, since previously -// cached resources are updated in the background. - -// To learn more about the benefits of this model, read https://goo.gl/KwvDNy. -// This link also includes instructions on opting out of this behavior. - -const isLocalhost = Boolean( - window.location.hostname === 'localhost' || - // [::1] is the IPv6 localhost address. - window.location.hostname === '[::1]' || - // 127.0.0.1/8 is considered localhost for IPv4. - window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/), -) - -export function register(config) { - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location) - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebook/create-react-app/issues/2374 - return - } - - window.addEventListener('load', () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js` - - if (isLocalhost) { - // This is running on localhost. Let's check if a service worker still exists or not. - checkValidServiceWorker(swUrl, config) - - // Add some additional logging to localhost, pointing developers to the - // service worker/PWA documentation. - navigator.serviceWorker.ready.then(() => { - console.log( - 'This web app is being served cache-first by a service ' + - 'worker. To learn more, visit https://goo.gl/SC7cgQ', - ) - }) - } else { - // Is not local host. Just register service worker - registerValidSW(swUrl, config) - } - }) - } -} - -function registerValidSW(swUrl, config) { - navigator.serviceWorker - .register(swUrl) - .then((registration) => { - registration.onupdatefound = () => { - const installingWorker = registration.installing - installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { - if (navigator.serviceWorker.controller) { - // At this point, the old content will have been purged and - // the fresh content will have been added to the cache. - // It's the perfect time to display a "New content is - // available; please refresh." message in your web app. - console.log('New content is available; please refresh.') - - // Execute callback - if (config.onUpdate) { - config.onUpdate(registration) - } - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log('Content is cached for offline use.') - - // Execute callback - if (config.onSuccess) { - config.onSuccess(registration) - } - } - } - } - } - }) - .catch((error) => { - console.error('Error during service worker registration:', error) - }) -} - -function checkValidServiceWorker(swUrl, config) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl) - .then((response) => { - // Ensure service worker exists, and that we really are getting a JS file. - if ( - response.status === 404 || - response.headers.get('content-type').indexOf('javascript') === -1 - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then((registration) => { - registration.unregister().then(() => { - window.location.reload() - }) - }) - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl, config) - } - }) - .catch(() => { - console.log('No internet connection found. App is running in offline mode.') - }) -} - -export function unregister() { - if ('serviceWorker' in navigator) { - navigator.serviceWorker.ready.then((registration) => { - registration.unregister() - }) - } -} diff --git a/src/store/middleware/errorMiddleware.js b/src/store/middleware/errorMiddleware.js index 740027f89dc3..7ad628d6504f 100644 --- a/src/store/middleware/errorMiddleware.js +++ b/src/store/middleware/errorMiddleware.js @@ -17,7 +17,7 @@ export const errorMiddleware = action.payload.data = 'The Azure Function has taken too long to respond. Try selecting a different report or a single tenant instead' } - const message = action.payload?.data || 'A generic error has occurred.' + let message = action.payload?.data || 'A generic error has occurred.' if (message.length > 240) { message = message.substring(0, 240) + '...' } diff --git a/src/store/store.js b/src/store/store.js index 831ab0eb792b..b50a0c6eb2b5 100644 --- a/src/store/store.js +++ b/src/store/store.js @@ -15,8 +15,8 @@ export const store = configureStore({ }) // enable redux module hot reload -if (process.env.NODE_ENV !== 'production' && module.hot) { - module.hot.accept('./root', () => store.replaceReducer(rootReducer)) +if (import.meta.env.NODE_ENV !== 'production' && import.meta.hot) { + import.meta.hot.accept('./root', () => store.replaceReducer(rootReducer)) } export const persistor = persistStore(store) diff --git a/vite.config.js b/vite.config.js index 593e346ac113..cd32c2f77566 100644 --- a/vite.config.js +++ b/vite.config.js @@ -6,25 +6,14 @@ import { resolve } from 'path' export default defineConfig({ plugins: [react()], build: { - // default is dist outDir: 'build', }, server: { port: 3000, host: true, }, - css: { - preprocessorOptions: { - sass: { - additionalData: '', - sassOptions: { - quietDeps: true, - }, - }, - }, - }, resolve: { - // needed for absolute paths + // needed for importing using absolute paths alias: { src: resolve('src/'), }, From 2a288c40c605683e542b3709c94c5c1fd93a7ece Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 17 Nov 2023 01:02:55 +0100 Subject: [PATCH 163/205] updated vars --- src/scss/_variables.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss index 73f0201b5a22..0569071bbb04 100644 --- a/src/scss/_variables.scss +++ b/src/scss/_variables.scss @@ -89,7 +89,7 @@ $secondary-25: rgba(0, 47, 73, 0.205) !default; $link-color: rgb(226, 92, 9) !default; $link-decoration: underline !default; $link-shade-percentage: 20% !default; -$link-hover-color: shift-color($link-color, $link-shade-percentage) !default; +$link-hover-color: rgba($link-color, $link-shade-percentage) !default; $link-hover-decoration: null !default; $search-bg-color: #ffffff; @@ -1659,7 +1659,7 @@ $sidebar-width: 17rem !default; // $sidebar-padding-y: 0 !default; // $sidebar-padding-x: 0 !default; // $sidebar-color: $high-emphasis-inverse !default; -$sidebar-bg: rgb(240,240,240) !default; +$sidebar-bg: rgb(240, 240, 240) !default; // $sidebar-border-width: 0 !default; // $sidebar-border-color: transparent !default; // $sidebar-transition: margin-left .15s, margin-right .15s, box-shadow .075s, transform .15s, width .15s, z-index 0s ease .15s !default; From fa0230bb626d3634c60771e81bebb4eeb89ab35e Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 17 Nov 2023 02:09:58 +0100 Subject: [PATCH 164/205] fixes some of the css --- src/scss/_custom.scss | 4 ---- src/scss/_themes.scss | 3 ++- src/scss/_variables.scss | 4 ++-- src/scss/style.scss | 12 ++++-------- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/scss/_custom.scss b/src/scss/_custom.scss index 8fccbc31607b..32ee638446e3 100644 --- a/src/scss/_custom.scss +++ b/src/scss/_custom.scss @@ -298,10 +298,6 @@ h3.underline:after { } } -.cipp-offcanvastable { - font-size: smaller; -} - .dropdown-item { a { color: var(--cui-dropdown-link-color); diff --git a/src/scss/_themes.scss b/src/scss/_themes.scss index ccbfa5a592c3..70a777d57f95 100644 --- a/src/scss/_themes.scss +++ b/src/scss/_themes.scss @@ -409,6 +409,7 @@ --cui-color-table-border: rgba(146, 154, 158, 0.8); --cui-color-card-shadow: rgba(207, 192, 192, 0.2); --text-medium-emphasis: rgba(255, 255, 255, 0.6); + --cui-emphasis-color-rgb: rgba(255, 255, 255, 0.6); // Core UI Impact theme variables. --cui-header-hover-color: var(--cyberdrain-light); --cui-header-active-color: var(--cyberdrain-accent-blue); @@ -425,7 +426,7 @@ --cui-dropdown-color: var(--cyberdrain-light); --cui-dropdown-border-color: var(--cyberdrain-accent-green); --cui-dropdown-link-color: var(--cyberdrain-light); - --cui-dropdown-link-hover-bg: var(--cyberdrain-accent-green); + --cui-dropdown-link-hover-bg: var(--cyberdrain-accent-blue); --cui-dropdown-link-hover-color: var(--cyberdrain-light); --cui-footer-bg: var(--cyberdrain-dark); --cui-footer-color: var(--cyberdrain-light); diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss index 0569071bbb04..d25f6d0244c7 100644 --- a/src/scss/_variables.scss +++ b/src/scss/_variables.scss @@ -86,7 +86,7 @@ $secondary-base: rgba(0, 48, 73) !default; $secondary-50: rgba(0, 47, 73, 0.479) !default; $secondary-25: rgba(0, 47, 73, 0.205) !default; -$link-color: rgb(226, 92, 9) !default; +$link-color: rgb(247, 247, 247) !default; $link-decoration: underline !default; $link-shade-percentage: 20% !default; $link-hover-color: rgba($link-color, $link-shade-percentage) !default; @@ -741,7 +741,7 @@ $h5-font-size: $font-size-base; // $btn-border-width: $input-btn-border-width !default; // $btn-font-weight: $font-weight-normal !default; -// $btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default; +$btn-box-shadow: none !default; // $btn-focus-width: $input-btn-focus-width !default; // $btn-focus-box-shadow: $input-btn-focus-box-shadow !default; // $btn-disabled-opacity: .65 !default; diff --git a/src/scss/style.scss b/src/scss/style.scss index 5079ee294e3f..1393a9feccce 100644 --- a/src/scss/style.scss +++ b/src/scss/style.scss @@ -3,16 +3,12 @@ $enable-ltr: true; $enable-rtl: true; +@import 'tenantselector'; +// If you want to add custom CSS you can put it here. // Import CoreUI for React components library -@import '@coreui/coreui/scss/coreui'; - -// Import Chart.js custom tooltips styles -@import '@coreui/chartjs/scss/coreui-chartjs'; +@import '@coreui/coreui/scss/coreui'; @import 'layout'; - -// If you want to add custom CSS you can put it here. -@import 'themes'; -@import 'tenantselector'; @import 'custom'; +@import 'themes'; From dc77c0ab969f36cdaebfc81a853a7a1b1b8198ce Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 17 Nov 2023 02:16:42 +0100 Subject: [PATCH 165/205] fix placeholder text --- src/scss/_themes.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/scss/_themes.scss b/src/scss/_themes.scss index 70a777d57f95..f8104f3dc3c1 100644 --- a/src/scss/_themes.scss +++ b/src/scss/_themes.scss @@ -410,6 +410,7 @@ --cui-color-card-shadow: rgba(207, 192, 192, 0.2); --text-medium-emphasis: rgba(255, 255, 255, 0.6); --cui-emphasis-color-rgb: rgba(255, 255, 255, 0.6); + --cui-input-placeholder-color: rgba(255, 255, 255, 0.6); // Core UI Impact theme variables. --cui-header-hover-color: var(--cyberdrain-light); --cui-header-active-color: var(--cyberdrain-accent-blue); From 8be49d22a7e585a840d2319d22d8d530bb4ee248 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Fri, 17 Nov 2023 02:50:18 +0100 Subject: [PATCH 166/205] more css fixes --- src/scss/_themes.scss | 4 +++- src/scss/_variables.scss | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/scss/_themes.scss b/src/scss/_themes.scss index f8104f3dc3c1..c3e48952a11d 100644 --- a/src/scss/_themes.scss +++ b/src/scss/_themes.scss @@ -266,7 +266,7 @@ --cui-input-focus-color: var(--cyberdrain-dark); --cui-link-color: var(--cyberdrain-dark); --cui-link-hover-color: var(--cyberdrain-primary); - --cui-list-group-bg: var(--cui-color-white); + --cui-list-group-bg: var(--cui-color-white) !important; --cui-list-group-color: var(--cyberdrain-dark); --cui-modal-content-bg: var(--cyberdrain-light); --cui-modal-content-border-color: var(--cyberdrain-accent-green); @@ -411,6 +411,7 @@ --text-medium-emphasis: rgba(255, 255, 255, 0.6); --cui-emphasis-color-rgb: rgba(255, 255, 255, 0.6); --cui-input-placeholder-color: rgba(255, 255, 255, 0.6); + --cui-tertiary-bg: var(--cyberdrain-dark); // Core UI Impact theme variables. --cui-header-hover-color: var(--cyberdrain-light); --cui-header-active-color: var(--cyberdrain-accent-blue); @@ -435,6 +436,7 @@ --cui-form-select-bg: var(--cyberdrain-dark); --cui-form-select-border-color: var(--cyberdrain-light); --cui-form-select-color: var(--cyberdrain-light); + --cui-form-check-bg: var(--cyberdrain-light); --cui-header-bg: var(--cyberdrain-dark); --cui-header-border-color: var(--cyberdrain-accent-green); --cui-header-color: var(--cyberdrain-light); diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss index d25f6d0244c7..1688f5dcd93e 100644 --- a/src/scss/_variables.scss +++ b/src/scss/_variables.scss @@ -870,7 +870,7 @@ $btn-box-shadow: none !default; // $form-check-input-active-filter: brightness(90%) !default; -// $form-check-input-bg: $input-bg !default; +$form-check-input-bg: var(--cyberdrain-light) !default; // $form-check-input-border: 1px solid rgba($black, .25) !default; // $form-check-input-border-radius: .25em !default; // $form-check-radio-border-radius: 50% !default; @@ -1275,7 +1275,7 @@ $btn-box-shadow: none !default; // scss-docs-start tooltip-variables // $tooltip-font-size: $font-size-sm !default; // $tooltip-max-width: 200px !default; -// $tooltip-color: $high-emphasis-inverse !default; +$tooltip-color: var(--cyberdrain-light) !default; // $tooltip-bg: $black !default; // $tooltip-border-radius: $border-radius !default; // $tooltip-opacity: .9 !default; @@ -1484,7 +1484,7 @@ $btn-box-shadow: none !default; // List group // scss-docs-start list-group-variables // $list-group-color: unset !default; -// $list-group-bg: $white !default; +$list-group-bg: var(--cui-color-white) !default; // $list-group-border-color: rgba($black, .125) !default; // $list-group-border-width: $border-width !default; // $list-group-border-radius: $border-radius !default; From 6f77e0c26e84a371a8bfb6efa8cf4fef96f93df9 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Fri, 17 Nov 2023 13:55:07 -0500 Subject: [PATCH 167/205] CPV Tweaks --- src/components/tables/CippTable.jsx | 45 +++++++++++++++++++++++++---- src/views/cipp/CIPPSettings.jsx | 20 +++++++++++-- 2 files changed, 56 insertions(+), 9 deletions(-) diff --git a/src/components/tables/CippTable.jsx b/src/components/tables/CippTable.jsx index 75106ab21de4..74dcdabfaa42 100644 --- a/src/components/tables/CippTable.jsx +++ b/src/components/tables/CippTable.jsx @@ -15,6 +15,10 @@ import { CModalTitle, CCallout, CFormSelect, + CAccordion, + CAccordionHeader, + CAccordionBody, + CAccordionItem, } from '@coreui/react' import DataTable, { createTheme } from 'react-data-table-component' import PropTypes from 'prop-types' @@ -665,12 +669,41 @@ export default function CippTable({ <> {(massResults.length >= 1 || loopRunning) && ( - {massResults.map((message, idx) => { - const results = message.data?.Results - const displayResults = Array.isArray(results) ? results.join(', ') : results - - return
  • {displayResults}
  • - })} + {massResults[0]?.data?.Metadata?.Heading && ( + + {massResults.map((message, idx) => { + const results = message.data?.Results + const displayResults = Array.isArray(results) + ? results.join('
  • ') + : results + var iconName = 'info-circle' + if (message.data?.Metadata?.Success === true) { + iconName = 'check-circle' + } else if (message.data?.Metadata?.Success === false) { + iconName = 'times-circle' + } + return ( + + + + {message.data?.Metadata?.Heading} + + + {results.map((line, i) => { + return
  • {line}
  • + })} + + + ) + })} +
    + )} + {!massResults[0]?.data?.Metadata?.Heading && + massResults.map((message, idx) => { + const results = message.data?.Results + const displayResults = Array.isArray(results) ? results.join(', ') : results + return
  • {displayResults}
  • + })} {loopRunning && (
  • diff --git a/src/views/cipp/CIPPSettings.jsx b/src/views/cipp/CIPPSettings.jsx index c1d655ec72c7..67280e3a73ee 100644 --- a/src/views/cipp/CIPPSettings.jsx +++ b/src/views/cipp/CIPPSettings.jsx @@ -595,12 +595,14 @@ const ExcludedTenantsSettings = () => { onConfirm: () => removeExcludeTenant(domain), }) - const handleCPVPermissions = (domain) => + const handleCPVPermissions = (domain, resetsp = false) => ModalService.confirm({ title: 'Refresh Permissions', body:
    Are you sure you want to refresh permissions for {domain.defaultDomainName}?
    , onConfirm: () => - refreshPermissions({ path: `/api/ExecCPVPermissions?TenantFilter=${domain.customerId}` }), + refreshPermissions({ + path: `/api/ExecCPVPermissions?TenantFilter=${domain.customerId}&ResetSP=${resetsp}`, + }), }) const handleConfirmExcludeTenant = (tenant) => { ModalService.confirm({ @@ -681,7 +683,12 @@ const ExcludedTenantsSettings = () => { )} - handleCPVPermissions(row)}> + handleCPVPermissions(row, false)} + > @@ -799,6 +806,13 @@ const ExcludedTenantsSettings = () => { modalMessage: 'Are you sure you want to refresh the CPV permissions for these tenants?', }, + { + label: 'Reset CPV Permissions', + modal: true, + modalUrl: `/api/ExecCPVPermissions?TenantFilter=!customerId&ResetSP=true`, + modalMessage: + 'Are you sure you want to reset the CPV permissions for these tenants? (This will delete the Service Principal and re-add it.)', + }, ], }, isModal: true, From 1ade9c2e0700ccce4af02b598b454013209323f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Fri, 17 Nov 2023 22:49:54 +0100 Subject: [PATCH 168/205] Add Generate TAP button --- src/views/identity/administration/UserActions.jsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/views/identity/administration/UserActions.jsx b/src/views/identity/administration/UserActions.jsx index 9ffa80bb3267..756e349914bf 100644 --- a/src/views/identity/administration/UserActions.jsx +++ b/src/views/identity/administration/UserActions.jsx @@ -10,6 +10,7 @@ import { faEllipsisH, faEnvelope, faEdit, + faKey, } from '@fortawesome/free-solid-svg-icons' import { ActionContentCard } from 'src/components/contentcards' import { useLazyGenericGetRequestQuery } from 'src/store/api/app' @@ -84,6 +85,16 @@ export default function UserActions({ tenantDomain, userId, userEmail, className `/api/ExecDisableUser?TenantFilter=${tenantDomain}&ID=${userId}`, ), }, + { + label: 'Generate TAP', + link: '#', + icon: faKey, + onClick: () => + handleModal( + 'Are you sure you want to generate a Temporary Access Pass for this user?', + `/api/ExecCreateTAP?TenantFilter=${tenantDomain}&ID=${userId}`, + ), + }, { label: 'Reset Password', link: '#', From a9dd5a8843e58b5ed0c1e48034d67a0ad9336f63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20Kj=C3=A6rg=C3=A5rd?= Date: Sat, 18 Nov 2023 00:30:46 +0100 Subject: [PATCH 169/205] Add lots of deploy buttons --- .../connectors/ConnectorList.jsx | 5 ++- .../email-exchange/spamfilter/Spamfilter.jsx | 9 ++++++ .../transport/TransportRules.jsx | 5 ++- .../applications/ApplicationsList.jsx | 31 +++++++++++++++++++ .../autopilot/AutopilotListDevices.jsx | 6 ++++ .../autopilot/AutopilotListProfiles.jsx | 9 ++++++ .../autopilot/AutopilotListStatusPages.jsx | 9 ++++++ src/views/endpoint/intune/MEMListPolicies.jsx | 9 ++++++ .../tenant/conditional/ConditionalAccess.jsx | 10 ++++++ .../tenant/conditional/NamedLocations.jsx | 12 ++++++- 10 files changed, 102 insertions(+), 3 deletions(-) diff --git a/src/views/email-exchange/connectors/ConnectorList.jsx b/src/views/email-exchange/connectors/ConnectorList.jsx index 2b818a2734d5..e4e887adbd71 100644 --- a/src/views/email-exchange/connectors/ConnectorList.jsx +++ b/src/views/email-exchange/connectors/ConnectorList.jsx @@ -143,7 +143,10 @@ const ConnectorList = () => { title="Connector List" titleButton={ <> - + } tenantSelector={true} diff --git a/src/views/email-exchange/spamfilter/Spamfilter.jsx b/src/views/email-exchange/spamfilter/Spamfilter.jsx index f250ea4ef58a..75757fe835c6 100644 --- a/src/views/email-exchange/spamfilter/Spamfilter.jsx +++ b/src/views/email-exchange/spamfilter/Spamfilter.jsx @@ -6,6 +6,7 @@ import { useSelector } from 'react-redux' import { CippPageList } from 'src/components/layout' import { CippActionsOffcanvas } from 'src/components/utilities' import { cellBooleanFormatter, cellDateFormatter, CellTip } from 'src/components/tables' +import { TitleButton } from 'src/components/buttons' const Offcanvas = (row, rowIndex, formatExtraData) => { const tenant = useSelector((state) => state.app.currentTenant) @@ -172,6 +173,14 @@ const SpamFilterList = () => { return ( + + + } tenantSelector={true} datatable={{ reportName: `${tenant?.defaultDomainName}-Spamfilter-list`, diff --git a/src/views/email-exchange/transport/TransportRules.jsx b/src/views/email-exchange/transport/TransportRules.jsx index 77f26875c406..044e2f2fe727 100644 --- a/src/views/email-exchange/transport/TransportRules.jsx +++ b/src/views/email-exchange/transport/TransportRules.jsx @@ -122,7 +122,10 @@ const TransportRulesList = () => { tenantSelector={true} titleButton={ <> - + } datatable={{ diff --git a/src/views/endpoint/applications/ApplicationsList.jsx b/src/views/endpoint/applications/ApplicationsList.jsx index 547f036da607..6df4a06d221a 100644 --- a/src/views/endpoint/applications/ApplicationsList.jsx +++ b/src/views/endpoint/applications/ApplicationsList.jsx @@ -6,6 +6,7 @@ import { CippPageList } from 'src/components/layout' import { faEllipsisV, faGlobeEurope, faPager, faUser } from '@fortawesome/free-solid-svg-icons' import { CippActionsOffcanvas } from 'src/components/utilities' import { CellTip } from 'src/components/tables' +import { TitleButton } from 'src/components/buttons' const Offcanvas = (row, rowIndex, formatExtraData) => { const tenant = useSelector((state) => state.app.currentTenant) @@ -125,9 +126,39 @@ const columns = [ const ApplicationsList = () => { const tenant = useSelector((state) => state.app.currentTenant) + const titleButtons = ( +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + ) + return ( { const tenant = useSelector((state) => state.app.currentTenant) @@ -100,6 +101,11 @@ const AutopilotListDevices = () => { )} + + + } datatable={{ keyField: 'id', reportName: `${tenant?.defaultDomainName}-AutopilotDevices-List`, diff --git a/src/views/endpoint/autopilot/AutopilotListProfiles.jsx b/src/views/endpoint/autopilot/AutopilotListProfiles.jsx index a553dd63b825..659ef1a81d15 100644 --- a/src/views/endpoint/autopilot/AutopilotListProfiles.jsx +++ b/src/views/endpoint/autopilot/AutopilotListProfiles.jsx @@ -6,6 +6,7 @@ import { faEye } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { CippCodeBlock, CippOffcanvas } from 'src/components/utilities' import { CippPageList } from 'src/components/layout' +import { TitleButton } from 'src/components/buttons' const Offcanvas = (row, rowIndex, formatExtraData) => { const [visible, setVisible] = useState(false) @@ -88,6 +89,14 @@ const AutopilotListProfiles = () => { return ( + + + } tenantSelector={true} datatable={{ reportName: `${tenant?.defaultDomainName}-AutopilotProfile-List`, diff --git a/src/views/endpoint/autopilot/AutopilotListStatusPages.jsx b/src/views/endpoint/autopilot/AutopilotListStatusPages.jsx index 04f450f2e205..352ecfee0800 100644 --- a/src/views/endpoint/autopilot/AutopilotListStatusPages.jsx +++ b/src/views/endpoint/autopilot/AutopilotListStatusPages.jsx @@ -2,6 +2,7 @@ import React from 'react' import { useSelector } from 'react-redux' import { CellTip, cellBooleanFormatter } from 'src/components/tables' import { CippPageList } from 'src/components/layout' +import { TitleButton } from 'src/components/buttons' const columns = [ { @@ -61,6 +62,14 @@ const AutopilotListESP = () => { return ( + + + } tenantSelector={true} datatable={{ reportName: `${tenant?.defaultDomainName}-AutopilotStatusPages-List`, diff --git a/src/views/endpoint/intune/MEMListPolicies.jsx b/src/views/endpoint/intune/MEMListPolicies.jsx index 31e138328662..b5e47974e0c8 100644 --- a/src/views/endpoint/intune/MEMListPolicies.jsx +++ b/src/views/endpoint/intune/MEMListPolicies.jsx @@ -6,6 +6,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { CippPageList } from 'src/components/layout' import { Link } from 'react-router-dom' import { CippActionsOffcanvas } from 'src/components/utilities' +import { TitleButton } from 'src/components/buttons' const Actions = (row, rowIndex, formatExtraData) => { const [ocVisible, setOCVisible] = useState(false) @@ -95,6 +96,14 @@ const IntuneList = () => { return ( + + + } tenantSelector={true} datatable={{ path: '/api/ListIntunePolicy?type=ESP', diff --git a/src/views/tenant/conditional/ConditionalAccess.jsx b/src/views/tenant/conditional/ConditionalAccess.jsx index 54df028702e6..0684781a6928 100644 --- a/src/views/tenant/conditional/ConditionalAccess.jsx +++ b/src/views/tenant/conditional/ConditionalAccess.jsx @@ -13,6 +13,8 @@ import { useSelector } from 'react-redux' import { CippPageList } from 'src/components/layout' import { CippActionsOffcanvas } from 'src/components/utilities' import { cellDateFormatter, CellTip } from 'src/components/tables' +import { TitleButton } from 'src/components/buttons' + function DateNotNull(date) { if (date === null || date === undefined || date === '' || date === 'undefined') { return ' ' @@ -217,6 +219,14 @@ const ConditionalAccessList = () => { return ( + + + } tenantSelector={false} datatable={{ reportName: `${tenant?.defaultDomainName}-ConditionalAccess-List`, diff --git a/src/views/tenant/conditional/NamedLocations.jsx b/src/views/tenant/conditional/NamedLocations.jsx index 990301199ba2..b7f1ebb0f68c 100644 --- a/src/views/tenant/conditional/NamedLocations.jsx +++ b/src/views/tenant/conditional/NamedLocations.jsx @@ -13,6 +13,8 @@ import { useSelector } from 'react-redux' import { CippPageList } from 'src/components/layout' import { CippActionsOffcanvas } from 'src/components/utilities' import { cellBooleanFormatter, cellDateFormatter, CellTip } from 'src/components/tables' +import { TitleButton } from 'src/components/buttons' + function DateNotNull(date) { if (date === null || date === undefined || date === '' || date === 'undefined') { return ' ' @@ -67,7 +69,15 @@ const NamedLocationsList = () => { return ( + + + } tenantSelector={false} datatable={{ reportName: `${tenant?.defaultDomainName}-ConditionalAccess-List`, From cb06fa61778e603ef8522fa74116d332965fa05b Mon Sep 17 00:00:00 2001 From: John Duprey Date: Fri, 17 Nov 2023 23:56:10 -0500 Subject: [PATCH 170/205] RFF Select Search update - Add onInputChange parameter - Add retainInput parameter for preventing menu close/blur to clear out the input value - Debounce input change callback to prevent excessive API calls --- src/components/forms/RFFComponents.jsx | 30 +++++++++++++++++-- .../tools/MailboxRestoreWizard.jsx | 14 ++++++--- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/components/forms/RFFComponents.jsx b/src/components/forms/RFFComponents.jsx index 414a472b6c82..684f50717f77 100644 --- a/src/components/forms/RFFComponents.jsx +++ b/src/components/forms/RFFComponents.jsx @@ -11,13 +11,12 @@ import { CTooltip, } from '@coreui/react' import Select from 'react-select' -import AsyncSelect from 'react-select/async' import { Field } from 'react-final-form' import { FieldArray } from 'react-final-form-arrays' -import React from 'react' +import React, { useState, useMemo, useRef } from 'react' import PropTypes from 'prop-types' -import { useRef } from 'react' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { debounce } from 'lodash' /* wrapper classes for React Final Form with CoreUI @@ -377,14 +376,34 @@ export const RFFSelectSearch = ({ placeholder, validate, onChange, + onInputChange, multi, disabled = false, + retainInput = false, }) => { + const [inputText, setInputText] = useState('') const selectSearchvalues = values.map((val) => ({ value: val.value, label: val.name, })) + const setOnInputChange = (e, action) => { + if (retainInput && !e && action.action === 'menu-close') return + if (retainInput && action.action === 'input-blur') return + + if (retainInput && action.action === 'input-change') { + setInputText(e) + } + + if (onInputChange) { + debounceOnInputChange(e) + } + } + + const debounceOnInputChange = useMemo(() => { + return debounce(onInputChange, 1000) + }, []) + return ( {({ meta, input }) => { @@ -404,6 +423,8 @@ export const RFFSelectSearch = ({ placeholder={placeholder} isMulti={multi} onChange={onChange} + onInputChange={debounceOnInputChange} + inputValue={inputText} /> )} {!onChange && ( @@ -417,7 +438,9 @@ export const RFFSelectSearch = ({ disabled={disabled} options={selectSearchvalues} placeholder={placeholder} + onInputChange={setOnInputChange} isMulti={multi} + inputValue={inputText} /> )} {meta.error && meta.touched && {meta.error}} @@ -432,6 +455,7 @@ RFFSelectSearch.propTypes = { ...sharedPropTypes, multi: PropTypes.bool, placeholder: PropTypes.string, + onInputChange: PropTypes.func, values: PropTypes.arrayOf(PropTypes.shape({ value: PropTypes.string, name: PropTypes.string })) .isRequired, } diff --git a/src/views/email-exchange/tools/MailboxRestoreWizard.jsx b/src/views/email-exchange/tools/MailboxRestoreWizard.jsx index 5f0f6d95de26..4725ac6586b0 100644 --- a/src/views/email-exchange/tools/MailboxRestoreWizard.jsx +++ b/src/views/email-exchange/tools/MailboxRestoreWizard.jsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useState } from 'react' import { CCallout, CCol, CListGroup, CListGroupItem, CRow, CSpinner } from '@coreui/react' import { Field, FormSpy } from 'react-final-form' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' @@ -38,6 +38,7 @@ Error.propTypes = { const MailboxRestoreWizard = () => { const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) + const [anrFilter, setAnrFilter] = useState('') const { data: sourceMailboxes = [], isFetching: sMailboxesIsFetching, @@ -52,11 +53,15 @@ const MailboxRestoreWizard = () => { error: tMailboxError, } = useGenericGetRequestQuery({ path: '/api/ListMailboxes', - params: { TenantFilter: tenantDomain }, + params: { TenantFilter: tenantDomain, Anr: anrFilter }, }) const currentSettings = useSelector((state) => state.app) const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() + const handleAnrFilter = (value) => { + setAnrFilter(value) + } + const handleSubmit = async (values) => { const shippedValues = { TenantFilter: tenantDomain, @@ -118,12 +123,13 @@ const MailboxRestoreWizard = () => {
    ({ value: mbx.ExchangeGuid, name: `${mbx.displayName} <${mbx.UPN}>`, }))} - placeholder={!tMailboxesIsFetching ? 'Select mailbox' : 'Loading...'} - name="TargetMailbox" + retainInput={true} + onInputChange={handleAnrFilter} /> {sMailboxError && Failed to load source mailboxes}
    From c5553e51c207903d8385af4fe1c8d310ed96a5d9 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sat, 18 Nov 2023 00:13:03 -0500 Subject: [PATCH 171/205] Add loading indicator fix issue when oninputchange function not defined --- src/components/forms/RFFComponents.jsx | 15 ++++++++++----- .../email-exchange/tools/MailboxRestoreWizard.jsx | 2 ++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/components/forms/RFFComponents.jsx b/src/components/forms/RFFComponents.jsx index 684f50717f77..acca2bd06ef0 100644 --- a/src/components/forms/RFFComponents.jsx +++ b/src/components/forms/RFFComponents.jsx @@ -380,6 +380,7 @@ export const RFFSelectSearch = ({ multi, disabled = false, retainInput = false, + isLoading = false, }) => { const [inputText, setInputText] = useState('') const selectSearchvalues = values.map((val) => ({ @@ -387,6 +388,12 @@ export const RFFSelectSearch = ({ label: val.name, })) + const debounceOnInputChange = useMemo(() => { + if (onInputChange) { + return debounce(onInputChange, 1000) + } + }, []) + const setOnInputChange = (e, action) => { if (retainInput && !e && action.action === 'menu-close') return if (retainInput && action.action === 'input-blur') return @@ -394,16 +401,11 @@ export const RFFSelectSearch = ({ if (retainInput && action.action === 'input-change') { setInputText(e) } - if (onInputChange) { debounceOnInputChange(e) } } - const debounceOnInputChange = useMemo(() => { - return debounce(onInputChange, 1000) - }, []) - return ( {({ meta, input }) => { @@ -425,6 +427,7 @@ export const RFFSelectSearch = ({ onChange={onChange} onInputChange={debounceOnInputChange} inputValue={inputText} + isLoading={isLoading} /> )} {!onChange && ( @@ -441,6 +444,7 @@ export const RFFSelectSearch = ({ onInputChange={setOnInputChange} isMulti={multi} inputValue={inputText} + isLoading={isLoading} /> )} {meta.error && meta.touched && {meta.error}} @@ -456,6 +460,7 @@ RFFSelectSearch.propTypes = { multi: PropTypes.bool, placeholder: PropTypes.string, onInputChange: PropTypes.func, + isLoading: PropTypes.bool, values: PropTypes.arrayOf(PropTypes.shape({ value: PropTypes.string, name: PropTypes.string })) .isRequired, } diff --git a/src/views/email-exchange/tools/MailboxRestoreWizard.jsx b/src/views/email-exchange/tools/MailboxRestoreWizard.jsx index 4725ac6586b0..f9937061d2d2 100644 --- a/src/views/email-exchange/tools/MailboxRestoreWizard.jsx +++ b/src/views/email-exchange/tools/MailboxRestoreWizard.jsx @@ -109,6 +109,7 @@ const MailboxRestoreWizard = () => { }))} placeholder={!sMailboxesIsFetching ? 'Select mailbox' : 'Loading...'} name="SourceMailbox" + isLoading={sMailboxesIsFetching} /> {sMailboxError && Failed to load source mailboxes}
  • @@ -130,6 +131,7 @@ const MailboxRestoreWizard = () => { }))} retainInput={true} onInputChange={handleAnrFilter} + isLoading={tMailboxesIsFetching} /> {sMailboxError && Failed to load source mailboxes} From 5d7b9ad939f8f590767308c595d19f06fbb86ded Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sat, 18 Nov 2023 00:29:34 -0500 Subject: [PATCH 172/205] Speed up mailbox queries Fix issue with selected option --- src/components/forms/RFFComponents.jsx | 7 ++----- .../email-exchange/tools/MailboxRestoreWizard.jsx | 10 +++------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/components/forms/RFFComponents.jsx b/src/components/forms/RFFComponents.jsx index acca2bd06ef0..197c2a82a3c7 100644 --- a/src/components/forms/RFFComponents.jsx +++ b/src/components/forms/RFFComponents.jsx @@ -395,13 +395,10 @@ export const RFFSelectSearch = ({ }, []) const setOnInputChange = (e, action) => { - if (retainInput && !e && action.action === 'menu-close') return - if (retainInput && action.action === 'input-blur') return - - if (retainInput && action.action === 'input-change') { + if (retainInput && action.action !== 'set-value') { setInputText(e) } - if (onInputChange) { + if (onInputChange && action.action === 'input-change') { debounceOnInputChange(e) } } diff --git a/src/views/email-exchange/tools/MailboxRestoreWizard.jsx b/src/views/email-exchange/tools/MailboxRestoreWizard.jsx index f9937061d2d2..f410a407251a 100644 --- a/src/views/email-exchange/tools/MailboxRestoreWizard.jsx +++ b/src/views/email-exchange/tools/MailboxRestoreWizard.jsx @@ -45,7 +45,7 @@ const MailboxRestoreWizard = () => { error: sMailboxError, } = useGenericGetRequestQuery({ path: '/api/ListMailboxes', - params: { TenantFilter: tenantDomain, SoftDeletedMailbox: true }, + params: { TenantFilter: tenantDomain, SoftDeletedMailbox: true, SkipLicense: true }, }) const { data: targetMailboxes = [], @@ -53,15 +53,11 @@ const MailboxRestoreWizard = () => { error: tMailboxError, } = useGenericGetRequestQuery({ path: '/api/ListMailboxes', - params: { TenantFilter: tenantDomain, Anr: anrFilter }, + params: { TenantFilter: tenantDomain, Anr: anrFilter, SkipLicense: true }, }) const currentSettings = useSelector((state) => state.app) const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() - const handleAnrFilter = (value) => { - setAnrFilter(value) - } - const handleSubmit = async (values) => { const shippedValues = { TenantFilter: tenantDomain, @@ -130,7 +126,7 @@ const MailboxRestoreWizard = () => { name: `${mbx.displayName} <${mbx.UPN}>`, }))} retainInput={true} - onInputChange={handleAnrFilter} + onInputChange={setAnrFilter} isLoading={tMailboxesIsFetching} /> {sMailboxError && Failed to load source mailboxes} From f6831b399fba5671a6591e3351d03a2329e061d0 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sat, 18 Nov 2023 01:22:36 -0500 Subject: [PATCH 173/205] Add Graph User filter builder --- .../utilities/CippGraphUserFilter.jsx | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/components/utilities/CippGraphUserFilter.jsx diff --git a/src/components/utilities/CippGraphUserFilter.jsx b/src/components/utilities/CippGraphUserFilter.jsx new file mode 100644 index 000000000000..5048796e7c34 --- /dev/null +++ b/src/components/utilities/CippGraphUserFilter.jsx @@ -0,0 +1,30 @@ +function CippGraphUserFilter(query) { + const properties = [ + 'displayName', + 'givenName', + 'surname', + 'userPrincipalName', + 'mail', + 'mailNickname', + ] + const endsWithProperties = ['mail', 'otherMails', 'userPrincipalName', 'proxyAddresses'] + const multiValueProperties = ['proxyAddresses'] + + var filterConditions = [] + properties.map((property) => { + filterConditions.push(`startsWith(${property},'${query}')`) + if (endsWithProperties.includes(property)) { + filterConditions.push(`endsWith(${property},'${query}')`) + } + }) + multiValueProperties.map((property) => { + filterConditions.push(`${property}/any(a:startsWith(a,'${query}'))`) + if (endsWithProperties.includes(property)) { + filterConditions.push(`${property}/any(a:endsWith(a,'${query}'))`) + } + }) + + return filterConditions.join(' or ') +} + +export default CippGraphUserFilter From a7055b754dfd1b36195abae09c5e75da721b6760 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 18 Nov 2023 16:18:10 +0100 Subject: [PATCH 174/205] removed console.log --- src/store/api/baseQuery.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/store/api/baseQuery.js b/src/store/api/baseQuery.js index b999c8b6b272..493b6d012bab 100644 --- a/src/store/api/baseQuery.js +++ b/src/store/api/baseQuery.js @@ -23,7 +23,6 @@ export const axiosQuery = async ({ path, method = 'get', params, data, hideToast } } export function abortRequestSafe() { - console.log(newController) newController.abort() newController = new AbortController() } From cc2da9bf83c63267b8434f09b2584930ffd40102 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 18 Nov 2023 16:18:45 +0100 Subject: [PATCH 175/205] removed console logging --- src/components/tables/CippTable.jsx | 2 +- src/views/tenant/administration/TenantOffboardingWizard.jsx | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/tables/CippTable.jsx b/src/components/tables/CippTable.jsx index 74dcdabfaa42..572def55792a 100644 --- a/src/components/tables/CippTable.jsx +++ b/src/components/tables/CippTable.jsx @@ -168,7 +168,7 @@ export default function CippTable({ ) } if (dropDownInfo.isSuccess) { - console.log(modalContent) + //console.log(modalContent) handleModal( modalContent.item.modalMessage, modalContent.item.modalUrl, diff --git a/src/views/tenant/administration/TenantOffboardingWizard.jsx b/src/views/tenant/administration/TenantOffboardingWizard.jsx index 1024ea62c54f..5bc58f48713e 100644 --- a/src/views/tenant/administration/TenantOffboardingWizard.jsx +++ b/src/views/tenant/administration/TenantOffboardingWizard.jsx @@ -56,7 +56,6 @@ const TenantOffboardingWizard = () => { wizardTitle="Tenant Offboarding Wizard" > - {console.log(currentSettings.offboardingDefaults)}

    Step 1

    Choose a tenant
    From 6c145b7abb42ba7af61232ea65c271be7195002c Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 18 Nov 2023 16:57:10 +0100 Subject: [PATCH 176/205] fixes input issue --- src/components/forms/RFFComponents.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/forms/RFFComponents.jsx b/src/components/forms/RFFComponents.jsx index 197c2a82a3c7..9f924a074cfa 100644 --- a/src/components/forms/RFFComponents.jsx +++ b/src/components/forms/RFFComponents.jsx @@ -379,7 +379,7 @@ export const RFFSelectSearch = ({ onInputChange, multi, disabled = false, - retainInput = false, + retainInput = true, isLoading = false, }) => { const [inputText, setInputText] = useState('') From bc2bf024ee5087bf0a593729c20585fbc03626b0 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 18 Nov 2023 17:07:56 +0100 Subject: [PATCH 177/205] fixes bug with unselected offboarding --- src/views/identity/administration/OffboardingWizard.jsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/views/identity/administration/OffboardingWizard.jsx b/src/views/identity/administration/OffboardingWizard.jsx index 29d3b369ee23..982afc224574 100644 --- a/src/views/identity/administration/OffboardingWizard.jsx +++ b/src/views/identity/administration/OffboardingWizard.jsx @@ -74,8 +74,8 @@ const OffboardingWizard = () => { removeMobile: values.RemoveMobile, keepCopy: values.keepCopy, removePermissions: values.removePermissions, - Scheduled: values.Scheduled.enabled ? { enabled: true, date: unixTime } : { enabled: false }, - PostExecution: values.Scheduled.enabled + Scheduled: values.Scheduled?.enabled ? { enabled: true, date: unixTime } : { enabled: false }, + PostExecution: values.Scheduled?.enabled ? { webhook: values.webhook, psa: values.psa, email: values.email } : '', } @@ -94,7 +94,6 @@ const OffboardingWizard = () => { title="Tenant Choice" description="Choose the tenant in which to offboard a user" > - {console.log(currentSettings.offboardingDefaults)}

    Step 1

    Choose a tenant
    From 67231c13b490f8d1ae203ba71b20f5cea4ea4ec8 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 18 Nov 2023 18:05:28 +0100 Subject: [PATCH 178/205] fixes tenant selector button --- src/components/utilities/TenantSelector.jsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/utilities/TenantSelector.jsx b/src/components/utilities/TenantSelector.jsx index 570f2f30c002..dee3daa1bd52 100644 --- a/src/components/utilities/TenantSelector.jsx +++ b/src/components/utilities/TenantSelector.jsx @@ -77,13 +77,13 @@ const TenantSelector = ({ action, showAllTenantSelector = true, NavSelector = fa <> {NavSelector && ( <> + {currentTenant?.customerId !== 'AllTenants' ? ( + + ) : ( + + )} - {currentTenant?.customerId !== 'AllTenants' ? ( - - ) : ( - - )} {currentTenant?.defaultDomainName ? ( <> {currentTenant.displayName} From ba73c1e06c48f0b25dced08094f1ca0dc76510fb Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sat, 18 Nov 2023 13:19:57 -0500 Subject: [PATCH 179/205] Graph User Search --- src/components/tables/CippTable.jsx | 7 +++- src/views/identity/administration/Users.jsx | 43 +++++++++++++++++++-- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/components/tables/CippTable.jsx b/src/components/tables/CippTable.jsx index 74dcdabfaa42..666280a1abd9 100644 --- a/src/components/tables/CippTable.jsx +++ b/src/components/tables/CippTable.jsx @@ -151,9 +151,14 @@ export default function CippTable({ const [modalContent, setModalContent] = useState(null) //get the search params called "tableFilter" and set the filter to that. const [searchParams, setSearchParams] = useSearchParams() - if (searchParams.get('tableFilter') && !filterviaURL && !isModal) { + if ( + searchParams.get('tableFilter') && + (!filterviaURL || searchParams.get('updateTableFilter')) && + !isModal + ) { setFilterText(searchParams.get('tableFilter')) setFilterviaURL(true) + searchParams.delete('updateTableFilter') } useEffect(() => { diff --git a/src/views/identity/administration/Users.jsx b/src/views/identity/administration/Users.jsx index 40bf15590a8e..07a2df987cb7 100644 --- a/src/views/identity/administration/Users.jsx +++ b/src/views/identity/administration/Users.jsx @@ -1,15 +1,18 @@ import React, { useEffect, useState } from 'react' -import { CButton } from '@coreui/react' -import { Link } from 'react-router-dom' +import { CButton, CFormInput } from '@coreui/react' +import { Link, useSearchParams } from 'react-router-dom' import { useSelector } from 'react-redux' import { faEdit, faEllipsisV, faEye } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { cellBooleanFormatter, CellTip } from 'src/components/tables' import { CippPageList } from 'src/components/layout' import { TitleButton } from 'src/components/buttons' -import { CippActionsOffcanvas } from 'src/components/utilities' +import { CippActionsOffcanvas, CippCodeBlock } from 'src/components/utilities' import { cellLicenseFormatter, CellLicense } from 'src/components/tables/CellLicense' import M365Licenses from 'src/data/M365Licenses' +import CippGraphUserFilter from 'src/components/utilities/CippGraphUserFilter' +import { ModalService } from 'src/components/utilities' +import { useRef } from 'react' const Offcanvas = (row, rowIndex, formatExtraData) => { const tenant = useSelector((state) => state.app.currentTenant) @@ -241,8 +244,40 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { ) } +const UserSearch = () => { + const [searchParams, setSearchParams] = useSearchParams() + const inputRef = useRef() + + function handleModal() { + ModalService.confirm({ + body: ( + <> + + + ), + title: 'User Search', + onConfirm: () => { + if (inputRef.current.value !== '') { + setSearchParams({ + tableFilter: 'Graph: ' + CippGraphUserFilter(inputRef?.current?.value), + updateTableFilter: true, + }) + } + }, + confirmLabel: 'Search', + }) + } + + return ( + handleModal()}> + + + ) +} + const Users = (row) => { const [tenantColumnSet, setTenantColumn] = useState(true) + const columns = [ { name: 'Tenant', @@ -342,6 +377,7 @@ const Users = (row) => { ) + return ( { }, tableProps: { selectableRows: true, + actions: [], actionsList: [ { label: 'Convert to Shared Mailbox', From bf387bdff71135ddcdd2d03b3a13ff4d3fc3d648 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 18 Nov 2023 19:21:23 +0100 Subject: [PATCH 180/205] fixes tenant selector --- src/components/utilities/TenantSelector.jsx | 40 ++++++++------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/src/components/utilities/TenantSelector.jsx b/src/components/utilities/TenantSelector.jsx index dee3daa1bd52..47115d7d6fca 100644 --- a/src/components/utilities/TenantSelector.jsx +++ b/src/components/utilities/TenantSelector.jsx @@ -82,31 +82,21 @@ const TenantSelector = ({ action, showAllTenantSelector = true, NavSelector = fa ) : ( )} - - - {currentTenant?.defaultDomainName ? ( - <> - {currentTenant.displayName} - - ) : ( - placeholder - )} - - - ({ - value: customerId, - name: `${displayName} (${defaultDomainName})`, - }))} - /> - - +
    + ({ + value: customerId, + name: `${displayName} (${defaultDomainName})`, + }))} + /> +
    )} {!NavSelector && ( From ea34f1c6c3e0574ed0d6c23e393028a959781b70 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sat, 18 Nov 2023 15:21:36 -0500 Subject: [PATCH 181/205] Global Admin modal table --- src/components/buttons/TableModalButton.jsx | 8 ++---- src/views/home/Home.jsx | 32 +++++++++++++++------ 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/src/components/buttons/TableModalButton.jsx b/src/components/buttons/TableModalButton.jsx index 725405e7629e..3d42e4729954 100644 --- a/src/components/buttons/TableModalButton.jsx +++ b/src/components/buttons/TableModalButton.jsx @@ -5,7 +5,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faCheckCircle } from '@fortawesome/free-solid-svg-icons' import { cellGenericFormatter } from '../tables/CellGenericFormat' -export default function TableModalButton({ data, title, className }) { +export default function TableModalButton({ data, title, className, countOnly = false, ...input }) { const handleTable = (data) => { const QueryColumns = [] const columns = Object.keys(data[0]).map((key) => { @@ -31,10 +31,8 @@ export default function TableModalButton({ data, title, className }) { const buttonClass = 'btn ' + className return ( - handleTable(data)}> - <> - {title} ({data.length}) - + handleTable(data)}> + <>{countOnly == true ? data.length : `${title} (${data.length})`} ) } diff --git a/src/views/home/Home.jsx b/src/views/home/Home.jsx index 107fda99197a..ee818bb39392 100644 --- a/src/views/home/Home.jsx +++ b/src/views/home/Home.jsx @@ -29,6 +29,7 @@ import { CellDelegatedPrivilege } from 'src/components/tables/CellDelegatedPrivi import Portals from 'src/data/portals' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { Link } from 'react-router-dom' +import { TableModalButton } from 'src/components/buttons' const Home = () => { const [visible, setVisible] = useState(false) @@ -54,6 +55,15 @@ const Home = () => { params: { tenantFilter: currentTenant.defaultDomainName }, }) + const GlobalAdminList = useGenericGetRequestQuery({ + path: '/api/ListGraphRequest', + params: { + tenantFilter: currentTenant.defaultDomainName, + Endpoint: "/directoryRoles(roleTemplateId='62e90394-69f5-4237-9190-012177145e10')/members", + $select: 'displayName,userPrincipalName,accountEnabled', + }, + }) + const { data: sharepoint, isLoading: isLoadingSPQuota, @@ -192,14 +202,20 @@ const Home = () => { - -
    - {issuccessUserCounts && !isFetchingUserCount ? dashboard?.Gas : } -
    + {GlobalAdminList.isSuccess ? ( + <> + + + ) : ( + + )}
    From 40b93f5d938e05eb14ee114f4594f72dad466edb Mon Sep 17 00:00:00 2001 From: rvdwegen Date: Sat, 18 Nov 2023 21:24:12 +0100 Subject: [PATCH 182/205] Add option to add owners/members to certain groups --- .../identity/administration/AddGroup.jsx | 76 +++++++++++++++---- 1 file changed, 61 insertions(+), 15 deletions(-) diff --git a/src/views/identity/administration/AddGroup.jsx b/src/views/identity/administration/AddGroup.jsx index 540ddcfa4202..9faa8544bca7 100644 --- a/src/views/identity/administration/AddGroup.jsx +++ b/src/views/identity/administration/AddGroup.jsx @@ -19,10 +19,12 @@ import { RFFCFormRadio, RFFCFormSelect, RFFCFormTextarea, + RFFSelectSearch, } from 'src/components/forms' import { CippPage } from 'src/components/layout/CippPage' import { useLazyGenericPostRequestQuery } from 'src/store/api/app' import { useListDomainsQuery } from 'src/store/api/domains' +import { useListUsersQuery } from 'src/store/api/users' import { useSelector } from 'react-redux' const AddGroup = () => { @@ -33,6 +35,12 @@ const AddGroup = () => { error: domainsError, } = useListDomainsQuery({ tenantDomain }) + const { + data: users = [], + isFetching: usersIsFetching, + error: usersError, + } = useListUsersQuery({ tenantDomain }) + const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const onSubmit = (values) => { const shippedValues = { @@ -44,10 +52,13 @@ const AddGroup = () => { groupType: values.groupType, allowExternal: values.allowExternal, membershipRules: values.membershipRules, + AddMember: values.AddMembers, + AddOwner: values.AddOwners, } //window.alert(JSON.stringify(shippedValues)) genericPostRequest({ path: '/api/AddGroup', values: shippedValues }) } + return ( @@ -90,6 +101,41 @@ const AddGroup = () => { )} {domainsError && Failed to load list of domains} + + + + + ({ + value: user.userPrincipalName, + name: `${user.displayName} - ${user.userPrincipalName}`, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="AddOwners" + /> + {usersError && Failed to load list of users} + + + + + ({ + value: user.userPrincipalName, + name: `${user.displayName} - ${user.userPrincipalName}`, + }))} + placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} + name="AddMembers" + /> + {usersError && Failed to load list of users} + + + +
    + @@ -103,22 +149,22 @@ const AddGroup = () => { label="Mail Enabled Security Group" value="security" /> + + + + + + - - - - - - From f15949cc97b00856b916119446d9b962a02a1519 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sat, 18 Nov 2023 21:47:38 +0100 Subject: [PATCH 183/205] some css fixes --- src/components/utilities/TenantSelector.jsx | 10 ++++++---- src/scss/_tenantselector.scss | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/components/utilities/TenantSelector.jsx b/src/components/utilities/TenantSelector.jsx index 47115d7d6fca..3abcc5b9c46f 100644 --- a/src/components/utilities/TenantSelector.jsx +++ b/src/components/utilities/TenantSelector.jsx @@ -4,7 +4,7 @@ import { useDispatch, useSelector } from 'react-redux' import PropTypes from 'prop-types' import { useListTenantsQuery } from 'src/store/api/tenants' import { setCurrentTenant } from 'src/store/features/app' -import { CDropdown, CDropdownMenu, CDropdownToggle } from '@coreui/react' +import { CButton, CDropdown, CDropdownMenu, CDropdownToggle } from '@coreui/react' import { useNavigate, useSearchParams } from 'react-router-dom' import { queryString } from 'src/helpers' import { faBuilding } from '@fortawesome/free-solid-svg-icons' @@ -80,12 +80,14 @@ const TenantSelector = ({ action, showAllTenantSelector = true, NavSelector = fa {currentTenant?.customerId !== 'AllTenants' ? ( ) : ( - + + + )} -
    +
    Date: Sat, 18 Nov 2023 22:03:05 +0100 Subject: [PATCH 184/205] fixes issues with footer css and dropdowns --- src/scss/_custom.scss | 3 ++- src/scss/_themes.scss | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/scss/_custom.scss b/src/scss/_custom.scss index 32ee638446e3..09dfc85fe1a4 100644 --- a/src/scss/_custom.scss +++ b/src/scss/_custom.scss @@ -459,11 +459,12 @@ h3.underline:after { } /* Footer */ + .footer { p { margin-bottom: 0; } - + background: var(--cui-body-bg); img { max-height: 2rem; } diff --git a/src/scss/_themes.scss b/src/scss/_themes.scss index c3e48952a11d..b7c6ec9c8bcf 100644 --- a/src/scss/_themes.scss +++ b/src/scss/_themes.scss @@ -411,7 +411,7 @@ --text-medium-emphasis: rgba(255, 255, 255, 0.6); --cui-emphasis-color-rgb: rgba(255, 255, 255, 0.6); --cui-input-placeholder-color: rgba(255, 255, 255, 0.6); - --cui-tertiary-bg: var(--cyberdrain-dark); + //--cui-tertiary-bg: var(--cyberdrain-dark); // Core UI Impact theme variables. --cui-header-hover-color: var(--cyberdrain-light); --cui-header-active-color: var(--cyberdrain-accent-blue); From f295475bd28099258576bfe9cab6d5e7d0a3f7da Mon Sep 17 00:00:00 2001 From: Kevin Grube Date: Sat, 18 Nov 2023 13:28:44 -0800 Subject: [PATCH 185/205] update vite assetsDir, add browserslist integration. specify minimum version of npm required for `overrides` package setting. --- package-lock.json | 36 +++++++++++++++++++++++++++++------- package.json | 3 ++- vite.config.js | 5 +++++ 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ac6288c2dec0..9208630b1180 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,6 +73,7 @@ "@types/react-helmet": "^6.1.5", "@vitejs/plugin-react": "^4.1.1", "auto-changelog": "~2.3.0", + "browserslist-to-esbuild": "^1.2.0", "eslint": "^8.0.0", "eslint-config-prettier": "^8.3.0", "eslint-config-react-app": "^7.0.1", @@ -89,7 +90,7 @@ }, "engines": { "node": "18", - "npm": ">=8" + "npm": ">=8.3.0" } }, "node_modules/@ampproject/remapping": { @@ -4321,6 +4322,18 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/browserslist-to-esbuild": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-1.2.0.tgz", + "integrity": "sha512-ftrrbI/VHBgEnmnSyhkqvQVMp6jAKybfs0qMIlm7SLBrQTGMsdCIP4q3BoKeLsZTBQllIQtY9kbxgRYV2WU47g==", + "dev": true, + "dependencies": { + "browserslist": "^4.17.3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/btoa": { "version": "1.2.1", "license": "(MIT OR Apache-2.0)", @@ -4409,9 +4422,9 @@ "license": "MIT" }, "node_modules/caniuse-lite": { - "version": "1.0.30001517", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", - "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", "funding": [ { "type": "opencollective", @@ -12742,6 +12755,15 @@ "update-browserslist-db": "^1.0.11" } }, + "browserslist-to-esbuild": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-1.2.0.tgz", + "integrity": "sha512-ftrrbI/VHBgEnmnSyhkqvQVMp6jAKybfs0qMIlm7SLBrQTGMsdCIP4q3BoKeLsZTBQllIQtY9kbxgRYV2WU47g==", + "dev": true, + "requires": { + "browserslist": "^4.17.3" + } + }, "btoa": { "version": "1.2.1" }, @@ -12788,9 +12810,9 @@ "version": "0.1.0" }, "caniuse-lite": { - "version": "1.0.30001517", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", - "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==" + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==" }, "canvg": { "version": "3.0.10", diff --git a/package.json b/package.json index fcb71fdc32f4..65b50b8dd3df 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,7 @@ "@types/react-helmet": "^6.1.5", "@vitejs/plugin-react": "^4.1.1", "auto-changelog": "~2.3.0", + "browserslist-to-esbuild": "^1.2.0", "eslint": "^8.0.0", "eslint-config-prettier": "^8.3.0", "eslint-config-react-app": "^7.0.1", @@ -106,7 +107,7 @@ }, "engines": { "node": "18", - "npm": ">=8" + "npm": ">=8.3.0" }, "overrides": { "react": "^18.2.0", diff --git a/vite.config.js b/vite.config.js index cd32c2f77566..7e673fc3b337 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,15 +1,20 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import { resolve } from 'path' +import browserslistToEsbuild from 'browserslist-to-esbuild' // https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], build: { outDir: 'build', + assetsDir: 'static', + target: browserslistToEsbuild(), }, server: { port: 3000, + // since swa is bound to this port, kill the dev server if it's in use + strictPort: true, host: true, }, resolve: { From e43ae06a14cf1f82639dfa939dfd4717db4b10b2 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sat, 18 Nov 2023 18:47:52 -0500 Subject: [PATCH 186/205] Clear graph filter --- src/components/tables/CippTable.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/tables/CippTable.jsx b/src/components/tables/CippTable.jsx index c47f6094635f..76c53cb7cde8 100644 --- a/src/components/tables/CippTable.jsx +++ b/src/components/tables/CippTable.jsx @@ -643,6 +643,7 @@ export default function CippTable({ setFilterText(e.target.value)} onFilterPreset={(e) => { + if (e === '') setGraphFilter('') setFilterText(e) }} onClear={handleClear} From 6bdc9fb9b7cd89b3ea5c0514a03580e89b318fd4 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sun, 19 Nov 2023 01:28:08 +0100 Subject: [PATCH 187/205] Fixes actions --- src/components/tables/CippTable.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/tables/CippTable.jsx b/src/components/tables/CippTable.jsx index c47f6094635f..f02e3b1cf83d 100644 --- a/src/components/tables/CippTable.jsx +++ b/src/components/tables/CippTable.jsx @@ -664,6 +664,7 @@ export default function CippTable({ data, columns, reportName, + selectedRows, ]) const tablePageSize = useSelector((state) => state.app.tablePageSize) return ( From 7153abde379cbd6b277d307d440217635a825bfc Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sat, 18 Nov 2023 19:54:47 -0500 Subject: [PATCH 188/205] Replace lodash with lodash-es --- package-lock.json | 9 +++++++-- package.json | 2 ++ src/components/forms/RFFComponents.jsx | 2 +- src/components/tables/CippTable.jsx | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9208630b1180..9a180c11e9e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,6 +39,8 @@ "javascript-time-ago": "^2.5.9", "jspdf": "^2.4.0", "jspdf-autotable": "^3.5.23", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "moment": "^2.29.1", "prop-types": "^15.7.2", "react": "^18.2.0", @@ -7122,7 +7124,8 @@ }, "node_modules/lodash": { "version": "4.17.21", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash-es": { "version": "4.17.21", @@ -14511,7 +14514,9 @@ } }, "lodash": { - "version": "4.17.21" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash-es": { "version": "4.17.21", diff --git a/package.json b/package.json index 65b50b8dd3df..5d5d8350884d 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,8 @@ "javascript-time-ago": "^2.5.9", "jspdf": "^2.4.0", "jspdf-autotable": "^3.5.23", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", "moment": "^2.29.1", "prop-types": "^15.7.2", "react": "^18.2.0", diff --git a/src/components/forms/RFFComponents.jsx b/src/components/forms/RFFComponents.jsx index 9f924a074cfa..42d4516bd4c8 100644 --- a/src/components/forms/RFFComponents.jsx +++ b/src/components/forms/RFFComponents.jsx @@ -16,7 +16,7 @@ import { FieldArray } from 'react-final-form-arrays' import React, { useState, useMemo, useRef } from 'react' import PropTypes from 'prop-types' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { debounce } from 'lodash' +import { debounce } from 'lodash-es' /* wrapper classes for React Final Form with CoreUI diff --git a/src/components/tables/CippTable.jsx b/src/components/tables/CippTable.jsx index 2b40b8a17a50..fe69609daad5 100644 --- a/src/components/tables/CippTable.jsx +++ b/src/components/tables/CippTable.jsx @@ -29,7 +29,7 @@ import { cellGenericFormatter } from './CellGenericFormat' import { ModalService } from '../utilities' import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app' import { ConfirmModal } from '../utilities/SharedModal' -import { debounce } from 'lodash' +import { debounce } from 'lodash-es' import { useSearchParams } from 'react-router-dom' const FilterComponent = ({ filterText, onFilter, onClear, filterlist, onFilterPreset }) => ( From 4e3db81fbd1415603a48c1fd690e8aa9b1462215 Mon Sep 17 00:00:00 2001 From: Kevin Grube Date: Sat, 18 Nov 2023 20:31:38 -0800 Subject: [PATCH 189/205] Update eslint config --- .eslintrc.cjs | 43 + .eslintrc.json | 17 - package-lock.json | 15921 ++++++++++++++++++-------------------------- package.json | 12 +- vite.config.js | 23 +- 5 files changed, 6683 insertions(+), 9333 deletions(-) create mode 100644 .eslintrc.cjs delete mode 100644 .eslintrc.json diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 000000000000..1b849791174c --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,43 @@ +module.exports = { + env: { + browser: true, + es6: true, + node: true, + }, + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + }, + settings: { + react: { + version: 'detect', + }, + 'import/resolver': { + // added for `import {component} from 'src/component' style imports` + 'eslint-import-resolver-custom-alias': { + alias: { + src: './src', + }, + extensions: ['.js', '.jsx', '.json'], + }, + }, + }, + extends: [ + 'eslint:recommended', + 'plugin:import/recommended', + 'plugin:react/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + 'plugin:prettier/recommended', + ], + plugins: ['react-hooks', 'import'], + rules: { + 'no-unused-vars': 'off', + 'react/prop-types': 'warn', + // this rule is annoying on strings with quotes in them + 'react/no-unescaped-entities': 'off', + }, +} diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 862eb01e8d94..000000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "parserOptions": { - "ecmaVersion": 2020, - "sourceType": "module", - "ecmaFeatures": { - "jsx": true - } - }, - "settings": { - "react": { - "version": "detect" - } - }, - "extends": ["plugin:prettier/recommended"], - "plugins": ["react-hooks"], - "rules": {} -} diff --git a/package-lock.json b/package-lock.json index 9a180c11e9e6..e4f1dc12dcf5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,6 @@ "javascript-time-ago": "^2.5.9", "jspdf": "^2.4.0", "jspdf-autotable": "^3.5.23", - "lodash": "^4.17.21", "lodash-es": "^4.17.21", "moment": "^2.29.1", "prop-types": "^15.7.2", @@ -76,10 +75,14 @@ "@vitejs/plugin-react": "^4.1.1", "auto-changelog": "~2.3.0", "browserslist-to-esbuild": "^1.2.0", - "eslint": "^8.0.0", + "eslint": "^8.54.0", "eslint-config-prettier": "^8.3.0", - "eslint-config-react-app": "^7.0.1", + "eslint-import-resolver-custom-alias": "^1.3.2", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.4", "husky": "^7.0.4", "postcss-scss": "^4.0.3", "prettier": "2.4.1", @@ -88,13 +91,23 @@ "stylelint": "^14.3.0", "stylelint-config-sass-guidelines": "^9.0.1", "stylelint-order": "^5.0.0", - "vite": "^4.5.0" + "vite": "^4.5.0", + "vite-plugin-eslint": "^1.8.1" }, "engines": { "node": "18", "npm": ">=8.3.0" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -161,51 +174,6 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, - "node_modules/@babel/eslint-parser": { - "version": "7.17.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/@babel/generator": { "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", @@ -231,18 +199,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", @@ -271,59 +227,6 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, "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", @@ -332,17 +235,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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", @@ -366,17 +258,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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", @@ -406,17 +287,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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", @@ -425,34 +295,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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", @@ -464,17 +306,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "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", @@ -510,20 +341,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helpers": { "version": "7.23.2", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", @@ -561,44 +378,27 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.13.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", + "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==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -607,13 +407,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", + "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==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -622,5558 +422,2481 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "dev": true, - "license": "MIT", + "node_modules/@babel/runtime": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", + "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.17.9", - "dev": true, - "license": "MIT", + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.9", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@babel/traverse": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@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.3", + "@babel/types": "^7.23.3", + "debug": "^4.1.0", + "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@babel/types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@coreui/chartjs": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@coreui/chartjs/-/chartjs-3.1.2.tgz", + "integrity": "sha512-d3MGk3KZNAt29VRKP/XYiGmT56KTqtuOhLEg5HNwb7P7ZmEgOJoHxFHVCVE4I36hfgQCjZZVknsuk2ZTfF/2fw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@coreui/coreui": "^4.2.6", + "chart.js": "^3.9.1" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@coreui/coreui": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@coreui/coreui/-/coreui-4.3.0.tgz", + "integrity": "sha512-2bx5E9YT17td4K7hZapudypSPx7a5jYg8NpSCTLRStPTWOBlL5XVF7fz3yUn2S6DQE1VmnbrXQpuS5LzmptRLQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "postcss-combine-duplicated-selectors": "^10.0.3" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@popperjs/core": "^2.11.6" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, + "node_modules/@coreui/react": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@coreui/react/-/react-4.11.0.tgz", + "integrity": "sha512-RFa3yBUHyIBvl1XX5hVb8MYqj24fU1FogAxZUtA+9yRrssiBs3Uy1W/AqMKnLiSArKyUm07Khjxe7I3Hc1iPdA==", "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@coreui/coreui": "4.3.0", + "react": ">=17", + "react-dom": ">=17" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@coreui/react-chartjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@coreui/react-chartjs/-/react-chartjs-2.1.3.tgz", + "integrity": "sha512-Boj2LhlGlAVIdPRDDIyF5nbupIg9ohhpdLXW28ch0A0ZMpJvf0AwBoibV4Uo6agcN7jSq2uvgudNC3aJTMg/8w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" + "@coreui/chartjs": "^3.1.1", + "chart.js": "3.9.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": ">=17", + "react-dom": ">=17" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "dev": true, + "node_modules/@coreui/utils": { + "version": "1.3.1", "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8.9.0", + "npm": ">= 5.6.0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, + "license": "CC0-1.0", "engines": { - "node": ">=6.9.0" + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "dev": true, + "node_modules/@emotion/babel-plugin": { + "version": "11.9.2", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/runtime": "^7.13.10", + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.5", + "@emotion/serialize": "^1.0.2", + "babel-plugin-macros": "^2.6.1", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.0.13" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "dev": true, + "node_modules/@emotion/babel-plugin/node_modules/@emotion/memoize": { + "version": "0.7.5", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/babel-plugin-macros": { + "version": "2.8.0", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "dev": true, + "node_modules/@emotion/babel-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "dev": true, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, "engines": { - "node": ">=4" + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, + "node_modules/@emotion/cache": { + "version": "11.7.1", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.1.0", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "4.0.13" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "node_modules/@emotion/hash": { + "version": "0.8.0", + "license": "MIT" }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "dev": true, + "node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@emotion/memoize": "0.7.4" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, + "node_modules/@emotion/memoize": { + "version": "0.7.4", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.9.0", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/cache": "^11.7.1", + "@emotion/serialize": "^1.0.3", + "@emotion/utils": "^1.1.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/react": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "dev": true, + "node_modules/@emotion/serialize": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" } }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.16.7", + "node_modules/@emotion/sheet": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/@emotion/stylis": { + "version": "0.8.5", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "license": "MIT" + }, + "node_modules/@emotion/utils": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.2.5", + "license": "MIT" + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.7", + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.3", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=12" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", + "node_modules/@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", + "node_modules/@eslint/js": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "dev": true, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.3.0", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "dev": true, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "1.3.0", + "hasInstallScript": true, "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@fortawesome/fontawesome-common-types": "^0.3.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "5.15.4", + "hasInstallScript": true, + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@fortawesome/fontawesome-common-types": "^0.2.36" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "dev": true, + "node_modules/@fortawesome/free-brands-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "5.15.4", + "hasInstallScript": true, + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@fortawesome/fontawesome-common-types": "^0.2.36" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "dev": true, + "node_modules/@fortawesome/free-regular-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "5.15.4", + "hasInstallScript": true, + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@fortawesome/fontawesome-common-types": "^0.2.36" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "dev": true, + "node_modules/@fortawesome/free-solid-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.36", + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6" } }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "dev": true, + "node_modules/@fortawesome/react-fontawesome": { + "version": "0.1.17", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "prop-types": "^15.8.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@fortawesome/fontawesome-svg-core": "~1 || >=1.3.0-beta1", + "react": ">=16.x" } }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.3", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=10.10.0" } }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" + "node": ">=12.22" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "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==", - "dev": true, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "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==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, + "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==", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "peer": true, "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.17.0", - "dev": true, - "license": "MIT", + "node_modules/@juggle/resize-observer": { + "version": "3.3.1", + "license": "Apache-2.0" + }, + "node_modules/@monaco-editor/loader": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.3.tgz", + "integrity": "sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q==", "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" + "state-local": "^1.0.6" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "monaco-editor": ">= 0.21.0 < 1" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@monaco-editor/react": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.5.2.tgz", + "integrity": "sha512-emcWu6vg1OpXPiYll4aPOaXe8bwYB4UaaNTwtArFLgMoNGBzRZb2Xn0Bra2HMIFM7QLgs7fCGunHO5LkfT2LBA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "@monaco-editor/loader": "^1.3.3" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 8" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 8" } }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=6.9.0" - }, + "node": ">= 8" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@react-icons/all-files": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@react-icons/all-files/-/all-files-4.1.0.tgz", + "integrity": "sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==", "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": "*" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@reduxjs/toolkit": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", + "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.16.8", - "dev": true, - "license": "MIT", + "node_modules/@reduxjs/toolkit/node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/@restart/context": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", + "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": ">=16.3.2" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@restart/hooks": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.11.tgz", + "integrity": "sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" + "dequal": "^2.0.3" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": ">=16.8.0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/@rjsf/bootstrap-4": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/bootstrap-4/-/bootstrap-4-5.12.1.tgz", + "integrity": "sha512-aUnijxIlYWza8klJ+GvgoYk4gFSaQQV97LLdujMQY096iLm12ryxWLEjyLyPPNOymyp4kdkNO4FCTiWMs2bh3Q==", + "dependencies": { + "@react-icons/all-files": "^4.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=14" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@rjsf/core": "^5.8.x", + "@rjsf/utils": "^5.8.x", + "react": "^16.14.0 || >=17", + "react-bootstrap": "^1.6.5" } }, - "node_modules/@babel/preset-env": { - "version": "7.16.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" + "node_modules/@rjsf/core": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.12.1.tgz", + "integrity": "sha512-1YFhZ90/uHRx1akQmDdIjBxGMjs/5gtuTLUFwl6GbOwTm2fhZRh3qXRFyTXz81Oy6TGcbrxBJEYvFg2iHjYKCA==", + "dependencies": { + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "markdown-to-jsx": "^7.3.2", + "nanoid": "^3.3.6", + "prop-types": "^15.8.1" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "node": ">=14" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@rjsf/utils": "^5.8.x", + "react": "^16.14.0 || >=17" } }, - "node_modules/@babel/preset-react": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@rjsf/utils": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.12.1.tgz", + "integrity": "sha512-/k8+7WdLwhaYsOQvH5BQINipj2IJvjEW3QQv4jQQ7sXtkpdUjieZayRfaE8DHfRdm9HjgJURJFDy3EODkWPl6A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + "json-schema-merge-allof": "^0.8.1", + "jsonpointer": "^5.0.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-is": "^18.2.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=14" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "react": "^16.14.0 || >=17" } }, - "node_modules/@babel/preset-typescript": { - "version": "7.16.7", - "dev": true, - "license": "MIT", + "node_modules/@rjsf/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@rjsf/validator-ajv8": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.12.1.tgz", + "integrity": "sha512-m4QO44yp60LTIfd4RPUu/h07B8U9umbD3I4Nh4iv9oyUudncaZFFXRopKcBm08v30VkN0tjMwuu0SxGDpzMtHA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21" }, "engines": { - "node": ">=6.9.0" + "node": ">=14" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@rjsf/utils": "^5.8.x" } }, - "node_modules/@babel/runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", - "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", + "node_modules/@rjsf/validator-ajv8/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { - "regenerator-runtime": "^0.14.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.17.9", + "node_modules/@rjsf/validator-ajv8/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, - "license": "MIT", "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" }, "engines": { - "node": ">=6.9.0" + "node": ">= 8.0.0" } }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "node_modules/@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", + "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@babel/traverse": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", - "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@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.3", - "@babel/types": "^7.23.3", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" + "@babel/types": "^7.0.0" } }, - "node_modules/@babel/types": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", - "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", + "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==", + "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@coreui/chartjs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@coreui/chartjs/-/chartjs-3.1.2.tgz", - "integrity": "sha512-d3MGk3KZNAt29VRKP/XYiGmT56KTqtuOhLEg5HNwb7P7ZmEgOJoHxFHVCVE4I36hfgQCjZZVknsuk2ZTfF/2fw==", + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, "dependencies": { - "@coreui/coreui": "^4.2.6", - "chart.js": "^3.9.1" + "@babel/types": "^7.20.7" } }, - "node_modules/@coreui/coreui": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@coreui/coreui/-/coreui-4.3.0.tgz", - "integrity": "sha512-2bx5E9YT17td4K7hZapudypSPx7a5jYg8NpSCTLRStPTWOBlL5XVF7fz3yUn2S6DQE1VmnbrXQpuS5LzmptRLQ==", + "node_modules/@types/eslint": { + "version": "8.44.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", + "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", "dependencies": { - "postcss-combine-duplicated-selectors": "^10.0.3" - }, - "peerDependencies": { - "@popperjs/core": "^2.11.6" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@coreui/react": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@coreui/react/-/react-4.11.0.tgz", - "integrity": "sha512-RFa3yBUHyIBvl1XX5hVb8MYqj24fU1FogAxZUtA+9yRrssiBs3Uy1W/AqMKnLiSArKyUm07Khjxe7I3Hc1iPdA==", - "peerDependencies": { - "@coreui/coreui": "4.3.0", - "react": ">=17", - "react-dom": ">=17" + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/@coreui/react-chartjs": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@coreui/react-chartjs/-/react-chartjs-2.1.3.tgz", - "integrity": "sha512-Boj2LhlGlAVIdPRDDIyF5nbupIg9ohhpdLXW28ch0A0ZMpJvf0AwBoibV4Uo6agcN7jSq2uvgudNC3aJTMg/8w==", + "node_modules/@types/estree": { + "version": "0.0.51", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "2.3.4", + "license": "MIT", "dependencies": { - "@coreui/chartjs": "^3.1.1", - "chart.js": "3.9.1" - }, - "peerDependencies": { - "react": ">=17", - "react-dom": ">=17" + "@types/unist": "*" } }, - "node_modules/@coreui/utils": { - "version": "1.3.1", + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", "license": "MIT", - "engines": { - "node": ">=8.9.0", - "npm": ">= 5.6.0" + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" } }, - "node_modules/@csstools/selector-specificity": { - "version": "2.0.2", - "dev": true, - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2", - "postcss-selector-parser": "^6.0.10" - } + "node_modules/@types/invariant": { + "version": "2.2.35", + "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", + "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" }, - "node_modules/@emotion/babel-plugin": { - "version": "11.9.2", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/runtime": "^7.13.10", - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.5", - "@emotion/serialize": "^1.0.2", - "babel-plugin-macros": "^2.6.1", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.0.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } + "node_modules/@types/json-schema": { + "version": "7.0.9", + "license": "MIT" }, - "node_modules/@emotion/babel-plugin/node_modules/@emotion/memoize": { - "version": "0.7.5", + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "dev": true, "license": "MIT" }, - "node_modules/@emotion/babel-plugin/node_modules/babel-plugin-macros": { - "version": "2.8.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } + "node_modules/@types/node": { + "version": "17.0.21", + "license": "MIT" }, - "node_modules/@emotion/babel-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/papaparse": { + "version": "5.3.2", "license": "MIT", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" + "@types/node": "*" } }, - "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "node_modules/@types/parse-json": { "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/@emotion/babel-plugin/node_modules/source-map": { - "version": "0.5.7", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } + "node_modules/@types/prop-types": { + "version": "15.7.4", + "license": "MIT" }, - "node_modules/@emotion/cache": { - "version": "11.7.1", + "node_modules/@types/raf": { + "version": "3.4.0", "license": "MIT", - "dependencies": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.1.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "4.0.13" - } - }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "license": "MIT" + "optional": true }, - "node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", + "node_modules/@types/react": { + "version": "17.0.39", "license": "MIT", "dependencies": { - "@emotion/memoize": "0.7.4" + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" } }, - "node_modules/@emotion/memoize": { - "version": "0.7.4", - "license": "MIT" - }, - "node_modules/@emotion/react": { - "version": "11.9.0", + "node_modules/@types/react-helmet": { + "version": "6.1.5", + "dev": true, "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@emotion/babel-plugin": "^11.7.1", - "@emotion/cache": "^11.7.1", - "@emotion/serialize": "^1.0.3", - "@emotion/utils": "^1.1.0", - "@emotion/weak-memoize": "^0.2.5", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/react": { - "optional": true - } + "@types/react": "*" } }, - "node_modules/@emotion/serialize": { - "version": "1.0.3", + "node_modules/@types/react-redux": { + "version": "7.1.23", "license": "MIT", "dependencies": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", - "csstype": "^3.0.2" + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" } }, - "node_modules/@emotion/sheet": { - "version": "1.1.0", - "license": "MIT" + "node_modules/@types/react-transition-group": { + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", + "dependencies": { + "@types/react": "*" + } }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", + "node_modules/@types/scheduler": { + "version": "0.16.2", "license": "MIT" }, - "node_modules/@emotion/unitless": { - "version": "0.7.5", + "node_modules/@types/unist": { + "version": "2.0.6", "license": "MIT" }, - "node_modules/@emotion/utils": { - "version": "1.1.0", - "license": "MIT" + "node_modules/@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" }, - "node_modules/@emotion/weak-memoize": { - "version": "0.2.5", - "license": "MIT" + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], + "node_modules/@vitejs/plugin-react": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.1.1.tgz", + "integrity": "sha512-Jie2HERK+uh27e+ORXXwEP5h0Y2lS9T2PRGbfebiHGlwzDO0dEnd2aNtOR/qjBlPb1YgxwAONeblL1xqLikLag==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/core": "^7.23.2", + "@babel/plugin-transform-react-jsx-self": "^7.22.5", + "@babel/plugin-transform-react-jsx-source": "^7.22.5", + "@types/babel__core": "^7.20.3", + "react-refresh": "^0.14.0" + }, "engines": { - "node": ">=12" + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "license": "MIT", + "peer": true }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "license": "MIT", + "peer": true }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.3.0", - "hasInstallScript": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "1.3.0", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.3.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-brands-svg-icons": { - "version": "5.15.4", - "hasInstallScript": true, - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-brands-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "hasInstallScript": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-regular-svg-icons": { - "version": "5.15.4", - "hasInstallScript": true, - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-regular-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "hasInstallScript": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "5.15.4", - "hasInstallScript": true, - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-solid-svg-icons/node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "hasInstallScript": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/react-fontawesome": { - "version": "0.1.17", - "license": "MIT", - "dependencies": { - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "~1 || >=1.3.0-beta1", - "react": ">=16.x" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "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==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@juggle/resize-observer": { - "version": "3.3.1", - "license": "Apache-2.0" - }, - "node_modules/@monaco-editor/loader": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.3.tgz", - "integrity": "sha512-6KKF4CTzcJiS8BJwtxtfyYt9shBiEv32ateQ9T4UVogwn4HM/uPo9iJd2Dmbkpz8CM6Y0PDUpjnZzCwC+eYo2Q==", - "dependencies": { - "state-local": "^1.0.6" - }, - "peerDependencies": { - "monaco-editor": ">= 0.21.0 < 1" - } - }, - "node_modules/@monaco-editor/react": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.5.2.tgz", - "integrity": "sha512-emcWu6vg1OpXPiYll4aPOaXe8bwYB4UaaNTwtArFLgMoNGBzRZb2Xn0Bra2HMIFM7QLgs7fCGunHO5LkfT2LBA==", - "dependencies": { - "@monaco-editor/loader": "^1.3.3" - }, - "peerDependencies": { - "monaco-editor": ">= 0.25.0 < 1", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@react-icons/all-files": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@react-icons/all-files/-/all-files-4.1.0.tgz", - "integrity": "sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==", - "peerDependencies": { - "react": "*" - } - }, - "node_modules/@reduxjs/toolkit": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", - "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", - "dependencies": { - "immer": "^9.0.21", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.8" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", - "react-redux": "^7.2.1 || ^8.0.2" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } - } - }, - "node_modules/@reduxjs/toolkit/node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/@restart/context": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==", - "peerDependencies": { - "react": ">=16.3.2" - } - }, - "node_modules/@restart/hooks": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.11.tgz", - "integrity": "sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw==", - "dependencies": { - "dequal": "^2.0.3" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@rjsf/bootstrap-4": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/bootstrap-4/-/bootstrap-4-5.12.1.tgz", - "integrity": "sha512-aUnijxIlYWza8klJ+GvgoYk4gFSaQQV97LLdujMQY096iLm12ryxWLEjyLyPPNOymyp4kdkNO4FCTiWMs2bh3Q==", - "dependencies": { - "@react-icons/all-files": "^4.1.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@rjsf/core": "^5.8.x", - "@rjsf/utils": "^5.8.x", - "react": "^16.14.0 || >=17", - "react-bootstrap": "^1.6.5" - } - }, - "node_modules/@rjsf/core": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-5.12.1.tgz", - "integrity": "sha512-1YFhZ90/uHRx1akQmDdIjBxGMjs/5gtuTLUFwl6GbOwTm2fhZRh3qXRFyTXz81Oy6TGcbrxBJEYvFg2iHjYKCA==", - "dependencies": { - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "markdown-to-jsx": "^7.3.2", - "nanoid": "^3.3.6", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@rjsf/utils": "^5.8.x", - "react": "^16.14.0 || >=17" - } - }, - "node_modules/@rjsf/utils": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-5.12.1.tgz", - "integrity": "sha512-/k8+7WdLwhaYsOQvH5BQINipj2IJvjEW3QQv4jQQ7sXtkpdUjieZayRfaE8DHfRdm9HjgJURJFDy3EODkWPl6A==", - "dependencies": { - "json-schema-merge-allof": "^0.8.1", - "jsonpointer": "^5.0.1", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "react-is": "^18.2.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.14.0 || >=17" - } - }, - "node_modules/@rjsf/utils/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/@rjsf/validator-ajv8": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.12.1.tgz", - "integrity": "sha512-m4QO44yp60LTIfd4RPUu/h07B8U9umbD3I4Nh4iv9oyUudncaZFFXRopKcBm08v30VkN0tjMwuu0SxGDpzMtHA==", - "dependencies": { - "ajv": "^8.12.0", - "ajv-formats": "^2.1.1", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@rjsf/utils": "^5.8.x" - } - }, - "node_modules/@rjsf/validator-ajv8/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@rjsf/validator-ajv8/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", - "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/eslint": { - "version": "7.29.0", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "license": "MIT", - "peer": true - }, - "node_modules/@types/hast": { - "version": "2.3.4", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "license": "MIT", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/invariant": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz", - "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "17.0.21", - "license": "MIT" - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/papaparse": { - "version": "5.3.2", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.4", - "license": "MIT" - }, - "node_modules/@types/raf": { - "version": "3.4.0", - "license": "MIT", - "optional": true - }, - "node_modules/@types/react": { - "version": "17.0.39", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-helmet": { - "version": "6.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-redux": { - "version": "7.1.23", - "license": "MIT", - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", - "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "license": "MIT" - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/type-utils": "5.30.7", - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.19.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "5.19.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.30.7", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.19.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.19.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.19.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.19.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/typescript-estree": "5.19.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.19.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.19.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.1.1.tgz", - "integrity": "sha512-Jie2HERK+uh27e+ORXXwEP5h0Y2lS9T2PRGbfebiHGlwzDO0dEnd2aNtOR/qjBlPb1YgxwAONeblL1xqLikLag==", - "dev": true, - "dependencies": { - "@babel/core": "^7.23.2", - "@babel/plugin-transform-react-jsx-self": "^7.22.5", - "@babel/plugin-transform-react-jsx-source": "^7.22.5", - "@types/babel__core": "^7.20.3", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "license": "MIT", - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "license": "MIT", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "license": "Apache-2.0", - "peer": true - }, - "node_modules/abab": { - "version": "2.0.5", - "license": "BSD-3-Clause" - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "license": "MIT", - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.10.0", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "license": "MIT", - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aria-query": { - "version": "4.2.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.filter": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.5", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/atob": { - "version": "2.1.2", - "license": "(MIT OR Apache-2.0)", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/auto-changelog": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "commander": "^5.0.0", - "handlebars": "^4.7.3", - "node-fetch": "^2.6.0", - "parse-github-url": "^1.0.2", - "semver": "^6.3.0" - }, - "bin": { - "auto-changelog": "src/index.js" - }, - "engines": { - "node": ">=8.3" - } - }, - "node_modules/axe-core": { - "version": "4.4.1", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/axobject-query": { - "version": "2.2.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-styled-components": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", - "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "lodash": "^4.17.21", - "picomatch": "^2.3.1" - }, - "peerDependencies": { - "styled-components": ">= 2" - } - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "dev": true, - "license": "MIT" - }, - "node_modules/babel-preset-react-app": { - "version": "10.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/base64-arraybuffer": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/batch-processor": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "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" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/browserslist-to-esbuild": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-1.2.0.tgz", - "integrity": "sha512-ftrrbI/VHBgEnmnSyhkqvQVMp6jAKybfs0qMIlm7SLBrQTGMsdCIP4q3BoKeLsZTBQllIQtY9kbxgRYV2WU47g==", - "dev": true, - "dependencies": { - "browserslist": "^4.17.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "license": "(MIT OR Apache-2.0)", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "license": "MIT", - "peer": true - }, - "node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelize": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/can-use-dom": { - "version": "0.1.0", - "license": "MIT" - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001563", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", - "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", - "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" - } - ] - }, - "node_modules/canvg": { - "version": "3.0.10", - "license": "MIT", - "optional": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "@types/raf": "^3.4.0", - "core-js": "^3.8.3", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "rgbcolor": "^1.0.1", - "stackblur-canvas": "^2.0.0", - "svg-pathdata": "^6.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "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==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/character-entities": { - "version": "1.2.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/charcodes": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chart.js": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", - "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==" - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.10", - "license": "MIT", - "dependencies": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "1.5.0", - "license": "BSD-2-Clause", - "dependencies": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" - }, - "node_modules/clone-regexp": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-regexp": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "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/colord": { - "version": "2.9.2", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/compute-gcd": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", - "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", - "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "node_modules/compute-lcm": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", - "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", - "dependencies": { - "compute-gcd": "^1.2.1", - "validate.io-array": "^1.0.3", - "validate.io-function": "^1.0.2", - "validate.io-integer-array": "^1.0.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.1", - "license": "MIT", - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/core-js": { - "version": "3.21.1", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", - "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.9" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.21.1", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/create-react-class": { - "version": "15.7.0", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-color-keywords": { - "version": "1.0.0", - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/css-functions-list": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.22" - } - }, - "node_modules/css-line-break": { - "version": "2.1.0", - "license": "MIT", - "optional": true, - "dependencies": { - "utrie": "^1.0.2" - } - }, - "node_modules/css-select": { - "version": "4.2.1", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-to-react-native": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/css-what": { - "version": "5.1.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.0.10", - "license": "MIT" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/date-fns": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", - "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "dev": true, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" + "peer": true }, - "node_modules/deepmerge": { - "version": "4.2.2", + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "peer": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "license": "MIT", + "peer": true }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, - "node_modules/desandro-matches-selector": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "dev": true, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/discontinuous-range": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", "license": "Apache-2.0", + "peer": true, "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" + "@xtuc/long": "4.2.2" } }, - "node_modules/dom-helpers": { - "version": "5.2.1", + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, - "node_modules/dom-serializer": { - "version": "1.3.2", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/domelementtype": { - "version": "2.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "4.3.0", - "license": "BSD-2-Clause", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "license": "MIT", + "peer": true, "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, - "node_modules/dompurify": { - "version": "2.3.6", - "license": "(MPL-2.0 OR Apache-2.0)", - "optional": true - }, - "node_modules/domutils": { - "version": "2.8.0", - "license": "BSD-2-Clause", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "license": "MIT", + "peer": true, "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.464", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.464.tgz", - "integrity": "sha512-guZ84yoou4+ILNdj0XEbmGs6DEWj6zpVOWYpY09GU66yEb0DSYvP/biBPzHn0GuW/3RC/pnaYNUWlQE1fJYtgA==" - }, - "node_modules/element-resize-detector": { - "version": "1.2.4", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", "license": "MIT", + "peer": true, "dependencies": { - "batch-processor": "1.0.0" + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "dev": true, - "license": "MIT" + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "license": "BSD-3-Clause", + "peer": true }, - "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "node_modules/@xtuc/long": { + "version": "4.2.2", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/abab": { + "version": "2.0.5", + "license": "BSD-3-Clause" + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=0.4.0" } }, - "node_modules/enzyme": { - "version": "3.11.0", + "node_modules/acorn-import-assertions": { + "version": "1.8.0", "license": "MIT", - "dependencies": { - "array.prototype.flat": "^1.2.3", - "cheerio": "^1.0.0-rc.3", - "enzyme-shallow-equal": "^1.0.1", - "function.prototype.name": "^1.1.2", - "has": "^1.0.3", - "html-element-map": "^1.2.0", - "is-boolean-object": "^1.0.1", - "is-callable": "^1.1.5", - "is-number-object": "^1.0.4", - "is-regex": "^1.0.5", - "is-string": "^1.0.5", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.7.0", - "object-is": "^1.0.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.1", - "object.values": "^1.1.1", - "raf": "^3.4.1", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.2.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peer": true, + "peerDependencies": { + "acorn": "^8" } }, - "node_modules/enzyme-shallow-equal": { - "version": "1.0.4", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", "license": "MIT", "dependencies": { - "has": "^1.0.3", - "object-is": "^1.1.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/error-ex": { - "version": "1.3.2", + "node_modules/ajv-formats": { + "version": "2.1.1", "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/es-abstract": { - "version": "1.19.5", + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.10.0", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/es-array-method-boxes-properly": { + "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", "license": "MIT" }, - "node_modules/es-module-lexer": { - "version": "0.9.3", + "node_modules/ajv-keywords": { + "version": "3.5.2", "license": "MIT", - "peer": true + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", + "node_modules/ansi-regex": { + "version": "5.0.1", "dev": true, "license": "MIT", - "dependencies": { - "has": "^1.0.3" + "engines": { + "node": ">=8" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "license": "MIT", + "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==", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "color-convert": "^1.9.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "node_modules/anymatch": { + "version": "3.1.2", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "node": ">= 8" } }, - "node_modules/escalade": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.1", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", - "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-config-prettier": { - "version": "8.5.0", + "node_modules/array-union": { + "version": "2.1.0", "dev": true, "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" + "node": ">=8" } }, - "node_modules/eslint-config-react-app/node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dev": true, + "node_modules/array.prototype.filter": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" }, "engines": { - "node": ">=12.0.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils": { - "version": "2.7.3", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "dev": true, - "license": "MIT", + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dependencies": { - "locate-path": "^2.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, - "license": "MIT", "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", "dev": true, - "license": "MIT", "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" } }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "dev": true, - "license": "MIT", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dependencies": { - "p-limit": "^1.1.0" + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", + "node_modules/arrify": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } + "node_modules/asap": { + "version": "2.0.6", + "license": "MIT" }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", + "node_modules/astral-regex": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "node": ">=8" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "2.0.0" + "has-symbols": "^1.0.3" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/atob": { + "version": "2.1.2", + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" }, "engines": { - "node": ">=0.10.0" + "node": ">= 4.5.0" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", + "node_modules/auto-changelog": { + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "commander": "^5.0.0", + "handlebars": "^4.7.3", + "node-fetch": "^2.6.0", + "parse-github-url": "^1.0.2", + "semver": "^6.3.0" }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "bin": { + "auto-changelog": "src/index.js" }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "engines": { + "node": ">=8.3" } }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "engines": { - "node": ">=4.0" + "node": ">= 0.4" }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-prettier": { - "version": "4.0.0", - "dev": true, - "license": "MIT", + "node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/eslint-plugin-react": { - "version": "7.31.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz", - "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==", - "dev": true, + "node_modules/babel-plugin-styled-components": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", "dependencies": { - "array-includes": "^3.1.5", - "array.prototype.flatmap": "^1.3.0", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.1", - "object.values": "^1.1.5", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.7" - }, - "engines": { - "node": ">=4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "styled-components": ">= 2" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.4.0", + "node_modules/balanced-match": { + "version": "1.0.2", "dev": true, + "license": "MIT" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", "license": "MIT", + "optional": true, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "node": ">= 0.6.0" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", + "node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/batch-processor": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", + "node_modules/boolbase": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.3.1", + "node_modules/braces": { + "version": "3.0.2", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^5.13.0" + "fill-range": "^7.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" + "node": ">=8" } }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "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" + } + ], "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", + "node_modules/browserslist-to-esbuild": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-1.2.0.tgz", + "integrity": "sha512-ftrrbI/VHBgEnmnSyhkqvQVMp6jAKybfs0qMIlm7SLBrQTGMsdCIP4q3BoKeLsZTBQllIQtY9kbxgRYV2WU47g==", "dev": true, - "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "browserslist": "^4.17.3" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "node": ">=12" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", + "node_modules/btoa": { + "version": "1.2.1", + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, "engines": { - "node": ">=10" + "node": ">= 0.4.0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node_modules/buffer": { + "version": "6.0.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, + "node_modules/buffer-from": { + "version": "1.1.2", "license": "MIT", + "peer": true + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" + "node_modules/callsites": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", + "node_modules/camelcase-keys": { + "version": "6.2.2", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", "dev": true, "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "dev": true, + "node_modules/camelize": { + "version": "1.0.0", "license": "MIT" }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, + "node_modules/can-use-dom": { + "version": "0.1.0", + "license": "MIT" + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", + "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" + } + ] + }, + "node_modules/canvg": { + "version": "3.0.10", "license": "MIT", - "engines": { - "node": ">=10" + "optional": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@types/raf": "^3.4.0", + "core-js": "^3.8.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^6.0.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, + "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==", "dependencies": { - "type-fest": "^0.20.2" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=8" - }, + "node": ">=4" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, + "node_modules/character-entities-legacy": { + "version": "1.1.4", "license": "MIT", - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, + "node_modules/character-reference-invalid": { + "version": "1.1.4", "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/chart.js": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", + "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==" + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.10", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "cheerio-select": "^1.5.0", + "dom-serializer": "^1.3.2", + "domhandler": "^4.2.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "tslib": "^2.2.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" + "node": ">= 6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "node_modules/espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", - "dev": true, + "node_modules/cheerio-select": { + "version": "1.5.0", + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "css-select": "^4.1.3", + "css-what": "^5.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0", + "domutils": "^2.7.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/esquery": { - "version": "1.4.0", + "node_modules/chokidar": { + "version": "3.5.3", "dev": true, - "license": "BSD-3-Clause", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", "dependencies": { - "estraverse": "^5.1.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" + "node": ">= 8.10.0" }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/esutils": { - "version": "2.0.3", + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/ev-emitter": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", + "node_modules/chrome-trace-event": { + "version": "1.0.3", "license": "MIT", "peer": true, "engines": { - "node": ">=0.8.x" + "node": ">=6.0" } }, - "node_modules/execall": { - "version": "2.0.0", + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, + "node_modules/clone-regexp": { + "version": "2.2.0", "dev": true, "license": "MIT", "dependencies": { - "clone-regexp": "^2.1.0" + "is-regexp": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" + "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==", + "dependencies": { + "color-name": "1.1.3" + } }, - "node_modules/fast-diff": { - "version": "1.2.0", - "dev": true, - "license": "Apache-2.0" + "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/fast-glob": { - "version": "3.2.11", + "node_modules/colord": { + "version": "2.9.2", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=8.6.0" + "node": ">= 0.8" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", + "node_modules/comma-separated-tokens": { + "version": "1.0.8", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, + "license": "MIT", "engines": { "node": ">= 6" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "license": "MIT" + "node_modules/compute-gcd": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", + "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", + "dependencies": { + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" + "node_modules/compute-lcm": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", + "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", + "dependencies": { + "compute-gcd": "^1.2.1", + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" + } }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", + "node_modules/concat-map": { + "version": "0.0.1", "dev": true, "license": "MIT" }, - "node_modules/fastq": { - "version": "1.13.0", - "dev": true, - "license": "ISC", + "node_modules/convert-source-map": { + "version": "1.8.0", + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "safe-buffer": "~5.1.1" } }, - "node_modules/fault": { - "version": "1.0.4", + "node_modules/copy-to-clipboard": { + "version": "3.3.1", "license": "MIT", "dependencies": { - "format": "^0.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "toggle-selection": "^1.0.6" } }, - "node_modules/fflate": { - "version": "0.4.8", - "license": "MIT" + "node_modules/core-js": { + "version": "3.21.1", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", + "node_modules/cosmiconfig": { + "version": "7.0.1", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10" } }, - "node_modules/fill-range": { - "version": "7.0.1", + "node_modules/create-react-class": { + "version": "15.7.0", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/final-form": { - "version": "4.20.10", - "resolved": "https://registry.npmjs.org/final-form/-/final-form-4.20.10.tgz", - "integrity": "sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==", - "dependencies": { - "@babel/runtime": "^7.10.0" - }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "license": "ISC", "engines": { - "node": ">=8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/final-form" + "node": ">=4" } }, - "node_modules/final-form-arrays": { + "node_modules/css-functions-list": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-3.1.0.tgz", - "integrity": "sha512-TWBvun+AopgBLw9zfTFHBllnKMVNEwCEyDawphPuBGGqNsuhGzhT7yewHys64KFFwzIs6KEteGLpKOwvTQEscQ==", - "peerDependencies": { - "final-form": "^4.20.8" + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.22" } }, - "node_modules/find-root": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, + "node_modules/css-line-break": { + "version": "2.1.0", "license": "MIT", + "optional": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" + "utrie": "^1.0.2" + } + }, + "node_modules/css-select": { + "version": "4.2.1", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/fizzy-ui-utils": { - "version": "2.0.7", + "node_modules/css-to-react-native": { + "version": "3.0.0", "license": "MIT", "dependencies": { - "desandro-matches-selector": "^2.0.0" + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "dev": true, + "node_modules/css-what": { + "version": "5.1.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", "license": "MIT", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "bin": { + "cssesc": "bin/cssesc" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=4" } }, - "node_modules/flatted": { - "version": "3.2.5", - "dev": true, - "license": "ISC" + "node_modules/csstype": { + "version": "3.0.10", + "license": "MIT" }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", "engines": { - "node": ">=4.0" + "node": ">=0.11" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/debug": { + "version": "4.3.4", + "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "ms": "2.1.2" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/format": { - "version": "0.2.2", - "engines": { - "node": ">=0.4.x" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/decamelize": { + "version": "1.2.0", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=0.10.0" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", + "node_modules/decamelize-keys": { + "version": "1.1.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/functional-red-black-tree": { + "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "dev": true, - "license": "MIT" - }, - "node_modules/functions-have-names": { - "version": "1.2.2", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fuse.js": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", - "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/fuzzysort": { - "version": "1.2.1", - "license": "MIT" + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", + "node_modules/deepmerge": { + "version": "4.2.2", "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" } }, - "node_modules/get-intrinsic": { + "node_modules/define-data-property": { "version": "1.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-size": { - "version": "2.0.3", - "license": "MIT" - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "dev": true, - "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "license": "MIT", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -6182,197 +2905,237 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "7.2.0", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.4.0" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "engines": { - "node": ">=10.13.0" + "node": ">=6" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "peer": true + "node_modules/desandro-matches-selector": { + "version": "2.0.2", + "license": "MIT" }, - "node_modules/global-modules": { - "version": "2.0.0", + "node_modules/dir-glob": { + "version": "3.0.1", "dev": true, "license": "MIT", "dependencies": { - "global-prefix": "^3.0.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/global-prefix": { + "node_modules/discontinuous-range": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/doctrine": { "version": "3.0.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" + "esutils": "^2.0.2" }, "engines": { - "node": ">=6" + "node": ">=6.0.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "dev": true, - "license": "ISC", + "node_modules/dom-serializer": { + "version": "1.3.2", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" }, - "bin": { - "which": "bin/which" + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/globals": { - "version": "11.12.0", - "license": "MIT", - "engines": { - "node": ">=4" - } + "node_modules/domelementtype": { + "version": "2.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", + "node_modules/domhandler": { + "version": "4.3.0", + "license": "BSD-2-Clause", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "domelementtype": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">= 4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/globjoin": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "license": "ISC", - "peer": true - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true + "node_modules/dompurify": { + "version": "2.3.6", + "license": "(MPL-2.0 OR Apache-2.0)", + "optional": true }, - "node_modules/handlebars": { - "version": "4.7.7", - "dev": true, - "license": "MIT", + "node_modules/domutils": { + "version": "2.8.0", + "license": "BSD-2-Clause", "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "dev": true, + "node_modules/electron-to-chromium": { + "version": "1.4.464", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.464.tgz", + "integrity": "sha512-guZ84yoou4+ILNdj0XEbmGs6DEWj6zpVOWYpY09GU66yEb0DSYvP/biBPzHn0GuW/3RC/pnaYNUWlQE1fJYtgA==" + }, + "node_modules/element-resize-detector": { + "version": "1.2.4", "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "batch-processor": "1.0.0" } }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "peer": true, "dependencies": { - "function-bind": "^1.1.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">= 0.4.0" + "node": ">=10.13.0" } }, - "node_modules/has-bigints": { - "version": "1.0.1", - "license": "MIT", + "node_modules/entities": { + "version": "2.2.0", + "license": "BSD-2-Clause", "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/has-flag": { - "version": "3.0.0", + "node_modules/enzyme": { + "version": "3.11.0", "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dependencies": { - "get-intrinsic": "^1.1.1" + "array.prototype.flat": "^1.2.3", + "cheerio": "^1.0.0-rc.3", + "enzyme-shallow-equal": "^1.0.1", + "function.prototype.name": "^1.1.2", + "has": "^1.0.3", + "html-element-map": "^1.2.0", + "is-boolean-object": "^1.0.1", + "is-callable": "^1.1.5", + "is-number-object": "^1.0.4", + "is-regex": "^1.0.5", + "is-string": "^1.0.5", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.7.0", + "object-is": "^1.0.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.1", + "object.values": "^1.1.1", + "raf": "^3.4.1", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.2.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", + "node_modules/enzyme-shallow-equal": { + "version": "1.0.4", "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "has": "^1.0.3", + "object-is": "^1.1.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", + "node_modules/error-ex": { + "version": "1.3.2", "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -6381,884 +3144,1027 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "license": "MIT" }, - "node_modules/hastscript": { - "version": "6.0.0", - "license": "MIT", + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dev": true, "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": "*" + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" } }, - "node_modules/history": { - "version": "5.3.0", + "node_modules/es-module-lexer": { + "version": "0.9.3", "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.7.6" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" + "peer": true }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "dev": true, - "license": "ISC", + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dependencies": { - "lru-cache": "^6.0.0" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/hotkeys-js": { - "version": "3.8.7", - "license": "MIT" + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dependencies": { + "hasown": "^2.0.0" + } }, - "node_modules/html-element-map": { - "version": "1.3.1", + "node_modules/es-to-primitive": { + "version": "1.2.1", "license": "MIT", "dependencies": { - "array.prototype.filter": "^1.0.0", - "call-bind": "^1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/html-tags": { - "version": "3.2.0", + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "dev": true, - "license": "MIT", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, "engines": { - "node": ">=8" + "node": ">=12" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, - "node_modules/html2canvas": { - "version": "1.4.1", + "node_modules/escalade": { + "version": "3.1.1", "license": "MIT", - "optional": true, - "dependencies": { - "css-line-break": "^2.1.0", - "text-segmentation": "^1.0.3" - }, "engines": { - "node": ">=8.0.0" + "node": ">=6" } }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" } }, - "node_modules/husky": { - "version": "7.0.4", + "node_modules/eslint": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", "dev": true, - "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, "bin": { - "husky": "lib/bin.js" + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/typicode" + "url": "https://opencollective.com/eslint" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "dev": true, "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" + "node_modules/eslint-import-resolver-custom-alias": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-custom-alias/-/eslint-import-resolver-custom-alias-1.3.2.tgz", + "integrity": "sha512-wBPcZA2k6/IXaT8FsLMyiyVSG6WVEuaYIAbeKLXeGwr523BmeB9lKAAoLJWSqp3txsnU4gpkgD2x1q6K8k0uDQ==", + "dev": true, + "dependencies": { + "glob-parent": "^6.0.2", + "resolve": "^1.22.2" + }, + "peerDependencies": { + "eslint-plugin-import": ">=2.2.0" + } }, - "node_modules/ignore": { - "version": "5.2.0", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/imagesloaded": { - "version": "4.1.4", - "license": "MIT", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "ev-emitter": "^1.0.0" + "ms": "^2.1.1" } }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/immutable": { - "version": "4.0.0", + "node_modules/eslint-module-utils/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": { + "ms": "^2.1.1" + } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "license": "MIT", + "node_modules/eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dev": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { - "node": ">=6" + "node": ">=4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "license": "MIT", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/import-lazy": { + "node_modules/eslint-plugin-prettier": { "version": "4.0.0", "dev": true, "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/imurmurhash": { - "version": "0.1.4", + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dev": true, - "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, "engines": { - "node": ">=0.8.19" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/indent-string": { - "version": "4.0.0", + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/inflight": { - "version": "1.0.6", + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.4.tgz", + "integrity": "sha512-eD83+65e8YPVg6603Om2iCIwcQJf/y7++MWm4tACtEswFLYMwxwVWAfwN+e19f5Ad/FOyyNg9Dfi5lXhH3Y3rA==", "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "peerDependencies": { + "eslint": ">=7" } }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "esutils": "^2.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/invariant": { - "version": "2.2.4", - "license": "MIT", + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "license": "MIT", + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "license": "MIT", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://opencollective.com/eslint" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-callable": { - "version": "1.2.4", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "color-name": "~1.1.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/is-core-module": { - "version": "2.9.0", + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "has": "^1.0.3" + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "license": "MIT", + "node_modules/eslint/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "1.0.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extglob": { - "version": "2.1.1", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/is-glob": { - "version": "4.0.3", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" } }, - "node_modules/is-number": { - "version": "7.0.0", + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, - "license": "MIT", + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">=0.10" } }, - "node_modules/is-number-object": { - "version": "1.0.6", - "license": "MIT", + "node_modules/esrecurse": { + "version": "4.3.0", + "license": "BSD-2-Clause", "dependencies": { - "has-tostringtag": "^1.0.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4.0" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "dev": true, - "license": "MIT", + "node_modules/estraverse": { + "version": "5.3.0", + "license": "BSD-2-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-regex": { - "version": "1.1.4", + "node_modules/ev-emitter": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, + "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.8.x" } }, - "node_modules/is-regexp": { - "version": "2.1.0", + "node_modules/execall": { + "version": "2.0.0", "dev": true, "license": "MIT", + "dependencies": { + "clone-regexp": "^2.1.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8.6.0" } }, - "node_modules/is-string": { - "version": "1.0.7", - "license": "MIT", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", "dependencies": { - "has-tostringtag": "^1.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/is-subset": { - "version": "0.1.1", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", "license": "MIT" }, - "node_modules/is-symbol": { - "version": "1.0.4", - "license": "MIT", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.13.0", + "dev": true, + "license": "ISC", "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "reusify": "^1.0.4" } }, - "node_modules/is-weakref": { - "version": "1.0.2", + "node_modules/fault": { + "version": "1.0.4", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "format": "^0.2.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/javascript-time-ago": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.5.9.tgz", - "integrity": "sha512-pQ8mNco/9g9TqWXWWjP0EWl6i/lAQScOyEeXy5AB+f7MfLSdgyV9BJhiOD1zrIac/lrxPYOWNbyl/IW8CW5n0A==", - "dependencies": { - "relative-time-format": "^1.1.6" - } + "node_modules/fflate": { + "version": "0.4.8", + "license": "MIT" }, - "node_modules/jest-worker": { - "version": "27.5.1", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">= 10.13.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", + "node_modules/fill-range": { + "version": "7.0.1", + "dev": true, "license": "MIT", - "peer": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "license": "MIT", - "peer": true, + "node_modules/final-form": { + "version": "4.20.10", + "resolved": "https://registry.npmjs.org/final-form/-/final-form-4.20.10.tgz", + "integrity": "sha512-TL48Pi1oNHeMOHrKv1bCJUrWZDcD3DIG6AGYVNOnyZPr7Bd/pStN0pL+lfzF5BNoj/FclaoiaLenk4XUIFVYng==", "dependencies": { - "has-flag": "^4.0.0" + "@babel/runtime": "^7.10.0" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/final-form" } }, - "node_modules/js-tokens": { - "version": "4.0.0", + "node_modules/final-form-arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-3.1.0.tgz", + "integrity": "sha512-TWBvun+AopgBLw9zfTFHBllnKMVNEwCEyDawphPuBGGqNsuhGzhT7yewHys64KFFwzIs6KEteGLpKOwvTQEscQ==", + "peerDependencies": { + "final-form": "^4.20.8" + } + }, + "node_modules/find-root": { + "version": "1.1.0", "license": "MIT" }, - "node_modules/jsesc": { - "version": "2.5.2", + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "license": "MIT" - }, - "node_modules/json-schema-compare": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", - "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", + "node_modules/fizzy-ui-utils": { + "version": "2.0.7", + "license": "MIT", "dependencies": { - "lodash": "^4.17.4" + "desandro-matches-selector": "^2.0.0" } }, - "node_modules/json-schema-merge-allof": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", - "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", + "node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", "dependencies": { - "compute-lcm": "^1.1.2", - "json-schema-compare": "^0.2.2", - "lodash": "^4.17.20" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", + "node_modules/flatted": { + "version": "3.2.5", "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==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jspdf": { - "version": "2.5.1", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.14.0", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "fflate": "^0.4.8" + "node": ">=4.0" }, - "optionalDependencies": { - "canvg": "^3.0.6", - "core-js": "^3.6.0", - "dompurify": "^2.2.0", - "html2canvas": "^1.0.0-rc.5" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/jspdf-autotable": { - "version": "3.5.23", - "license": "MIT", - "peerDependencies": { - "jspdf": "^2.3.1" + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" } }, - "node_modules/jsx-ast-utils": { - "version": "3.2.2", - "dev": true, - "license": "MIT", + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "array-includes": "^3.1.4", - "object.assign": "^4.1.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=4.0" + "node": ">= 6" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "dev": true, - "license": "MIT", + "node_modules/format": { + "version": "0.2.2", "engines": { - "node": ">=0.10.0" + "node": ">=0.4.x" } }, - "node_modules/known-css-properties": { - "version": "0.25.0", + "node_modules/fs.realpath": { + "version": "1.0.0", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/language-subtag-registry": { - "version": "0.3.21", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "license": "ODC-By-1.0" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "node_modules/language-tags": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "language-subtag-registry": "~0.3.2" + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuse.js": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", + "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/fuzzysort": { + "version": "1.2.1", "license": "MIT" }, - "node_modules/loader-runner": { - "version": "4.2.0", + "node_modules/gensync": { + "version": "1.0.0-beta.2", "license": "MIT", - "peer": true, "engines": { - "node": ">=6.11.5" + "node": ">=6.9.0" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "license": "MIT" - }, - "node_modules/lodash.escape": { - "version": "4.0.1", - "license": "MIT" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "license": "MIT" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", + "node_modules/get-size": { + "version": "2.0.3", "license": "MIT" }, - "node_modules/lodash.truncate": { - "version": "4.4.2", + "node_modules/get-stdin": { + "version": "8.0.0", "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "engines": { + "node": ">=10" }, - "bin": { - "loose-envify": "cli.js" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lowlight": { - "version": "1.20.0", + "node_modules/get-symbol-description": { + "version": "1.0.0", "license": "MIT", "dependencies": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lru-cache": { - "version": "6.0.0", + "node_modules/glob": { + "version": "7.2.0", "dev": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=10" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/map-obj": { - "version": "4.3.0", + "node_modules/glob-parent": { + "version": "6.0.2", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/markdown-to-jsx": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", - "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", - "engines": { - "node": ">= 10" + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "peer": true + }, + "node_modules/global-modules": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" }, - "peerDependencies": { - "react": ">= 0.14.0" + "engines": { + "node": ">=6" } }, - "node_modules/masonry-layout": { - "version": "4.2.2", + "node_modules/global-prefix": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "get-size": "^2.0.2", - "outlayer": "^2.1.0" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" } }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/memoize-one": { - "version": "5.2.1", - "license": "MIT" - }, - "node_modules/meow": { - "version": "9.0.0", + "node_modules/globby": { + "version": "11.1.0", "dev": true, "license": "MIT", "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { "node": ">=10" @@ -7267,3921 +4173,4382 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", + "node_modules/globjoin": { + "version": "0.1.4", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "license": "MIT", + "node_modules/graceful-fs": { + "version": "4.2.9", + "license": "ISC", "peer": true }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true }, - "node_modules/micromatch": { - "version": "4.0.5", + "node_modules/handlebars": { + "version": "4.7.7", "dev": true, "license": "MIT", "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">=8.6" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/mime-db": { - "version": "1.51.0", + "node_modules/hard-rejection": { + "version": "2.1.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/mime-types": { - "version": "2.1.34", + "node_modules/has": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "mime-db": "1.51.0" + "function-bind": "^1.1.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4.0" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "dev": true, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dependencies": { - "brace-expansion": "^1.1.7" + "get-intrinsic": "^1.1.1" }, - "engines": { - "node": "*" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimist": { - "version": "1.2.6", - "dev": true, - "license": "MIT" + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/minimist-options": { - "version": "4.1.0", - "dev": true, + "node_modules/has-symbols": { + "version": "1.0.3", "license": "MIT", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/moment": { - "version": "2.29.4", + "node_modules/has-tostringtag": { + "version": "1.0.0", "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/monaco-editor": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", - "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==", - "peer": true - }, - "node_modules/moo": { - "version": "0.5.1", - "license": "BSD-3-Clause" - }, - "node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">= 0.4" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/nearley": { - "version": "2.20.1", + "node_modules/hastscript": { + "version": "6.0.0", "license": "MIT", "dependencies": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "bin": { - "nearley-railroad": "bin/nearley-railroad.js", - "nearley-test": "bin/nearley-test.js", - "nearley-unparse": "bin/nearley-unparse.js", - "nearleyc": "bin/nearleyc.js" + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" }, "funding": { - "type": "individual", - "url": "https://nearley.js.org/#give-to-nearley" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/nearley/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "node_modules/neo-async": { - "version": "2.6.2", - "license": "MIT" + "node_modules/highlight.js": { + "version": "10.7.3", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } }, - "node_modules/node-fetch": { - "version": "2.6.7", - "dev": true, + "node_modules/history": { + "version": "5.3.0", "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "@babel/runtime": "^7.7.6" } }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" }, - "node_modules/normalize-package-data": { - "version": "3.0.3", + "node_modules/hosted-git-info": { + "version": "4.1.0", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, + "node_modules/hotkeys-js": { + "version": "3.8.7", + "license": "MIT" + }, + "node_modules/html-element-map": { + "version": "1.3.1", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "array.prototype.filter": "^1.0.0", + "call-bind": "^1.0.2" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/normalize-path": { - "version": "3.0.0", + "node_modules/html-tags": { + "version": "3.2.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nth-check": { - "version": "2.0.1", - "license": "BSD-2-Clause", + "node_modules/html2canvas": { + "version": "1.4.1", + "license": "MIT", + "optional": true, "dependencies": { - "boolbase": "^1.0.0" + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", + "node_modules/htmlparser2": { + "version": "6.1.0", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "node_modules/object-inspect": { - "version": "1.12.0", + "node_modules/husky": { + "version": "7.0.4", + "dev": true, "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=12" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/object-is": { - "version": "1.1.5", + "node_modules/iconv-lite": { + "version": "0.6.3", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/object-keys": { - "version": "1.1.1", + "node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">= 4" } }, - "node_modules/object.assign": { - "version": "4.1.2", + "node_modules/imagesloaded": { + "version": "4.1.4", "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "ev-emitter": "^1.0.0" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object.entries": { - "version": "1.1.5", + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, "engines": { - "node": ">= 0.4" + "node": ">=4" } }, - "node_modules/object.fromentries": { - "version": "2.0.5", + "node_modules/import-lazy": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "node_modules/imurmurhash": { + "version": "0.1.4", "dev": true, - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "engines": { + "node": ">=0.8.19" } }, - "node_modules/object.values": { - "version": "1.1.5", + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/once": { - "version": "1.4.0", + "node_modules/inflight": { + "version": "1.0.6", "dev": true, "license": "ISC", "dependencies": { + "once": "^1.3.0", "wrappy": "1" } }, - "node_modules/optionator": { - "version": "0.9.1", + "node_modules/inherits": { + "version": "2.0.4", "dev": true, - "license": "MIT", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" } }, - "node_modules/outlayer": { - "version": "2.1.1", + "node_modules/invariant": { + "version": "2.2.4", "license": "MIT", "dependencies": { - "ev-emitter": "^1.0.0", - "fizzy-ui-utils": "^2.0.0", - "get-size": "^2.0.2" + "loose-envify": "^1.0.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, + "node_modules/is-alphabetical": { + "version": "1.0.4", "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, + "node_modules/is-alphanumerical": { + "version": "1.0.4", "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/papaparse": { - "version": "5.3.1", + "node_modules/is-arrayish": { + "version": "0.2.1", "license": "MIT" }, - "node_modules/parent-module": { - "version": "1.0.1", - "license": "MIT", + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, "dependencies": { - "callsites": "^3.0.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parse-entities": { - "version": "2.0.0", - "license": "MIT", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" + "has-bigints": "^1.0.1" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parse-github-url": { - "version": "1.0.2", + "node_modules/is-binary-path": { + "version": "2.1.0", "dev": true, "license": "MIT", - "bin": { - "parse-github-url": "cli.js" + "dependencies": { + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/parse-json": { - "version": "5.2.0", + "node_modules/is-boolean-object": { + "version": "1.1.2", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parse5": { - "version": "6.0.1", - "license": "MIT" + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "license": "MIT", + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "parse5": "^6.0.1" + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, + "node_modules/is-date-object": { + "version": "1.0.5", "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, + "node_modules/is-decimal": { + "version": "1.0.4", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/path-key": { - "version": "3.1.1", + "node_modules/is-extglob": { + "version": "2.1.1", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "license": "MIT" + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/path-type": { - "version": "4.0.0", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "license": "MIT", + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "is-extglob": "^2.1.1" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=0.10.0" } }, - "node_modules/postcss-combine-duplicated-selectors": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/postcss-combine-duplicated-selectors/-/postcss-combine-duplicated-selectors-10.0.3.tgz", - "integrity": "sha512-IP0BmwFloCskv7DV7xqvzDXqMHpwdczJa6ZvIW8abgHdcIHs9mCJX2ltFhu3EwA51ozp13DByng30+Ke+eIExA==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", "dev": true, - "license": "MIT" + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "dev": true, + "node_modules/is-negative-zero": { + "version": "2.0.2", "license": "MIT", "engines": { - "node": ">=12.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-scss": { - "version": "4.0.3", + "node_modules/is-number": { + "version": "7.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" + "node": ">=0.12.0" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", + "node_modules/is-number-object": { + "version": "1.0.6", "license": "MIT", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss-sorting": { - "version": "7.0.1", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.3.9" + "engines": { + "node": ">=8" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", + "node_modules/is-plain-obj": { + "version": "1.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/prettier": { - "version": "2.4.1", + "node_modules/is-plain-object": { + "version": "5.0.0", "dev": true, "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "dev": true, + "node_modules/is-regex": { + "version": "1.1.4", "license": "MIT", "dependencies": { - "fast-diff": "^1.1.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prismjs": { - "version": "1.27.0", + "node_modules/is-regexp": { + "version": "2.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/promise": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "asap": "~2.0.6" + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prop-types": { - "version": "15.8.1", + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "node_modules/is-string": { + "version": "1.0.7", + "license": "MIT", "dependencies": { - "react-is": "^16.3.2", - "warning": "^4.0.0" + "has-tostringtag": "^1.0.0" }, - "peerDependencies": { - "react": ">=0.14.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prop-types-extra/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==" - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", + "node_modules/is-subset": { + "version": "0.1.1", "license": "MIT" }, - "node_modules/property-information": { - "version": "5.6.0", + "node_modules/is-symbol": { + "version": "1.0.4", "license": "MIT", "dependencies": { - "xtend": "^4.0.0" + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dependencies": { + "which-typed-array": "^1.1.11" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/quick-lru": { - "version": "4.0.1", - "dev": true, + "node_modules/is-weakref": { + "version": "1.0.2", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/raf": { - "version": "3.4.1", - "license": "MIT", + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, "dependencies": { - "performance-now": "^2.1.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/railroad-diagrams": { - "version": "1.0.0", - "license": "CC0-1.0" + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, - "node_modules/randexp": { - "version": "0.4.6", - "license": "MIT", + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, "dependencies": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - }, - "engines": { - "node": ">=0.12" + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "license": "MIT", - "peer": true, + "node_modules/javascript-time-ago": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.5.9.tgz", + "integrity": "sha512-pQ8mNco/9g9TqWXWWjP0EWl6i/lAQScOyEeXy5AB+f7MfLSdgyV9BJhiOD1zrIac/lrxPYOWNbyl/IW8CW5n0A==", "dependencies": { - "safe-buffer": "^5.1.0" + "relative-time-format": "^1.1.6" } }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "node_modules/jest-worker": { + "version": "27.5.1", + "license": "MIT", + "peer": true, "dependencies": { - "loose-envify": "^1.1.0" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, - "node_modules/react-app-polyfill": { - "version": "2.0.0", + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", "license": "MIT", - "dependencies": { - "core-js": "^3.6.5", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.7", - "whatwg-fetch": "^3.4.1" - }, + "peer": true, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/react-bootstrap": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.7.tgz", - "integrity": "sha512-IzCYXuLSKDEjGFglbFWk0/iHmdhdcJzTmtS6lXxc0kaNFx2PFgrQf5jKnx5sarF2tiXh9Tgx3pSt3pdK7YwkMA==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "license": "MIT", + "peer": true, "dependencies": { - "@babel/runtime": "^7.14.0", - "@restart/context": "^2.1.4", - "@restart/hooks": "^0.4.7", - "@types/invariant": "^2.2.33", - "@types/prop-types": "^15.7.3", - "@types/react": ">=16.14.8", - "@types/react-transition-group": "^4.4.1", - "@types/warning": "^3.0.0", - "classnames": "^2.3.1", - "dom-helpers": "^5.2.1", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "prop-types-extra": "^1.1.0", - "react-overlays": "^5.1.2", - "react-transition-group": "^4.4.1", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" + "has-flag": "^4.0.0" }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/react-copy-to-clipboard": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", - "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", + "node_modules/js-tokens": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "dependencies": { - "copy-to-clipboard": "^3.3.1", - "prop-types": "^15.8.1" + "argparse": "^2.0.1" }, - "peerDependencies": { - "react": "^15.3.0 || 16 || 17 || 18" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/react-data-table-component": { - "version": "7.4.7", - "license": "Apache-2.0", - "dependencies": { - "deepmerge": "^4.2.2" + "node_modules/jsesc": { + "version": "2.5.2", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, - "peerDependencies": { - "react": ">= 16.8.3", - "styled-components": ">= 4" + "engines": { + "node": ">=4" } }, - "node_modules/react-datepicker": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.10.0.tgz", - "integrity": "sha512-6IfBCZyWj54ZZGLmEZJ9c4Yph0s9MVfEGDC2evOvf9AmVz+RRcfP2Czqad88Ff9wREbcbqa4dk7IFYeXF1d3Ag==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "license": "MIT" + }, + "node_modules/json-schema-compare": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", + "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", "dependencies": { - "@popperjs/core": "^2.9.2", - "classnames": "^2.2.6", - "date-fns": "^2.24.0", - "prop-types": "^15.7.2", - "react-onclickoutside": "^6.12.2", - "react-popper": "^2.3.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17 || ^18", - "react-dom": "^16.9.0 || ^17 || ^18" + "lodash": "^4.17.4" } }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "node_modules/json-schema-merge-allof": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", + "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "compute-lcm": "^1.1.2", + "json-schema-compare": "^0.2.2", + "lodash": "^4.17.20" }, - "peerDependencies": { - "react": "^18.2.0" + "engines": { + "node": ">=12.0.0" } }, - "node_modules/react-fast-compare": { - "version": "3.2.0", + "node_modules/json-schema-traverse": { + "version": "0.4.1", "license": "MIT" }, - "node_modules/react-final-form": { - "version": "6.5.9", - "resolved": "https://registry.npmjs.org/react-final-form/-/react-final-form-6.5.9.tgz", - "integrity": "sha512-x3XYvozolECp3nIjly+4QqxdjSSWfcnpGEL5K8OBT6xmGrq5kBqbA6+/tOqoom9NwqIPPbxPNsOViFlbKgowbA==", - "dependencies": { - "@babel/runtime": "^7.15.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/final-form" + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "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==", + "bin": { + "json5": "lib/cli.js" }, - "peerDependencies": { - "final-form": "^4.20.4", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/react-final-form-arrays": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/react-final-form-arrays/-/react-final-form-arrays-3.1.4.tgz", - "integrity": "sha512-siVFAolUAe29rMR6u8VwepoysUcUdh6MLV2OWnCtKpsPRUdT9VUgECjAPaVMAH2GROZNiVB9On1H9MMrm9gdpg==", + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jspdf": { + "version": "2.5.1", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.19.4" + "@babel/runtime": "^7.14.0", + "atob": "^2.1.2", + "btoa": "^1.2.1", + "fflate": "^0.4.8" }, - "peerDependencies": { - "final-form": "^4.15.0", - "final-form-arrays": ">=1.0.4", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-final-form": "^6.2.1" + "optionalDependencies": { + "canvg": "^3.0.6", + "core-js": "^3.6.0", + "dompurify": "^2.2.0", + "html2canvas": "^1.0.0-rc.5" } }, - "node_modules/react-final-form-listeners": { - "version": "1.0.3", + "node_modules/jspdf-autotable": { + "version": "3.5.23", "license": "MIT", + "peerDependencies": { + "jspdf": "^2.3.1" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, "dependencies": { - "@babel/runtime": "^7.12.5" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" }, - "peerDependencies": { - "final-form": ">=4.0.0", - "prop-types": "^15.6.0", - "react": "^15.3.0 || ^16.0.0 || ^17.0.0", - "react-final-form": ">=3.0.0" + "engines": { + "node": ">=4.0" } }, - "node_modules/react-helmet-async": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "node_modules/kind-of": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/known-css-properties": { + "version": "0.25.0", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "dependencies": { - "@babel/runtime": "^7.12.5", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.2.0", - "shallowequal": "^1.1.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/react-hotkeys-hook": { - "version": "3.4.4", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, "license": "MIT", "dependencies": { - "hotkeys-js": "3.8.7" + "p-locate": "^5.0.0" }, - "peerDependencies": { - "react": ">=16.8.1", - "react-dom": ">=16.8.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-is": { - "version": "17.0.2", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "license": "MIT" + }, + "node_modules/lodash.escape": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", "license": "MIT" }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-loading-skeleton": { - "version": "3.1.0", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } + "node_modules/lodash.truncate": { + "version": "4.4.2", + "dev": true, + "license": "MIT" }, - "node_modules/react-masonry-component": { - "version": "6.3.0", + "node_modules/loose-envify": { + "version": "1.4.0", "license": "MIT", "dependencies": { - "create-react-class": "^15.6.2", - "element-resize-detector": "^1.1.9", - "imagesloaded": "^4.0.0", - "lodash": "^4.17.4", - "masonry-layout": "^4.2.0", - "prop-types": "^15.5.8" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "peerDependencies": { - "react": "^0.14.0 || ^15.0.0-0 || ^16.0.0-0 || ^17.0.0" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/react-media-hook": { - "version": "0.4.9", + "node_modules/lowlight": { + "version": "1.20.0", "license": "MIT", - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/react-onclickoutside": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz", - "integrity": "sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A==", - "funding": { - "type": "individual", - "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" + "dependencies": { + "fault": "^1.0.0", + "highlight.js": "~10.7.0" }, - "peerDependencies": { - "react": "^15.5.x || ^16.x || ^17.x || ^18.x", - "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/react-overlays": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", - "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", + "node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", "dependencies": { - "@babel/runtime": "^7.13.8", - "@popperjs/core": "^2.11.6", - "@restart/hooks": "^0.4.7", - "@types/warning": "^3.0.0", - "dom-helpers": "^5.2.0", - "prop-types": "^15.7.2", - "uncontrollable": "^7.2.1", - "warning": "^4.0.3" + "yallist": "^4.0.0" }, - "peerDependencies": { - "react": ">=16.3.0", - "react-dom": ">=16.3.0" + "engines": { + "node": ">=10" } }, - "node_modules/react-papaparse": { - "version": "3.18.2", + "node_modules/map-obj": { + "version": "4.3.0", + "dev": true, "license": "MIT", - "dependencies": { - "@types/papaparse": "^5.3.1", - "papaparse": "^5.3.1" - }, "engines": { - "node": ">=8", - "npm": ">=5" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-popper": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", - "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", - "dependencies": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" + "node_modules/markdown-to-jsx": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", + "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", + "engines": { + "node": ">= 10" }, "peerDependencies": { - "@popperjs/core": "^2.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" + "react": ">= 0.14.0" } }, - "node_modules/react-redux": { - "version": "7.2.6", + "node_modules/masonry-layout": { + "version": "4.2.2", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "peerDependencies": { - "react": "^16.8.3 || ^17" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "get-size": "^2.0.2", + "outlayer": "^2.1.0" } }, - "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==", + "node_modules/mathml-tag-names": { + "version": "2.1.3", "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "6.2.2", "license": "MIT", - "dependencies": { - "history": "^5.2.0" - }, - "peerDependencies": { - "react": ">=16.8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/react-router-dom": { - "version": "6.2.2", - "license": "MIT", - "dependencies": { - "history": "^5.2.0", - "react-router": "6.2.2" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } + "node_modules/memoize-one": { + "version": "5.2.1", + "license": "MIT" }, - "node_modules/react-select": { - "version": "5.3.0", + "node_modules/meow": { + "version": "9.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.0", - "@emotion/cache": "^11.4.0", - "@emotion/react": "^11.1.1", - "@types/react-transition-group": "^4.4.0", - "memoize-one": "^5.0.0", - "prop-types": "^15.6.0", - "react-transition-group": "^4.3.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-select-search": { - "version": "3.0.9", - "license": "MIT", - "optionalDependencies": { - "fuse.js": "^3.4.5" + "engines": { + "node": ">=10" }, - "peerDependencies": { - "prop-types": "^15.7.2", - "react": "^17.0.1", - "react-dom": "^17.0.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-select-search/node_modules/fuse.js": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", - "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", - "optional": true, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-syntax-highlighter": { - "version": "15.4.5", + "node_modules/merge-stream": { + "version": "2.0.0", "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "highlight.js": "^10.4.1", - "lowlight": "^1.17.0", - "prismjs": "^1.25.0", - "refractor": "^3.2.0" - }, - "peerDependencies": { - "react": ">= 0.14.0" - } + "peer": true }, - "node_modules/react-time-ago": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/react-time-ago/-/react-time-ago-7.2.1.tgz", - "integrity": "sha512-X5zwJDZHa1fsMwMvh8mrHN31g85s84zMCp+d7YL6IX50kNnr6YMAS2wpt1BmO9OxBV2Ue5J1ptD6JI8Zjd35HA==", - "dependencies": { - "memoize-one": "^6.0.0", - "prop-types": "^15.8.1", - "raf": "^3.4.1" - }, - "peerDependencies": { - "javascript-time-ago": "^2.3.7", - "react": ">=0.16.8", - "react-dom": ">=0.16.8" + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" } }, - "node_modules/react-time-ago/node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" + "engines": { + "node": ">=8.6" } }, - "node_modules/read-pkg": { - "version": "5.2.0", - "dev": true, + "node_modules/mime-db": { + "version": "1.51.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "mime-db": "1.51.0" }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/read-pkg-up": { - "version": "7.0.1", + "node_modules/min-indent": { + "version": "1.0.1", "dev": true, "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "node_modules/read-pkg-up/node_modules/find-up": { + "node_modules/minimist": { + "version": "1.2.6", + "dev": true, + "license": "MIT" + }, + "node_modules/minimist-options": { "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, + "node_modules/moment": { + "version": "2.29.4", "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" + "engines": { + "node": "*" + } + }, + "node_modules/monaco-editor": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", + "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==", + "peer": true + }, + "node_modules/moo": { + "version": "0.5.1", + "license": "BSD-3-Clause" + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/natural-compare": { + "version": "1.4.0", "dev": true, + "license": "MIT" + }, + "node_modules/nearley": { + "version": "2.20.1", "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" }, - "engines": { - "node": ">=6" + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" } }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/nearley/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.6.7", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC" + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", + "node_modules/normalize-path": { + "version": "3.0.0", "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "dev": true, - "license": "MIT", + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dependencies": { - "picomatch": "^2.2.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=8.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/redent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/redux": { - "version": "4.1.1", - "license": "MIT", + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, "dependencies": { - "@babel/runtime": "^7.9.2" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/redux-immutable-state-invariant": { - "version": "2.1.0", + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, - "license": "MIT", "dependencies": { - "invariant": "^2.1.0", - "json-stringify-safe": "^5.0.1" - } - }, - "node_modules/redux-persist": { - "version": "6.0.0", - "license": "MIT", - "peerDependencies": { - "redux": ">4.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" } }, - "node_modules/redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", - "peerDependencies": { - "redux": "^4" + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/refractor": { - "version": "3.6.0", - "license": "MIT", + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dependencies": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerate": { - "version": "1.4.2", + "node_modules/once": { + "version": "1.4.0", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "wrappy": "1" + } }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, - "license": "MIT", "dependencies": { - "regenerate": "^1.4.2" + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "dev": true, + "node_modules/outlayer": { + "version": "2.1.1", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.8.4" + "ev-emitter": "^1.0.0", + "fizzy-ui-utils": "^2.0.0", + "get-size": "^2.0.2" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.2", + "node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/regexpp": { - "version": "3.2.0", + "node_modules/p-locate": { + "version": "5.0.0", "dev": true, "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/regexpu-core": { - "version": "5.0.1", + "node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/regjsgen": { - "version": "0.6.0", - "dev": true, + "node_modules/papaparse": { + "version": "5.3.1", "license": "MIT" }, - "node_modules/regjsparser": { - "version": "0.8.4", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/parent-module": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "jsesc": "~0.5.0" + "callsites": "^3.0.0" }, - "bin": { - "regjsparser": "bin/parser" + "engines": { + "node": ">=6" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "node_modules/parse-entities": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/relative-time-format": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/relative-time-format/-/relative-time-format-1.1.6.tgz", - "integrity": "sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ==" - }, - "node_modules/require-from-string": { - "version": "2.0.2", + "node_modules/parse-github-url": { + "version": "1.0.2", + "dev": true, "license": "MIT", + "bin": { + "parse-github-url": "cli.js" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" - }, - "node_modules/resolve": { - "version": "1.22.1", + "node_modules/parse-json": { + "version": "5.2.0", "license": "MIT", "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/resolve-from": { - "version": "5.0.0", + "node_modules/parse5": { + "version": "6.0.1", + "license": "MIT" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/ret": { - "version": "0.1.15", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.12" + "node": ">=0.10.0" } }, - "node_modules/reusify": { - "version": "1.0.4", + "node_modules/path-key": { + "version": "3.1.1", "dev": true, "license": "MIT", "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/rgbcolor": { - "version": "1.0.1", - "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", - "optional": true, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "license": "MIT", "engines": { - "node": ">= 0.8.15" + "node": ">=8" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node_modules/performance-now": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rst-selector-parser": { - "version": "2.2.3", - "license": "BSD-3-Clause", - "dependencies": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "node_modules/safe-buffer": { - "version": "5.1.2", + "node_modules/postcss-combine-duplicated-selectors": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/postcss-combine-duplicated-selectors/-/postcss-combine-duplicated-selectors-10.0.3.tgz", + "integrity": "sha512-IP0BmwFloCskv7DV7xqvzDXqMHpwdczJa6ZvIW8abgHdcIHs9mCJX2ltFhu3EwA51ozp13DByng30+Ke+eIExA==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "dev": true, "license": "MIT" }, - "node_modules/safer-buffer": { - "version": "2.1.2", + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "dev": true, "license": "MIT" }, - "node_modules/sass": { - "version": "1.64.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.2.tgz", - "integrity": "sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg==", + "node_modules/postcss-safe-parser": { + "version": "6.0.0", "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" + "license": "MIT", + "engines": { + "node": ">=12.0" }, - "bin": { - "sass": "sass.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" + "peerDependencies": { + "postcss": "^8.3.3" } }, - "node_modules/schema-utils": { - "version": "3.1.1", + "node_modules/postcss-scss": { + "version": "4.0.3", + "dev": true, "license": "MIT", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, "engines": { - "node": ">= 10.13.0" + "node": ">=12.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" } }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" + "node_modules/postcss-sorting": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "^8.3.9" } }, - "node_modules/shallowequal": { - "version": "1.1.0", + "node_modules/postcss-value-parser": { + "version": "4.2.0", "license": "MIT" }, - "node_modules/shebang-command": { - "version": "2.0.0", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 0.8.0" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", + "node_modules/prettier": { + "version": "2.4.1", "dev": true, "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, "engines": { - "node": ">=8" + "node": ">=10.13.0" } }, - "node_modules/side-channel": { - "version": "1.0.4", + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "fast-diff": "^1.1.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/simplebar": { - "version": "5.3.6", + "node_modules/prismjs": { + "version": "1.27.0", "license": "MIT", - "dependencies": { - "@juggle/resize-observer": "^3.3.1", - "can-use-dom": "^0.1.0", - "core-js": "^3.0.1", - "lodash.debounce": "^4.0.8", - "lodash.memoize": "^4.1.2", - "lodash.throttle": "^4.1.1" + "engines": { + "node": ">=6" } }, - "node_modules/simplebar-react": { - "version": "2.3.6", + "node_modules/promise": { + "version": "8.1.0", "license": "MIT", "dependencies": { - "prop-types": "^15.6.1", - "simplebar": "^5.3.6" - }, - "peerDependencies": { - "react": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0", - "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0" + "asap": "~2.0.6" } }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, + "node_modules/prop-types": { + "version": "15.8.1", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", + "node_modules/prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" + "react-is": "^16.3.2", + "warning": "^4.0.0" }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "peerDependencies": { + "react": ">=0.14.0" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, + "node_modules/prop-types-extra/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==" + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, + "node_modules/property-information": { + "version": "5.6.0", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "xtend": "^4.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.1.1", "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", + "node_modules/queue-microtask": { + "version": "1.2.3", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT" }, - "node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", + "node_modules/quick-lru": { + "version": "4.0.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/source-map-js": { - "version": "1.0.2", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "node_modules/raf": { + "version": "3.4.1", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" } }, - "node_modules/source-map-loader": { - "version": "3.0.1", + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "license": "CC0-1.0" + }, + "node_modules/randexp": { + "version": "0.4.6", "license": "MIT", "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "node": ">=0.12" } }, - "node_modules/source-map-support": { - "version": "0.5.21", + "node_modules/randombytes": { + "version": "2.1.0", "license": "MIT", "peer": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "safe-buffer": "^5.1.0" } }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "dev": true, - "license": "Apache-2.0", + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, + "node_modules/react-app-polyfill": { + "version": "2.0.0", "license": "MIT", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/stackblur-canvas": { - "version": "2.5.0", - "license": "MIT", - "optional": true, + "core-js": "^3.6.5", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "whatwg-fetch": "^3.4.1" + }, "engines": { - "node": ">=0.1.14" + "node": ">=10" } }, - "node_modules/state-local": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", + "node_modules/react-bootstrap": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.6.7.tgz", + "integrity": "sha512-IzCYXuLSKDEjGFglbFWk0/iHmdhdcJzTmtS6lXxc0kaNFx2PFgrQf5jKnx5sarF2tiXh9Tgx3pSt3pdK7YwkMA==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@babel/runtime": "^7.14.0", + "@restart/context": "^2.1.4", + "@restart/hooks": "^0.4.7", + "@types/invariant": "^2.2.33", + "@types/prop-types": "^15.7.3", + "@types/react": ">=16.14.8", + "@types/react-transition-group": "^4.4.1", + "@types/warning": "^3.0.0", + "classnames": "^2.3.1", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "prop-types-extra": "^1.1.0", + "react-overlays": "^5.1.2", + "react-transition-group": "^4.4.1", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" + "node_modules/react-copy-to-clipboard": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", + "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", + "dependencies": { + "copy-to-clipboard": "^3.3.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": "^15.3.0 || 16 || 17 || 18" + } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.7", - "dev": true, - "license": "MIT", + "node_modules/react-data-table-component": { + "version": "7.4.7", + "license": "Apache-2.0", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" + "deepmerge": "^4.2.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "react": ">= 16.8.3", + "styled-components": ">= 4" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.5", - "license": "MIT", + "node_modules/react-datepicker": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.10.0.tgz", + "integrity": "sha512-6IfBCZyWj54ZZGLmEZJ9c4Yph0s9MVfEGDC2evOvf9AmVz+RRcfP2Czqad88Ff9wREbcbqa4dk7IFYeXF1d3Ag==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "@popperjs/core": "^2.9.2", + "classnames": "^2.2.6", + "date-fns": "^2.24.0", + "prop-types": "^15.7.2", + "react-onclickoutside": "^6.12.2", + "react-popper": "^2.3.0" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "react": "^16.9.0 || ^17 || ^18", + "react-dom": "^16.9.0 || ^17 || ^18" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "react": "^18.2.0" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "license": "MIT", + "node_modules/react-fast-compare": { + "version": "3.2.0", + "license": "MIT" + }, + "node_modules/react-final-form": { + "version": "6.5.9", + "resolved": "https://registry.npmjs.org/react-final-form/-/react-final-form-6.5.9.tgz", + "integrity": "sha512-x3XYvozolECp3nIjly+4QqxdjSSWfcnpGEL5K8OBT6xmGrq5kBqbA6+/tOqoom9NwqIPPbxPNsOViFlbKgowbA==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "@babel/runtime": "^7.15.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/final-form" + }, + "peerDependencies": { + "final-form": "^4.20.4", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "license": "MIT", + "node_modules/react-final-form-arrays": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/react-final-form-arrays/-/react-final-form-arrays-3.1.4.tgz", + "integrity": "sha512-siVFAolUAe29rMR6u8VwepoysUcUdh6MLV2OWnCtKpsPRUdT9VUgECjAPaVMAH2GROZNiVB9On1H9MMrm9gdpg==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "@babel/runtime": "^7.19.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "final-form": "^4.15.0", + "final-form-arrays": ">=1.0.4", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-final-form": "^6.2.1" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, + "node_modules/react-final-form-listeners": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "@babel/runtime": "^7.12.5" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "final-form": ">=4.0.0", + "prop-types": "^15.6.0", + "react": "^15.3.0 || ^16.0.0 || ^17.0.0", + "react-final-form": ">=3.0.0" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "dev": true, - "license": "MIT", + "node_modules/react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", "dependencies": { - "min-indent": "^1.0.0" + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, + "node_modules/react-hotkeys-hook": { + "version": "3.4.4", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "hotkeys-js": "3.8.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "react": ">=16.8.1", + "react-dom": ">=16.8.1" } }, - "node_modules/style-search": { - "version": "0.1.0", - "dev": true, - "license": "ISC" + "node_modules/react-is": { + "version": "17.0.2", + "license": "MIT" }, - "node_modules/styled-components": { - "version": "5.3.3", + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-loading-skeleton": { + "version": "3.1.0", "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.4.5", - "@emotion/is-prop-valid": "^0.8.8", - "@emotion/stylis": "^0.8.4", - "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1.12.0", - "css-to-react-native": "^3.0.0", - "hoist-non-react-statics": "^3.0.0", - "shallowequal": "^1.1.0", - "supports-color": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0", - "react-is": ">= 16.8.0" + "react": ">=16.8.0" } }, - "node_modules/stylelint": { - "version": "14.9.1", - "dev": true, + "node_modules/react-masonry-component": { + "version": "6.3.0", "license": "MIT", "dependencies": { - "@csstools/selector-specificity": "^2.0.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.2", - "cosmiconfig": "^7.0.1", - "css-functions-list": "^3.1.0", - "debug": "^4.3.4", - "execall": "^2.0.0", - "fast-glob": "^3.2.11", - "fastest-levenshtein": "^1.0.12", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.0", - "import-lazy": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.25.0", - "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.14", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^2.2.0", - "svg-tags": "^1.0.0", - "table": "^6.8.0", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "create-react-class": "^15.6.2", + "element-resize-detector": "^1.1.9", + "imagesloaded": "^4.0.0", + "lodash": "^4.17.4", + "masonry-layout": "^4.2.0", + "prop-types": "^15.5.8" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0-0 || ^16.0.0-0 || ^17.0.0" } }, - "node_modules/stylelint-config-sass-guidelines": { - "version": "9.0.1", - "dev": true, + "node_modules/react-media-hook": { + "version": "0.4.9", "license": "MIT", - "dependencies": { - "postcss-scss": "^4.0.2", - "stylelint-order": "^5.0.0", - "stylelint-scss": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^14.0.1" + "react": ">=16.8.0" } }, - "node_modules/stylelint-order": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^8.3.11", - "postcss-sorting": "^7.0.1" + "node_modules/react-onclickoutside": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz", + "integrity": "sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A==", + "funding": { + "type": "individual", + "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" }, "peerDependencies": { - "stylelint": "^14.0.0" + "react": "^15.5.x || ^16.x || ^17.x || ^18.x", + "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" } }, - "node_modules/stylelint-scss": { - "version": "4.3.0", - "dev": true, - "license": "MIT", + "node_modules/react-overlays": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.2.1.tgz", + "integrity": "sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==", "dependencies": { - "lodash": "^4.17.21", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0" + "@babel/runtime": "^7.13.8", + "@popperjs/core": "^2.11.6", + "@restart/hooks": "^0.4.7", + "@types/warning": "^3.0.0", + "dom-helpers": "^5.2.0", + "prop-types": "^15.7.2", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" }, "peerDependencies": { - "stylelint": "^14.5.1" + "react": ">=16.3.0", + "react-dom": ">=16.3.0" } }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/stylelint/node_modules/write-file-atomic": { - "version": "4.0.1", - "dev": true, - "license": "ISC", + "node_modules/react-papaparse": { + "version": "3.18.2", + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "@types/papaparse": "^5.3.1", + "papaparse": "^5.3.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=8", + "npm": ">=5" } }, - "node_modules/stylis": { - "version": "4.0.13", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", + "node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", "dependencies": { - "has-flag": "^3.0.0" + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" }, - "engines": { - "node": ">=4" + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" } }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "dev": true, + "node_modules/react-redux": { + "version": "7.2.6", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "react": "^16.8.3 || ^17" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } } }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", + "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": ">=8" + "node": ">=0.10.0" } }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, + "node_modules/react-router": { + "version": "6.2.2", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "history": "^5.2.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "react": ">=16.8" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", + "node_modules/react-router-dom": { + "version": "6.2.2", "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "history": "^5.2.0", + "react-router": "6.2.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" } }, - "node_modules/svg-pathdata": { - "version": "6.0.3", + "node_modules/react-select": { + "version": "5.3.0", "license": "MIT", - "optional": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "dev": true - }, - "node_modules/table": { - "version": "6.8.0", - "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.1.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^5.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0" }, - "engines": { - "node": ">=10.0.0" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/table/node_modules/ajv": { - "version": "8.10.0", - "dev": true, + "node_modules/react-select-search": { + "version": "3.0.9", "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "optionalDependencies": { + "fuse.js": "^3.4.5" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "prop-types": "^15.7.2", + "react": "^17.0.1", + "react-dom": "^17.0.1" } }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/tapable": { - "version": "2.2.1", - "license": "MIT", - "peer": true, + "node_modules/react-select-search/node_modules/fuse.js": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", + "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", + "optional": true, "engines": { "node": ">=6" } }, - "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "peer": true, + "node_modules/react-syntax-highlighter": { + "version": "15.4.5", + "license": "MIT", "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" + "@babel/runtime": "^7.3.1", + "highlight.js": "^10.4.1", + "lowlight": "^1.17.0", + "prismjs": "^1.25.0", + "refractor": "^3.2.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react": ">= 0.14.0" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "license": "MIT", - "peer": true, + "node_modules/react-time-ago": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/react-time-ago/-/react-time-ago-7.2.1.tgz", + "integrity": "sha512-X5zwJDZHa1fsMwMvh8mrHN31g85s84zMCp+d7YL6IX50kNnr6YMAS2wpt1BmO9OxBV2Ue5J1ptD6JI8Zjd35HA==", "dependencies": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "memoize-one": "^6.0.0", + "prop-types": "^15.8.1", + "raf": "^3.4.1" }, "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } + "javascript-time-ago": "^2.3.7", + "react": ">=0.16.8", + "react-dom": ">=0.16.8" } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "license": "MIT", - "peer": true + "node_modules/react-time-ago/node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" }, - "node_modules/text-segmentation": { - "version": "1.0.3", - "license": "MIT", - "optional": true, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "dependencies": { - "utrie": "^1.0.2" + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" } }, - "node_modules/text-table": { - "version": "0.2.0", + "node_modules/read-pkg": { + "version": "5.2.0", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", + "node_modules/read-pkg-up": { + "version": "7.0.1", + "dev": true, "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=8.0" + "node": ">=8" } }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/tr46": { - "version": "0.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/trim-newlines": { - "version": "3.0.1", + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", "dev": true, "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, "engines": { "node": ">=8" } }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", "dev": true, + "license": "MIT", "dependencies": { - "minimist": "^1.2.0" + "p-limit": "^2.2.0" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">=8" } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", "dev": true, - "license": "MIT", + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" }, - "node_modules/tsutils": { - "version": "3.21.0", + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "license": "0BSD" + "bin": { + "semver": "bin/semver" + } }, - "node_modules/type-check": { - "version": "0.4.0", + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/typescript": { - "version": "4.6.3", + "node_modules/readdirp": { + "version": "3.6.0", "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" }, "engines": { - "node": ">=4.2.0" + "node": ">=8.10.0" } }, - "node_modules/uglify-js": { - "version": "3.15.2", + "node_modules/redent": { + "version": "3.0.0", "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" }, "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/unbox-primitive": { - "version": "1.0.1", + "node_modules/redux": { + "version": "4.1.1", "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@babel/runtime": "^7.9.2" } }, - "node_modules/uncontrollable": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "node_modules/redux-immutable-state-invariant": { + "version": "2.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.6.3", - "@types/react": ">=16.9.11", - "invariant": "^2.2.4", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">=15.0.0" + "invariant": "^2.1.0", + "json-stringify-safe": "^5.0.1" } }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "dev": true, + "node_modules/redux-persist": { + "version": "6.0.0", "license": "MIT", - "engines": { - "node": ">=4" + "peerDependencies": { + "redux": ">4.0.0" } }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", "dev": true, - "license": "MIT", "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "dev": true, + "node_modules/refractor": { + "version": "3.6.0", "license": "MIT", + "dependencies": { + "hastscript": "^6.0.0", + "parse-entities": "^2.0.0", + "prismjs": "~1.27.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "dev": true, + "node_modules/relative-time-format": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/relative-time-format/-/relative-time-format-1.1.6.tgz", + "integrity": "sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ==" + }, + "node_modules/require-from-string": { + "version": "2.0.2", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "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" - } - ], + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { - "update-browserslist-db": "cli.js" + "resolve": "bin/resolve" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/utrie": { - "version": "1.0.2", + "node_modules/ret": { + "version": "0.1.15", "license": "MIT", - "optional": true, - "dependencies": { - "base64-arraybuffer": "^1.0.2" + "engines": { + "node": ">=0.12" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", + "node_modules/reusify": { + "version": "1.0.4", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/validate.io-array": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==" - }, - "node_modules/validate.io-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", - "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" - }, - "node_modules/validate.io-integer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", - "dependencies": { - "validate.io-number": "^1.0.3" + "node_modules/rgbcolor": { + "version": "1.0.1", + "license": "MIT OR SEE LICENSE IN FEEL-FREE.md", + "optional": true, + "engines": { + "node": ">= 0.8.15" } }, - "node_modules/validate.io-integer-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", - "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", "dependencies": { - "validate.io-array": "^1.0.3", - "validate.io-integer": "^1.0.4" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/validate.io-number": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" - }, - "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - }, "bin": { - "vite": "bin/vite.js" + "rollup": "dist/bin/rollup" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" + "node": ">=10.0.0" }, "optionalDependencies": { "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true + } + }, + "node_modules/rst-selector-parser": { + "version": "2.2.3", + "license": "BSD-3-Clause", + "dependencies": { + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "sugarss": { - "optional": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "terser": { - "optional": true + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "node_modules/vite/node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" + "node": ">=0.4" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dependencies": { - "loose-envify": "^1.0.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "peer": true, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.64.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.2.tgz", + "integrity": "sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg==", + "dev": true, "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" } }, - "node_modules/webpack": { - "version": "5.77.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.77.0.tgz", - "integrity": "sha512-sbGNjBr5Ya5ss91yzjeJTLKyfiwo5C628AFjEa6WSXcZa4E+F57om3Cc8xLb1Jh0b243AWuSYRf3dn7HVeFQ9Q==", + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "license": "MIT", "peer": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">=10.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } } }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "license": "MIT", + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "license": "BSD-3-Clause", "peer": true, - "engines": { - "node": ">=10.13.0" + "dependencies": { + "randombytes": "^2.1.0" } }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "license": "BSD-2-Clause", - "peer": true, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" } }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "peer": true, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" } }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", + "node_modules/shallowequal": { + "version": "1.1.0", "license": "MIT" }, - "node_modules/whatwg-url": { - "version": "5.0.0", + "node_modules/shebang-command": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/whatwg-url/node_modules/webidl-conversions": { - "version": "3.0.1", + "node_modules/shebang-regex": { + "version": "3.0.0", "dev": true, - "license": "BSD-2-Clause" + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, - "engines": { - "node": ">= 8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/simplebar": { + "version": "5.3.6", "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "@juggle/resize-observer": "^3.3.1", + "can-use-dom": "^0.1.0", + "core-js": "^3.0.1", + "lodash.debounce": "^4.0.8", + "lodash.memoize": "^4.1.2", + "lodash.throttle": "^4.1.1" + } + }, + "node_modules/simplebar-react": { + "version": "2.3.6", + "license": "MIT", + "dependencies": { + "prop-types": "^15.6.1", + "simplebar": "^5.3.6" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "react": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0", + "react-dom": "^0.14.9 || ^15.3.0 || ^16.0.0-rc || ^16.0 || ^17.0" } }, - "node_modules/word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", + "node_modules/slash": { + "version": "3.0.0", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/wordwrap": { - "version": "1.0.0", + "node_modules/slice-ansi": { + "version": "4.0.0", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } }, - "node_modules/wrappy": { - "version": "1.0.2", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "node_modules/xtend": { - "version": "4.0.2", + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=0.4" + "node": ">=7.0.0" } }, - "node_modules/yallist": { - "version": "4.0.0", + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/yaml": { - "version": "1.10.2", - "license": "ISC", + "node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "dev": true, - "license": "ISC", + "node_modules/source-map-js": { + "version": "1.0.2", + "license": "BSD-3-Clause", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, + "node_modules/source-map-loader": { + "version": "3.0.1", "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, "engines": { - "node": ">=10" + "node": ">= 12.13.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "node_modules/source-map-support": { + "version": "0.5.21", + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==" + "node_modules/space-separated-tokens": { + "version": "1.1.5", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "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==" - } + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "@babel/eslint-parser": { - "version": "7.17.0", + "node_modules/spdx-exceptions": { + "version": "2.3.0", "dev": true, - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "dev": true - }, - "estraverse": { - "version": "4.3.0", - "dev": true - } + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "@babel/generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", - "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", - "requires": { - "@babel/types": "^7.23.3", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/stackblur-canvas": { + "version": "2.5.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.14" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "requires": { - "@babel/types": "^7.22.5" + "node_modules/state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "requires": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dependencies": { - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", + "node_modules/strip-ansi": { + "version": "6.0.1", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "engines": { + "node": ">=4" } }, - "@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/strip-indent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@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==", - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "node_modules/style-search": { + "version": "0.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/styled-components": { + "version": "5.3.3", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-is": ">= 16.8.0" } }, - "@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==", - "requires": { - "@babel/types": "^7.22.5" + "node_modules/stylelint": { + "version": "14.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/selector-specificity": "^2.0.1", + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "execall": "^2.0.0", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.25.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.14", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", + "node_modules/stylelint-config-sass-guidelines": { + "version": "9.0.1", "dev": true, - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@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==", - "requires": { - "@babel/types": "^7.22.15" + "license": "MIT", + "dependencies": { + "postcss-scss": "^4.0.2", + "stylelint-order": "^5.0.0", + "stylelint-scss": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^14.0.1" } }, - "@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==", - "requires": { - "@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" + "node_modules/stylelint-order": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^8.3.11", + "postcss-sorting": "^7.0.1" + }, + "peerDependencies": { + "stylelint": "^14.0.0" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", + "node_modules/stylelint-scss": { + "version": "4.3.0", "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1" } }, - "@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==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } + "license": "MIT" }, - "@babel/helper-replace-supers": { - "version": "7.16.7", + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "4.0.1", "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" } }, - "@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==", - "requires": { - "@babel/types": "^7.22.5" + "node_modules/stylis": { + "version": "4.0.13", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", + "node_modules/supports-hyperlinks": { + "version": "2.2.0", "dev": true, - "requires": { - "@babel/types": "^7.16.0" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" } }, - "@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==", - "requires": { - "@babel/types": "^7.22.5" + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" - }, - "@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==" - }, - "@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==" - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", - "requires": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "node_modules/svg-pathdata": { + "version": "6.0.3", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12.0.0" } }, - "@babel/parser": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", - "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "node_modules/svg-tags": { + "version": "1.0.0", + "dev": true }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", + "node_modules/table": { + "version": "6.8.0", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", + "node_modules/table/node_modules/ajv": { + "version": "8.10.0", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } + "license": "MIT" }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "node_modules/tapable": { + "version": "2.2.1", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" } }, - "@babel/plugin-proposal-decorators": { - "version": "7.17.9", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.9", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" + "node_modules/terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "license": "MIT", + "peer": true, + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "license": "MIT", + "peer": true }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "node_modules/text-segmentation": { + "version": "1.0.3", + "license": "MIT", + "optional": true, + "dependencies": { + "utrie": "^1.0.2" } }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", + "node_modules/text-table": { + "version": "0.2.0", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } + "license": "MIT" }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "node_modules/to-fast-properties": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", + "node_modules/to-regex-range": { + "version": "5.0.1", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } + "node_modules/toggle-selection": { + "version": "1.0.6", + "license": "MIT" }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", + "node_modules/tr46": { + "version": "0.0.3", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } + "license": "MIT" }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", + "node_modules/trim-newlines": { + "version": "3.0.1", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" } }, - "@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-syntax-flow": { - "version": "7.16.7", + "node_modules/uglify-js": { + "version": "3.15.2", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "dependencies": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0" } }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "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" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" } }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/utrie": { + "version": "1.0.2", + "license": "MIT", + "optional": true, + "dependencies": { + "base64-arraybuffer": "^1.0.2" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", + "node_modules/v8-compile-cache": { + "version": "2.3.0", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } + "license": "MIT" }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } + "node_modules/validate.io-array": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", + "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==" }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } + "node_modules/validate.io-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", + "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/validate.io-integer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", + "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", + "dependencies": { + "validate.io-number": "^1.0.3" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/validate.io-integer-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", + "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", + "dependencies": { + "validate.io-array": "^1.0.3", + "validate.io-integer": "^1.0.4" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", + "node_modules/validate.io-number": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", + "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" + }, + "node_modules/vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", + "node_modules/vite-plugin-eslint": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz", + "integrity": "sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "@rollup/pluginutils": "^4.2.1", + "@types/eslint": "^8.4.5", + "rollup": "^2.77.2" + }, + "peerDependencies": { + "eslint": ">=7", + "vite": ">=2" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", + "node_modules/vite/node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/webpack": { + "version": "5.77.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.77.0.tgz", + "integrity": "sha512-sbGNjBr5Ya5ss91yzjeJTLKyfiwo5C628AFjEa6WSXcZa4E+F57om3Cc8xLb1Jh0b243AWuSYRf3dn7HVeFQ9Q==", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/webpack-sources": { + "version": "3.2.3", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" } }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "license": "BSD-2-Clause" }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", + "node_modules/which": { + "version": "2.0.2", "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", + "node_modules/wordwrap": { + "version": "1.0.0", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } + "license": "MIT" }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", + "node_modules/wrappy": { + "version": "1.0.2", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } + "license": "ISC" }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "node_modules/xtend": { + "version": "4.0.2", + "license": "MIT", + "engines": { + "node": ">=0.4" } }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", + "node_modules/yallist": { + "version": "4.0.0", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "license": "ISC" }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "node_modules/yaml": { + "version": "1.10.2", + "license": "ISC", + "engines": { + "node": ">= 6" } }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", + "node_modules/yargs-parser": { + "version": "20.2.9", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "license": "ISC", + "engines": { + "node": ">=10" } }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", + "node_modules/yocto-queue": { + "version": "0.1.0", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "dev": true, + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "dev": true, + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" } }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - } + "@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==" }, - "@babel/plugin-transform-react-jsx-self": { + "@babel/core": { "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==", - "dev": true, + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "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==" + } } }, - "@babel/plugin-transform-react-jsx-source": { + "@babel/generator": { "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==", - "dev": true, + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", "requires": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/types": "^7.23.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" } }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "dev": true, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/types": "^7.22.5" } }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "dev": true, + "@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "requires": { - "regenerator-transform": "^0.14.2" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "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==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } } }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "@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==" }, - "@babel/plugin-transform-runtime": { - "version": "7.17.0", - "dev": true, + "@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==", "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "dev": true, + "@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==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/types": "^7.22.5" } }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "dev": true, + "@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==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/types": "^7.22.15" } }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "dev": true, + "@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==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@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" } }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } + "@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==" }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "dev": true, + "@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==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/types": "^7.22.5" } }, - "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "dev": true, + "@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==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" + "@babel/types": "^7.22.5" } }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "dev": true, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" + }, + "@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==" + }, + "@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==" + }, + "@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "dev": true, + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" } }, - "@babel/preset-env": { - "version": "7.16.11", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - } + "@babel/parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==" }, - "@babel/preset-modules": { - "version": "0.1.5", - "dev": true, + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/preset-react": { - "version": "7.16.7", + "@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==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/preset-typescript": { - "version": "7.16.7", + "@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==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/runtime": { @@ -11199,14 +8566,6 @@ } } }, - "@babel/runtime-corejs3": { - "version": "7.17.9", - "dev": true, - "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - } - }, "@babel/template": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", @@ -11543,16 +8902,31 @@ "dev": true, "optional": true }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true + }, "@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", + "espree": "^9.6.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -11560,38 +8934,23 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "requires": { "type-fest": "^0.20.2" } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true } } }, + "@eslint/js": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "dev": true + }, "@fortawesome/fontawesome-common-types": { "version": "0.3.0" }, @@ -11641,22 +9000,16 @@ } }, "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" } }, - "@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true - }, "@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -11664,9 +9017,9 @@ "dev": true }, "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "@jridgewell/gen-mapping": { @@ -11866,9 +9219,15 @@ } } }, - "@rushstack/eslint-patch": { - "version": "1.1.2", - "dev": true + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } }, "@types/babel__core": { "version": "7.20.4", @@ -11912,8 +9271,9 @@ } }, "@types/eslint": { - "version": "7.29.0", - "peer": true, + "version": "8.44.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", + "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -11928,8 +9288,7 @@ } }, "@types/estree": { - "version": "0.0.51", - "peer": true + "version": "0.0.51" }, "@types/hast": { "version": "2.3.4", @@ -11954,6 +9313,8 @@ }, "@types/json5": { "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "@types/minimist": { @@ -12008,315 +9369,30 @@ } }, "@types/react-transition-group": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", - "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", - "requires": { - "@types/react": "*" - } - }, - "@types/scheduler": { - "version": "0.16.2" - }, - "@types/unist": { - "version": "2.0.6" - }, - "@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/type-utils": "5.30.7", - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - } - }, - "@typescript-eslint/types": { - "version": "5.30.7", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.30.7", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/experimental-utils": { - "version": "5.19.0", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.19.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "debug": "^4.3.4" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - } - }, - "@typescript-eslint/types": { - "version": "5.30.7", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.19.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - } - }, - "@typescript-eslint/types": { - "version": "5.30.7", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.30.7", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - } - }, - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/types": { - "version": "5.19.0", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.19.0", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/visitor-keys": "5.19.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/utils": { - "version": "5.19.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.19.0", - "@typescript-eslint/types": "5.19.0", - "@typescript-eslint/typescript-estree": "5.19.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.19.0", - "dev": true, + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", "requires": { - "@typescript-eslint/types": "5.19.0", - "eslint-visitor-keys": "^3.0.0" + "@types/react": "*" } }, + "@types/scheduler": { + "version": "0.16.2" + }, + "@types/unist": { + "version": "2.0.6" + }, + "@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==" + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "@vitejs/plugin-react": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.1.1.tgz", @@ -12458,9 +9534,9 @@ "version": "2.0.5" }, "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==" }, "acorn-import-assertions": { "version": "1.8.0", @@ -12528,24 +9604,31 @@ "picomatch": "^2.0.4" } }, - "aria-query": { - "version": "4.2.2", - "dev": true, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" } }, "array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" } }, @@ -12563,24 +9646,69 @@ "is-string": "^1.0.7" } }, + "array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, "array.prototype.flat": { - "version": "1.2.5", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { - "version": "1.3.0", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" } }, + "array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, "arrify": { "version": "1.0.1", "dev": true @@ -12588,14 +9716,19 @@ "asap": { "version": "2.0.6" }, - "ast-types-flow": { - "version": "0.0.7", - "dev": true - }, "astral-regex": { "version": "2.0.0", "dev": true }, + "asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.3" + } + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -12615,9 +9748,10 @@ "semver": "^6.3.0" } }, - "axe-core": { - "version": "4.4.1", - "dev": true + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "axios": { "version": "1.6.2", @@ -12629,50 +9763,6 @@ "proxy-from-env": "^1.1.0" } }, - "axobject-query": { - "version": "2.2.0", - "dev": true - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-macros": { - "version": "3.1.0", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, "babel-plugin-styled-components": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", @@ -12685,32 +9775,6 @@ "picomatch": "^2.3.1" } }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "dev": true - }, - "babel-preset-react-app": { - "version": "10.0.1", - "dev": true, - "requires": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, "balanced-match": { "version": "1.0.2", "dev": true @@ -12782,10 +9846,13 @@ "peer": true }, "call-bind": { - "version": "1.0.2", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" } }, "callsites": { @@ -12850,10 +9917,6 @@ "character-reference-invalid": { "version": "1.1.4" }, - "charcodes": { - "version": "0.2.0", - "dev": true - }, "chart.js": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", @@ -12977,10 +10040,6 @@ "version": "0.0.1", "dev": true }, - "confusing-browser-globals": { - "version": "1.0.11", - "dev": true - }, "convert-source-map": { "version": "1.8.0", "requires": { @@ -12996,19 +10055,6 @@ "core-js": { "version": "3.21.1" }, - "core-js-compat": { - "version": "3.31.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.1.tgz", - "integrity": "sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA==", - "dev": true, - "requires": { - "browserslist": "^4.21.9" - } - }, - "core-js-pure": { - "version": "3.21.1", - "dev": true - }, "cosmiconfig": { "version": "7.0.1", "dev": true, @@ -13077,10 +10123,6 @@ "csstype": { "version": "3.0.10" }, - "damerau-levenshtein": { - "version": "1.0.8", - "dev": true - }, "date-fns": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", @@ -13112,16 +10154,29 @@ }, "deep-is": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "deepmerge": { "version": "4.2.2" }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "requires": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } @@ -13203,10 +10258,6 @@ "batch-processor": "1.0.0" } }, - "emoji-regex": { - "version": "9.2.2", - "dev": true - }, "enhanced-resolve": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", @@ -13261,42 +10312,96 @@ } }, "es-abstract": { - "version": "1.19.5", - "requires": { - "call-bind": "^1.0.2", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", - "has": "^1.0.3", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" } }, "es-array-method-boxes-properly": { "version": "1.0.0" }, + "es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dev": true, + "requires": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, "es-module-lexer": { "version": "0.9.3", "peer": true }, + "es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "requires": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + } + }, "es-shim-unscopables": { - "version": "1.0.0", - "dev": true, + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "es-to-primitive": { @@ -13346,49 +10451,48 @@ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.1", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", - "ajv": "^6.10.0", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", - "grapheme-splitter": "^1.0.4", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { @@ -13399,10 +10503,6 @@ "color-convert": "^2.0.1" } }, - "argparse": { - "version": "2.0.1", - "dev": true - }, "chalk": { "version": "4.1.2", "dev": true, @@ -13427,9 +10527,9 @@ "dev": true }, "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -13439,25 +10539,12 @@ "version": "4.0.0", "dev": true }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, "supports-color": { "version": "7.2.0", "dev": true, "requires": { "has-flag": "^4.0.0" } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true } } }, @@ -13466,50 +10553,31 @@ "dev": true, "requires": {} }, - "eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "dev": true, - "requires": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, - "dependencies": { - "eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dev": true, - "requires": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - } - } + "eslint-import-resolver-custom-alias": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-custom-alias/-/eslint-import-resolver-custom-alias-1.3.2.tgz", + "integrity": "sha512-wBPcZA2k6/IXaT8FsLMyiyVSG6WVEuaYIAbeKLXeGwr523BmeB9lKAAoLJWSqp3txsnU4gpkgD2x1q6K8k0uDQ==", + "dev": true, + "requires": { + "glob-parent": "^6.0.2", + "resolve": "^1.22.2" } }, "eslint-import-resolver-node": { - "version": "0.3.6", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" }, "dependencies": { "debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -13518,123 +10586,70 @@ } }, "eslint-module-utils": { - "version": "2.7.3", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } - }, - "find-up": { - "version": "2.1.0", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "dev": true } } }, "eslint-plugin-import": { - "version": "2.26.0", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "dependencies": { "debug": { - "version": "2.6.9", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "doctrine": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { "esutils": "^2.0.2" } - }, - "ms": { - "version": "2.0.0", - "dev": true } } }, - "eslint-plugin-jest": { - "version": "25.7.0", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "dev": true, - "requires": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - } - }, "eslint-plugin-prettier": { "version": "4.0.0", "dev": true, @@ -13643,96 +10658,96 @@ } }, "eslint-plugin-react": { - "version": "7.31.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz", - "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==", + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dev": true, "requires": { - "array-includes": "^3.1.5", - "array.prototype.flatmap": "^1.3.0", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.1", - "object.values": "^1.1.5", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.7" + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" }, "dependencies": { "doctrine": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { "esutils": "^2.0.2" } }, "resolve": { - "version": "2.0.0-next.3", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } }, "eslint-plugin-react-hooks": { - "version": "4.4.0", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true, "requires": {} }, - "eslint-plugin-testing-library": { - "version": "5.3.1", + "eslint-plugin-react-refresh": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.4.tgz", + "integrity": "sha512-eD83+65e8YPVg6603Om2iCIwcQJf/y7++MWm4tACtEswFLYMwxwVWAfwN+e19f5Ad/FOyyNg9Dfi5lXhH3Y3rA==", "dev": true, - "requires": { - "@typescript-eslint/utils": "^5.13.0" - } + "requires": {} }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, - "eslint-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "dev": true - } - } - }, "eslint-visitor-keys": { - "version": "3.3.0", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.1" } }, "esquery": { - "version": "1.4.0", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -13747,6 +10762,12 @@ "estraverse": { "version": "5.3.0" }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "esutils": { "version": "2.0.3", "dev": true @@ -13797,6 +10818,8 @@ }, "fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastest-levenshtein": { @@ -13881,6 +10904,14 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -13906,23 +10937,25 @@ "optional": true }, "function-bind": { - "version": "1.1.1" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "function.prototype.name": { - "version": "1.1.5", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" } }, - "functional-red-black-tree": { - "version": "1.0.1", - "dev": true - }, "functions-have-names": { - "version": "1.2.2" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" }, "fuse.js": { "version": "7.0.0", @@ -13936,11 +10969,14 @@ "version": "1.0.0-beta.2" }, "get-intrinsic": { - "version": "1.1.1", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "get-size": { @@ -14010,6 +11046,14 @@ "globals": { "version": "11.12.0" }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { "version": "11.1.0", "dev": true, @@ -14026,14 +11070,22 @@ "version": "0.1.4", "dev": true }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.9", "peer": true }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "handlebars": { @@ -14058,7 +11110,9 @@ } }, "has-bigints": { - "version": "1.0.1" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" }, "has-flag": { "version": "3.0.0" @@ -14071,6 +11125,11 @@ "get-intrinsic": "^1.1.1" } }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, "has-symbols": { "version": "1.0.3" }, @@ -14080,6 +11139,14 @@ "has-symbols": "^1.0.2" } }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, "hast-util-parse-selector": { "version": "2.2.5" }, @@ -14224,10 +11291,12 @@ "dev": true }, "internal-slot": { - "version": "1.0.3", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" } }, @@ -14247,11 +11316,32 @@ "is-decimal": "^1.0.0" } }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, "is-arrayish": { "version": "0.2.1" }, + "is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-bigint": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "requires": { "has-bigints": "^1.0.1" } @@ -14271,12 +11361,16 @@ } }, "is-callable": { - "version": "1.2.4" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" }, "is-core-module": { - "version": "2.9.0", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-date-object": { @@ -14292,10 +11386,28 @@ "version": "2.1.1", "dev": true }, + "is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-fullwidth-code-point": { "version": "3.0.0", "dev": true }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-glob": { "version": "4.0.3", "dev": true, @@ -14306,6 +11418,12 @@ "is-hexadecimal": { "version": "1.0.4" }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true + }, "is-negative-zero": { "version": "2.0.2" }, @@ -14319,6 +11437,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, "is-plain-obj": { "version": "1.1.0", "dev": true @@ -14338,6 +11462,12 @@ "version": "2.1.0", "dev": true }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true + }, "is-shared-array-buffer": { "version": "1.0.2", "requires": { @@ -14359,16 +11489,58 @@ "has-symbols": "^1.0.2" } }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true + }, "is-weakref": { "version": "1.0.2", "requires": { "call-bind": "^1.0.2" } }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, "isexe": { "version": "2.0.0", "dev": true }, + "iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "requires": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, "javascript-time-ago": { "version": "2.5.9", "resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.5.9.tgz", @@ -14402,6 +11574,15 @@ "js-tokens": { "version": "4.0.0" }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, "jsesc": { "version": "2.5.2" }, @@ -14465,11 +11646,15 @@ "requires": {} }, "jsx-ast-utils": { - "version": "3.2.2", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "object.assign": "^4.1.2" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" } }, "kind-of": { @@ -14480,19 +11665,10 @@ "version": "0.25.0", "dev": true }, - "language-subtag-registry": { - "version": "0.3.21", - "dev": true - }, - "language-tags": { - "version": "1.0.5", - "dev": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, "levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { "prelude-ls": "^1.2.1", @@ -14754,7 +11930,9 @@ "version": "4.1.1" }, "object-inspect": { - "version": "1.12.0" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" }, "object-is": { "version": "1.1.5", @@ -14767,47 +11945,67 @@ "version": "1.1.1" }, "object.assign": { - "version": "4.1.2", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.5", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "object.fromentries": { - "version": "2.0.5", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" } }, "object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", "dev": true, "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "object.values": { - "version": "1.1.5", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "once": { @@ -14818,15 +12016,17 @@ } }, "optionator": { - "version": "0.9.1", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "outlayer": { @@ -14977,6 +12177,8 @@ }, "prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "prettier": { @@ -15473,6 +12675,20 @@ "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", "requires": {} }, + "reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + } + }, "refractor": { "version": "3.6.0", "requires": { @@ -15481,66 +12697,17 @@ "prismjs": "~1.27.0" } }, - "regenerate": { - "version": "1.4.2", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, "regenerator-runtime": { "version": "0.13.9" }, - "regenerator-transform": { - "version": "0.14.5", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, "regexp.prototype.flags": { - "version": "1.4.2", - "dev": true, + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.2.0", - "dev": true - }, - "regexpu-core": { - "version": "5.0.1", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "dev": true - }, - "regjsparser": { - "version": "0.8.4", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "dev": true - } + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" } }, "relative-time-format": { @@ -15557,9 +12724,11 @@ "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" }, "resolve": { - "version": "1.22.1", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -15586,6 +12755,15 @@ "glob": "^7.1.3" } }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, "rst-selector-parser": { "version": "2.2.3", "requires": { @@ -15600,9 +12778,30 @@ "queue-microtask": "^1.2.2" } }, + "safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, "safe-buffer": { "version": "5.1.2" }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, "safer-buffer": { "version": "2.1.2" }, @@ -15646,6 +12845,27 @@ "randombytes": "^2.1.0" } }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + } + }, "shallowequal": { "version": "1.1.0" }, @@ -15662,6 +12882,8 @@ }, "side-channel": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -15781,12 +13003,6 @@ "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" }, - "string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", - "dev": true - }, "string-width": { "version": "4.2.3", "dev": true, @@ -15803,39 +13019,50 @@ } }, "string.prototype.matchall": { - "version": "4.0.7", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", "side-channel": "^1.0.4" } }, "string.prototype.trim": { - "version": "1.2.5", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "string.prototype.trimend": { - "version": "1.0.4", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "string.prototype.trimstart": { - "version": "1.0.4", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "strip-ansi": { @@ -15845,6 +13072,12 @@ "ansi-regex": "^5.0.1" } }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, "strip-indent": { "version": "3.0.0", "dev": true, @@ -15854,6 +13087,8 @@ }, "strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "style-search": { @@ -16097,11 +13332,13 @@ "dev": true }, "tsconfig-paths": { - "version": "3.14.1", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, @@ -16114,10 +13351,6 @@ "requires": { "minimist": "^1.2.0" } - }, - "strip-bom": { - "version": "3.0.0", - "dev": true } } }, @@ -16126,30 +13359,63 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, "type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { "prelude-ls": "^1.2.1" } }, - "typescript": { - "version": "4.6.3", - "dev": true, - "peer": true + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } }, "uglify-js": { "version": "3.15.2", @@ -16157,11 +13423,13 @@ "optional": true }, "unbox-primitive": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, @@ -16176,26 +13444,6 @@ "react-lifecycles-compat": "^3.0.4" } }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "dev": true - }, "update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", @@ -16288,6 +13536,17 @@ } } }, + "vite-plugin-eslint": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz", + "integrity": "sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.2.1", + "@types/eslint": "^8.4.5", + "rollup": "^2.77.2" + } + }, "warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", @@ -16382,6 +13641,8 @@ }, "which-boxed-primitive": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -16390,11 +13651,49 @@ "is-symbol": "^1.0.3" } }, - "word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true + "which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "requires": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } }, "wordwrap": { "version": "1.0.0", diff --git a/package.json b/package.json index 5d5d8350884d..148e77a7a9aa 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,6 @@ "javascript-time-ago": "^2.5.9", "jspdf": "^2.4.0", "jspdf-autotable": "^3.5.23", - "lodash": "^4.17.21", "lodash-es": "^4.17.21", "moment": "^2.29.1", "prop-types": "^15.7.2", @@ -93,10 +92,14 @@ "@vitejs/plugin-react": "^4.1.1", "auto-changelog": "~2.3.0", "browserslist-to-esbuild": "^1.2.0", - "eslint": "^8.0.0", + "eslint": "^8.54.0", "eslint-config-prettier": "^8.3.0", - "eslint-config-react-app": "^7.0.1", + "eslint-import-resolver-custom-alias": "^1.3.2", + "eslint-plugin-import": "^2.29.0", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.4", "husky": "^7.0.4", "postcss-scss": "^4.0.3", "prettier": "2.4.1", @@ -105,7 +108,8 @@ "stylelint": "^14.3.0", "stylelint-config-sass-guidelines": "^9.0.1", "stylelint-order": "^5.0.0", - "vite": "^4.5.0" + "vite": "^4.5.0", + "vite-plugin-eslint": "^1.8.1" }, "engines": { "node": "18", diff --git a/vite.config.js b/vite.config.js index 7e673fc3b337..fd0da0213a5a 100644 --- a/vite.config.js +++ b/vite.config.js @@ -2,10 +2,31 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import { resolve } from 'path' import browserslistToEsbuild from 'browserslist-to-esbuild' +// eslint-disable-next-line import/default +import eslint from 'vite-plugin-eslint' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [ + react(), + { + // if any eslint warnings, allow build to complete + // errors will fail the build + ...eslint({ + failOnWarning: false, + }), + apply: 'build', + }, + { + // in dev mode, still allow build to complete + ...eslint({ + failOnError: false, + failOnWarning: false, + }), + apply: 'serve', + enforce: 'post', + }, + ], build: { outDir: 'build', assetsDir: 'static', From 9ead2f49e635767d1782952c7aa5ea07a7b24045 Mon Sep 17 00:00:00 2001 From: Kevin Grube Date: Sat, 18 Nov 2023 20:32:03 -0800 Subject: [PATCH 190/205] Update jsconfig, add sourcemaps --- jsconfig.json | 2 +- vite.config.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/jsconfig.json b/jsconfig.json index fb661fb04d96..bc2112b1afda 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "module": "commonjs", + "module": "ES2022", "baseUrl": "." }, "include": ["./src"], diff --git a/vite.config.js b/vite.config.js index fd0da0213a5a..9a1ecf3eb5cf 100644 --- a/vite.config.js +++ b/vite.config.js @@ -31,6 +31,8 @@ export default defineConfig({ outDir: 'build', assetsDir: 'static', target: browserslistToEsbuild(), + // enable source map for debugging + sourcemap: true, }, server: { port: 3000, From acf69ebcd89850ebde2451e7c76465b7157b7d57 Mon Sep 17 00:00:00 2001 From: Kevin Grube Date: Sat, 18 Nov 2023 21:10:20 -0800 Subject: [PATCH 191/205] Disable sass deprecation error messages as we have no control over these from CoreUI --- src/scss/_variables.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss index 1688f5dcd93e..110d7d706b5f 100644 --- a/src/scss/_variables.scss +++ b/src/scss/_variables.scss @@ -318,7 +318,7 @@ $enable-shadows: true; // $enable-rfs: true !default; // $enable-validation-icons: true !default; $enable-negative-margins: true; -// $enable-deprecation-messages: true !default; +$enable-deprecation-messages: false !default; // $enable-important-utilities: true !default; // $enable-contrast-ratio-correction: true !default; // $enable-contrast-ratio-warnings: false !default; From 9d915cead323d562ce6960f40b1d3416278828d0 Mon Sep 17 00:00:00 2001 From: Kevin Grube Date: Sat, 18 Nov 2023 21:11:38 -0800 Subject: [PATCH 192/205] Enable React18 rendering --- src/index.jsx | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/index.jsx b/src/index.jsx index bf2f4c7912c8..81aee3c89edb 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -1,7 +1,7 @@ import 'react-app-polyfill/stable' import 'core-js' import React from 'react' -import ReactDOM from 'react-dom' +import { createRoot } from 'react-dom/client' import App from 'src/App' import { Provider } from 'react-redux' import { store, persistor } from 'src/store' @@ -9,15 +9,19 @@ import { PersistGate } from 'redux-persist/integration/react' import { FullScreenLoading } from 'src/components/utilities' import { HelmetProvider } from 'react-helmet-async' -ReactDOM.render( - - - } persistor={persistor}> - - - - - - , - document.getElementById('root'), +const container = document.getElementById('root') + +const root = createRoot(container) + +root.render( + // @TODO fix issues preventing app from running with StrictMode enabled + // + + } persistor={persistor}> + + + + + , + // , ) From e538099e4836e7269647155660a3b3dcf62b1dea Mon Sep 17 00:00:00 2001 From: Kevin Grube Date: Sat, 18 Nov 2023 21:16:09 -0800 Subject: [PATCH 193/205] Fix eslint issues, multiple imports, unused imports, missing propTypes, missing memo dependencies, missing array key, etc --- src/components/buttons/TableModalButton.jsx | 12 +- src/components/forms/RFFComponents.jsx | 4 +- src/components/layout/AppHeader.jsx | 11 +- src/components/layout/CippContentCard.jsx | 1 + src/components/layout/CippMasonry.jsx | 2 +- src/components/layout/CippWizard.jsx | 2 +- src/components/tables/CellGenericFormat.jsx | 40 +-- src/components/tables/CellTable.jsx | 1 - src/components/tables/CippTable.jsx | 315 ++++++++++-------- .../utilities/CippActionsOffcanvas.jsx | 163 +++++---- .../utilities/CippCodeOffcanvas.jsx | 17 +- src/components/utilities/CippOffcanvas.jsx | 3 +- .../utilities/CippTenantOffcanvas.jsx | 8 + src/components/utilities/ErrorBoundary.jsx | 2 +- src/components/utilities/FastSwitcher.jsx | 1 + src/components/utilities/index.js | 2 + src/views/cipp/AppApproval.jsx | 2 + src/views/cipp/CIPPSettings.jsx | 81 +++-- src/views/cipp/Scheduler.jsx | 27 +- src/views/cipp/Setup.jsx | 4 +- .../administration/ContactsList.jsx | 2 + .../administration/EditMailboxPermissions.jsx | 37 +- .../connectors/DeployConnector.jsx | 6 + .../connectors/ListConnectorTemplates.jsx | 1 - .../reports/MailboxStatisticsList.jsx | 2 +- .../spamfilter/DeploySpamfilter.jsx | 6 + .../spamfilter/ListSpamfilterTemplates.jsx | 2 - .../tools/MailboxRestoreWizard.jsx | 7 +- .../email-exchange/tools/MailboxRestores.jsx | 18 +- .../transport/DeployTransport.jsx | 7 +- .../transport/ListTransportTemplates.jsx | 1 - .../applications/ApplicationsAddChocoApp.jsx | 10 +- .../applications/ApplicationsAddOffice.jsx | 1 + .../applications/ApplicationsAddRMM.jsx | 1 + .../applications/ApplicationsAddWinGet.jsx | 10 +- .../endpoint/autopilot/AutopilotAddDevice.jsx | 1 + .../autopilot/AutopilotAddProfile.jsx | 1 + .../autopilot/AutopilotAddStatusPage.jsx | 1 + src/views/endpoint/intune/MEMAddPolicy.jsx | 6 + .../intune/MEMListPolicyTemplates.jsx | 1 - src/views/home/Home.jsx | 22 +- .../administration/DeployGroupTemplate.jsx | 7 +- .../administration/GroupTemplates.jsx | 1 - .../administration/OffboardingWizard.jsx | 4 +- .../administration/UserMailboxRuleList.jsx | 2 +- src/views/identity/administration/Users.jsx | 36 +- src/views/identity/administration/ViewBEC.jsx | 21 +- .../identity/administration/ViewUser.jsx | 3 +- src/views/identity/reports/SignIns.jsx | 3 +- src/views/pages/page500/Page500.jsx | 7 +- src/views/security/incidents/ListAlerts.jsx | 12 +- .../security/incidents/ListIncidents.jsx | 12 +- .../tenant/administration/AlertWizard.jsx | 2 + .../administration/GDAPInviteWizard.jsx | 3 +- .../tenant/administration/GDAPRoleWizard.jsx | 1 + .../tenant/administration/GDAPWizard.jsx | 10 +- .../tenant/administration/GraphExplorer.jsx | 8 +- .../administration/ListEnterpriseApps.jsx | 6 +- .../administration/ListGDAPRelationships.jsx | 4 +- .../tenant/administration/TenantLookup.jsx | 4 +- .../TenantOffboardingWizard.jsx | 1 + src/views/tenant/conditional/DeployCA.jsx | 6 + .../tenant/conditional/ListCATemplates.jsx | 7 +- src/views/tenant/standards/ApplyStandard.jsx | 3 + .../tenant/standards/BPAReportBuilder.jsx | 37 +- .../tenant/standards/BestPracticeAnalyser.jsx | 15 +- .../tenant/standards/DomainsAnalyser.jsx | 5 + .../tenant/standards/IndividualDomain.jsx | 8 +- .../tenant/standards/ListAppliedStandards.jsx | 3 +- 69 files changed, 678 insertions(+), 394 deletions(-) diff --git a/src/components/buttons/TableModalButton.jsx b/src/components/buttons/TableModalButton.jsx index 3d42e4729954..1fb7dbeb3ae7 100644 --- a/src/components/buttons/TableModalButton.jsx +++ b/src/components/buttons/TableModalButton.jsx @@ -1,9 +1,8 @@ import React from 'react' import { CButton } from '@coreui/react' import { ModalService } from '../utilities' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faCheckCircle } from '@fortawesome/free-solid-svg-icons' import { cellGenericFormatter } from '../tables/CellGenericFormat' +import PropTypes from 'prop-types' export default function TableModalButton({ data, title, className, countOnly = false, ...input }) { const handleTable = (data) => { @@ -32,7 +31,14 @@ export default function TableModalButton({ data, title, className, countOnly = f return ( handleTable(data)}> - <>{countOnly == true ? data.length : `${title} (${data.length})`} + <>{countOnly === true ? data.length : `${title} (${data.length})`} ) } + +TableModalButton.propTypes = { + data: PropTypes.array, + title: PropTypes.string, + className: PropTypes.string, + countOnly: PropTypes.bool, +} diff --git a/src/components/forms/RFFComponents.jsx b/src/components/forms/RFFComponents.jsx index 42d4516bd4c8..5dffcde46dac 100644 --- a/src/components/forms/RFFComponents.jsx +++ b/src/components/forms/RFFComponents.jsx @@ -366,6 +366,8 @@ export function Condition({ when, is, children, like, regex }) { Condition.propTypes = { when: PropTypes.string.isRequired, is: PropTypes.any, + like: PropTypes.string, + regex: PropTypes.oneOfType([PropTypes.object, PropTypes.string]), children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]), } @@ -392,7 +394,7 @@ export const RFFSelectSearch = ({ if (onInputChange) { return debounce(onInputChange, 1000) } - }, []) + }, [onInputChange]) const setOnInputChange = (e, action) => { if (retainInput && action.action !== 'set-value') { diff --git a/src/components/layout/AppHeader.jsx b/src/components/layout/AppHeader.jsx index 34637ee92ef9..9dcc3bd54c2c 100644 --- a/src/components/layout/AppHeader.jsx +++ b/src/components/layout/AppHeader.jsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useState, useEffect } from 'react' import { useSelector, useDispatch } from 'react-redux' import { CAlert, @@ -25,8 +25,6 @@ import { setCurrentTheme, setUserSettings, toggleSidebarShow } from 'src/store/f import { useMediaPredicate } from 'react-media-hook' import { useGenericGetRequestQuery, useLoadAlertsDashQuery } from 'src/store/api/app' import { useLocation } from 'react-router-dom' -import { useState } from 'react' -import { useEffect } from 'react' const AppHeader = () => { const dispatch = useDispatch() @@ -104,6 +102,7 @@ const AppHeader = () => { @@ -148,7 +147,11 @@ const AppHeader = () => {
    {item.Alert} Link diff --git a/src/components/layout/CippContentCard.jsx b/src/components/layout/CippContentCard.jsx index efb91ee7d9d2..db535d3809be 100644 --- a/src/components/layout/CippContentCard.jsx +++ b/src/components/layout/CippContentCard.jsx @@ -29,4 +29,5 @@ CippContentCard.propTypes = { button: PropTypes.element, bodyClass: PropTypes.string, className: PropTypes.string, + children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]), } diff --git a/src/components/layout/CippMasonry.jsx b/src/components/layout/CippMasonry.jsx index 7d1d35f7a6e7..53dcb7e50fd5 100644 --- a/src/components/layout/CippMasonry.jsx +++ b/src/components/layout/CippMasonry.jsx @@ -46,7 +46,7 @@ export function CippMasonryItem({ size, children, className = null }) { CippMasonryItem.propTypes = { size: PropTypes.oneOf(['single', 'double', 'triple', 'full', 'half']), - children: PropTypes.object, + children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]), className: PropTypes.string, } diff --git a/src/components/layout/CippWizard.jsx b/src/components/layout/CippWizard.jsx index 8cfa96bf232f..02c4220b48a4 100644 --- a/src/components/layout/CippWizard.jsx +++ b/src/components/layout/CippWizard.jsx @@ -8,7 +8,7 @@ export default class CippWizard extends React.Component { static propTypes = { wizardTitle: PropTypes.string, onSubmit: PropTypes.func.isRequired, - children: PropTypes.arrayOf(PropTypes.element), + children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]), initialValues: PropTypes.any, onPageChange: PropTypes.func, nextPage: PropTypes.func, diff --git a/src/components/tables/CellGenericFormat.jsx b/src/components/tables/CellGenericFormat.jsx index d78f7759dcd4..7bb0236d0030 100644 --- a/src/components/tables/CellGenericFormat.jsx +++ b/src/components/tables/CellGenericFormat.jsx @@ -5,8 +5,8 @@ import { faCheckCircle, faExclamationCircle, } from '@fortawesome/free-solid-svg-icons' -import { CellBadge } from 'src/components/tables' import { CBadge, CTooltip } from '@coreui/react' +import CellBoolean from 'src/components/tables/CellBoolean.jsx' const IconWarning = () => const IconError = () => @@ -20,43 +20,6 @@ function nocolour(iscolourless, content) { return content } -export default function CellBoolean({ - cell, - warning = false, - reverse = false, - colourless = false, - noDataIsFalse = false, -}) { - let normalized = cell - if (typeof cell === 'boolean') { - normalized = cell - } else if (typeof cell === 'string') { - if ( - cell.toLowerCase() === 'success' || - cell.toLowerCase() === 'pass' || - cell.toLowerCase() === 'true' - ) { - normalized = true - } else if (cell.toLowerCase() === 'fail' || cell.toLowerCase() === 'false') { - normalized = false - } - } - - if (cell === '' && !noDataIsFalse) { - return - } else if (colourless && warning && reverse) { - return nocolour(colourless, normalized ? : ) - } else if (!reverse && !warning) { - return nocolour(colourless, normalized ? : ) - } else if (!reverse && warning) { - return nocolour(colourless, normalized ? : ) - } else if (reverse && !warning) { - return nocolour(colourless, normalized ? : ) - } else if (reverse && warning) { - return nocolour(colourless, normalized ? : ) - } -} - export function CellTip(cell, overflow = false) { return ( @@ -67,6 +30,7 @@ export function CellTip(cell, overflow = false) { export const cellGenericFormatter = ({ warning = false, reverse = false, colourless = true, noDataIsFalse } = {}) => + // eslint-disable-next-line react/display-name (row, index, column, id) => { const cell = column.selector(row) if (cell === null || cell === undefined || cell.length === 0) { diff --git a/src/components/tables/CellTable.jsx b/src/components/tables/CellTable.jsx index c874a6854920..c9a13391bebe 100644 --- a/src/components/tables/CellTable.jsx +++ b/src/components/tables/CellTable.jsx @@ -1,7 +1,6 @@ import React from 'react' import { CButton } from '@coreui/react' import { ModalService } from '../utilities' -import { CBadge } from '@coreui/react' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faCheckCircle, faTimesCircle } from '@fortawesome/free-solid-svg-icons' // 1. Import the required FontAwesome icon import { cellGenericFormatter } from './CellGenericFormat' diff --git a/src/components/tables/CippTable.jsx b/src/components/tables/CippTable.jsx index fe69609daad5..db02e0acdd6e 100644 --- a/src/components/tables/CippTable.jsx +++ b/src/components/tables/CippTable.jsx @@ -1,4 +1,4 @@ -import React, { useRef, useMemo, useState, useCallback } from 'react' +import React, { useRef, useMemo, useState, useCallback, useEffect } from 'react' import { useSelector } from 'react-redux' import { ExportCsvButton, ExportPDFButton } from 'src/components/buttons' import { @@ -24,7 +24,6 @@ import DataTable, { createTheme } from 'react-data-table-component' import PropTypes from 'prop-types' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faCheck, faColumns, faSearch, faSync, faTasks } from '@fortawesome/free-solid-svg-icons' -import { useEffect } from 'react' import { cellGenericFormatter } from './CellGenericFormat' import { ModalService } from '../utilities' import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app' @@ -148,7 +147,7 @@ export default function CippTable({ const [genericGetRequest, getResults] = useLazyGenericGetRequestQuery() const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const [getDrowndownInfo, dropDownInfo] = useLazyGenericGetRequestQuery() - const [modalContent, setModalContent] = useState(null) + const [modalContent, setModalContent] = useState({}) //get the search params called "tableFilter" and set the filter to that. const [searchParams, setSearchParams] = useSearchParams() if ( @@ -161,38 +160,6 @@ export default function CippTable({ searchParams.delete('updateTableFilter') } - useEffect(() => { - if (dropDownInfo.isFetching) { - handleModal( - , - modalContent.item.modalUrl, - modalContent.item.modalType, - modalContent.item.modalBody, - modalContent.item.modalInput, - modalContent.item.modalDropdown, - ) - } - if (dropDownInfo.isSuccess) { - //console.log(modalContent) - handleModal( - modalContent.item.modalMessage, - modalContent.item.modalUrl, - modalContent.item.modalType, - modalContent.item.modalBody, - modalContent.item.modalInput, - modalContent.item.modalDropdown, - ) - } else if (dropDownInfo.isError) { - handleModal( - 'Error connecting to the API.', - modalContent.item.modalUrl, - modalContent.item.modalType, - modalContent.item.modalBody, - modalContent.item.modalInput, - modalContent.item.modalDropdown, - ) - } - }, [dropDownInfo]) const handleSelectedChange = ({ selectedRows }) => { setSelectedRows(selectedRows) if (selectedRows.length < 1) { @@ -200,21 +167,25 @@ export default function CippTable({ } } const [resetPaginationToggle, setResetPaginationToggle] = React.useState(false) + // Helper function to escape special characters in a string for regex function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') } - const setGraphFilter = (e) => { - if (graphFilterFunction) { - graphFilterFunction(e) - console.log(e) - } - } + const setGraphFilter = useCallback( + (e) => { + if (graphFilterFunction) { + graphFilterFunction(e) + console.log(e) + } + }, + [graphFilterFunction], + ) const debounceSetGraphFilter = useMemo(() => { return debounce(setGraphFilter, 1000) - }, []) + }, [setGraphFilter]) const debounceSetSearchParams = useCallback(() => { const currentUrl = new URL(window.location.href) @@ -259,7 +230,6 @@ export default function CippTable({ //set the error message so the user understands the key is not found. console.error(`FilterError: Property "${property}" not found.`) return false // Keep the item if the property is not found - } else { } switch (operator) { @@ -297,7 +267,7 @@ export default function CippTable({ if (columns !== updatedColumns) { setUpdatedColumns(columns) } - }, [updatedColumns]) + }, [columns, updatedColumns]) createTheme( 'cyberdrain', @@ -343,95 +313,140 @@ export default function CippTable({ }, }, } - const handleModal = ( - modalMessage, - modalUrl, - modalType = 'GET', - modalBody, - modalInput, - modalDropdown, - ) => { - if (modalType === 'GET') { - ModalService.confirm({ - body: ( -
    -
    {modalMessage}
    -
    - ), - title: 'Confirm', - onConfirm: async () => { - const resultsarr = [] - for (const row of selectedRows) { - setLoopRunning(true) - const urlParams = new URLSearchParams(modalUrl.split('?')[1]) - for (let [paramName, paramValue] of urlParams.entries()) { - if (paramValue.startsWith('!')) { - urlParams.set(paramName, row[paramValue.replace('!', '')]) + const handleModal = useCallback( + (modalMessage, modalUrl, modalType = 'GET', modalBody, modalInput, modalDropdown) => { + if (modalType === 'GET') { + ModalService.confirm({ + body: ( +
    +
    {modalMessage}
    +
    + ), + title: 'Confirm', + onConfirm: async () => { + const resultsarr = [] + for (const row of selectedRows) { + setLoopRunning(true) + const urlParams = new URLSearchParams(modalUrl.split('?')[1]) + for (let [paramName, paramValue] of urlParams.entries()) { + if (paramValue.startsWith('!')) { + urlParams.set(paramName, row[paramValue.replace('!', '')]) + } } + const NewModalUrl = `${modalUrl.split('?')[0]}?${urlParams.toString()}` + const results = await genericGetRequest({ path: NewModalUrl, refreshParam: row.id }) + resultsarr.push(results) + setMassResults(resultsarr) } - const NewModalUrl = `${modalUrl.split('?')[0]}?${urlParams.toString()}` - const results = await genericGetRequest({ path: NewModalUrl, refreshParam: row.id }) - resultsarr.push(results) - setMassResults(resultsarr) - } - setLoopRunning(false) - }, - }) - } else { - ModalService.confirm({ - body: ( -
    - {modalInput && ( -
    - -
    - )} - {modalDropdown && ( -
    - {dropDownInfo.isSuccess && ( - ({ - value: data[modalDropdown.valueField], - label: data[modalDropdown.labelField], - }))} - /> - )} -
    - )} -
    {modalMessage}
    -
    - ), - title: 'Confirm', - onConfirm: async () => { - const resultsarr = [] - for (const row of selectedRows) { - setLoopRunning(true) - const urlParams = new URLSearchParams(modalUrl.split('?')[1]) - for (let [paramName, paramValue] of urlParams.entries()) { - if (paramValue.toString().startsWith('!')) { - urlParams.set(paramName, row[paramValue.replace('!', '')]) + setLoopRunning(false) + }, + }) + } else { + ModalService.confirm({ + body: ( +
    + {modalInput && ( +
    + +
    + )} + {modalDropdown && ( +
    + {dropDownInfo.isSuccess && ( + ({ + value: data[modalDropdown.valueField], + label: data[modalDropdown.labelField], + }))} + /> + )} +
    + )} +
    {modalMessage}
    +
    + ), + title: 'Confirm', + onConfirm: async () => { + const resultsarr = [] + for (const row of selectedRows) { + setLoopRunning(true) + const urlParams = new URLSearchParams(modalUrl.split('?')[1]) + for (let [paramName, paramValue] of urlParams.entries()) { + if (paramValue.toString().startsWith('!')) { + urlParams.set(paramName, row[paramValue.replace('!', '')]) + } } - } - const newModalBody = {} - for (let [objName, objValue] of Object.entries(modalBody)) { - if (objValue.toString().startsWith('!')) { - newModalBody[objName] = row[objValue.replace('!', '')] + const newModalBody = {} + for (let [objName, objValue] of Object.entries(modalBody)) { + if (objValue.toString().startsWith('!')) { + newModalBody[objName] = row[objValue.replace('!', '')] + } } + const NewModalUrl = `${modalUrl.split('?')[0]}?${urlParams.toString()}` + const results = await genericPostRequest({ + path: NewModalUrl, + values: { ...modalBody, ...newModalBody, ...{ input: inputRef.current.value } }, + }) + resultsarr.push(results) + setMassResults(resultsarr) } - const NewModalUrl = `${modalUrl.split('?')[0]}?${urlParams.toString()}` - const results = await genericPostRequest({ - path: NewModalUrl, - values: { ...modalBody, ...newModalBody, ...{ input: inputRef.current.value } }, - }) - resultsarr.push(results) - setMassResults(resultsarr) - } - setLoopRunning(false) - }, - }) + setLoopRunning(false) + }, + }) + } + }, + [ + dropDownInfo?.data, + dropDownInfo?.isSuccess, + genericGetRequest, + genericPostRequest, + selectedRows, + ], + ) + + useEffect(() => { + if (dropDownInfo.isFetching) { + handleModal( + , + modalContent.item.modalUrl, + modalContent.item.modalType, + modalContent.item.modalBody, + modalContent.item.modalInput, + modalContent.item.modalDropdown, + ) } - } + if (dropDownInfo.isSuccess) { + //console.log(modalContent) + handleModal( + modalContent.item.modalMessage, + modalContent.item.modalUrl, + modalContent.item.modalType, + modalContent.item.modalBody, + modalContent.item.modalInput, + modalContent.item.modalDropdown, + ) + } else if (dropDownInfo.isError) { + handleModal( + 'Error connecting to the API.', + modalContent.item.modalUrl, + modalContent.item.modalType, + modalContent.item.modalBody, + modalContent.item.modalInput, + modalContent.item.modalDropdown, + ) + } + }, [ + dropDownInfo, + handleModal, + modalContent.item?.modalBody, + modalContent.item?.modalDropdown, + modalContent.item?.modalInput, + modalContent.item?.modalMessage, + modalContent.item?.modalType, + modalContent.item?.modalUrl, + ]) + const subHeaderComponentMemo = React.useMemo(() => { const handleClear = () => { if (filterText) { @@ -467,6 +482,7 @@ export default function CippTable({ if (refreshFunction) { defaultActions.push([ { refreshFunction((Math.random() + 1).toString(36).substring(7)) }} @@ -501,9 +517,12 @@ export default function CippTable({ keys.reduce((acc, curr) => { const key = curr.split('/') if (key.length > 1) { - var property = obj - for (var x = 0; x < key.length; x++) { - if (property.hasOwnProperty(key[x]) && property[key[x]] !== null) { + let property = obj + for (let x = 0; x < key.length; x++) { + if ( + Object.prototype.hasOwnProperty.call(property, key[x]) && + property[key[x]] !== null + ) { property = property[key[x]] } else { property = 'n/a' @@ -566,7 +585,7 @@ export default function CippTable({ } defaultActions.push([ - + state.app.tablePageSize) + return (
    {!isFetching && error && Error loading data} @@ -690,7 +711,7 @@ export default function CippTable({ iconName = 'times-circle' } return ( - + {message.data?.Metadata?.Heading} @@ -761,8 +782,34 @@ export default function CippTable({ export const CippTablePropTypes = { reportName: PropTypes.string.isRequired, columns: PropTypes.arrayOf(PropTypes.object).isRequired, - keyField: PropTypes.string, - tableProps: PropTypes.object, + refreshFunction: PropTypes.func, + graphFilterFunction: PropTypes.func, + dynamicColumns: PropTypes.bool, + defaultFilterText: PropTypes.string, + isModal: PropTypes.bool, + exportFiltered: PropTypes.bool, + showFilter: PropTypes.bool, + tableProps: PropTypes.shape({ + keyField: PropTypes.string, + theme: PropTypes.string, + pagination: PropTypes.bool, + responsive: PropTypes.bool, + dense: PropTypes.bool, + striped: PropTypes.bool, + subheader: PropTypes.bool, + // @TODO + // expandableRows, + // actionsList, + // expandableRowsComponent, + // expandableRowsHideExpander, + // expandOnRowClicked, + // selectableRows, + sortFunction: PropTypes.bool, + onSelectedRowsChange: PropTypes.func, + highlightOnHover: PropTypes.bool, + disableDefaultActions: PropTypes.bool, + actions: PropTypes.arrayOf(PropTypes.node), + }), data: PropTypes.array, isFetching: PropTypes.bool, disablePDFExport: PropTypes.bool, diff --git a/src/components/utilities/CippActionsOffcanvas.jsx b/src/components/utilities/CippActionsOffcanvas.jsx index ce148defa5a4..391ae9365d9a 100644 --- a/src/components/utilities/CippActionsOffcanvas.jsx +++ b/src/components/utilities/CippActionsOffcanvas.jsx @@ -1,4 +1,4 @@ -import React, { useRef } from 'react' +import React, { useRef, useEffect, useState, useCallback } from 'react' import PropTypes from 'prop-types' import { CButton, @@ -21,15 +21,81 @@ import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 's import { Link, useNavigate } from 'react-router-dom' import { stringCamelCase } from 'src/components/utilities/CippCamelCase' import ReactTimeAgo from 'react-time-ago' -import { useEffect } from 'react' -import { useState } from 'react' export default function CippActionsOffcanvas(props) { const inputRef = useRef('') const [genericGetRequest, getResults] = useLazyGenericGetRequestQuery() const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() const [getDrowndownInfo, dropDownInfo] = useLazyGenericGetRequestQuery() - const [modalContent, setModalContent] = useState(null) + const [modalContent, setModalContent] = useState({}) + + const handleLink = useNavigate() + const handleExternalLink = (link) => { + window.open(link, '_blank') + } + const handleModal = useCallback( + (modalMessage, modalUrl, modalType = 'GET', modalBody, modalInput, modalDropdown) => { + if (modalType === 'GET') { + ModalService.confirm({ + body: ( +
    +
    {modalMessage}
    +
    + ), + title: 'Confirm', + onConfirm: () => genericGetRequest({ path: modalUrl }), + }) + } else if (modalType === 'codeblock') { + ModalService.open({ + data: modalBody, + componentType: 'codeblock', + title: 'Info', + size: 'lg', + }) + } else { + ModalService.confirm({ + key: modalContent, + body: ( +
    + {modalInput && ( +
    + +
    + )} + {modalDropdown && ( +
    + {dropDownInfo.isSuccess && ( + ({ + value: data[modalDropdown.valueField], + label: data[modalDropdown.labelField], + }))} + /> + )} +
    + )} +
    {modalMessage}
    +
    + ), + title: 'Confirm', + onConfirm: () => [ + genericPostRequest({ + path: modalUrl, + values: { ...modalBody, ...{ input: inputRef.current.value } }, + }), + ], + }) + } + }, + [ + dropDownInfo?.data, + dropDownInfo?.isSuccess, + genericGetRequest, + genericPostRequest, + modalContent, + ], + ) useEffect(() => { if (dropDownInfo.isFetching) { @@ -61,73 +127,17 @@ export default function CippActionsOffcanvas(props) { modalContent.modalDropdown, ) } - }, [dropDownInfo]) + }, [ + dropDownInfo, + handleModal, + modalContent.modalBody, + modalContent.modalDropdown, + modalContent.modalInput, + modalContent.modalMessage, + modalContent.modalType, + modalContent.modalUrl, + ]) - const handleLink = useNavigate() - const handleExternalLink = (link) => { - window.open(link, '_blank') - } - const handleModal = ( - modalMessage, - modalUrl, - modalType = 'GET', - modalBody, - modalInput, - modalDropdown, - ) => { - if (modalType === 'GET') { - ModalService.confirm({ - body: ( -
    -
    {modalMessage}
    -
    - ), - title: 'Confirm', - onConfirm: () => genericGetRequest({ path: modalUrl }), - }) - } else if (modalType === 'codeblock') { - ModalService.open({ - data: modalBody, - componentType: 'codeblock', - title: 'Info', - size: 'lg', - }) - } else { - ModalService.confirm({ - key: modalContent, - body: ( -
    - {modalInput && ( -
    - -
    - )} - {modalDropdown && ( -
    - {dropDownInfo.isSuccess && ( - ({ - value: data[modalDropdown.valueField], - label: data[modalDropdown.labelField], - }))} - /> - )} -
    - )} -
    {modalMessage}
    -
    - ), - title: 'Confirm', - onConfirm: () => [ - genericPostRequest({ - path: modalUrl, - values: { ...modalBody, ...{ input: inputRef.current.value } }, - }), - ], - }) - } - } const handleOnClick = ( link, modal, @@ -149,7 +159,14 @@ export default function CippActionsOffcanvas(props) { if (modalDropdown) { getDrowndownInfo({ path: modalDropdown.url }) } - setModalContent({ modalMessage, modalUrl, modalType, modalBody, modalInput, modalDropdown }) + setModalContent({ + modalMessage, + modalUrl, + modalType, + modalBody, + modalInput, + modalDropdown, + }) handleModal(modalMessage, modalUrl, modalType, modalBody, modalInput, modalDropdown) } @@ -183,7 +200,9 @@ export default function CippActionsOffcanvas(props) { )) - } catch (error) {} + } catch (error) { + // swallow error + } const extendedInfoContent = let actionsContent diff --git a/src/components/utilities/CippCodeOffcanvas.jsx b/src/components/utilities/CippCodeOffcanvas.jsx index 38a23b81663f..ce09d50e7db1 100644 --- a/src/components/utilities/CippCodeOffcanvas.jsx +++ b/src/components/utilities/CippCodeOffcanvas.jsx @@ -5,10 +5,11 @@ import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 's import { Editor } from '@monaco-editor/react' import { useSelector } from 'react-redux' +import PropTypes from 'prop-types' function CippCodeOffCanvas({ row, - state, + state: visible, hideFunction, type, title = 'Template JSON', @@ -27,13 +28,14 @@ function CippCodeOffCanvas({ setInvalid(true) } } + return ( <> @@ -41,7 +43,7 @@ function CippCodeOffCanvas({ className="mb-3" defaultLanguage="json" value={JSON.stringify(row, null, 2)} - theme={currentTheme == 'cyberdrain' ? 'vs-light' : 'vs-dark'} + theme={currentTheme === 'cyberdrain' ? 'vs-light' : 'vs-dark'} height="800px" onChange={handleEditorChange} options={{ @@ -74,4 +76,13 @@ function CippCodeOffCanvas({ ) } +CippCodeOffCanvas.propTypes = { + row: PropTypes.object, + state: PropTypes.bool, + hideFunction: PropTypes.func, + type: PropTypes.string, + title: PropTypes.string, + hideButton: PropTypes.bool, +} + export default CippCodeOffCanvas diff --git a/src/components/utilities/CippOffcanvas.jsx b/src/components/utilities/CippOffcanvas.jsx index 3148f5992ecb..d3eaece82e94 100644 --- a/src/components/utilities/CippOffcanvas.jsx +++ b/src/components/utilities/CippOffcanvas.jsx @@ -45,9 +45,10 @@ export const CippOffcanvasPropTypes = { placement: PropTypes.string.isRequired, title: PropTypes.string.isRequired, visible: PropTypes.bool, - id: PropTypes.string.isRequired, + id: PropTypes.string, hideFunction: PropTypes.func.isRequired, refreshFunction: PropTypes.func, + addedClass: PropTypes.string, } CippOffcanvas.propTypes = CippOffcanvasPropTypes diff --git a/src/components/utilities/CippTenantOffcanvas.jsx b/src/components/utilities/CippTenantOffcanvas.jsx index 79f249452f6e..0538ecbf4344 100644 --- a/src/components/utilities/CippTenantOffcanvas.jsx +++ b/src/components/utilities/CippTenantOffcanvas.jsx @@ -6,6 +6,7 @@ import { CippActionsOffcanvas } from 'src/components/utilities' import { useLazyGenericGetRequestQuery } from 'src/store/api/app' import Skeleton from 'react-loading-skeleton' import Portals from 'src/data/portals' +import PropTypes from 'prop-types' export const CippTenantOffcanvasRow = (row, rowIndex, formatExtraData) => { const tenant = row @@ -15,6 +16,7 @@ export const CippTenantOffcanvasRow = (row, rowIndex, formatExtraData) => { function CippTenantOffcanvas({ tenant, buildingIcon = false }) { const [getTenantDetails, tenantDetails] = useLazyGenericGetRequestQuery() const [ocVisible, setOCVisible] = useState(false) + function loadOffCanvasDetails(domainName) { setOCVisible(true) getTenantDetails({ path: `api/ListTenantDetails?tenantfilter=${domainName}` }) @@ -30,6 +32,7 @@ function CippTenantOffcanvas({ tenant, buildingIcon = false }) { ) } + const actions = Portals.map((portal) => ({ icon: , label: portal.label, @@ -103,4 +106,9 @@ function CippTenantOffcanvas({ tenant, buildingIcon = false }) { ) } +CippTenantOffcanvas.propTypes = { + tenant: PropTypes.object, + buildingIcon: PropTypes.bool, +} + export default CippTenantOffcanvas diff --git a/src/components/utilities/ErrorBoundary.jsx b/src/components/utilities/ErrorBoundary.jsx index a32fd5e589f0..8240d09b4139 100644 --- a/src/components/utilities/ErrorBoundary.jsx +++ b/src/components/utilities/ErrorBoundary.jsx @@ -28,5 +28,5 @@ export default class ErrorBoundary extends React.Component { } ErrorBoundary.propTypes = { - children: PropTypes.node, + children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]), } diff --git a/src/components/utilities/FastSwitcher.jsx b/src/components/utilities/FastSwitcher.jsx index d6d7db811057..5067a1ee2444 100644 --- a/src/components/utilities/FastSwitcher.jsx +++ b/src/components/utilities/FastSwitcher.jsx @@ -114,6 +114,7 @@ const ResultsRow = ({ match = [] }) => { const navigate = useNavigate() const dispatch = useDispatch() + // eslint-disable-next-line no-unsafe-optional-chaining const { name, section, icon, to } = match?.obj const [nameMatch, sectionMatch, toMatch] = match diff --git a/src/components/utilities/index.js b/src/components/utilities/index.js index c56c4bac84e0..cf22133abbbc 100644 --- a/src/components/utilities/index.js +++ b/src/components/utilities/index.js @@ -1,4 +1,5 @@ import CippActionsOffcanvas from 'src/components/utilities/CippActionsOffcanvas' +import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas.jsx' import CippCodeBlock from 'src/components/utilities/CippCodeBlock' import CippOffcanvas from 'src/components/utilities/CippOffcanvas' import CippProfile from 'src/components/utilities/CippProfile' @@ -19,6 +20,7 @@ import UsageLocation from 'src/components/utilities/UsageLocation' export { CippActionsOffcanvas, CippCodeBlock, + CippCodeOffCanvas, CippOffcanvas, CippProfile, ErrorBoundary, diff --git a/src/views/cipp/AppApproval.jsx b/src/views/cipp/AppApproval.jsx index ab13d99f8c1d..e23081ec1dc0 100644 --- a/src/views/cipp/AppApproval.jsx +++ b/src/views/cipp/AppApproval.jsx @@ -14,6 +14,7 @@ import { RFFSelectSearch, } from 'src/components/forms' import { useLazyGenericPostRequestQuery } from 'src/store/api/app' + const Error = ({ name }) => ( {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/cipp/CIPPSettings.jsx b/src/views/cipp/CIPPSettings.jsx index 67280e3a73ee..daf8d6c507b8 100644 --- a/src/views/cipp/CIPPSettings.jsx +++ b/src/views/cipp/CIPPSettings.jsx @@ -37,6 +37,7 @@ import { import { useExecAddExcludeTenantMutation, useExecRemoveExcludeTenantMutation, + useListTenantsQuery, } from 'src/store/api/tenants' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { @@ -50,7 +51,6 @@ import { faScroll, faTrash, } from '@fortawesome/free-solid-svg-icons' -import { useListTenantsQuery } from 'src/store/api/tenants' import { useLazyEditDnsConfigQuery, useLazyGetDnsConfigQuery } from 'src/store/api/domains' import { useDispatch, useSelector } from 'react-redux' import { @@ -78,14 +78,14 @@ import { TenantSelectorMultiple, } from 'src/components/utilities' import CippListOffcanvas from 'src/components/utilities/CippListOffcanvas' -import { TitleButton } from 'src/components/buttons' +import { TitleButton, TableModalButton } from 'src/components/buttons' import Skeleton from 'react-loading-skeleton' import { Buffer } from 'buffer' import Extensions from 'src/data/Extensions.json' import { CellDelegatedPrivilege } from 'src/components/tables/CellDelegatedPrivilege' -import { TableModalButton } from 'src/components/buttons' import { cellTableFormatter } from 'src/components/tables/CellTable' import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' +import PropTypes from 'prop-types' function Lazy({ visible, children }) { const rendered = useRef(visible) @@ -99,6 +99,11 @@ function Lazy({ visible, children }) { return
    {children}
    } +Lazy.propTypes = { + visible: PropTypes.bool, + children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]), +} + const CIPPSettings = () => { const [active, setActive] = useState(1) return ( @@ -361,6 +366,7 @@ const GeneralSettings = () => { console.log(e) setShowExtendedInfo(!e.target.checked) }} + key={'Show Extended Info'} />, ], } @@ -423,6 +429,7 @@ const GeneralSettings = () => { documentation on how to add permissions{' '}
    here @@ -484,8 +491,14 @@ const GeneralSettings = () => { columns={checkGDAPColumns} data={GDAPResult.data.Results.GDAPIssues} filterlist={[ - { filterName: 'Errors', filter: 'Complex: Type eq Error' }, - { filterName: 'Warnings', filter: 'Complex: Type eq Warning' }, + { + filterName: 'Errors', + filter: 'Complex: Type eq Error', + }, + { + filterName: 'Warnings', + filter: 'Complex: Type eq Warning', + }, ]} defaultFilterText="Complex: Type eq Error" isModal={true} @@ -610,7 +623,6 @@ const ExcludedTenantsSettings = () => { body:
    Are you sure you want to exclude this tenant?
    , onConfirm: () => addExcludeTenant(tenant), }) - .unwrap() .then(() => { dispatch(setCurrentTenant({})) @@ -639,6 +651,7 @@ const ExcludedTenantsSettings = () => { Add Excluded Tenant ) + function StatusIcon(graphErrorCount) { if (graphErrorCount > 0) { return @@ -817,8 +830,14 @@ const ExcludedTenantsSettings = () => { }, isModal: true, filterlist: [ - { filterName: 'Excluded Tenants', filter: 'Complex: Excluded eq true' }, - { filterName: 'Included Tenants', filter: 'Complex: Excluded eq false' }, + { + filterName: 'Excluded Tenants', + filter: 'Complex: Excluded eq true', + }, + { + filterName: 'Included Tenants', + filter: 'Complex: Excluded eq false', + }, { filterName: 'GDAP & DAP', filter: @@ -1139,18 +1158,36 @@ const NotificationsSettings = () => { { value: 'Updates', name: 'Updates Status' }, { value: 'Standards', name: 'All Standards' }, { value: 'TokensUpdater', name: 'Token Events' }, - { value: 'ExecDnsConfig', name: 'Changing DNS Settings' }, - { value: 'ExecExcludeLicenses', name: 'Adding excluded licenses' }, - { value: 'ExecExcludeTenant', name: 'Adding excluded tenants' }, + { + value: 'ExecDnsConfig', + name: 'Changing DNS Settings', + }, + { + value: 'ExecExcludeLicenses', + name: 'Adding excluded licenses', + }, + { + value: 'ExecExcludeTenant', + name: 'Adding excluded tenants', + }, { value: 'EditUser', name: 'Editing a user' }, - { value: 'ChocoApp', name: 'Adding or deploying applications' }, - { value: 'AddAPDevice', name: 'Adding autopilot devices' }, + { + value: 'ChocoApp', + name: 'Adding or deploying applications', + }, + { + value: 'AddAPDevice', + name: 'Adding autopilot devices', + }, { value: 'EditTenant', name: 'Editing a tenant' }, { value: 'AddMSPApp', name: 'Adding an MSP app' }, { value: 'AddUser', name: 'Adding a user' }, { value: 'AddGroup', name: 'Adding a group' }, { value: 'NewTenant', name: 'Adding a tenant' }, - { value: 'ExecOffboardUser', name: 'Executing the offboard wizard' }, + { + value: 'ExecOffboardUser', + name: 'Executing the offboard wizard', + }, ]} /> @@ -1587,9 +1624,7 @@ const ExtensionsTab = () => { Results - <> - {listSyncExtensionResult.data.Results} - + {listSyncExtensionResult.data.Results} )} @@ -1619,8 +1654,8 @@ const ExtensionsTab = () => { )} - {Extensions.map((integration) => ( - + {Extensions.map((integration, idx) => ( + {integration.name} @@ -1636,9 +1671,9 @@ const ExtensionsTab = () => { {integration.SettingOptions.map( - (integrationOptions) => + (integrationOptions, idx) => integrationOptions.type === 'input' && ( - + { ), )} {integration.SettingOptions.map( - (integrationOptions) => + (integrationOptions, idx) => integrationOptions.type === 'checkbox' && ( - + { + {/* eslint-disable react/prop-types */} {(props) => { const selectedCommand = availableCommands.find( (cmd) => cmd.Function === props.values.command?.value, @@ -289,6 +290,7 @@ const Scheduler = () => { + {/* eslint-disable react/prop-types */} {(props) => { const selectedCommand = availableCommands.find( (cmd) => cmd.Function === props.values.command?.value, @@ -390,7 +392,10 @@ const Scheduler = () => { { ], }, filterlist: [ - { filterName: 'Planned Jobs', filter: 'Complex: TaskState eq Planned' }, - { filterName: 'Completed Jobs', filter: 'Complex: TaskState eq Completed' }, - { filterName: 'Recurring Jobs', filter: 'Complex: Recurrence gt 0' }, - { filterName: 'One-time Jobs', filter: 'Complex: Recurrence eq 0' }, + { + filterName: 'Planned Jobs', + filter: 'Complex: TaskState eq Planned', + }, + { + filterName: 'Completed Jobs', + filter: 'Complex: TaskState eq Completed', + }, + { + filterName: 'Recurring Jobs', + filter: 'Complex: Recurrence gt 0', + }, + { + filterName: 'One-time Jobs', + filter: 'Complex: Recurrence eq 0', + }, ], keyField: 'id', columns, diff --git a/src/views/cipp/Setup.jsx b/src/views/cipp/Setup.jsx index e8d9a33d3064..6b674870df54 100644 --- a/src/views/cipp/Setup.jsx +++ b/src/views/cipp/Setup.jsx @@ -21,12 +21,14 @@ function useInterval(callback, delay, state) { function tick() { savedCallback.current() } + if (delay !== null) { let id = setInterval(tick, delay) return () => clearInterval(id) } }, [delay, state]) } + const Error = ({ name }) => ( { <> -
    + Refresh Graph Token diff --git a/src/views/email-exchange/administration/ContactsList.jsx b/src/views/email-exchange/administration/ContactsList.jsx index 21aa657ee0c4..094f3c6930f3 100644 --- a/src/views/email-exchange/administration/ContactsList.jsx +++ b/src/views/email-exchange/administration/ContactsList.jsx @@ -7,6 +7,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faEdit, faEllipsisV } from '@fortawesome/free-solid-svg-icons' import { TitleButton } from 'src/components/buttons' import { CippActionsOffcanvas } from 'src/components/utilities' + const Actions = (row, rowIndex, formatExtraData) => { const tenant = useSelector((state) => state.app.currentTenant) const [ocVisible, setOCVisible] = useState(false) @@ -14,6 +15,7 @@ const Actions = (row, rowIndex, formatExtraData) => { <> diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.jsx b/src/views/email-exchange/administration/EditMailboxPermissions.jsx index 7d7fad968cd7..b025dd6ec9bd 100644 --- a/src/views/email-exchange/administration/EditMailboxPermissions.jsx +++ b/src/views/email-exchange/administration/EditMailboxPermissions.jsx @@ -18,7 +18,13 @@ import { import useQuery from 'src/hooks/useQuery' import { useDispatch } from 'react-redux' import { Form, Field } from 'react-final-form' -import { RFFSelectSearch, RFFCFormSelect, RFFCFormCheck, RFFCFormInput } from 'src/components/forms' +import { + RFFSelectSearch, + RFFCFormSelect, + RFFCFormCheck, + RFFCFormInput, + RFFCFormSwitch, +} from 'src/components/forms' import { useListUsersQuery } from 'src/store/api/users' import { ModalService } from 'src/components/utilities' import { @@ -32,13 +38,12 @@ import { useListMailboxPermissionsQuery, useListMailboxesQuery, useListCalendarPermissionsQuery, + useListMailboxDetailsQuery, } from 'src/store/api/mailbox' -import { CippTable } from 'src/components/tables' -import { useListMailboxDetailsQuery } from 'src/store/api/mailbox' -import { CellBoolean } from 'src/components/tables' +import { CippTable, CellBoolean } from 'src/components/tables' import DatePicker from 'react-datepicker' import 'react-datepicker/dist/react-datepicker.css' -import { RFFCFormSwitch } from 'src/components/forms' +import PropTypes from 'prop-types' const formatter = (cell, warning = false, reverse = false, colourless = false) => CellBoolean({ cell, warning, reverse, colourless }) @@ -55,6 +60,11 @@ function Lazy({ visible, children }) { return
    {children}
    } +Lazy.propTypes = { + visible: PropTypes.bool, + children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]), +} + const MailboxSettings = () => { const dispatch = useDispatch() let query = useQuery() @@ -520,9 +530,18 @@ const CalendarPermissions = () => { { value: 'Contributor', name: 'Contributor' }, { value: 'Editor', name: 'Editor' }, { value: 'Owner', name: 'Owner' }, - { value: 'NonEditingAuthor', name: 'Non Editing Author' }, - { value: 'PublishingAuthor', name: 'Publishing Author' }, - { value: 'PublishingEditor', name: 'Publishing Editor' }, + { + value: 'NonEditingAuthor', + name: 'Non Editing Author', + }, + { + value: 'PublishingAuthor', + name: 'Publishing Author', + }, + { + value: 'PublishingEditor', + name: 'Publishing Editor', + }, { value: 'Reviewer', name: 'Reviewer' }, ]} placeholder="Select a permission level" @@ -587,6 +606,7 @@ const MailboxForwarding = () => { useEffect(() => { if (postResults.isSuccess) { + // @TODO do something here? } if (!userId || !tenantDomain) { ModalService.open({ @@ -823,6 +843,7 @@ const OutOfOffice = () => { useEffect(() => { if (postResults.isSuccess) { + // @TODO do something here? } if (!userId || !tenantDomain) { ModalService.open({ diff --git a/src/views/email-exchange/connectors/DeployConnector.jsx b/src/views/email-exchange/connectors/DeployConnector.jsx index fee824106b2b..16ebec88e10a 100644 --- a/src/views/email-exchange/connectors/DeployConnector.jsx +++ b/src/views/email-exchange/connectors/DeployConnector.jsx @@ -64,6 +64,11 @@ const DeployConnectorTemplate = () => { ) + WhenFieldChanges.propTypes = { + field: PropTypes.node, + set: PropTypes.string, + } + const formValues = { TemplateType: 'Admin', } @@ -84,6 +89,7 @@ const DeployConnectorTemplate = () => {

    + {/* eslint-disable react/prop-types */} {(props) => ( { if (tenant.defaultDomainName !== 'AllTenants') { setTenantColumn(true) } - }, [tenantColumnSet]) + }, [tenant.defaultDomainName, tenantColumnSet]) return ( { ) + WhenFieldChanges.propTypes = { + field: PropTypes.node, + set: PropTypes.string, + } + const formValues = { TemplateType: 'Admin', } @@ -158,6 +163,7 @@ const SpamFilterAdd = () => {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/email-exchange/spamfilter/ListSpamfilterTemplates.jsx b/src/views/email-exchange/spamfilter/ListSpamfilterTemplates.jsx index 076a7879c423..eb5bad83bbc3 100644 --- a/src/views/email-exchange/spamfilter/ListSpamfilterTemplates.jsx +++ b/src/views/email-exchange/spamfilter/ListSpamfilterTemplates.jsx @@ -1,6 +1,5 @@ import React, { useState } from 'react' import { useSelector } from 'react-redux' -import { CippCodeBlock, CippOffcanvas } from 'src/components/utilities' import { CellTip } from 'src/components/tables' import { CButton, CCallout, CSpinner } from '@coreui/react' import { faEye, faTrash } from '@fortawesome/free-solid-svg-icons' @@ -8,7 +7,6 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { useLazyGenericGetRequestQuery } from 'src/store/api/app' import { CippPageList } from 'src/components/layout' import { ModalService } from 'src/components/utilities' -import { TitleButton } from 'src/components/buttons' import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas' const SpamFilterListTemplates = () => { diff --git a/src/views/email-exchange/tools/MailboxRestoreWizard.jsx b/src/views/email-exchange/tools/MailboxRestoreWizard.jsx index f410a407251a..490c7d54f98d 100644 --- a/src/views/email-exchange/tools/MailboxRestoreWizard.jsx +++ b/src/views/email-exchange/tools/MailboxRestoreWizard.jsx @@ -45,7 +45,11 @@ const MailboxRestoreWizard = () => { error: sMailboxError, } = useGenericGetRequestQuery({ path: '/api/ListMailboxes', - params: { TenantFilter: tenantDomain, SoftDeletedMailbox: true, SkipLicense: true }, + params: { + TenantFilter: tenantDomain, + SoftDeletedMailbox: true, + SkipLicense: true, + }, }) const { data: targetMailboxes = [], @@ -184,6 +188,7 @@ const MailboxRestoreWizard = () => { )} {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => ( <> diff --git a/src/views/email-exchange/tools/MailboxRestores.jsx b/src/views/email-exchange/tools/MailboxRestores.jsx index 9ee81e7ddf02..3a12702dd2ce 100644 --- a/src/views/email-exchange/tools/MailboxRestores.jsx +++ b/src/views/email-exchange/tools/MailboxRestores.jsx @@ -1,24 +1,12 @@ -import { CSpinner, CButton } from '@coreui/react' -import { - faEllipsisV, - faTrashAlt, - faExclamationTriangle, - faCheck, -} from '@fortawesome/free-solid-svg-icons' +import { CButton } from '@coreui/react' +import { faEllipsisV } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import React, { useState } from 'react' import { useSelector } from 'react-redux' import { CippPageList } from 'src/components/layout' -import { - CellDelegatedPrivilege, - cellDateFormatter, - cellNullTextFormatter, -} from 'src/components/tables' +import { cellDateFormatter } from 'src/components/tables' import { CippActionsOffcanvas } from 'src/components/utilities' -import GDAPRoles from 'src/data/GDAPRoles' import { useLazyGenericGetRequestQuery } from 'src/store/api/app' -import { ModalService } from 'src/components/utilities' -import { constants } from 'buffer' import Skeleton from 'react-loading-skeleton' import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' diff --git a/src/views/email-exchange/transport/DeployTransport.jsx b/src/views/email-exchange/transport/DeployTransport.jsx index e53991072fa2..4ba34de996b4 100644 --- a/src/views/email-exchange/transport/DeployTransport.jsx +++ b/src/views/email-exchange/transport/DeployTransport.jsx @@ -41,7 +41,6 @@ const AddPolicy = () => { values.TemplateType = values.Type genericPostRequest({ path: '/api/AddTransportRule', values: values }) } - //* eslint-disable react/prop-types */ const WhenFieldChanges = ({ field, set }) => ( {( @@ -65,6 +64,11 @@ const AddPolicy = () => { ) + WhenFieldChanges.propTypes = { + field: PropTypes.node, + set: PropTypes.string, + } + const formValues = { TemplateType: 'Admin', } @@ -85,6 +89,7 @@ const AddPolicy = () => {

    + {/* eslint-disable react/prop-types */} {(props) => ( ( { )} ) + + WhenFieldChanges.propTypes = { + field: PropTypes.node, + set: PropTypes.string, + } + return ( {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/endpoint/applications/ApplicationsAddOffice.jsx b/src/views/endpoint/applications/ApplicationsAddOffice.jsx index 5fcd8c673b07..a3cb1890bbff 100644 --- a/src/views/endpoint/applications/ApplicationsAddOffice.jsx +++ b/src/views/endpoint/applications/ApplicationsAddOffice.jsx @@ -197,6 +197,7 @@ const AddOffice = () => {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/endpoint/applications/ApplicationsAddRMM.jsx b/src/views/endpoint/applications/ApplicationsAddRMM.jsx index da43bbca5a29..a6583e00fd4c 100644 --- a/src/views/endpoint/applications/ApplicationsAddRMM.jsx +++ b/src/views/endpoint/applications/ApplicationsAddRMM.jsx @@ -129,6 +129,7 @@ const AddRMM = () => {
    + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/endpoint/applications/ApplicationsAddWinGet.jsx b/src/views/endpoint/applications/ApplicationsAddWinGet.jsx index 72a1dc7937f4..dda13eecf7c6 100644 --- a/src/views/endpoint/applications/ApplicationsAddWinGet.jsx +++ b/src/views/endpoint/applications/ApplicationsAddWinGet.jsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useRef } from 'react' import { CCol, CRow, @@ -23,10 +23,8 @@ import { RFFCFormInput, RFFCFormRadio, RFFCFormSelect, - RFFCFormSwitch, } from 'src/components/forms' import { useLazyGenericPostRequestQuery } from 'src/store/api/app' -import { useRef } from 'react' import { OnChange } from 'react-final-form-listeners' const Error = ({ name }) => ( @@ -103,6 +101,11 @@ const AddWinGet = () => { ) + WhenFieldChanges.propTypes = { + field: PropTypes.node, + set: PropTypes.string, + } + return ( {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/endpoint/autopilot/AutopilotAddDevice.jsx b/src/views/endpoint/autopilot/AutopilotAddDevice.jsx index 6073da03f5fe..a6ff876f4a76 100644 --- a/src/views/endpoint/autopilot/AutopilotAddDevice.jsx +++ b/src/views/endpoint/autopilot/AutopilotAddDevice.jsx @@ -196,6 +196,7 @@ const AddAPDevice = () => { + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/endpoint/autopilot/AutopilotAddProfile.jsx b/src/views/endpoint/autopilot/AutopilotAddProfile.jsx index 4247ea12a19c..62c62c8b4cf4 100644 --- a/src/views/endpoint/autopilot/AutopilotAddProfile.jsx +++ b/src/views/endpoint/autopilot/AutopilotAddProfile.jsx @@ -168,6 +168,7 @@ const ApplyStandard = () => {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/endpoint/autopilot/AutopilotAddStatusPage.jsx b/src/views/endpoint/autopilot/AutopilotAddStatusPage.jsx index 516ee21de8be..85f83fd385a3 100644 --- a/src/views/endpoint/autopilot/AutopilotAddStatusPage.jsx +++ b/src/views/endpoint/autopilot/AutopilotAddStatusPage.jsx @@ -140,6 +140,7 @@ const ApplyStandard = () => {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/endpoint/intune/MEMAddPolicy.jsx b/src/views/endpoint/intune/MEMAddPolicy.jsx index a564ce3d36db..6c7efa88c689 100644 --- a/src/views/endpoint/intune/MEMAddPolicy.jsx +++ b/src/views/endpoint/intune/MEMAddPolicy.jsx @@ -79,6 +79,11 @@ const AddPolicy = () => { ) + WhenFieldChanges.propTypes = { + field: PropTypes.node, + set: PropTypes.string, + } + const formValues = { TemplateType: 'Admin', } @@ -99,6 +104,7 @@ const AddPolicy = () => {
    + {/* eslint-disable react/prop-types */} {(props) => ( { (p) => p.displayName === 'AllTenants' || p.displayName === currentTenant.defaultDomainName, ) .flatMap((tenant) => { - return Object.keys(tenant.standards).map((standard) => { + return Object.keys(tenant.standards).map((standard, idx) => { const standardDisplayname = allStandardsList.filter((p) => p.name.includes(standard)) return ( -
  • +
  • {standardDisplayname[0]?.label} ({tenant.displayName})
  • ) @@ -267,7 +267,7 @@ const Home = () => { {!isLoadingOrg && !isFetchingOrg && organization?.onPremisesSyncEnabled ? ( <>
  • - Directory Sync: + Directory Sync: {organization?.onPremisesLastSyncDateTime ? ( ) : ( @@ -275,7 +275,7 @@ const Home = () => { )}
  • - Password Sync: + Password Sync: {organization?.onPremisesLastPasswordSyncDateTime ? ( ) : ( @@ -294,7 +294,9 @@ const Home = () => { {(isLoadingOrg || isFetchingOrg) && } {!isFetchingOrg && issuccessOrg && - organization?.verifiedDomains?.map((item) =>
  • {item.name}
  • )} + organization?.verifiedDomains?.map((item, idx) => ( +
  • {item.name}
  • + ))}

    Capabilities

    @@ -309,12 +311,12 @@ const Home = () => { } return plan }, []) - .map((plan) => ( - <> + .map((plan, idx) => ( +
    {plan === 'exchange' &&
  • Exchange
  • } {plan === 'AADPremiumService' &&
  • AAD Premium
  • } {plan === 'WindowsDefenderATP' &&
  • Windows Defender
  • } - +
    ))}
    @@ -350,10 +352,10 @@ const Home = () => { {(isLoadingPartners || isFetchingPartners) && } {issuccessPartners && !isFetchingPartners && - partners?.Results.map((partner) => { + partners?.Results.map((partner, idx) => { if (partner.TenantInfo) { return ( -
  • +
  • {partner.TenantInfo.displayName} ( {partner.TenantInfo.defaultDomainName})
  • diff --git a/src/views/identity/administration/DeployGroupTemplate.jsx b/src/views/identity/administration/DeployGroupTemplate.jsx index 4e89504a72c6..64b730df4d43 100644 --- a/src/views/identity/administration/DeployGroupTemplate.jsx +++ b/src/views/identity/administration/DeployGroupTemplate.jsx @@ -10,7 +10,6 @@ import { Condition, RFFCFormCheck, RFFCFormInput, - RFFCFormRadio, RFFCFormSelect, RFFCFormTextarea, } from 'src/components/forms' @@ -71,6 +70,11 @@ const ApplyGroupTemplate = () => { ) + WhenFieldChanges.propTypes = { + field: PropTypes.node, + set: PropTypes.string, + } + const formValues = { TemplateType: 'Admin', } @@ -91,6 +95,7 @@ const ApplyGroupTemplate = () => {
    + {/* eslint-disable react/prop-types */} {(props) => ( { )} {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => ( <> diff --git a/src/views/identity/administration/UserMailboxRuleList.jsx b/src/views/identity/administration/UserMailboxRuleList.jsx index acb19e3e44e1..4ab999081ee8 100644 --- a/src/views/identity/administration/UserMailboxRuleList.jsx +++ b/src/views/identity/administration/UserMailboxRuleList.jsx @@ -1,6 +1,6 @@ import React from 'react' import PropTypes from 'prop-types' -import { cellBooleanFormatter, CellTip } from 'src/components/tables' +import { CellBoolean, cellBooleanFormatter, CellTip } from 'src/components/tables' import { DatatableContentCard } from 'src/components/contentcards' import { faEnvelope } from '@fortawesome/free-solid-svg-icons' diff --git a/src/views/identity/administration/Users.jsx b/src/views/identity/administration/Users.jsx index 07a2df987cb7..b9cc7c50cc77 100644 --- a/src/views/identity/administration/Users.jsx +++ b/src/views/identity/administration/Users.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react' +import React, { useEffect, useState, useRef } from 'react' import { CButton, CFormInput } from '@coreui/react' import { Link, useSearchParams } from 'react-router-dom' import { useSelector } from 'react-redux' @@ -7,12 +7,10 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { cellBooleanFormatter, CellTip } from 'src/components/tables' import { CippPageList } from 'src/components/layout' import { TitleButton } from 'src/components/buttons' -import { CippActionsOffcanvas, CippCodeBlock } from 'src/components/utilities' +import { CippActionsOffcanvas, ModalService } from 'src/components/utilities' import { cellLicenseFormatter, CellLicense } from 'src/components/tables/CellLicense' import M365Licenses from 'src/data/M365Licenses' import CippGraphUserFilter from 'src/components/utilities/CippGraphUserFilter' -import { ModalService } from 'src/components/utilities' -import { useRef } from 'react' const Offcanvas = (row, rowIndex, formatExtraData) => { const tenant = useSelector((state) => state.app.currentTenant) @@ -52,7 +50,10 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { { { label: 'Mail', value: `${row.mail ?? ' '}` }, { label: 'City', value: `${row.city ?? ' '}` }, { label: 'Department', value: `${row.department ?? ' '}` }, - { label: 'OnPrem Last Sync', value: `${row.onPremisesLastSyncDateTime ?? ' '}` }, + { + label: 'OnPrem Last Sync', + value: `${row.onPremisesLastSyncDateTime ?? ' '}`, + }, { label: 'Unique ID', value: `${row.id ?? ' '}` }, ]} actions={[ @@ -363,7 +367,7 @@ const Users = (row) => { if (tenant.defaultDomainName !== 'AllTenants') { setTenantColumn(true) } - }, [tenantColumnSet]) + }, [tenant.defaultDomainName, tenantColumnSet]) const titleButtons = (
    @@ -388,10 +392,19 @@ const Users = (row) => { { filterName: 'Enabled users', filter: '"accountEnabled":true' }, { filterName: 'Disabled users', filter: '"accountEnabled":false' }, { filterName: 'AAD users', filter: '"onPremisesSyncEnabled":false' }, - { filterName: 'Synced users', filter: '"onPremisesSyncEnabled":true' }, + { + filterName: 'Synced users', + filter: '"onPremisesSyncEnabled":true', + }, { filterName: 'Guest users', filter: '"usertype":"guest"' }, - { filterName: 'Users with a license', filter: '"assignedLicenses":[{' }, - { filterName: 'Users without a license', filter: '"assignedLicenses":[]' }, + { + filterName: 'Users with a license', + filter: '"assignedLicenses":[{', + }, + { + filterName: 'Users without a license', + filter: '"assignedLicenses":[]', + }, { filterName: 'Users with a license (Graph)', filter: 'Graph: assignedLicenses/$count ne 0', @@ -413,8 +426,9 @@ const Users = (row) => { $orderby: 'displayName', }, tableProps: { + keyField: 'id', selectableRows: true, - actions: [], + actions: [], actionsList: [ { label: 'Convert to Shared Mailbox', diff --git a/src/views/identity/administration/ViewBEC.jsx b/src/views/identity/administration/ViewBEC.jsx index ac0c8f7efaaa..4f1173042008 100644 --- a/src/views/identity/administration/ViewBEC.jsx +++ b/src/views/identity/administration/ViewBEC.jsx @@ -1,6 +1,5 @@ import React, { useEffect } from 'react' -import { CButton, CCallout, CLink, CCardTitle } from '@coreui/react' -import { CCardBody, CSpinner } from '@coreui/react' +import { CButton, CCallout, CLink, CCardTitle, CSpinner } from '@coreui/react' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faCheckCircle, @@ -34,7 +33,7 @@ const ViewBec = () => { const { data: alerts = {}, isFetching, error, isSuccess } = results useEffect(() => { execBecView({ tenantFilter: tenantDomain, userId: userId, userName: userName }) - }, [execBecView, tenantDomain, userId]) + }, [execBecView, tenantDomain, userId, userName]) const deviceColumns = [ { @@ -219,7 +218,11 @@ const ViewBec = () => { onConfirm: () => { execBecRemediate({ path: '/api/execBecRemediate', - values: { userId: userId, tenantFilter: tenantDomain, userName: userName }, + values: { + userId: userId, + tenantFilter: tenantDomain, + userName: userName, + }, }) }, }) @@ -233,7 +236,11 @@ const ViewBec = () => { - execBecView({ tenantFilter: tenantDomain, userId: userId, overwrite: true }) + execBecView({ + tenantFilter: tenantDomain, + userId: userId, + overwrite: true, + }) } disabled={isFetching} > @@ -279,8 +286,8 @@ const ViewBec = () => { )} {execRemediateResults.isSuccess && ( - {execRemediateResults.data?.Results.map((item) => { - return
  • {item}
  • + {execRemediateResults.data?.Results.map((item, idx) => { + return
  • {item}
  • })}
    )} diff --git a/src/views/identity/administration/ViewUser.jsx b/src/views/identity/administration/ViewUser.jsx index 9e7f39feb4c8..ae0e44510693 100644 --- a/src/views/identity/administration/ViewUser.jsx +++ b/src/views/identity/administration/ViewUser.jsx @@ -3,8 +3,7 @@ import { CSpinner } from '@coreui/react' import PropTypes from 'prop-types' import useQuery from 'src/hooks/useQuery' import { useDispatch } from 'react-redux' -import { CippPage } from 'src/components/layout' -import { CippMasonry, CippMasonryItem } from 'src/components/layout' +import { CippPage, CippMasonry, CippMasonryItem } from 'src/components/layout' import { ModalService } from 'src/components/utilities' import UserDevices from 'src/views/identity/administration/UserDevices' import UserDetails from 'src/views/identity/administration/UserDetails' diff --git a/src/views/identity/reports/SignIns.jsx b/src/views/identity/reports/SignIns.jsx index aea60797072b..bcd14acc0c07 100644 --- a/src/views/identity/reports/SignIns.jsx +++ b/src/views/identity/reports/SignIns.jsx @@ -12,8 +12,7 @@ import { } from '@coreui/react' import { faChevronDown, faChevronRight, faSearch } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import React from 'react' -import { useState } from 'react' +import React, { useState } from 'react' import { Form } from 'react-final-form' import { useSelector } from 'react-redux' import { useNavigate } from 'react-router-dom' diff --git a/src/views/pages/page500/Page500.jsx b/src/views/pages/page500/Page500.jsx index b046cac59d99..c58e18ae374e 100644 --- a/src/views/pages/page500/Page500.jsx +++ b/src/views/pages/page500/Page500.jsx @@ -13,7 +13,7 @@ import { CTableHeaderCell, CTableRow, } from '@coreui/react' -import { FastSwitcher } from 'src/components/utilities' +import PropTypes from 'prop-types' const Page500 = ({ errorcode, issue }) => { return ( @@ -55,4 +55,9 @@ const Page500 = ({ errorcode, issue }) => { ) } +Page500.propTypes = { + errorcode: PropTypes.string, + issue: PropTypes.string, +} + export default Page500 diff --git a/src/views/security/incidents/ListAlerts.jsx b/src/views/security/incidents/ListAlerts.jsx index cbf11c37c2cc..a197b5e654b6 100644 --- a/src/views/security/incidents/ListAlerts.jsx +++ b/src/views/security/incidents/ListAlerts.jsx @@ -1,7 +1,15 @@ import React, { useEffect, useState } from 'react' -import { CButton, CCallout, CCardGroup, CCardText } from '@coreui/react' +import { + CButton, + CCallout, + CCardGroup, + CCardText, + CCard, + CCardBody, + CCardHeader, + CCardTitle, +} from '@coreui/react' import { CippTable, cellDateFormatter, CellTip } from 'src/components/tables' -import { CCard, CCardBody, CCardHeader, CCardTitle } from '@coreui/react' import { useLazyExecAlertsListQuery } from 'src/store/api/security' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { CippPage } from 'src/components/layout' diff --git a/src/views/security/incidents/ListIncidents.jsx b/src/views/security/incidents/ListIncidents.jsx index fa8beb29730a..703409631da5 100644 --- a/src/views/security/incidents/ListIncidents.jsx +++ b/src/views/security/incidents/ListIncidents.jsx @@ -1,7 +1,15 @@ import React, { useEffect, useState } from 'react' -import { CButton, CCallout, CCardText, CListGroupItem } from '@coreui/react' +import { + CButton, + CCallout, + CCardText, + CListGroupItem, + CCard, + CCardBody, + CCardHeader, + CCardTitle, +} from '@coreui/react' import { CippTable, cellDateFormatter, CellTip } from 'src/components/tables' -import { CCard, CCardBody, CCardHeader, CCardTitle } from '@coreui/react' import { useLazyExecIncidentsListQuery } from 'src/store/api/security' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { CippPage } from 'src/components/layout' diff --git a/src/views/tenant/administration/AlertWizard.jsx b/src/views/tenant/administration/AlertWizard.jsx index a8986663644a..40bf89a36870 100644 --- a/src/views/tenant/administration/AlertWizard.jsx +++ b/src/views/tenant/administration/AlertWizard.jsx @@ -9,6 +9,7 @@ import PropTypes from 'prop-types' import { Condition, RFFCFormSelect, RFFCFormSwitch, RFFSelectSearch } from 'src/components/forms' import { useLazyGenericPostRequestQuery } from 'src/store/api/app' import countryList from 'src/data/countryList.json' + const Error = ({ name }) => ( {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/tenant/administration/GDAPInviteWizard.jsx b/src/views/tenant/administration/GDAPInviteWizard.jsx index 1efdd36f7906..ff4c6b89cde7 100644 --- a/src/views/tenant/administration/GDAPInviteWizard.jsx +++ b/src/views/tenant/administration/GDAPInviteWizard.jsx @@ -102,6 +102,7 @@ const GDAPInviteWizard = () => {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> @@ -111,7 +112,7 @@ const GDAPInviteWizard = () => {
    Roles and group names
    {props.values.gdapRoles.map((role, idx) => ( <> - {role.RoleName == 'Company Administrator' && ( + {role.RoleName === 'Company Administrator' && ( WARNING: The Company Administrator role will prevent GDAP relationships from automatically extending. We recommend against using diff --git a/src/views/tenant/administration/GDAPRoleWizard.jsx b/src/views/tenant/administration/GDAPRoleWizard.jsx index 83830e976cab..91d202fd2fb7 100644 --- a/src/views/tenant/administration/GDAPRoleWizard.jsx +++ b/src/views/tenant/administration/GDAPRoleWizard.jsx @@ -114,6 +114,7 @@ const GDAPRoleWizard = () => {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/tenant/administration/GDAPWizard.jsx b/src/views/tenant/administration/GDAPWizard.jsx index 3c6147e7547d..d68a20c3df58 100644 --- a/src/views/tenant/administration/GDAPWizard.jsx +++ b/src/views/tenant/administration/GDAPWizard.jsx @@ -54,7 +54,12 @@ const GDAPWizard = () => {
    The GDAP migration tool requires setup. Please check the documentation{' '} - + here.

    @@ -172,6 +177,7 @@ const GDAPWizard = () => {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> @@ -189,7 +195,7 @@ const GDAPWizard = () => {
    Roles and group names
    {props.values.gdapRoles.map((role, idx) => ( <> - {role.RoleName == 'Company Administrator' && ( + {role.RoleName === 'Company Administrator' && ( WARNING: The Company Administrator role will prevent GDAP relationships from automatically extending. We recommend against using diff --git a/src/views/tenant/administration/GraphExplorer.jsx b/src/views/tenant/administration/GraphExplorer.jsx index 4bb325b4f0ff..d92dd613daef 100644 --- a/src/views/tenant/administration/GraphExplorer.jsx +++ b/src/views/tenant/administration/GraphExplorer.jsx @@ -23,6 +23,7 @@ import { useLazyGenericGetRequestQuery } from 'src/store/api/app' import { OnChange } from 'react-final-form-listeners' import { queryString } from 'src/helpers' import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' +import PropTypes from 'prop-types' const GraphExplorer = () => { let navigate = useNavigate() @@ -79,7 +80,7 @@ const GraphExplorer = () => { disablePagination: disablePagination, }, }) - }, [endpoint, execGraphRequest, tenant.defaultDomainName, query]) + }, [endpoint, execGraphRequest, tenant.defaultDomainName, query, disablePagination]) const WhenFieldChanges = ({ field, set }) => ( @@ -101,6 +102,11 @@ const GraphExplorer = () => { ) + WhenFieldChanges.propTypes = { + field: PropTypes.node, + set: PropTypes.string, + } + return ( <> diff --git a/src/views/tenant/administration/ListEnterpriseApps.jsx b/src/views/tenant/administration/ListEnterpriseApps.jsx index d6ae08d59059..5b2385a6c0f1 100644 --- a/src/views/tenant/administration/ListEnterpriseApps.jsx +++ b/src/views/tenant/administration/ListEnterpriseApps.jsx @@ -1,11 +1,7 @@ -import { CButton } from '@coreui/react' -import { faEllipsisV, faTrashAlt } from '@fortawesome/free-solid-svg-icons' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import React, { useState, useEffect } from 'react' import { useSelector } from 'react-redux' import { CippPageList } from 'src/components/layout' import { cellDateFormatter, cellNullTextFormatter } from 'src/components/tables' -import { CippActionsOffcanvas } from 'src/components/utilities' import { cellLogoFormatter } from 'src/components/tables/CellLogo' import { CellTip } from 'src/components/tables/CellGenericFormat' @@ -19,7 +15,7 @@ const EnterpriseApplications = () => { if (tenant.defaultDomainName !== 'AllTenants') { setTenantColumn(true) } - }, [tenantColumnSet]) + }, [tenant.defaultDomainName, tenantColumnSet]) const columns = [ { diff --git a/src/views/tenant/administration/ListGDAPRelationships.jsx b/src/views/tenant/administration/ListGDAPRelationships.jsx index 6ee6a8cfa07c..ca1caccd237c 100644 --- a/src/views/tenant/administration/ListGDAPRelationships.jsx +++ b/src/views/tenant/administration/ListGDAPRelationships.jsx @@ -10,11 +10,9 @@ import React, { useState } from 'react' import { useSelector } from 'react-redux' import { CippPageList } from 'src/components/layout' import { cellDateFormatter, cellNullTextFormatter } from 'src/components/tables' -import { CippActionsOffcanvas } from 'src/components/utilities' +import { CippActionsOffcanvas, ModalService } from 'src/components/utilities' import GDAPRoles from 'src/data/GDAPRoles' import { useLazyGenericGetRequestQuery } from 'src/store/api/app' -import { ModalService } from 'src/components/utilities' -import { constants } from 'buffer' import Skeleton from 'react-loading-skeleton' const RefreshAction = () => { diff --git a/src/views/tenant/administration/TenantLookup.jsx b/src/views/tenant/administration/TenantLookup.jsx index 97f76156e70e..abb95f701571 100644 --- a/src/views/tenant/administration/TenantLookup.jsx +++ b/src/views/tenant/administration/TenantLookup.jsx @@ -147,7 +147,9 @@ const GraphExplorer = () => {

    Domains

    {graphrequest.isFetching && } {graphrequest.data?.Domains && - graphrequest.data?.Domains.map((domainname) =>
  • {domainname}
  • )} + graphrequest.data?.Domains.map((domainName, idx) => ( +
  • {domainName}
  • + ))}
    diff --git a/src/views/tenant/administration/TenantOffboardingWizard.jsx b/src/views/tenant/administration/TenantOffboardingWizard.jsx index 5bc58f48713e..d62a466bfb32 100644 --- a/src/views/tenant/administration/TenantOffboardingWizard.jsx +++ b/src/views/tenant/administration/TenantOffboardingWizard.jsx @@ -126,6 +126,7 @@ const TenantOffboardingWizard = () => { )} {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => ( <> diff --git a/src/views/tenant/conditional/DeployCA.jsx b/src/views/tenant/conditional/DeployCA.jsx index edcda312215f..f03618ba0bce 100644 --- a/src/views/tenant/conditional/DeployCA.jsx +++ b/src/views/tenant/conditional/DeployCA.jsx @@ -64,6 +64,11 @@ const AddPolicy = () => {
    ) + WhenFieldChanges.propTypes = { + field: PropTypes.node, + set: PropTypes.string, + } + const formValues = { TemplateType: 'Admin', } @@ -180,6 +185,7 @@ const AddPolicy = () => {
    {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => { return ( <> diff --git a/src/views/tenant/conditional/ListCATemplates.jsx b/src/views/tenant/conditional/ListCATemplates.jsx index 835ed3fef2ff..555a595c3ddb 100644 --- a/src/views/tenant/conditional/ListCATemplates.jsx +++ b/src/views/tenant/conditional/ListCATemplates.jsx @@ -1,7 +1,6 @@ import React, { useState } from 'react' import { useSelector } from 'react-redux' -import { CippCodeBlock, CippOffcanvas } from 'src/components/utilities' -import { CippDatatable } from 'src/components/tables' +import { CippDatatable, CellTip } from 'src/components/tables' import { CCardBody, CButton, @@ -15,9 +14,7 @@ import { faEye, faTrash } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { useLazyGenericGetRequestQuery } from 'src/store/api/app' import { CippPage } from 'src/components/layout' -import { ModalService } from 'src/components/utilities' -import { CellTip } from 'src/components/tables' -import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas' +import { ModalService, CippCodeOffCanvas } from 'src/components/utilities' //todo: expandable with RAWJson property. diff --git a/src/views/tenant/standards/ApplyStandard.jsx b/src/views/tenant/standards/ApplyStandard.jsx index 2f84f99607ea..79eb493e24c8 100644 --- a/src/views/tenant/standards/ApplyStandard.jsx +++ b/src/views/tenant/standards/ApplyStandard.jsx @@ -34,12 +34,14 @@ const Error = ({ name }) => ( Error.propTypes = { name: PropTypes.string.isRequired, } + function getDeepKeys(obj) { return Object.keys(obj) .filter((key) => obj[key] instanceof Object) .map((key) => getDeepKeys(obj[key]).map((k) => `${key}.${k}`)) .reduce((x, y) => x.concat(y), Object.keys(obj)) } + const ApplyStandard = () => { const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() @@ -517,6 +519,7 @@ const ApplyStandard = () => { )} {!postResults.isSuccess && ( + {/* eslint-disable react/prop-types */} {(props) => ( <> diff --git a/src/views/tenant/standards/BPAReportBuilder.jsx b/src/views/tenant/standards/BPAReportBuilder.jsx index b649a86556d6..1a247f7bff68 100644 --- a/src/views/tenant/standards/BPAReportBuilder.jsx +++ b/src/views/tenant/standards/BPAReportBuilder.jsx @@ -1,10 +1,9 @@ import React, { useState, useEffect, useRef } from 'react' -import { CippPage } from 'src/components/layout' +import { CippPage, CippContentCard } from 'src/components/layout' import BPAReportSchema from 'src/data/BPAReport.schema.v1' import BPAReportUISchema from 'src/data/BPAReport.uischema.v1' import validator from '@rjsf/validator-ajv8' import Form from '@rjsf/bootstrap-4' -import { CippContentCard } from 'src/components/layout' import Editor from '@monaco-editor/react' import { useSelector } from 'react-redux' import useQuery from 'src/hooks/useQuery' @@ -28,6 +27,7 @@ import { import { useGenericGetRequestQuery } from 'src/store/api/app' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import CopyToClipboard from 'react-copy-to-clipboard' +import PropTypes from 'prop-types' const CippTextWidget = (props) => { return ( @@ -39,6 +39,16 @@ const CippTextWidget = (props) => { /> ) } +CippTextWidget.propTypes = { + value: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.arrayOf(PropTypes.string), + PropTypes.number, + ]), + required: PropTypes.bool, + onChange: PropTypes.func, +} + const CippSelectWidget = (props) => { const options = props?.options.length > 0 ? props.options : props.options.enumOptions return ( @@ -56,6 +66,17 @@ const CippSelectWidget = (props) => { ) } +CippSelectWidget.propTypes = { + options: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), + onChange: PropTypes.func, + value: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.arrayOf(PropTypes.string), + PropTypes.number, + ]), + required: PropTypes.bool, +} + const CippCheckboxWidget = (props) => { return ( { /> ) } + +CippCheckboxWidget.propTypes = { + disabled: PropTypes.bool, + name: PropTypes.string, + label: PropTypes.string, + value: PropTypes.bool, + onChange: PropTypes.func, +} + const CippWidgets = { TextWidget: CippTextWidget, SelectWidget: CippSelectWidget, @@ -99,6 +129,7 @@ const BPAReportBuilder = () => { setFormData({}) } } + const handleSubmit = async (event) => { event.preventDefault() var reportTemplate = event.target.form[0].value @@ -250,7 +281,7 @@ const BPAReportBuilder = () => { defaultLanguage="json" value={JSON.stringify(formData, null, 2)} onChange={handleEditorChange} - theme={currentTheme == 'cyberdrain' ? 'vs-light' : 'vs-dark'} + theme={currentTheme === 'cyberdrain' ? 'vs-light' : 'vs-dark'} height="700px" options={options} /> diff --git a/src/views/tenant/standards/BestPracticeAnalyser.jsx b/src/views/tenant/standards/BestPracticeAnalyser.jsx index a18f42909746..ccffd64e6e44 100644 --- a/src/views/tenant/standards/BestPracticeAnalyser.jsx +++ b/src/views/tenant/standards/BestPracticeAnalyser.jsx @@ -216,7 +216,16 @@ const BestPracticeAnalyser = () => { refresh: refreshValue, }, }) - }, [Report, execGraphRequest, tenant.defaultDomainName, query, refreshValue, reportTemplate]) + }, [ + Report, + execGraphRequest, + tenant.defaultDomainName, + query, + refreshValue, + reportTemplate, + tenant.customerId, + SearchNow, + ]) return ( <> @@ -324,7 +333,7 @@ const BestPracticeAnalyser = () => { />
    {graphrequest.data.Columns.map((info, idx) => ( - + {info.name} @@ -382,7 +391,7 @@ const BestPracticeAnalyser = () => { )} {info.formatter === 'number' && ( -

    +

    {getNestedValue(graphrequest.data.Data, info.value)}

    )} diff --git a/src/views/tenant/standards/DomainsAnalyser.jsx b/src/views/tenant/standards/DomainsAnalyser.jsx index a92501851bec..dbe792deaf7e 100644 --- a/src/views/tenant/standards/DomainsAnalyser.jsx +++ b/src/views/tenant/standards/DomainsAnalyser.jsx @@ -65,6 +65,10 @@ function DeleteAction({ domain }) { ) } +DeleteAction.propTypes = { + domain: PropTypes.string, +} + function checkDomain(tenantDomain) { return (
    @@ -73,6 +77,7 @@ function checkDomain(tenantDomain) {
    ) } + checkDomain.propTypes = { tenantDomain: PropTypes.string, } diff --git a/src/views/tenant/standards/IndividualDomain.jsx b/src/views/tenant/standards/IndividualDomain.jsx index f4e6f4c798a7..b2e8350677bb 100644 --- a/src/views/tenant/standards/IndividualDomain.jsx +++ b/src/views/tenant/standards/IndividualDomain.jsx @@ -383,8 +383,9 @@ function DomainOffcanvasTabs({ children, jsonContent }) { ) } + DomainOffcanvasTabs.propTypes = { - children: PropTypes.node, + children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]), jsonContent: PropTypes.string, } @@ -416,6 +417,7 @@ function ValidationListContent({ data }) { ) } + ValidationListContent.propTypes = { data: PropTypes.object, } @@ -670,6 +672,7 @@ SPFResultsCard.propTypes = { spfOverride: PropTypes.string, ...sharedProps, } + function WhoisResultCard({ domain }) { const [visible, setVisible] = useState(false) const { @@ -741,6 +744,7 @@ function WhoisResultCard({ domain }) {
    ) } + WhoisResultCard.propTypes = sharedProps function NSResultCard({ domain }) { @@ -773,6 +777,7 @@ function NSResultCard({ domain }) { /> ) } + NSResultCard.propTypes = sharedProps const HttpsResultCard = ({ domain, httpsOverride }) => { @@ -1243,6 +1248,7 @@ function DKIMResultsCard({ domain, dkimOverride }) { ) } + DKIMResultsCard.propTypes = { dkimOverride: PropTypes.string, ...sharedProps } function DomainCheckError(props) { diff --git a/src/views/tenant/standards/ListAppliedStandards.jsx b/src/views/tenant/standards/ListAppliedStandards.jsx index 1af40470d644..6a30e7ca5961 100644 --- a/src/views/tenant/standards/ListAppliedStandards.jsx +++ b/src/views/tenant/standards/ListAppliedStandards.jsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useState } from 'react' import { CButton, CCallout, CCol, CForm, CRow, CSpinner } from '@coreui/react' import { Form } from 'react-final-form' import { @@ -21,7 +21,6 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import Skeleton from 'react-loading-skeleton' import { CippTable } from 'src/components/tables' import allStandardsList from 'src/data/standards' -import { useState } from 'react' import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas' const RefreshAction = () => { From b1d7828077282c7db54b48617080f2749229b4ef Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sun, 19 Nov 2023 13:25:18 +0100 Subject: [PATCH 194/205] fixes dark mode hover --- src/scss/_themes.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scss/_themes.scss b/src/scss/_themes.scss index b7c6ec9c8bcf..5dbb8e8e72f1 100644 --- a/src/scss/_themes.scss +++ b/src/scss/_themes.scss @@ -478,7 +478,7 @@ --cui-toast-header-color: var(--cui-color-black); --cui-card-cap-color: var(--cyberdrain-white); --cui-card-cap-bg: var(--cui-color-dark); - + --cui-tertiary-bg: var(--cui-bgcolor-table-header); // CIPP Impact theme variables. --cipp-fa-inverse-color: var(--cyberdrain-dark); --cipp-search-bg: var(--cyberdrain-dark); From 27fc5b8c76f6acaa1b413269f06e7a4f66348d1e Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sun, 19 Nov 2023 13:30:41 +0100 Subject: [PATCH 195/205] hover --- src/scss/_tenantselector.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/scss/_tenantselector.scss b/src/scss/_tenantselector.scss index 65415345278b..ec0c93342406 100644 --- a/src/scss/_tenantselector.scss +++ b/src/scss/_tenantselector.scss @@ -43,6 +43,7 @@ background: var(--cipp-search-bg); border-radius: var(--cipp-border-radius); box-shadow: 0 0.0625rem 0.125rem rgb(0 0 0 / 15%); + border: 1px solid var(--cipp-search-border-color); color: var(--cipp-search-color); display: block; font-family: 'Noto Sans', sans-serif; @@ -63,7 +64,7 @@ } &:hover { - border: none; + border: 1px solid var(--cipp-search-border-color); } &:not([readonly]):focus { From ffc830ef511bea48dc0a44a7ccdbaa82886a5cf0 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sun, 19 Nov 2023 12:19:56 -0500 Subject: [PATCH 196/205] Edit mailbox tweaks - Replace CippTable with CippDatatable for refresh functionality - Replace api specific queries with generic queries - Filter user lists down for performance improvements --- .../administration/EditMailboxPermissions.jsx | 155 ++++++++---------- 1 file changed, 71 insertions(+), 84 deletions(-) diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.jsx b/src/views/email-exchange/administration/EditMailboxPermissions.jsx index b025dd6ec9bd..44367ff0a794 100644 --- a/src/views/email-exchange/administration/EditMailboxPermissions.jsx +++ b/src/views/email-exchange/administration/EditMailboxPermissions.jsx @@ -18,14 +18,7 @@ import { import useQuery from 'src/hooks/useQuery' import { useDispatch } from 'react-redux' import { Form, Field } from 'react-final-form' -import { - RFFSelectSearch, - RFFCFormSelect, - RFFCFormCheck, - RFFCFormInput, - RFFCFormSwitch, -} from 'src/components/forms' -import { useListUsersQuery } from 'src/store/api/users' +import { RFFSelectSearch, RFFCFormCheck, RFFCFormInput, RFFCFormSwitch } from 'src/components/forms' import { ModalService } from 'src/components/utilities' import { useLazyGenericPostRequestQuery, @@ -34,13 +27,10 @@ import { } from 'src/store/api/app' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faCircleNotch } from '@fortawesome/free-solid-svg-icons' -import { - useListMailboxPermissionsQuery, - useListMailboxesQuery, - useListCalendarPermissionsQuery, - useListMailboxDetailsQuery, -} from 'src/store/api/mailbox' -import { CippTable, CellBoolean } from 'src/components/tables' +import { useListMailboxPermissionsQuery } from 'src/store/api/mailbox' +import { CippDatatable } from 'src/components/tables' +import { useListMailboxDetailsQuery } from 'src/store/api/mailbox' +import { CellBoolean } from 'src/components/tables' import DatePicker from 'react-datepicker' import 'react-datepicker/dist/react-datepicker.css' import PropTypes from 'prop-types' @@ -71,11 +61,6 @@ const MailboxSettings = () => { const userId = query.get('userId') const tenantDomain = query.get('tenantDomain') const [active, setActive] = useState(1) - const { - data: usercal = {}, - isFetching: usercalIsFetching, - error: usercalError, - } = useListCalendarPermissionsQuery({ tenantDomain, userId }) const columnsCal = [ { name: 'User', @@ -122,12 +107,6 @@ const MailboxSettings = () => { }, ] - const { - data: user = {}, - isFetching: userIsFetching, - error: userError, - } = useListMailboxPermissionsQuery({ tenantDomain, userId }) - return ( @@ -181,20 +160,20 @@ const MailboxSettings = () => { {active === 1 && ( - <> - {userIsFetching && } - {!userIsFetching && ( - - )} - + )} {active === 2 && ( - <> - {usercalIsFetching && } - {!usercalIsFetching && ( - - )} - + )} {active === 3 && ( <> @@ -230,7 +209,15 @@ const MailboxPermissions = () => { data: users = [], isFetching: usersIsFetching, error: usersError, - } = useListUsersQuery({ tenantDomain }) + } = useGenericGetRequestQuery({ + path: '/api/ListGraphRequest', + params: { + Endpoint: 'users', + TenantFilter: tenantDomain, + $filter: 'assignedLicenses/$count ne 0 and accountEnabled eq true', + $count: true, + }, + }) useEffect(() => { if (!userId || !tenantDomain) { @@ -289,7 +276,7 @@ const MailboxPermissions = () => { multi={true} label="Remove Full Access" disabled={formDisabled} - values={users?.map((user) => ({ + values={users?.Results?.map((user) => ({ value: user.mail, name: `${user.displayName} - ${user.mail} `, }))} @@ -303,7 +290,7 @@ const MailboxPermissions = () => { multi={true} label="Add Full Access - Automapping Enabled" disabled={formDisabled} - values={users?.map((user) => ({ + values={users?.Results?.map((user) => ({ value: user.mail, name: `${user.displayName} - ${user.mail} `, }))} @@ -317,7 +304,7 @@ const MailboxPermissions = () => { multi={true} label="Add Full Access - Automapping Disabled" disabled={formDisabled} - values={users?.map((user) => ({ + values={users?.Results?.map((user) => ({ value: user.mail, name: `${user.displayName} - ${user.mail} `, }))} @@ -331,7 +318,7 @@ const MailboxPermissions = () => { multi={true} label="Add Send-as permissions" disabled={formDisabled} - values={users?.map((user) => ({ + values={users?.Results?.map((user) => ({ value: user.mail, name: `${user.displayName} - ${user.mail} `, }))} @@ -345,7 +332,7 @@ const MailboxPermissions = () => { multi={true} label="Remove Send-as permissions" disabled={formDisabled} - values={users?.map((user) => ({ + values={users?.Results?.map((user) => ({ value: user.mail, name: `${user.displayName} - ${user.mail} `, }))} @@ -359,7 +346,7 @@ const MailboxPermissions = () => { multi={true} label="Add Send On Behalf permissions" disabled={formDisabled} - values={users?.map((user) => ({ + values={users?.Results?.map((user) => ({ value: user.mail, name: `${user.displayName} - ${user.mail} `, }))} @@ -373,7 +360,7 @@ const MailboxPermissions = () => { multi={true} label="Remove Send On Behalf permissions" disabled={formDisabled} - values={users?.map((user) => ({ + values={users?.Results?.map((user) => ({ value: user.mail, name: `${user.displayName} - ${user.mail} `, }))} @@ -426,16 +413,22 @@ const CalendarPermissions = () => { const [queryError, setQueryError] = useState(false) const { - data: user = {}, + data: user = [], isFetching: userIsFetching, error: userError, - } = useListCalendarPermissionsQuery({ tenantDomain, userId }) + } = useGenericGetRequestQuery({ + path: '/api/ListCalendarPermissions', + params: { TenantFilter: tenantDomain, UserId: userId }, + }) const { data: users = [], isFetching: usersIsFetching, error: usersError, - } = useListMailboxesQuery({ tenantDomain }) + } = useGenericGetRequestQuery({ + path: '/api/ListMailboxes', + params: { TenantFilter: tenantDomain, SkipLicense: true }, + }) useEffect(() => { if (!userId || !tenantDomain) { @@ -474,21 +467,18 @@ const CalendarPermissions = () => { return ( <> + {queryError && ( + + + + {/* @todo add more descriptive help message here */} + Failed to load user + + + + )} {!queryError && ( <> - {postResults.isSuccess && ( - {postResults.data?.Results} - )} - {queryError && ( - - - - {/* @todo add more descriptive help message here */} - Failed to load user - - - - )} {userIsFetching && } @@ -602,8 +592,15 @@ const MailboxForwarding = () => { data: users = [], isFetching: usersIsFetching, error: usersError, - } = useListUsersQuery({ tenantDomain }) - + } = useGenericGetRequestQuery({ + path: '/api/ListGraphRequest', + params: { + Endpoint: 'users', + TenantFilter: tenantDomain, + $filter: 'assignedLicenses/$count ne 0 and accountEnabled eq true', + $count: true, + }, + }) useEffect(() => { if (postResults.isSuccess) { // @TODO do something here? @@ -634,23 +631,6 @@ const MailboxForwarding = () => { ...user, } - const columns = [ - { - name: 'User', - selector: (row) => row.User, - sortable: true, - wrap: true, - exportSelector: 'User', - }, - { - name: 'Permissions', - selector: (row) => row['Permissions'], - sortable: true, - wrap: true, - exportSelector: 'Permissions', - }, - ] - const formDisabled = queryError === true return ( @@ -695,7 +675,7 @@ const MailboxForwarding = () => { ({ + values={users?.Results?.map((user) => ({ value: user.mail, name: `${user.displayName} - ${user.mail} `, }))} @@ -839,8 +819,15 @@ const OutOfOffice = () => { data: users = [], isFetching: usersIsFetching, error: usersError, - } = useListUsersQuery({ tenantDomain }) - + } = useGenericGetRequestQuery({ + path: '/api/ListGraphRequest', + params: { + Endpoint: 'users', + TenantFilter: tenantDomain, + $filter: 'assignedLicenses/$count ne 0 and accountEnabled eq true', + $count: true, + }, + }) useEffect(() => { if (postResults.isSuccess) { // @TODO do something here? From 7603fb71c1755a92aff9761981ebc135db07d0fd Mon Sep 17 00:00:00 2001 From: John Duprey Date: Sun, 19 Nov 2023 14:16:51 -0500 Subject: [PATCH 197/205] Add modal search description --- src/views/identity/administration/Users.jsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/views/identity/administration/Users.jsx b/src/views/identity/administration/Users.jsx index b9cc7c50cc77..360693314d62 100644 --- a/src/views/identity/administration/Users.jsx +++ b/src/views/identity/administration/Users.jsx @@ -1,5 +1,5 @@ import React, { useEffect, useState, useRef } from 'react' -import { CButton, CFormInput } from '@coreui/react' +import { CButton, CFormInput, CFormLabel } from '@coreui/react' import { Link, useSearchParams } from 'react-router-dom' import { useSelector } from 'react-redux' import { faEdit, faEllipsisV, faEye } from '@fortawesome/free-solid-svg-icons' @@ -256,6 +256,9 @@ const UserSearch = () => { ModalService.confirm({ body: ( <> + + Search for a user by name or email address. (Email domain is also supported). + ), From 6d041d3ad02c5af42f0c2a448e956c403f1ef494 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Sun, 19 Nov 2023 20:31:51 +0100 Subject: [PATCH 198/205] fixes toasts --- src/scss/_themes.scss | 12 ++++++++---- src/scss/_variables.scss | 9 ++++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/scss/_themes.scss b/src/scss/_themes.scss index 5dbb8e8e72f1..04c8d346d806 100644 --- a/src/scss/_themes.scss +++ b/src/scss/_themes.scss @@ -285,15 +285,17 @@ --cui-nav-link-hover-color: var(--cyberdrain-dark); --cui-nav-tabs-border-color: var(--cyberdrain-accent-green); --cui-nav-tabs-link-hover-border-color: var(--cyberdrain-accent-green); - --cui-toast-background-color: var(--cui-color-white); --cui-toast-border-color: var(--cyberdrain-accent-green); --cui-toast-color: var(--cui-color-black); - --cui-toast-header-background-color: var(--cui-color-white); --cui-toast-header-color: var(--cui-color-black); --cui-card-cap-color: var(--cyberdrain-dark); --cui-card-cap-bg: var(--cui-color-white); // CIPP CyberDrain theme variables. + --cipp-toast-header-bg: var(--cui-color-white); + --cipp-toast-bg: var(--cui-color-white); + --cipp-toast-color: var(--cui-color-black); + --cipp-fa-inverse-color: var(--cyberdrain-dark); --cipp-search-bg: var(--cyberdrain-light); --cipp-search-border-color: var(--cyberdrain-accent-green); @@ -471,15 +473,17 @@ --cui-nav-link-hover-color: var(--cyberdrain-light); --cui-nav-tabs-border-color: var(--cyberdrain-accent-green); --cui-nav-tabs-link-hover-border-color: var(--cyberdrain-accent-green); - --cui-toast-background-color: var(--cui-color-header-bar); --cui-toast-border-color: var(--cyberdrain-accent-green); --cui-toast-color: var(--cui-color-black); - --cui-toast-header-background-color: var(--cui-color-header-bar); --cui-toast-header-color: var(--cui-color-black); --cui-card-cap-color: var(--cyberdrain-white); --cui-card-cap-bg: var(--cui-color-dark); --cui-tertiary-bg: var(--cui-bgcolor-table-header); // CIPP Impact theme variables. + --cipp-toast-bg: var(--cui-color-header-bar); + --cipp-toast-header-bg: var(--cui-color-header-bar); + --cipp-toast-color: var(--cui-color-black); + --cipp-fa-inverse-color: var(--cyberdrain-dark); --cipp-search-bg: var(--cyberdrain-dark); --cipp-search-border-color: var(--cyberdrain-accent-green); diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss index 110d7d706b5f..05ef2745afd3 100644 --- a/src/scss/_variables.scss +++ b/src/scss/_variables.scss @@ -1331,16 +1331,15 @@ $tooltip-color: var(--cyberdrain-light) !default; // $toast-padding-x: .75rem !default; // $toast-padding-y: .5rem !default; // $toast-font-size: .875rem !default; -// $toast-color: unset !default; -// $toast-background-color: rgba($white, .85) !default; +$toast-color: var(--cipp-toast-color) !default; // $toast-border-width: 1px !default; // $toast-border-color: rgba(0, 0, 0, .1) !default; // $toast-border-radius: $border-radius !default; // $toast-box-shadow: $box-shadow !default; // $toast-spacing: $container-padding-x !default; - -// $toast-header-color: $gray-600 !default; -// $toast-header-background-color: rgba($white, .85) !default; +$toast-background-color: var(--cipp-toast-bg); +$toast-header-background-color: var(--cipp-toast-header-bg); +$toast-header-color: var(--cipp-toast-color) !default; // $toast-header-border-color: rgba(0, 0, 0, .05) !default; // scss-docs-end toast-variables From ae08b4ee27dd7a2863473200ca2e3d5386f264a6 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 20 Nov 2023 13:35:47 +0100 Subject: [PATCH 199/205] upped versions --- public/version_latest.txt | 2 +- version_latest.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/version_latest.txt b/public/version_latest.txt index 50021202769b..28446a5ea556 100644 --- a/public/version_latest.txt +++ b/public/version_latest.txt @@ -1 +1 @@ -4.5.5 \ No newline at end of file +4.6.0 \ No newline at end of file diff --git a/version_latest.txt b/version_latest.txt index 50021202769b..28446a5ea556 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -4.5.5 \ No newline at end of file +4.6.0 \ No newline at end of file From 795e5a09f9204578328527e5be793f94cd8da52b Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 20 Nov 2023 13:53:52 +0100 Subject: [PATCH 200/205] change vite config to test azure build --- vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vite.config.js b/vite.config.js index 9a1ecf3eb5cf..09632d006547 100644 --- a/vite.config.js +++ b/vite.config.js @@ -28,7 +28,7 @@ export default defineConfig({ }, ], build: { - outDir: 'build', + outDir: './', assetsDir: 'static', target: browserslistToEsbuild(), // enable source map for debugging From 2ff651829c47879d41c99007559b1d7a3d4bc701 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 20 Nov 2023 13:57:33 +0100 Subject: [PATCH 201/205] back to /build --- vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vite.config.js b/vite.config.js index 09632d006547..9a1ecf3eb5cf 100644 --- a/vite.config.js +++ b/vite.config.js @@ -28,7 +28,7 @@ export default defineConfig({ }, ], build: { - outDir: './', + outDir: 'build', assetsDir: 'static', target: browserslistToEsbuild(), // enable source map for debugging From 006ae50d76274e4fa1310039dcb1e07f12540d8e Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 20 Nov 2023 14:11:57 +0100 Subject: [PATCH 202/205] remove duplicate import --- .../administration/EditMailboxPermissions.jsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.jsx b/src/views/email-exchange/administration/EditMailboxPermissions.jsx index 44367ff0a794..5e4ac2cc3f9c 100644 --- a/src/views/email-exchange/administration/EditMailboxPermissions.jsx +++ b/src/views/email-exchange/administration/EditMailboxPermissions.jsx @@ -27,10 +27,8 @@ import { } from 'src/store/api/app' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faCircleNotch } from '@fortawesome/free-solid-svg-icons' -import { useListMailboxPermissionsQuery } from 'src/store/api/mailbox' -import { CippDatatable } from 'src/components/tables' -import { useListMailboxDetailsQuery } from 'src/store/api/mailbox' -import { CellBoolean } from 'src/components/tables' +import { useListMailboxDetailsQuery, useListMailboxPermissionsQuery } from 'src/store/api/mailbox' +import { CellBoolean, CippDatatable } from 'src/components/tables' import DatePicker from 'react-datepicker' import 'react-datepicker/dist/react-datepicker.css' import PropTypes from 'prop-types' From fa1a0bee3a5ea5384a77f0b2c14958cd761b5efc Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 20 Nov 2023 14:34:31 +0100 Subject: [PATCH 203/205] remove outdir as test --- vite.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/vite.config.js b/vite.config.js index 9a1ecf3eb5cf..05498b2dfd17 100644 --- a/vite.config.js +++ b/vite.config.js @@ -28,7 +28,6 @@ export default defineConfig({ }, ], build: { - outDir: 'build', assetsDir: 'static', target: browserslistToEsbuild(), // enable source map for debugging From 20d5f291d340e0744a7c3072b1262657f56cba24 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 20 Nov 2023 15:16:10 +0100 Subject: [PATCH 204/205] readded build dir --- vite.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/vite.config.js b/vite.config.js index 05498b2dfd17..9a1ecf3eb5cf 100644 --- a/vite.config.js +++ b/vite.config.js @@ -28,6 +28,7 @@ export default defineConfig({ }, ], build: { + outDir: 'build', assetsDir: 'static', target: browserslistToEsbuild(), // enable source map for debugging From ad96209a40ce8d05d4d444d435749a3bec646c85 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar Date: Mon, 20 Nov 2023 22:17:07 +0100 Subject: [PATCH 205/205] update build command --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 148e77a7a9aa..32fb31014b74 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "license": "AGPL-3.0", "author": "CIPP Contributors", "scripts": { - "build": "vite build", + "build": "echo react-scripts build && vite build", "changelog": "auto-changelog --starting-version 3.0.0 --commit-limit false --hide-credit", "lint": "eslint \"src/**/*.js\"", "start": "vite",