From de60a73689bfa0fb78012acb0c708b2cd5faa8df Mon Sep 17 00:00:00 2001 From: Scott Cooper Date: Thu, 12 Oct 2023 09:53:36 -0700 Subject: [PATCH] feat: react 18 --- jest.config.ts | 1 - package.json | 23 +- static/app/components/dropdownLink.spec.tsx | 9 +- .../useOnboardingDocs.spec.tsx | 7 +- .../components/replays/useReplaysCount.tsx | 2 +- .../profiling/hooks/useProfileEvents.spec.tsx | 8 +- .../hooks/useProfileFunctions.spec.tsx | 23 +- static/app/utils/useDismissAlert.spec.tsx | 2 +- static/app/utils/useMembers.spec.tsx | 10 +- static/app/utils/useTimeout.spec.tsx | 2 +- static/app/utils/withSentryRouter.tsx | 2 +- .../widgetBuilderDataset.spec.tsx | 21 +- .../groupReplays/useReplaysFromIssue.spec.tsx | 62 +-- .../detail/console/useConsoleFilters.spec.tsx | 2 +- .../domMutations/useDomFilters.spec.tsx | 2 +- .../detail/errorList/useErrorFilters.spec.tsx | 2 +- .../detail/errorList/useSortErrors.spec.tsx | 18 +- .../detail/network/useNetworkFilters.spec.tsx | 8 +- tests/js/sentry-test/reactTestingLibrary.tsx | 11 +- tests/js/setup.ts | 2 + tests/js/setupFramework.ts | 6 + yarn.lock | 457 ++++++++++-------- 22 files changed, 380 insertions(+), 300 deletions(-) diff --git a/jest.config.ts b/jest.config.ts index af64df1cfcaef3..758d86d62b8691 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -236,7 +236,6 @@ const config: Config.InitialOptions = { setupFilesAfterEnv: [ '/tests/js/setup.ts', '/tests/js/setupFramework.ts', - '@testing-library/jest-dom/extend-expect', ], testMatch: testMatch || ['/static/**/?(*.)+(spec|test).[jt]s?(x)'], testPathIgnorePatterns: ['/tests/sentry/lang/javascript/'], diff --git a/package.json b/package.json index fe1b871a8db992..3d4fb3a4f210ea 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,10 @@ "@babel/runtime": "~7.21.0", "@dnd-kit/core": "^3.1.1", "@dnd-kit/sortable": "^4.0.0", - "@emotion/babel-plugin": "^11.10.5", - "@emotion/css": "^11.10.5", - "@emotion/react": "^11.10.5", - "@emotion/styled": "^11.10.5", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/css": "^11.11.2", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", "@monaco-editor/react": "^4.4.5", "@popperjs/core": "^2.11.5", "@react-aria/button": "^3.7.2", @@ -75,9 +75,9 @@ "@types/papaparse": "^5.3.5", "@types/pegjs": "^0.10.3", "@types/prismjs": "^1.26.0", - "@types/react": "~17.0.62", + "@types/react": "~18.2.28", "@types/react-date-range": "^1.4.4", - "@types/react-dom": "~17.0.20", + "@types/react-dom": "~18.2.13", "@types/react-grid-layout": "^1.3.2", "@types/react-mentions": "4.1.6", "@types/react-router": "^3.0.22", @@ -142,10 +142,10 @@ "prop-types": "^15.8.1", "qrcode.react": "^3.1.0", "query-string": "7.0.1", - "react": "17.0.2", + "react": "18.2.0", "react-autosize-textarea": "7.1.0", "react-date-range": "^1.4.0", - "react-dom": "17.0.2", + "react-dom": "18.2.0", "react-grid-layout": "^1.3.4", "react-lazyload": "^2.3.0", "react-mentions": "4.4.2", @@ -176,10 +176,9 @@ "@sentry/jest-environment": "^4.0.0", "@sentry/profiling-node": "^1.2.0", "@styled/typescript-styled-plugin": "^1.0.0", - "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^12.1.2", - "@testing-library/react-hooks": "^8.0.1", - "@testing-library/user-event": "^14.4.3", + "@testing-library/jest-dom": "^6.1.3", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.5.1", "@types/node": "^18.14.0", "babel-gettext-extractor": "^4.1.3", "babel-jest": "^29.6.2", diff --git a/static/app/components/dropdownLink.spec.tsx b/static/app/components/dropdownLink.spec.tsx index 883abac534042d..ab591a48fbc87c 100644 --- a/static/app/components/dropdownLink.spec.tsx +++ b/static/app/components/dropdownLink.spec.tsx @@ -1,9 +1,4 @@ -import { - render, - screen, - userEvent, - waitForElementToBeRemoved, -} from 'sentry-test/reactTestingLibrary'; +import {render, screen, userEvent, waitFor} from 'sentry-test/reactTestingLibrary'; import DropdownLink from 'sentry/components/dropdownLink'; import {MENU_CLOSE_DELAY} from 'sentry/constants'; @@ -79,7 +74,7 @@ describe('DropdownLink', function () { // Click outside await userEvent.click(screen.getByTestId('outside-element'), {delay: null}); - await waitForElementToBeRemoved(() => screen.queryByText('hi')); + await waitFor(() => expect(screen.queryByText('hi')).not.toBeInTheDocument()); }); it('closes when dropdown actor button is clicked', async function () { diff --git a/static/app/components/onboardingWizard/useOnboardingDocs.spec.tsx b/static/app/components/onboardingWizard/useOnboardingDocs.spec.tsx index 9a35c6a297c299..2a81f8080dc771 100644 --- a/static/app/components/onboardingWizard/useOnboardingDocs.spec.tsx +++ b/static/app/components/onboardingWizard/useOnboardingDocs.spec.tsx @@ -1,5 +1,5 @@ import {initializeOrg} from 'sentry-test/initializeOrg'; -import {reactHooks} from 'sentry-test/reactTestingLibrary'; +import {reactHooks, waitFor} from 'sentry-test/reactTestingLibrary'; import useOnboardingDocs from 'sentry/components/onboardingWizard/useOnboardingDocs'; import { @@ -39,7 +39,7 @@ describe('useOnboardingDocs', function () { }); }); - const {result, waitForNextUpdate} = reactHooks.renderHook(useOnboardingDocs, { + const {result} = reactHooks.renderHook(useOnboardingDocs, { initialProps: { project, docKeys, @@ -49,7 +49,8 @@ describe('useOnboardingDocs', function () { }, wrapper, }); - await waitForNextUpdate(); + await waitFor(() => expect(result.current.isLoading).toBe(false)); + const {docContents, isLoading, hasOnboardingContents} = result.current; expect(isLoading).toEqual(false); diff --git a/static/app/components/replays/useReplaysCount.tsx b/static/app/components/replays/useReplaysCount.tsx index ebc7d3b9b8050e..a66cf658cd5c29 100644 --- a/static/app/components/replays/useReplaysCount.tsx +++ b/static/app/components/replays/useReplaysCount.tsx @@ -21,7 +21,7 @@ function useReplaysCount({ organization, replayIds, transactionNames, -}: Options) { +}: Options): CountState { const api = useApi(); const [replayCounts, setReplayCounts] = useState({}); diff --git a/static/app/utils/profiling/hooks/useProfileEvents.spec.tsx b/static/app/utils/profiling/hooks/useProfileEvents.spec.tsx index 3888311d4c9d09..17b28df8a7cb89 100644 --- a/static/app/utils/profiling/hooks/useProfileEvents.spec.tsx +++ b/static/app/utils/profiling/hooks/useProfileEvents.spec.tsx @@ -2,7 +2,7 @@ import {ReactNode} from 'react'; import {initializeOrg} from 'sentry-test/initializeOrg'; import {makeTestQueryClient} from 'sentry-test/queryClient'; -import {reactHooks} from 'sentry-test/reactTestingLibrary'; +import {reactHooks, waitFor} from 'sentry-test/reactTestingLibrary'; import {EventsResults} from 'sentry/utils/profiling/hooks/types'; import {useProfileEvents} from 'sentry/utils/profiling/hooks/useProfileEvents'; @@ -40,7 +40,7 @@ describe('useProfileEvents', function () { match: [MockApiClient.matchQuery({dataset: 'profiles'})], }); - const {result, waitFor} = reactHooks.renderHook(useProfileEvents, { + const {result} = reactHooks.renderHook(useProfileEvents, { wrapper: TestContext, initialProps: { fields, @@ -63,7 +63,7 @@ describe('useProfileEvents', function () { match: [MockApiClient.matchQuery({dataset: 'profiles'})], }); - const {result, waitFor} = reactHooks.renderHook(useProfileEvents, { + const {result} = reactHooks.renderHook(useProfileEvents, { wrapper: TestContext, initialProps: { fields: ['count()'], @@ -73,7 +73,7 @@ describe('useProfileEvents', function () { }); await waitFor(() => result.current.isError); - expect(result.current.status).toEqual('error'); + await waitFor(() => expect(result.current.status).toEqual('error')); }); }); diff --git a/static/app/utils/profiling/hooks/useProfileFunctions.spec.tsx b/static/app/utils/profiling/hooks/useProfileFunctions.spec.tsx index c28d3770fc0b7b..40c2bf458a4db1 100644 --- a/static/app/utils/profiling/hooks/useProfileFunctions.spec.tsx +++ b/static/app/utils/profiling/hooks/useProfileFunctions.spec.tsx @@ -2,7 +2,7 @@ import {ReactElement, useMemo} from 'react'; import {initializeOrg} from 'sentry-test/initializeOrg'; import {makeTestQueryClient} from 'sentry-test/queryClient'; -import {reactHooks} from 'sentry-test/reactTestingLibrary'; +import {reactHooks, waitFor} from 'sentry-test/reactTestingLibrary'; import {useProfileFunctions} from 'sentry/utils/profiling/hooks/useProfileFunctions'; import {QueryClientProvider} from 'sentry/utils/queryClient'; @@ -70,15 +70,16 @@ describe('useProfileFunctions', function () { ); expect(hook.result.current.isLoading).toEqual(true); expect(hook.result.current.isFetched).toEqual(false); - await hook.waitForNextUpdate(); - expect(hook.result.current).toMatchObject( - expect.objectContaining({ - isLoading: false, - isFetched: true, - data: expect.objectContaining({ - data: expect.any(Array), - }), - }) - ); + await waitFor(() => { + expect(hook.result.current).toMatchObject( + expect.objectContaining({ + isLoading: false, + isFetched: true, + data: expect.objectContaining({ + data: expect.any(Array), + }), + }) + ); + }); }); }); diff --git a/static/app/utils/useDismissAlert.spec.tsx b/static/app/utils/useDismissAlert.spec.tsx index a46d592473ac0b..00757ab374adea 100644 --- a/static/app/utils/useDismissAlert.spec.tsx +++ b/static/app/utils/useDismissAlert.spec.tsx @@ -27,7 +27,7 @@ describe('useDismissAlert', () => { const initialRef = result.current.dismiss; - rerender(); + rerender({key}); expect(result.current.dismiss).toEqual(initialRef); }); diff --git a/static/app/utils/useMembers.spec.tsx b/static/app/utils/useMembers.spec.tsx index 3dca3807ce267a..80e536f730b3fb 100644 --- a/static/app/utils/useMembers.spec.tsx +++ b/static/app/utils/useMembers.spec.tsx @@ -1,6 +1,6 @@ import {Organization} from 'sentry-fixture/organization'; -import {reactHooks} from 'sentry-test/reactTestingLibrary'; +import {reactHooks, waitFor} from 'sentry-test/reactTestingLibrary'; import MemberListStore from 'sentry/stores/memberListStore'; import OrganizationStore from 'sentry/stores/organizationStore'; @@ -36,7 +36,7 @@ describe('useMembers', function () { body: [{user: newUser2}, {user: newUser3}], }); - const {result, waitFor} = reactHooks.renderHook(useMembers); + const {result} = reactHooks.renderHook(useMembers); const {onSearch} = result.current; // Works with append @@ -70,7 +70,7 @@ describe('useMembers', function () { body: [{user: userFoo}], }); - const {result, waitFor} = reactHooks.renderHook(useMembers, { + const {result} = reactHooks.renderHook(useMembers, { initialProps: {emails: ['foo@test.com']}, }); @@ -92,7 +92,7 @@ describe('useMembers', function () { body: [{user: userFoo}], }); - const {result, waitFor} = reactHooks.renderHook(useMembers, { + const {result} = reactHooks.renderHook(useMembers, { initialProps: {ids: ['10']}, }); @@ -118,7 +118,7 @@ describe('useMembers', function () { }); it('correctly returns hasMore before and after store update', async function () { - const {result, waitFor} = reactHooks.renderHook(useMembers); + const {result} = reactHooks.renderHook(useMembers); const {members, hasMore} = result.current; expect(hasMore).toBe(null); diff --git a/static/app/utils/useTimeout.spec.tsx b/static/app/utils/useTimeout.spec.tsx index 6b5d2ba8c59f30..f61fd3f2ac7a66 100644 --- a/static/app/utils/useTimeout.spec.tsx +++ b/static/app/utils/useTimeout.spec.tsx @@ -56,7 +56,7 @@ describe('useTimeout', () => { const firstRender = {...result.current}; - rerender(); + rerender({timeMs, onTimeout}); expect(result.current.start).toBe(firstRender.start); expect(result.current.cancel).toBe(firstRender.cancel); diff --git a/static/app/utils/withSentryRouter.tsx b/static/app/utils/withSentryRouter.tsx index e7caed922f737d..90ccf9c7a7eff0 100644 --- a/static/app/utils/withSentryRouter.tsx +++ b/static/app/utils/withSentryRouter.tsx @@ -12,7 +12,7 @@ import {customerDomain, usingCustomerDomain} from 'sentry/constants'; */ function withSentryRouter

( WrappedComponent: React.ComponentType

-) { +): React.ComponentClass> { function WithSentryRouterWrapper(props: P) { const {params} = props; if (usingCustomerDomain) { diff --git a/static/app/views/dashboards/widgetBuilder/widgetBuilderDataset.spec.tsx b/static/app/views/dashboards/widgetBuilder/widgetBuilderDataset.spec.tsx index 8ded9886e0f82e..60904d9de1cd21 100644 --- a/static/app/views/dashboards/widgetBuilder/widgetBuilderDataset.spec.tsx +++ b/static/app/views/dashboards/widgetBuilder/widgetBuilderDataset.spec.tsx @@ -1,11 +1,13 @@ import selectEvent from 'react-select-event'; import {urlEncode} from '@sentry/utils'; +import MockDate from 'mockdate'; import {MetricsField} from 'sentry-fixture/metrics'; import {SessionsField} from 'sentry-fixture/sessions'; import {Tags} from 'sentry-fixture/tags'; import {initializeOrg} from 'sentry-test/initializeOrg'; import { + act, render, screen, userEvent, @@ -268,6 +270,7 @@ describe('WidgetBuilder', function () { MockApiClient.clearMockResponses(); jest.clearAllMocks(); jest.useRealTimers(); + MockDate.set(new Date(1508208080000)); }); describe('Release Widgets', function () { @@ -359,7 +362,7 @@ describe('WidgetBuilder', function () { }); it('does not allow sort on tags except release', async function () { - jest.useFakeTimers().setSystemTime(new Date('2022-08-02')); + MockDate.set(new Date('2022-08-02')); renderTestComponent(); expect( @@ -400,7 +403,7 @@ describe('WidgetBuilder', function () { }); it('makes the appropriate sessions call', async function () { - jest.useFakeTimers().setSystemTime(new Date('2022-08-02')); + MockDate.set(new Date('2022-08-02')); renderTestComponent(); expect( @@ -432,7 +435,7 @@ describe('WidgetBuilder', function () { }); it('calls the session endpoint with the right limit', async function () { - jest.useFakeTimers().setSystemTime(new Date('2022-08-02')); + MockDate.set(new Date('2022-08-02')); renderTestComponent(); expect( @@ -470,7 +473,7 @@ describe('WidgetBuilder', function () { }); it('calls sessions api when session.status is selected as a groupby', async function () { - jest.useFakeTimers().setSystemTime(new Date('2022-08-02')); + MockDate.set(new Date('2022-08-02')); renderTestComponent(); expect( @@ -529,7 +532,7 @@ describe('WidgetBuilder', function () { }); it('sets widgetType to release', async function () { - jest.useFakeTimers().setSystemTime(new Date('2022-08-02')); + MockDate.set(new Date('2022-08-02')); renderTestComponent(); await userEvent.click(await screen.findByText('Releases (Sessions, Crash rates)'), { @@ -601,7 +604,7 @@ describe('WidgetBuilder', function () { }); it('adds a function when the only column chosen in a table is a tag', async function () { - jest.useFakeTimers().setSystemTime(new Date('2022-08-02')); + MockDate.set(new Date('2022-08-02')); renderTestComponent(); await userEvent.click(await screen.findByText('Releases (Sessions, Crash rates)'), { @@ -882,6 +885,8 @@ describe('WidgetBuilder', function () { ], }); + await act(tick); + await waitFor(() => { expect(measurementsMetaMock).toHaveBeenCalled(); }); @@ -934,6 +939,8 @@ describe('WidgetBuilder', function () { ], }); + await act(tick); + await waitFor(() => { expect(measurementsMetaMock).toHaveBeenCalled(); }); @@ -980,6 +987,8 @@ describe('WidgetBuilder', function () { orgFeatures: [...defaultOrgFeatures, 'dashboards-mep'], }); + expect(await screen.findByText('Custom Widget')).toBeInTheDocument(); + await waitFor(() => { expect(measurementsMetaMock).toHaveBeenCalled(); }); diff --git a/static/app/views/issueDetails/groupReplays/useReplaysFromIssue.spec.tsx b/static/app/views/issueDetails/groupReplays/useReplaysFromIssue.spec.tsx index ceceb9b411b8f4..55fcacf0672e6b 100644 --- a/static/app/views/issueDetails/groupReplays/useReplaysFromIssue.spec.tsx +++ b/static/app/views/issueDetails/groupReplays/useReplaysFromIssue.spec.tsx @@ -1,7 +1,7 @@ import {Location} from 'history'; import {Organization} from 'sentry-fixture/organization'; -import {reactHooks} from 'sentry-test/reactTestingLibrary'; +import {reactHooks, waitFor} from 'sentry-test/reactTestingLibrary'; import {IssueCategory} from 'sentry/types'; import {useLocation} from 'sentry/utils/useLocation'; @@ -36,7 +36,7 @@ describe('useReplaysFromIssue', () => { }, }); - const {result, waitForNextUpdate} = reactHooks.renderHook(useReplaysFromIssue, { + const {result} = reactHooks.renderHook(useReplaysFromIssue, { initialProps: { group: MOCK_GROUP, location, @@ -50,15 +50,15 @@ describe('useReplaysFromIssue', () => { pageLinks: null, }); - await waitForNextUpdate(); - - expect(result.current).toEqual({ - eventView: expect.objectContaining({ - query: 'id:[replay42,replay256]', - }), - fetchError: undefined, - pageLinks: null, - }); + await waitFor(() => + expect(result.current).toEqual({ + eventView: expect.objectContaining({ + query: 'id:[replay42,replay256]', + }), + fetchError: undefined, + pageLinks: null, + }) + ); }); it('should fetch a list of replay ids for a performance issue', async () => { @@ -72,7 +72,7 @@ describe('useReplaysFromIssue', () => { }, }); - const {result, waitForNextUpdate} = reactHooks.renderHook(useReplaysFromIssue, { + const {result} = reactHooks.renderHook(useReplaysFromIssue, { initialProps: { group: MOCK_GROUP, location, @@ -86,15 +86,15 @@ describe('useReplaysFromIssue', () => { pageLinks: null, }); - await waitForNextUpdate(); - - expect(result.current).toEqual({ - eventView: expect.objectContaining({ - query: 'id:[replay42,replay256]', - }), - fetchError: undefined, - pageLinks: null, - }); + await waitFor(() => + expect(result.current).toEqual({ + eventView: expect.objectContaining({ + query: 'id:[replay42,replay256]', + }), + fetchError: undefined, + pageLinks: null, + }) + ); }); it('should return an empty EventView when there are no replay_ids returned from the count endpoint', async () => { @@ -106,7 +106,7 @@ describe('useReplaysFromIssue', () => { body: {}, }); - const {result, waitForNextUpdate} = reactHooks.renderHook(useReplaysFromIssue, { + const {result} = reactHooks.renderHook(useReplaysFromIssue, { initialProps: { group: MOCK_GROUP, location, @@ -120,14 +120,14 @@ describe('useReplaysFromIssue', () => { pageLinks: null, }); - await waitForNextUpdate(); - - expect(result.current).toEqual({ - eventView: expect.objectContaining({ - query: 'id:[]', - }), - fetchError: undefined, - pageLinks: null, - }); + await waitFor(() => + expect(result.current).toEqual({ + eventView: expect.objectContaining({ + query: 'id:[]', + }), + fetchError: undefined, + pageLinks: null, + }) + ); }); }); diff --git a/static/app/views/replays/detail/console/useConsoleFilters.spec.tsx b/static/app/views/replays/detail/console/useConsoleFilters.spec.tsx index 2ae922d864a132..c0b71104ccda0b 100644 --- a/static/app/views/replays/detail/console/useConsoleFilters.spec.tsx +++ b/static/app/views/replays/detail/console/useConsoleFilters.spec.tsx @@ -140,7 +140,7 @@ describe('useConsoleFilters', () => { }, }); - rerender(); + rerender({frames}); result.current.setSearchTerm(SEARCH_FILTER); expect(browserHistory.push).toHaveBeenLastCalledWith({ diff --git a/static/app/views/replays/detail/domMutations/useDomFilters.spec.tsx b/static/app/views/replays/detail/domMutations/useDomFilters.spec.tsx index ea3ccc5b6d9eb7..5ef510d82615e8 100644 --- a/static/app/views/replays/detail/domMutations/useDomFilters.spec.tsx +++ b/static/app/views/replays/detail/domMutations/useDomFilters.spec.tsx @@ -90,7 +90,7 @@ describe('useDomFilters', () => { }, }); - rerender(); + rerender({actions}); result.current.setSearchTerm(SEARCH_FILTER); expect(browserHistory.push).toHaveBeenLastCalledWith({ diff --git a/static/app/views/replays/detail/errorList/useErrorFilters.spec.tsx b/static/app/views/replays/detail/errorList/useErrorFilters.spec.tsx index 5acdb895f81c8f..d7406928afdec0 100644 --- a/static/app/views/replays/detail/errorList/useErrorFilters.spec.tsx +++ b/static/app/views/replays/detail/errorList/useErrorFilters.spec.tsx @@ -90,7 +90,7 @@ describe('useErrorFilters', () => { }, }); - rerender(); + rerender({errorFrames}); result.current.setSearchTerm(SEARCH_FILTER); expect(browserHistory.push).toHaveBeenLastCalledWith({ diff --git a/static/app/views/replays/detail/errorList/useSortErrors.spec.tsx b/static/app/views/replays/detail/errorList/useSortErrors.spec.tsx index d7eba5d9b07b7a..2270506be3daed 100644 --- a/static/app/views/replays/detail/errorList/useSortErrors.spec.tsx +++ b/static/app/views/replays/detail/errorList/useSortErrors.spec.tsx @@ -1,5 +1,3 @@ -import {act} from 'react-test-renderer'; - import {reactHooks} from 'sentry-test/reactTestingLibrary'; import hydrateErrors from 'sentry/utils/replays/hydrateErrors'; @@ -80,9 +78,7 @@ describe('useSortErrors', () => { initialProps: {items}, }); - act(() => { - result.current.handleSort('timestamp'); - }); + result.current.handleSort('timestamp'); rerender({items}); @@ -103,9 +99,7 @@ describe('useSortErrors', () => { initialProps: {items}, }); - act(() => { - result.current.handleSort('title'); - }); + result.current.handleSort('title'); rerender({items}); @@ -131,9 +125,7 @@ describe('useSortErrors', () => { initialProps: {items: mixedItems}, }); - act(() => { - result.current.handleSort('project'); - }); + result.current.handleSort('project'); rerender({items: mixedItems}); @@ -148,9 +140,7 @@ describe('useSortErrors', () => { ERROR_2_NEXTJS_TYPEERROR, ]); - act(() => { - result.current.handleSort('project'); - }); + result.current.handleSort('project'); rerender({items: mixedItems}); diff --git a/static/app/views/replays/detail/network/useNetworkFilters.spec.tsx b/static/app/views/replays/detail/network/useNetworkFilters.spec.tsx index 0dfdefafb9626e..e51502ca7399fc 100644 --- a/static/app/views/replays/detail/network/useNetworkFilters.spec.tsx +++ b/static/app/views/replays/detail/network/useNetworkFilters.spec.tsx @@ -154,7 +154,7 @@ describe('useNetworkFilters', () => { }, }); - rerender(); + rerender({networkFrames}); result.current.setFilters([TYPE_OPTION, STATUS_OPTION]); expect(browserHistory.push).toHaveBeenLastCalledWith({ @@ -166,7 +166,7 @@ describe('useNetworkFilters', () => { }, }); - rerender(); + rerender({networkFrames}); result.current.setSearchTerm(SEARCH_FILTER); expect(browserHistory.push).toHaveBeenLastCalledWith({ @@ -232,7 +232,7 @@ describe('useNetworkFilters', () => { }, }); - rerender(); + rerender({networkFrames}); result.current.setFilters([TYPE_OPTION, STATUS_OPTION]); expect(browserHistory.push).toHaveBeenLastCalledWith({ @@ -244,7 +244,7 @@ describe('useNetworkFilters', () => { }, }); - rerender(); + rerender({networkFrames}); result.current.setSearchTerm(SEARCH_FILTER); expect(browserHistory.push).toHaveBeenLastCalledWith({ diff --git a/tests/js/sentry-test/reactTestingLibrary.tsx b/tests/js/sentry-test/reactTestingLibrary.tsx index fca38586c436a9..2918e7843f9afc 100644 --- a/tests/js/sentry-test/reactTestingLibrary.tsx +++ b/tests/js/sentry-test/reactTestingLibrary.tsx @@ -3,7 +3,6 @@ import {InjectedRouter} from 'react-router'; import {cache} from '@emotion/css'; // eslint-disable-line @emotion/no-vanilla import {CacheProvider, ThemeProvider} from '@emotion/react'; import * as rtl from '@testing-library/react'; // eslint-disable-line no-restricted-imports -import * as reactHooks from '@testing-library/react-hooks'; // eslint-disable-line no-restricted-imports import userEvent from '@testing-library/user-event'; // eslint-disable-line no-restricted-imports import {makeTestQueryClient} from 'sentry-test/queryClient'; @@ -30,7 +29,7 @@ type ProviderOptions = { type Options = ProviderOptions & rtl.RenderOptions; function createProvider(contextDefs: Record) { - return class ContextProvider extends Component { + return class ContextProvider extends Component { static childContextTypes = contextDefs.childContextTypes; getChildContext() { @@ -104,7 +103,7 @@ function render(ui: React.ReactElement, options?: Options) { router, }); - return rtl.render(ui, {wrapper: AllTheProviders, ...otherOptions}); + return rtl.render(ui, {wrapper: AllTheProviders, legacyRoot: true, ...otherOptions}); } /** @@ -146,5 +145,11 @@ instrumentUserEvent(globalSentry?.getCurrentHub.bind(globalSentry)); // eslint-disable-next-line no-restricted-imports, import/export export * from '@testing-library/react'; +/** + * just a shim until updating all the places that use this + * @deprecated import renderHook directly from 'sentry-test/reactTestingLibrary' + */ +const reactHooks = {renderHook: rtl.renderHook, act: rtl.act, waitFor: rtl.waitFor}; + // eslint-disable-next-line import/export export {render, renderGlobalModal, userEvent, reactHooks, fireEvent}; diff --git a/tests/js/setup.ts b/tests/js/setup.ts index 34eb9f36f95954..2c710334caa7f7 100644 --- a/tests/js/setup.ts +++ b/tests/js/setup.ts @@ -1,5 +1,7 @@ /* eslint-env node */ /* eslint import/no-nodejs-modules:0 */ +import '@testing-library/jest-dom'; + import path from 'path'; import {TextDecoder, TextEncoder} from 'util'; diff --git a/tests/js/setupFramework.ts b/tests/js/setupFramework.ts index e644b8ed8515b3..623c781b3b394a 100644 --- a/tests/js/setupFramework.ts +++ b/tests/js/setupFramework.ts @@ -11,6 +11,12 @@ failOnConsole({ silenceMessage: errorMessage => { // Ignore the following warnings + if ( + /Warning: ReactDOM.render is no longer supported in React 18/.test(errorMessage) + ) { + return true; + } + if ( /Warning: componentWill(Mount|ReceiveProps) has been renamed/.test(errorMessage) ) { diff --git a/yarn.lock b/yarn.lock index 3d2c847adee404..4f989e5a45531c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19,10 +19,10 @@ unplugin "^1.4.0" yargs "^17.7.2" -"@adobe/css-tools@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd" - integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g== +"@adobe/css-tools@^4.3.0": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28" + integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg== "@algolia/cache-browser-local-storage@4.13.1": version "4.13.1" @@ -128,15 +128,7 @@ "@algolia/logger-common" "4.13.1" "@algolia/requester-common" "4.13.1" -"@ampproject/remapping@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@ampproject/remapping@^2.2.1": +"@ampproject/remapping@^2.2.0", "@ampproject/remapping@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== @@ -1260,6 +1252,23 @@ source-map "^0.5.7" stylis "4.1.3" +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + "@emotion/cache@^11.10.5", "@emotion/cache@^11.4.0": version "11.10.5" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.5.tgz#c142da9351f94e47527ed458f7bbbbe40bb13c12" @@ -1271,16 +1280,27 @@ "@emotion/weak-memoize" "^0.3.0" stylis "4.1.3" -"@emotion/css@^11.10.5": - version "11.10.5" - resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.10.5.tgz#ca01bb83ce60517bc3a5c01d27ccf552fed84d9d" - integrity sha512-maJy0wG82hWsiwfJpc3WrYsyVwUbdu+sdIseKUB+/OLjB8zgc3tqkT6eO0Yt0AhIkJwGGnmMY/xmQwEAgQ4JHA== - dependencies: - "@emotion/babel-plugin" "^11.10.5" - "@emotion/cache" "^11.10.5" - "@emotion/serialize" "^1.1.1" - "@emotion/sheet" "^1.2.1" - "@emotion/utils" "^1.2.0" +"@emotion/cache@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.0" + +"@emotion/css@^11.11.2": + version "11.11.2" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.11.2.tgz#e5fa081d0c6e335352e1bc2b05953b61832dca5a" + integrity sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew== + dependencies: + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" "@emotion/eslint-plugin@^11.11.0": version "11.11.0" @@ -1292,6 +1312,11 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7" integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ== +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + "@emotion/is-prop-valid@^0.8.2": version "0.8.8" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" @@ -1299,12 +1324,12 @@ dependencies: "@emotion/memoize" "0.7.4" -"@emotion/is-prop-valid@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" - integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== +"@emotion/is-prop-valid@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc" + integrity sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw== dependencies: - "@emotion/memoize" "^0.8.0" + "@emotion/memoize" "^0.8.1" "@emotion/memoize@0.7.4": version "0.7.4" @@ -1316,7 +1341,12 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== -"@emotion/react@^11.1.1", "@emotion/react@^11.10.5": +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@^11.1.1": version "11.10.5" resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.5.tgz#95fff612a5de1efa9c0d535384d3cfa115fe175d" integrity sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A== @@ -1330,6 +1360,20 @@ "@emotion/weak-memoize" "^0.3.0" hoist-non-react-statics "^3.3.1" +"@emotion/react@^11.11.1": + version "11.11.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" + integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + "@emotion/serialize@^1.0.0", "@emotion/serialize@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.1.tgz#0595701b1902feded8a96d293b26be3f5c1a5cf0" @@ -1341,43 +1385,79 @@ "@emotion/utils" "^1.2.0" csstype "^3.0.2" +"@emotion/serialize@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" + integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + "@emotion/sheet@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.1.tgz#0767e0305230e894897cadb6c8df2c51e61a6c2c" integrity sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA== -"@emotion/styled@^11.10.5": - version "11.10.5" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.10.5.tgz#1fe7bf941b0909802cb826457e362444e7e96a79" - integrity sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw== +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + +"@emotion/styled@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.11.0.tgz#26b75e1b5a1b7a629d7c0a8b708fbf5a9cdce346" + integrity sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng== dependencies: "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.10.5" - "@emotion/is-prop-valid" "^1.2.0" - "@emotion/serialize" "^1.1.1" - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@emotion/utils" "^1.2.0" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/is-prop-valid" "^1.2.1" + "@emotion/serialize" "^1.1.2" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" "@emotion/unitless@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw== +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + "@emotion/use-insertion-effect-with-fallbacks@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz#ffadaec35dbb7885bd54de3fa267ab2f860294df" integrity sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A== +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + "@emotion/utils@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561" integrity sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw== +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + "@emotion/weak-memoize@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1722,14 +1802,6 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" @@ -1739,17 +1811,17 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/resolve-uri@^3.1.1": +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== @@ -1762,12 +1834,12 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -2467,16 +2539,6 @@ fflate "^0.4.4" mitt "^3.0.0" -"@sentry-internal/tracing@7.66.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.66.0.tgz#45ea607917d55a5bcaa3229341387ff6ed9b3a2b" - integrity sha512-3vCgC2hC3T45pn53yTDVcRpHoJTBxelDPPZVsipAbZnoOVPkj7n6dNfDhj3I3kwWCBPahPkXmE+R4xViR8VqJg== - dependencies: - "@sentry/core" "7.66.0" - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" - tslib "^2.4.1 || ^1.9.3" - "@sentry-internal/tracing@7.73.0": version "7.73.0" resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.73.0.tgz#4838f31e41d23a6041ef4520519b80f788bf1cac" @@ -2499,7 +2561,7 @@ "@sentry/utils" "7.73.0" tslib "^2.4.1 || ^1.9.3" -"@sentry/core@7.66.0", "@sentry/core@^7.64.0": +"@sentry/core@7.66.0": version "7.66.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.66.0.tgz#8968f2a9e641d33e3750a8e24d1d39953680c4f2" integrity sha512-WMAEPN86NeCJ1IT48Lqiz4MS5gdDjBwP4M63XP4msZn9aujSf2Qb6My5uT87AJr9zBtgk8MyJsuHr35F0P3q1w== @@ -2508,7 +2570,7 @@ "@sentry/utils" "7.66.0" tslib "^2.4.1 || ^1.9.3" -"@sentry/core@7.73.0": +"@sentry/core@7.73.0", "@sentry/core@^7.64.0": version "7.73.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.73.0.tgz#1caeeec44f42c4d58c06cc05dec39e5497b65aa3" integrity sha512-9FEz4Gq848LOgVN2OxJGYuQqxv7cIVw69VlAzWHEm3njt8mjvlTq+7UiFsGRo84+59V2FQuHxzA7vVjl90WfSg== @@ -2543,7 +2605,7 @@ resolved "https://registry.yarnpkg.com/@sentry/jest-environment/-/jest-environment-4.0.0.tgz#037844bed70c8f13259ee01ab65ff8d36aef0209" integrity sha512-91jLBS8KbX2Ng0aDSP7kdE9sjiLc4qjp/jczTbmvOvuHxoaQ9hSLaEpsthnnUQ/zNeprZMkOC9xlS+zABw3Zmw== -"@sentry/node@7.73.0": +"@sentry/node@7.73.0", "@sentry/node@^7.64.0": version "7.73.0" resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.73.0.tgz#7eecf06689cd8f9d21587ca5cbfdc74543cc8c09" integrity sha512-i50bRfmgkRRx0XXUbg9jGD/RuznDJxJXc4rBILhoJuhl+BjRIaoXA3ayplfJn8JLZxsNh75uJaCq4IUK70SORw== @@ -2557,20 +2619,6 @@ lru_map "^0.3.3" tslib "^2.4.1 || ^1.9.3" -"@sentry/node@^7.64.0": - version "7.66.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.66.0.tgz#d3e08471e1ecae28d3cd0ba3c18487ecb2449881" - integrity sha512-PxqIqLr4Sh5xcDfECiBQ4PuZ7v8yTgLhaRkruWrZPYxQrcJFPkwbFkw/IskzVnhT2VwXUmeWEIlRMQKBJ0t83A== - dependencies: - "@sentry-internal/tracing" "7.66.0" - "@sentry/core" "7.66.0" - "@sentry/types" "7.66.0" - "@sentry/utils" "7.66.0" - cookie "^0.4.1" - https-proxy-agent "^5.0.0" - lru_map "^0.3.3" - tslib "^2.4.1 || ^1.9.3" - "@sentry/profiling-node@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@sentry/profiling-node/-/profiling-node-1.2.0.tgz#1c58b09aff0c96a0c5f23cc797bf1f5570b57b58" @@ -2617,17 +2665,17 @@ dependencies: "@sentry-internal/tracing" "7.73.0" -"@sentry/types@7.66.0", "@sentry/types@^7.64.0": +"@sentry/types@7.66.0": version "7.66.0" resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.66.0.tgz#4ec290cc6a3dd2024a61a0bffb468cedb409f7fb" integrity sha512-uUMSoSiar6JhuD8p7ON/Ddp4JYvrVd2RpwXJRPH1A4H4Bd4DVt1mKJy1OLG6HdeQv39XyhB1lPZckKJg4tATPw== -"@sentry/types@7.73.0": +"@sentry/types@7.73.0", "@sentry/types@^7.64.0": version "7.73.0" resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.73.0.tgz#6d811bbe413d319df0a592a672d6d72a94a8e716" integrity sha512-/v8++bly8jW7r4cP2wswYiiVpn7eLLcqwnfPUMeCQze4zj3F3nTRIKc9BGHzU0V+fhHa3RwRC2ksqTGq1oJMDg== -"@sentry/utils@7.66.0", "@sentry/utils@^7.64.0": +"@sentry/utils@7.66.0": version "7.66.0" resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.66.0.tgz#2e37c96610f26bc79ac064fca4222ea91fece68d" integrity sha512-9GYUVgXjK66uXXcLXVMXVzlptqMtq1eJENCuDeezQiEFrNA71KkLDg00wESp+LL+bl3wpVTBApArpbF6UEG5hQ== @@ -2635,7 +2683,7 @@ "@sentry/types" "7.66.0" tslib "^2.4.1 || ^1.9.3" -"@sentry/utils@7.73.0": +"@sentry/utils@7.73.0", "@sentry/utils@^7.64.0": version "7.73.0" resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.73.0.tgz#530cf023f7c395aa7708cd3824e5a45948449c10" integrity sha512-h3ZK/qpf4k76FhJV9uiSbvMz3V/0Ovy94C+5/9UgPMVCJXFmVsdw8n/dwANJ7LupVPfYP23xFGgebDMFlK1/2w== @@ -2693,28 +2741,27 @@ "@tanstack/query-core" "4.29.7" use-sync-external-store "^1.2.0" -"@testing-library/dom@>=7", "@testing-library/dom@^8.0.0": - version "8.12.0" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.12.0.tgz#fef5e545533fb084175dda6509ee71d7d2f72e23" - integrity sha512-rBrJk5WjI02X1edtiUcZhgyhgBhiut96r5Jp8J5qktKdcvLcZpKDW8i2hkGMMItxrghjXuQ5AM6aE0imnFawaw== +"@testing-library/dom@>=7", "@testing-library/dom@^9.0.0": + version "9.3.3" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.3.tgz#108c23a5b0ef51121c26ae92eb3179416b0434f5" + integrity sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" - "@types/aria-query" "^4.2.0" - aria-query "^5.0.0" + "@types/aria-query" "^5.0.1" + aria-query "5.1.3" chalk "^4.1.0" dom-accessibility-api "^0.5.9" - lz-string "^1.4.4" + lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^5.16.5": - version "5.16.5" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" - integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== +"@testing-library/jest-dom@^6.1.3": + version "6.1.3" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.3.tgz#443118c9e4043f96396f120de2c7122504a079c5" + integrity sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ== dependencies: - "@adobe/css-tools" "^4.0.1" + "@adobe/css-tools" "^4.3.0" "@babel/runtime" "^7.9.2" - "@types/testing-library__jest-dom" "^5.9.1" aria-query "^5.0.0" chalk "^3.0.0" css.escape "^1.5.1" @@ -2722,26 +2769,19 @@ lodash "^4.17.15" redent "^3.0.0" -"@testing-library/react-hooks@^8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz#0924bbd5b55e0c0c0502d1754657ada66947ca12" - integrity sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g== - dependencies: - "@babel/runtime" "^7.12.5" - react-error-boundary "^3.1.0" - -"@testing-library/react@^12.1.2": - version "12.1.2" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.2.tgz#f1bc9a45943461fa2a598bb4597df1ae044cfc76" - integrity sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g== +"@testing-library/react@^14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.0.0.tgz#59030392a6792450b9ab8e67aea5f3cc18d6347c" + integrity sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg== dependencies: "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^8.0.0" + "@testing-library/dom" "^9.0.0" + "@types/react-dom" "^18.0.0" -"@testing-library/user-event@^14.4.3": - version "14.4.3" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.4.3.tgz#af975e367743fa91989cd666666aec31a8f50591" - integrity sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q== +"@testing-library/user-event@^14.5.1": + version "14.5.1" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.1.tgz#27337d72046d5236b32fd977edee3f74c71d332f" + integrity sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg== "@tootallnate/once@2": version "2.0.0" @@ -2778,10 +2818,10 @@ resolved "https://registry.yarnpkg.com/@tsconfig/svelte/-/svelte-1.0.13.tgz#2fa34376627192c0d643ce54964915e2bd3a58e4" integrity sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA== -"@types/aria-query@^4.2.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.1.tgz#78b5433344e2f92e8b306c06a5622c50c245bf6b" - integrity sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg== +"@types/aria-query@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.2.tgz#6f1225829d89794fd9f891989c9ce667422d7f64" + integrity sha512-PHKZuMN+K5qgKIWhBodXzQslTo5P+K/6LqeKXS6O/4liIDdZqaX5RXrCK++LAw+y/nptN48YmUMFiQHRSWYwtQ== "@types/babel__core@^7.1.14": version "7.1.14" @@ -2975,7 +3015,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@*", "@types/jest@^29.5.3": +"@types/jest@^29.5.3": version "29.5.3" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.3.tgz#7a35dc0044ffb8b56325c6802a4781a626b05777" integrity sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA== @@ -3094,12 +3134,12 @@ "@types/react" "*" date-fns "^2.16.1" -"@types/react-dom@*", "@types/react-dom@>=16", "@types/react-dom@~17.0.20": - version "17.0.20" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.20.tgz#e0c8901469d732b36d8473b40b679ad899da1b53" - integrity sha512-4pzIjSxDueZZ90F52mU3aPoogkHIoSIDG+oQ+wQK7Cy2B9S+MvOqY0uEA/qawKz381qrEDkvpwyt8Bm31I8sbA== +"@types/react-dom@*", "@types/react-dom@>=16", "@types/react-dom@^18.0.0", "@types/react-dom@~18.2.13": + version "18.2.13" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.13.tgz#89cd7f9ec8b28c8b6f0392b9591671fb4a9e96b7" + integrity sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw== dependencies: - "@types/react" "^17" + "@types/react" "*" "@types/react-grid-layout@^1.3.2": version "1.3.2" @@ -3155,10 +3195,10 @@ "@types/prop-types" "*" "@types/react" "*" -"@types/react@*", "@types/react@>=16", "@types/react@^17", "@types/react@~17.0.62": - version "17.0.62" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.62.tgz#2efe8ddf8533500ec44b1334dd1a97caa2f860e3" - integrity sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw== +"@types/react@*", "@types/react@>=16", "@types/react@~18.2.28": + version "18.2.28" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.28.tgz#86877465c0fcf751659a36c769ecedfcfacee332" + integrity sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -3216,13 +3256,6 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== -"@types/testing-library__jest-dom@^5.9.1": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.0.tgz#98eb7537cb5502bcca7a0d82acf5f245a2e6c322" - integrity sha512-l2P2GO+hFF4Liye+fAajT1qBqvZOiL79YMpEvgGs1xTK7hECxBI8Wz4J7ntACJNiJ9r0vXQqYovroXRLPDja6A== - dependencies: - "@types/jest" "*" - "@types/tough-cookie@*": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" @@ -3867,10 +3900,12 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" - integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== +aria-query@5.1.3, aria-query@^5.0.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" array-buffer-byte-length@^1.0.0: version "1.0.0" @@ -4545,15 +4580,6 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -4764,7 +4790,7 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.2, cookie@^0.4.1: +cookie@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== @@ -5153,6 +5179,30 @@ dedent@^1.0.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== +deep-equal@^2.0.5: + version "2.2.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.2.tgz#9b2635da569a13ba8e1cc159c2f744071b115daa" + integrity sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.1" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.0" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -5605,6 +5655,21 @@ es-abstract@^1.20.4, es-abstract@^1.22.1: unbox-primitive "^1.0.2" which-typed-array "^1.1.11" +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + es-iterator-helpers@^1.0.12: version "1.0.15" resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" @@ -7022,7 +7087,7 @@ ini@^1.3.4, ini@^1.3.5: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -internal-slot@^1.0.3, internal-slot@^1.0.5: +internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -7087,6 +7152,14 @@ ipaddr.js@^2.0.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" @@ -7209,7 +7282,7 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== -is-map@^2.0.1: +is-map@^2.0.1, is-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== @@ -7269,7 +7342,7 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-set@^2.0.1: +is-set@^2.0.1, is-set@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== @@ -8243,10 +8316,10 @@ lru_map@^0.3.3: resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== -lz-string@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" - integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= +lz-string@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== magic-string@^0.30.3: version "0.30.4" @@ -8816,6 +8889,14 @@ object-inspect@^1.12.3, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -9709,14 +9790,13 @@ react-date-range@^1.4.0: react-list "^0.8.13" shallow-equal "^1.2.1" -react-dom@17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +react-dom@18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" + scheduler "^0.23.0" react-draggable@^4.0.0, react-draggable@^4.0.3: version "4.4.4" @@ -9726,13 +9806,6 @@ react-draggable@^4.0.0, react-draggable@^4.0.3: clsx "^1.1.1" prop-types "^15.6.0" -react-error-boundary@^3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.3.tgz#276bfa05de8ac17b863587c9e0647522c25e2a0b" - integrity sha512-A+F9HHy9fvt9t8SNDlonq01prnU8AmkjvGKV4kk8seB9kU3xMEO8J/PQlLVmoOIDODl5U2kufSBs4vrWIqhsAA== - dependencies: - "@babel/runtime" "^7.12.5" - react-fast-compare@^3.0.1: version "3.2.0" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" @@ -9899,13 +9972,12 @@ react-virtualized@^9.22.5: prop-types "^15.7.2" react-lifecycles-compat "^3.0.4" -react@17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +react@18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" read-pkg-up@^8.0.0: version "8.0.0" @@ -10029,7 +10101,7 @@ regenerator-transform@^0.15.0: dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.1: +regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== @@ -10234,6 +10306,13 @@ scheduler@^0.20.2: loose-envify "^1.1.0" object-assign "^4.1.1" +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" @@ -10629,6 +10708,13 @@ state-local@^1.0.6: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -10848,6 +10934,11 @@ stylis@4.1.3: resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7" integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + substyle@^9.1.0: version "9.2.0" resolved "https://registry.yarnpkg.com/substyle/-/substyle-9.2.0.tgz#71144955058f8f19509187bb9466a13ffbb41710" @@ -11795,30 +11886,12 @@ yargs-parser@^20.2.9: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== - yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.3.1: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" - -yargs@^17.7.2: +yargs@^17.3.1, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==